【検証】 Claude Code GitHub Actionsは、どのブランチの パーミッション を参照するのか?

【検証】 Claude Code GitHub Actionsは、どのブランチの パーミッション を参照するのか?

Claude Code GitHub Actionsのパーミッションを修正していくとき、少し詰まったポイントの解説です。
Clock Icon2025.06.12

こんちは。

リテールアプリ共創部 エンハンスチームの塚本です。

Claude Code GitHub Actions を使い始めました。(パート2)

https://dev.classmethod.jp/articles/claude-code-github-actions-where-branch/

前に同じようなブログ↑ を書きましたが、今回はパーミッション編です。

Claude Code GitHub Actionsを使っていると、
単体テストを実行してほしいけど Claudeに権限が無くてできない...」 というケースに遭遇します。

Claude Code GitHub Actionsでは、ワークフローファイルの allowed_toolsでClaudeが実行できるコマンドやMCPツールを制御します。

      - name: Run Claude Code
        id: claude
        uses: anthropics/claude-code-action@beta
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          allowed_tools: "Bash(npm i)"

パーミッションは、デフォルトブランチのワークフローファイルに従うのでしょうか?

permission-2

それとも、PRブランチのワークフローファイルに従うのでしょうか?

permission-1

PRブランチのワークフローに従ってくれると、試行錯誤がしやすそうです。

今回はこちらを検証していきます。

Claude Code GitHub Actions とは

Claude Codeを GitHub Actions 経由で動かせるものです。

https://docs.anthropic.com/ja/docs/claude-code/github-actions

IssueやPRのコメントで @claude とメンションして指示を出すことで、コードレビューや実装を依頼できます。

検証

検証手順

  1. mainブランチの claude.yml は権限がない状態とする
  2. PRを作成し、PRのブランチで claude.ymlnpm install の権限を付与する
  3. PRのコメントで npm install できるか確認する

事前準備

https://docs.anthropic.com/ja/docs/claude-code/github-actions#クイックスタート

ローカルで Claude Code を開き、 /install-github-app を実行します。以下の手順をガイドしてくれるので、従いながら設定をします。

  • 対象リポジトリに ClaudeのGitHubアプリをインストール
  • API Keyを取得
  • API Keyをシークレットに保存
  • GitHub Actions workflow のPR作成

その後、npm init を実行し、 npm install できる状態にしました。

mainブランチの claude.yml を検証

特に権限が付与されていない claude.yml を作成します。

      - name: Run Claude Code
        id: claude
        uses: anthropics/claude-code-action@beta
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

Issueを作成し、コメントで npm install できるか頼んでみます。

conv-1

権限がないので、実行してくれません。

PRのブランチで claude.ymlnpm install の権限を付与する

PRのブランチでallowed_tools: "Bash(npm install)" の記述を追加します。

      - name: Run Claude Code
        id: claude
        uses: anthropics/claude-code-action@beta
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          allowed_tools: "Bash(npm install)"

PRを作成し、PRコメントで npm install できるか頼んでみます。

conv-2

こちらも権限がないので、実行してくれませんでした。

検証結果

permission-2

☔ パーミッションはmainブランチの claude.yml に従う

所感

検証がしづらい点では少し困りますが、PRブランチ側で好きなパーミッションを付けられる方が問題なので、安全性を重視するならこの仕様の方が良さそうです。

まとめ

  • Claude Code GitHub Actionsのパーミッション(allowed_tools)は、PRブランチではなくmainブランチのワークフローファイルに従う
  • この仕様により、PRブランチで任意のパーミッションを付与してセキュリティリスクが生じることを防いでいる
  • 検証や試行錯誤はしづらくなるが、安全性を重視した適切な設計と言える

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.