claspを使ったGoogle Apps Scriptのソース管理を試してみた

claspを利用すると、Google Apps Script(GAS)をローカルで管理出来る様になります!
2020.03.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、大前です。

今回は Google Apps Script の管理を CLI で行う事が出来る clasp を触ってみましたので、ブログを書いていきます。

claspとは

Google が提供する、Google Apps Script(GAS)をローカルで管理出来る様になる CLI ツールです。

ソースやプロジェクト管理、ローカルからのスクリプト実行が可能となります。

Google Apps Script

google / clasp

やってみた

では、実際に clasp をインストールして使用してみたいと思います。

Google Apps Script プロジェクトの作成

前準備として、今回使用する Google Apps Script のプロジェクトを作成しておきます。

 

管理画面左上の「+新しいプロジェクト」を選択。

 

図の様に初期状態のプロジェクトが表示されますので、とりあえずこのまま保存します。

 

プロジェクト名は「clasp-test-script」として保存しました。

clasp インストール

インストールには npm を使用しますので、インストールされていない方は先にインストールをしておきましょう。

clasp のインストールは、下記コマンドのみで完了します。簡単ですね。

$ npm install -g @google/clasp

インストール後、バージョンが確認出来ればインストール完了です。

$ clasp --version

Google Apps Script API の有効化

clasp を使用するためには、Google Apps Script API を有効化する必要があります。

 

Google Apps Script の管理画面より、左下の「設定」を選択。

 

「Google Apps Script API」という項目がありますので、「オフ」になっている場合は「オン」に変更します。

プロジェクトの clone

clasp でプロジェクトのソースをローカルに clone していきます。

GAS のソースをローカルに持ってくるためには、プロジェクトの scriptId が必要です。

$ clasp clone --help
Usage: clasp clone [options] [scriptId] [versionNumber]

scriptId は、管理画面でプロジェクトを開いた際の URL の末尾に記載されていますので、こちらをコピーして使います。

 

取得した scriptId を使用して clone を実行します。

$ clasp clone xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Warning: files in subfolder are not accounted for unless you set a '.claspignore' file.
Cloned 2 files.
└─ appsscript.json
└─ コード.js
Not ignored files:
└─ appsscript.json
└─ コード.js

Ignored files:
└─ .clasp.json
$

下記ファイルがクローンされました。

「.clasp.json」はクレデンシャル情報(scriptId)が記載されているファイルになります。

$ ls -a
.               ..              .clasp.json     appsscript.json コード.js

ローカルの変更を反映

スクリプトのクローンができたので、最後にローカルで加えた変更を GAS に反映させてみます。

反映は「clasp push」で行います。今回は myFunction() に Logger の記述を追加してみました。

$ vi コード.js
# function myFunction() {
#         Logger.log('test')
# }
$ clasp push
└─ appsscript.json
└─ コード.js
Pushed 2 files.

 

GAS のプロジェクトを開いてみると、ローカルの変更が反映されている事が確認できます!

おわりに

clasp を使って Google Apps Script プロジェクトの取得や、ローカル変更の反映をやってみました。

ローカルの変更を CLI で反映出来る様になるだけで、出来る事の幅が広くなると思いますので、是非ご活用ください。

次は、github と連携した CD を試したいと思います。

 

以上、AWS 事業本部の大前でした。

参考

Google Apps Script

google / clasp