Amazonで商品を見るセール会場へ

Claude CodeをGitHub Actionsで動かす|認証・課金・claude_argsの設定

Claude Codeは、GitHub Actionsから呼び出して、Issueやプルリクエストに応答させられます。

公式のGitHub Action(anthropics/claude-code-action)の設定を、公式ドキュメントから整理しました。

  • Claude Code内で /install-github-app を実行すると、導入を案内してくれる
  • この記事ではAPIキーとOAuthトークンを扱う。公式にはID連携やクラウドプロバイダーを使う方法もある
  • promptを書かないと対話モード、書くと自動化モードになる
  • CLIの引数は claude_args でまとめて渡す

GitHub Actionsでの動作の実機での再現は含まず、公式ページの記載(2026年10月23日に再照合)に基づきます。

仕様や数値は変わることがあるので、最新は公式ページで確かめてください。

目次

導入の方法

いちばん簡単なのは、Claude Codeの中で /install-github-app を実行する方法です。

公式によると、github.comのリポジトリが対象で、ghコマンドとログイン、リポジトリの管理者権限が要ります。

対象リポジトリでコマンドを実行して案内に従い、最後にブラウザーで開くワークフロー用のPRを作成してマージします。

手動で入れる場合は、次の3つを行います。

  1. Claude GitHub Appをリポジトリに入れる
  2. 認証用のシークレットを追加する
  3. 公式のexamples/claude.ymlを .github/workflows/ に置く
スポンサーリンク

認証と課金

シークレット入力名課金の扱い
ANTHROPIC_API_KEYanthropic_api_keyAPIのトークン課金
CLAUDE_CODE_OAUTH_TOKENclaude_code_oauth_tokenClaudeのサブスクリプション枠を使う
出典:Claude Code公式ドキュメント(確認日 2026-09-30)

OAuthトークンは、Pro・Max・Team・Enterpriseで使え、claude setup-token で作ります。

公式は、組織で共有するシークレットにはAPIキーを勧めています。

OAuthトークンは、発行した本人のサブスクリプションに結びつくためです。

どちらの場合も、GitHub Actionsの実行時間の分は別に消費します。

公式はGitHub ActionsでサブスクリプションのOAuthトークンを使う方法を案内しています。利用枠・組織の運用方針・契約条件は別途確認してください。

利用条件は、契約している規約で確かめてください。

最小のワークフロー

@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 }}

上の例はAPIキー用です。

OAuthトークンを使う場合は、anthropic_api_keyの行をclaude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}へ置き換え、対応するActionsシークレットを登録します。

設定後は書込み権限のある利用者がIssueまたはPRのコメントで@claudeを呼び出し、Actionsの実行ログとコメントへの応答を確認します。

id-token: write は、既定のGitHub App認証に必要です。

actions: read は、CIの結果を読むために要ります。

2つのモード

モード条件動き
対話モードpromptを書かない@claude と書かれたコメントに反応する
自動化モードpromptを書くイベントが起きたらすぐ実行し、結果は既定でワークフローのログに出る

反応の合図(trigger_phrase)の既定は @claude です。

Issue・PRイベントでは原則として実行者に書込み権限が必要です。例外を許可するにはallowed_non_write_usersと独自のgithub_tokenを設定します。scheduleなど人が投稿するイベントでない場合、この書込み権限チェックは省かれます。

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を使わせたいときは、必要なツールをclaude_argsの--allowedTools、またはsettings入力のpermissions.allowで許可します。

定期実行

公式にはcronの例があります。この記事のcron例はタイムゾーン未指定なのでUTCの毎日9時、日本時間の18時です。上のコメント用ジョブへscheduleだけを足しても、コメント本文を要求するif条件では動きません。定期実行用のジョブ条件とpromptを用意してください。

on:
  schedule:
    - cron: "0 9 * * *"
  • 定期実行は、デフォルトブランチでだけ動く
  • 公開リポジトリの定期ワークフローは、60日間活動がないと無効になる。混雑時には遅延・実行省略もあり、時刻厳守は保証されない

費用を抑える方法

公式が挙げているのは、次の方法です。

  • --max-turns で反復を制限する
  • ワークフローにタイムアウトを付ける
  • concurrencyで同時実行を制御する
  • CLAUDE.mdを簡潔に保つ

つまずきやすい点

Claudeが作ったコミットでCIが動かないときは、github_tokenに GITHUB_TOKEN を渡していないか確かめます。

そのトークンによるコミットでは通常の後続CIが起動しません。GitHub App認証または独自Appトークンを使い、CI側のpush・pull_requestなどのトリガー条件も確認します。

