🙂

Google Apps ScriptもGitHubで管理したい

に公開

こんにちは、TRUSTDOCKのよもぎたです。

やりたいことは記事タイトルの通りです。Geminiさんに教えてもらってやりました。

概要

Geminiさんによると、

  1. Googleが公式に提供しているclaspというコマンドラインツールでGoogleドライブ上のGASとローカルのGASファイルを相互に同期できる。
  2. claspツールはNode.jsで動作し、npmパッケージとして配布されている。
  3. ローカルに落としたファイルを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の確認
スクリプト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に公開できるようになって、イマドキのエンジニアに少し近づけたかな、と嬉しいです。

最後までお読みいただきありがとうございました。

TRUSTDOCK テックブログ

Discussion