🙂
Google Apps ScriptもGitHubで管理したい
こんにちは、TRUSTDOCKのよもぎたです。
やりたいことは記事タイトルの通りです。Geminiさんに教えてもらってやりました。
概要
Geminiさんによると、
- Googleが公式に提供しているclaspというコマンドラインツールでGoogleドライブ上のGASとローカルのGASファイルを相互に同期できる。
- claspツールはNode.jsで動作し、npmパッケージとして配布されている。
- ローカルに落としたファイルをgitコマンドでGitHubと同期すればよい。
ということだそうです。
早速やってみたいと思います。
実際の作業
環境構築
私の場合はWindows11上のWSLのUbuntu24.04を使っています。
node.jsとnpmをインストールします。
$ sudo apt install -y nodejs npm
gitは既にインストールされていましたが、まだの方はインストールしてください。
$ which git
/usr/bin/git
GitHubのssh接続も済んでました。
$ ssh -T git@github.com
Hi th0x0472! You've successfully authenticated, but GitHub does not provide shell access.
claspツールをインストールします。
$ sudo npm install -g @google/clasp
claspツールにログインします。
$ clasp login
Webブラウザが開いて、Googleアカウントを選択、ログインします。権限の付与に同意すると、claspのログインが完了します。お手軽です。
GitHubにリポジトリを作ってローカルにCloneする
GitHubのWebUIから新規リポジトリを作成してローカルにクローンしました。この辺りはお好みで。
$ git clone git clone git@github.com:th0x0472/gas_slack_notify_times_channel.git
.gitignoreファイルを作成する
Geminiさんに教わって、次の*.gitignore*ファイルを作成しました。
# Node.jsの依存関係ファイル
node_modules/
# claspが生成するローカル設定ファイル(環境によってIDが異なる場合)
.clasp.json
# エディタやOSが自動生成するファイル
.DS_Store
*.env
claspでGASをローカルにCloneする
CloneするGASの指定には、スクリプトIDを指定します。
スクリプトIDは、GAS編集画面の左の歯車アイコンの設定から確認できます。
スクリプトIDの確認

claspコマンドでGASをローカルにclone
$ $ clasp clone <スクリプトID>
└─ slack_notify_times_channel.js
Cloned 2 files.
GitHubにpushする
ローカルでcommitします。
$ git add appsscript.json slack_notify_times_channel.js
$ git commit -m '1st commit.'
[main 55de678] 1st commit.
2 files changed, 139 insertions(+)
create mode 100644 appsscript.json
create mode 100644 slack_notify_times_channel.js
GitHubにpushします。
$ git push
Enumerating objects: 5, done.
...
これで、こちらの記事のSlack botを無事にGitHubに公開できました!
最後に
自分がつくったモノをGitHubに公開できるようになって、イマドキのエンジニアに少し近づけたかな、と嬉しいです。
最後までお読みいただきありがとうございました。
Discussion