beta版から移るときは、@beta を @v1 にし、mode を消します。

direct_prompt は prompt に、max_turns などは claude_args にまとめます。

2026年10月23日に公式examples/claude.ymlの全文を確認しました。上の最小例より広く、Issueの作成・割当てやPRレビュー提出のイベントも含まれます。本文の最小例はコメント2種類に対象を絞っています。

関連記事:Claude Codeのclaude -pの使い方

スポンサーリンク

よくある質問:Claude CodeをGitHub Actionsで使うとき

GitHub ActionsからClaude Codeを使うには、どう導入しますか?

いちばん簡単なのは、Claude Codeの中で /install-github-app を実行する方法です。

公式によると、github.comのリポジトリが対象で、ghコマンドとログイン、リポジトリの管理者権限が要ります。

対象リポジトリでコマンドを実行して案内に従い、最後にブラウザーで開くワークフロー用のPRを作成してマージします。

手動で入れる場合は、Claude GitHub Appをリポジトリに入れ、認証用のシークレットを追加し、公式のexamples/claude.ymlを .github/workflows/ に置きます。

APIキーとOAuthトークンは、どちらを使えばよいですか?

ANTHROPIC_API_KEY はAPIのトークン課金、CLAUDE_CODE_OAUTH_TOKEN はClaudeのサブスクリプション枠を使います。

OAuthトークンは、Pro・Max・Team・Enterpriseで使え、claude setup-token で作ります。

公式は、組織で共有するシークレットにはAPIキーを勧めています。

OAuthトークンは、発行した本人のサブスクリプションに結びつくためです。

どちらの場合も、GitHub Actionsの実行時間の分は別に消費します。

サブスクリプションをCIで使ってよいのですか?

公式にサブスクリプションのOAuthトークンを使う導入方法があります。無制限に使えるという意味ではなく、利用枠・組織の方針・契約条件に従います。

利用条件は、契約している規約で確かめてください。

対話モードと自動化モードは、何が違いますか?

promptを書かないと対話モードになり、@claude と書かれたコメントに反応します。

promptを書くと自動化モードになり、イベントが起きたらすぐ実行して、結果は既定でワークフローのログに出ます。

反応の合図(trigger_phrase)の既定は @claude で、Issue・PRイベントでは原則として実行者に書込み権限が必要です。例外を許可するにはallowed_non_write_usersと独自のgithub_tokenを設定します。scheduleなど人が投稿するイベントでない場合、この書込み権限チェックは省かれます。

botからの実行は、allowed_botsに載せない限り拒否されます。

claude_args では、何を渡せますか?

CLIの引数を文字列で書けます。

--max-turns(エージェントのターン数の上限)、--model(使うモデル)、--allowedTools(確認なしで許可するツール)、--mcp-config(MCPの設定ファイル)などです。

プレーンテキストのpromptでシェルやGitHub APIを使わせたいときは、必要なツールをclaude_argsの--allowedTools、またはsettings入力のpermissions.allowで許可します。

決まった時間に自動で動かせますか?

公式にはcronの例があります。この記事のcron例はタイムゾーン未指定なのでUTCの毎日9時、日本時間の18時です。上のコメント用ジョブへscheduleだけを足しても、コメント本文を要求するif条件では動きません。定期実行用のジョブ条件とpromptを用意してください。

ただし、定期実行はデフォルトブランチでだけ動き、公開リポジトリは60日間活動がないと無効になります。

費用を抑えるには?

公式が挙げているのは、--max-turns で反復を制限する、ワークフローにタイムアウトを付ける、concurrencyで同時実行を制御する、CLAUDE.mdを簡潔に保つ、の4つです。

Claudeが作ったコミットでCIが動かないときは? beta版からの移行は?

github_token に GITHUB_TOKEN を渡していないか確かめます。

そのトークンによるコミットでは通常の後続CIが起動しません。GitHub App認証または独自Appトークンを使い、CI側のpush・pull_requestなどのトリガー条件も確認します。

beta版から移るときは、@beta を @v1 にし、mode を消します。

direct_prompt は prompt に、max_turns などは claude_args にまとめます。

現行の公式examples/claude.ymlは2026年10月23日に全文を照合しました。実際のActions実行、コメント投稿、認証別利用枠の消費は未検証です。

参照:Claude Code GitHub Actions公式ガイド、GitHubのschedule仕様。今回は本文と公式資料の照合で、画面・実動作の確認はしていません。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

生成AIのおすすめ書籍

周辺機器の優先度

目次