Google Apps Script – Skript-Verwaltung mit dem App Scripts CLI (Clasp)

Google Apps Script ist eine Cloud-basierte Plattform zur Entwicklung von Add-ons für die gängigen G-Suite-Anwendungen, zur Automatisierung von Workflows, Integration mit externen APIs und mehr. Dabei existieren verschiedene Werkzeuge, um die Entwicklung von Apps Script zu unterstützen und Entwicklungsprozesse zu erleichtern.

Dazu gehört Clasp, das App Scripts Command Line Interface. Welche Fähigkeiten dieses Tool bietet, wie es installiert wird und wie es in der Praxis eingesetzt werden kann, zeige ich in diesem Artikel.

Features

  • Lokal entwickeln: Projekte lassen sich herunterladen und ermöglichen so das lokale Entwickeln mit den gewohnten Entwicklungswerkzeugen (IDEs, Git, Linter).
  • Verwaltung von Versionen und Deployments: Wir können bereitgestellte Versionen der Skripte verwalten, auch das Zurückspringen auf vorherige Versionen ist möglich.
  • Code-Strukturierung: Projekte von script.google.com werden automatisch auf passende Projektverzeichnisse auf dem lokalen System abgebildet.

Eine weiterführende Dokumentation sowie ein CodeLabs-Tutorial bieten zusätzliche Informationen.

Installation

Sofern der Node Package Manager bereits installiert ist, können wir Clasp mit dem folgenden Befehl einfach und schnell installieren:

$ npm i @google/clasp -g
 > @google/clasp@1.0.7 postinstall /dir/.nvm/versions/node/v9.2.1/lib/node_modules/@google/clasp
 > echo '-> Thanks for installing clasp!
-> Thanks for installing clasp!
+ @google/clasp@1.0.7
 added 199 packages in 4.708s

Damit sollte uns Clasp in der Kommandozeile als ausführbare Anwendung zur Verfügung stehen:

$ clasp -h
Usage: clasp <command> [options]

clasp - The Apps Script CLI

Options:

-h, --help output usage information

Commands:

login Log in to script.google.com
 logout Log out
 create [scriptTitle] Create a script
 clone <scriptId> Clone a project
 pull Fetch a remote project
 push Update the remote project
 open Open a script
 deployments List deployment ids of a script
 deploy [version] [description] Deploy a project
 undeploy <deploymentId> Undeploy a deployment of a project
 redeploy <deploymentId> <version> <description> Update a deployment
 versions List versions of a script
 version [description] Creates an immutable version of the script

API-Aktivierung und Authentifizierung

Zunächst müssen wir in unserem Google-Konto die Verwendung der Google Apps Script API aktivieren:

Google Apps Script API aktivieren

Google Apps Script API aktivieren

Nun können wir uns in unserer lokalen Entwicklungsumgebung mit Clasp und OAuth für die weitere Interaktion mit Google authentifizieren:

$ clasp login
 -> Authorize clasp by visiting this url:
 https://accounts.google.com/o/oauth2/auth?......

Schließlich bestätigen wir im geöffneten Browser die angeforderten Berechtigungen und erhalten die folgende Meldung:

Saved the credentials to ~/.clasprc.json. You may close the page.

Damit können wir das Werkzeug nutzen.

Projekte verwalten

Um ein bestehendes Apps-Script-Projekt lokal zur Verfügung zu stellen, können wir clasp clone unter Angabe der Projekt-ID verwenden. Diese Projekt-ID ist in der Apps-Script-Verwaltung im Browser ersichtlich:

Google App Scripts - Projekteigenschaften

Google Apps Script – Projekteigenschaften

$ clasp clone PROJEKTID
 Cloned 2 files.
- Code.gs
- appsscript.json

Wir können nun mit den Dateien arbeiten. Um sie dann wieder mit Google Apps Script zu synchronisieren, benutzen wir clasp push:

$ clasp push
- Code.gs
- appsscript.json
 Pushed 2 files.

Änderungen, die wir an den Projektdateien gemacht haben, können wir ebenfalls in der Apps-Script-Oberfläche einsehen:

Google Apps Scripts - Änderungshistorie

Google Apps Script – Änderungshistorie

Versionierung

Um Änderungen an unseren Skripten im Blick zu behalten, können wir Projektstände versionieren. Im folgenden Beispiel verwenden wir clasp version, um einen Projektstand mit einer alpha1 benannten Version zu versehen:

$ clasp version alpha1
 Created version 1.

Welche Versionen bestehen, können wir mittels clasp versions aufzeigen:

$ clasp versions
 ~ 1 Version ~
 1 - alpha1

Mit clasp deploy können wir unsere Version nun veröffentlichen:

$ clasp deploy 1 "Erste Alpha Version veroeffentlicht"
 - ABC123ABC123ABC123 @1.

Welche Deployments bereits erstellt wurden, lässt sich mithilfe von clasp deployments einsehen:

$ clasp deployments
 2 Deployments.
 - ID @HEAD
 - ID-ABC123ABC123ABC123 @1 - Erste Alpha-Version veroeffentlicht

In der Oberfläche von Google Apps Script können wir natürlich ebenfalls die Versionen einsehen und bearbeiten:

Google Apps Scripts - Versionsmanagement

Google Apps Scripts – Versionsmanagement

Wir sehen: Clasp ist schnell und einfach zu handhaben, und das Tool bringt die wichtigsten Features mit, um unsere Arbeit nahtlos mit Google Apps Script zu integrieren. Die Lösung ist vor allem dadurch praktisch, dass wir in unserer gewohnten Umgebung mit unseren bevorzugten Tools arbeiten können statt im Apps-Script-Editor.

Weiterführende Infos

Apps für die Google G Suite und der Google App Maker
Hands-on-Confluence-Cloud-Apps mit Spring Boot und Atlassian Connect
G Suite: Funktionen, Möglichkeiten, Einführungsprojekte


Mehr über die Creative-Commons-Lizenz erfahren