Classmethod Gas Github Actions Clasp Secure Deploy
GitHub ActionsでGASをデプロイしclasp認証情報をローカルに残さない方法
- URL: https://dev.classmethod.jp/articles/gas-github-actions-clasp-secure-deploy/
- 日付: 2026-06-09
- Tier: Tier 3
- 要旨: Google Apps Script(GAS)を clasp で管理しつつ、
~/.clasprc.json(アクセストークン・リフレッシュトークン含む)をローカルに残さず GitHub Secrets + GitHub Actions だけでデプロイする構成の解説。
詳細
解決する問題
clasp loginで生成される~/.clasprc.jsonにはアクセストークン・リフレッシュトークンが含まれ、ローカルに残すと流出リスクがある
構成のポイント
CLASPRC_JSON(~/.clasprc.json全体)とCLASP_SCRIPT_ID_MAIN/CLASP_SCRIPT_ID_DEVを GitHub Repository Secrets に登録.clasp.json全体ではなくscriptIdだけを Secret に保存。GitHub Actions 実行中にdist/.clasp.jsonを動的生成- 処理終了後はランナーごと破棄 → ローカルにもリポジトリにも認証情報が残らない
推奨運用
- CI 用の専用 Google アカウントで
clasp loginしてトークン取得。対象 GAS だけ編集権限を共有 devブランチ push → 検証用 GAS、mainpush → 本番用 GAS に振り分け(誤デプロイ防止)- 登録後はローカルの認証情報を
clasp logoutで削除
ワークフロー構成
ci.yml: PR(main/dev向け)で lint・test・build のみ実行deploy.yml:main/devへの push で~/.clasprc.jsonを一時生成 →clasp push→ ランナー終了で自動削除
参考
- Google 公式ドキュメント「clasp と GitHub Actions を使用した Apps Script の CI/CD」をベースに
.clasp.json全体ではなくscriptIdのみを Secret 化する方式に改良