Apps Scriptをインポート・エクスポートする

こんにちは、村上 です。

Google Apps Script はブラウザ上の Script Editor で書いて動作確認ができるので、ブラウザだけあれば開発が始められます。変更履歴の管理もされているので、コードを過去のものに戻したりなんかもできたりします。
でも、gitなどのバージョン管理ツールに慣れている開発者だと、正直これだけじゃつらい、複数人で開発しようとしたときもつらい、とてもつらいです。そこで、今回は Apps Script のソースコードをバージョン管理するために App Script をローカルマシンに取り出す方法の紹介をしたいと思います。

Apps Scriptをバージョン管理ツールで管理するために、どうにかしてテキストファイルとしてコードをローカルマシン上に取り出す必要があります。Apps Scriptはそのあたりもちゃんと用意してくれています。
Google Drive SDKを使ってインポート・エクスポートができます。もちろん、公式ドキュメント にも書かれています。

ただし、インポート・エクスポートできるのは Standalone プロジェクトだけなので注意が必要です。コンテナ(SpreadsheetやDocument)に紐付いているApps Scriptはインポート・エクスポートできません。

公式ドキュメントを見ていただければわかるのですが、インポート・エクスポートは Google Drive の REST API を利用します。なので、特定の言語やツールに依存はしていませんから自分の好きな言語やツールを使ってインポート・エクスポートができます。
でも、インポート・エクスポートしたいだけなので、Google Drive API を直接呼び出すんじゃなくてもう少し簡単に済ませたいですよね。少なくとも私はそうしたい。

そんな(私をはじめとして)簡単に済ませたい人にぴったりのツールがあるんです。これから紹介するツールを使えば自前で Google Drive API を呼び出さなくてもインポート・エクスポートができます。

Google Plugin for Eclipse

Google が提供している GWT や GAE を利用して開発するのに便利な Eclipse プラグインです。このプラグインを使うと Apps Script を Eclipse のプロジェクトとしてインポートすることもできます。プラグインの内部では Google Drive API を利用しているので扱えるのはやはり Standalone のプロジェクトだけです。詳しい使い方は 公式ドキュメント に図解入りで説明されています。
Apps Script をインポートするには Eclipse 上で Google アカウントでログインして、インポートしたい Apps Script のプロジェクトを選ぶだけです。Eclipse に慣れた開発者なんかはすぐに使い始められます。
Eclipse のエディタでgsファイルを保存すると、直後に Google Drive 上の Apps Script プロジェクトにも変更が反映されます。使い勝手としては Eclipse 上に Script Editor があるような感じです。

gas-manager

gas-managerは Node.js で動作するコマンドラインツールです。Node.js の環境があれば npm で次のようにインストールできます。

1
$ npm install -g gas-manager

インストールすると gas コマンドが使えるようになります。エクスポートは gas download、インポートは gas upload のコマンドを実行すればいいだけです。このツールも Google Drive API を使用しています[1]
使い始めるにあたって Google Developer Console でクライアントIDを作成して Drive API を有効にする必要があります。Google Plugin for Eclipse に比べると使い始めるまでに少し手間がかかります。でも、Google Plugin for Eclipse にない次のようなメリットもあります。

  • 自分の好きなタイミングで インポート・エクスポートができる。CLIなのでバッチ処理として実行することもできます。
  • 設定ファイル複数の環境を定義してインポート・エクスポートできる。例えば、1つのプロジェクトを別環境(Google Drive上の別々のApps Scriptファイル)にインポート・エクスポートすることもできます。gasコマンド-eオプションで切り替えができます。

詳しい使い方は次のページが参考になります。

まとめ

Apps Script をインポート・エクスポートするツールとして Google Plugin for Eclipse と gas-manager の2つのツールを紹介しました。ローカルマシンにエクスポートまでできてしまえば、あとは git などお好みのバージョン管理ツールを利用して自由にコードの管理ができます。

最近、私は Atom + gas-manager で Apps Script を利用することが多いです。設定ファイルで複数の環境に対してインポート・エクスポートすることができるので、本番環境とテスト環境を使い分けるのにとても便利です。

自分の開発スタイルに合わせてツールを使ってみてはどうでしょうか。


  1. gas-manager だとコンテナに紐付いた AppsScript のエクスポートだけはできました。ただ、Google の公式ドキュメントではできないことになっているので、ある日突然できなくなってしまう可能性もあります。