Claude Codeは、GitHub Actionsから呼び出して、Issueやプルリクエストに応答させられます。
公式のGitHub Action(anthropics/claude-code-action)の設定を、公式ドキュメントから整理しました。
- Claude Code内で /install-github-app を実行すると、導入を案内してくれる
- 認証は、APIキーかOAuthトークンのどちらか
- promptを書かないと対話モード、書くと自動化モードになる
- CLIの引数は claude_args でまとめて渡す
GitHub Actionsでの動作の実機での再現は含まず、公式ページの記載(2026年9月30日に確認)に基づきます。
仕様や数値は変わることがあるので、最新は公式ページで確かめてください。
導入の方法
いちばん簡単なのは、Claude Codeの中で /install-github-app を実行する方法です。
公式によると、github.comのリポジトリが対象で、ghコマンドとログイン、リポジトリの管理者権限が要ります。
手動で入れる場合は、次の3つを行います。
- Claude GitHub Appをリポジトリに入れる
- 認証用のシークレットを追加する
- 公式のexamples/claude.ymlを .github/workflows/ に置く
認証と課金
| シークレット | 入力名 | 課金の扱い |
|---|---|---|
| ANTHROPIC_API_KEY | anthropic_api_key | APIのトークン課金 |
| CLAUDE_CODE_OAUTH_TOKEN | claude_code_oauth_token | Claudeのサブスクリプション枠を使う |
OAuthトークンは、Pro・Max・Team・Enterpriseで使え、claude setup-token で作ります。
公式は、組織で共有するシークレットにはAPIキーを勧めています。
OAuthトークンは、発行した本人のサブスクリプションに結びつくためです。
どちらの場合も、GitHub Actionsの実行時間の分は別に消費します。
サブスクリプションをCIで使ってよい範囲について、公式ページに制約の記載は見つかりませんでした。
利用条件は、契約している規約で確かめてください。
最小のワークフロー
@claude と書かれたコメントに応答する、公式の最小構成は次の形です。
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
jobs:
claude:
if: contains(github.event.comment.body, '@claude')
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
actions: read
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}id-token: write は、既定のGitHub App認証に必要です。
actions: read は、CIの結果を読むために要ります。
2つのモード
| モード | 条件 | 動き |
|---|---|---|
| 対話モード | promptを書かない | @claude と書かれたコメントに反応する |
| 自動化モード | promptを書く | イベントが起きたらすぐ実行し、結果は既定でワークフローのログに出る |
反応の合図(trigger_phrase)の既定は @claude です。
実行する人には書き込み権限が必要です。
botからの実行は、allowed_botsに載せない限り拒否されます。
claude_args で引数を渡す
claude_args には、CLIの引数を文字列で書けます。
claude_args: "--max-turns 5 --model claude-sonnet-5 --mcp-config /path/to/config.json"- –max-turns:往復の回数に上限をつける
- –model:使うモデルを決める
- –allowedTools:使ってよいツールを決める
- –mcp-config:MCPの設定ファイルを渡す
プレーンテキストのpromptでシェルやGitHub APIを使わせたいときは、–allowedTools で許可が要ります。
定期実行
公式には、cronで毎日動かす例があります。
on:
schedule:
- cron: "0 9 * * *"- 定期実行は、デフォルトブランチでだけ動く
- 公開リポジトリは、60日間活動がないと無効になる
費用を抑える方法
公式が挙げているのは、次の方法です。
- –max-turns で反復を制限する
- ワークフローにタイムアウトを付ける
- concurrencyで同時実行を制御する
- CLAUDE.mdを簡潔に保つ
つまずきやすい点
Claudeが作ったコミットでCIが動かないときは、github_tokenに GITHUB_TOKEN を渡していないか確かめます。
渡していると後続のワークフローが発火しないので、外してGitHub Appの認証にします。
beta版から移るときは、@beta を @v1 にし、mode を消します。
direct_prompt は prompt に、max_turns などは claude_args にまとめます。
examples/claude.ymlの現行の全文は、今回確認できていません。
