CoreCodeブログ

ガイド

Claude Code GitHub Actions の設定:Issue と PR で @claude を使う

公開日: · 最終確認:

Claude Code GitHub Actions は、リポジトリのワークフロー内で Claude Code を実行する GitHub Action です。プルリクエストや Issue のコメントで @claude とメンションすると、Claude がコードを分析し、変更を実装して、コミットを push します。このページでは、クイックセットアップと手動セットアップ、基本のワークフロー、よく使う入力、誰が実行を起動できるか、コストとセキュリティの注意点、反応しないときの確認点を手順に沿って説明します。内容は Anthropic の Claude Code GitHub Actions に沿っており、2026 年 10 月 30 日にそのページで確認しました。

ポイント
  • クイックセットアップ:接続したいリポジトリで claude を開き、/install-github-app を実行して、プロンプトに従います。github.com のリポジトリでのみ動作し、リポジトリへの admin アクセスが必要です。
  • 手動セットアップは 3 ステップです。Claude GitHub App をインストールし、ANTHROPIC_API_KEY または CLAUDE_CODE_OAUTH_TOKEN のシークレットを追加し、examples/claude.yml を .github/workflows/ にコピーします。
  • prompt 入力のないワークフローは対話モードで動作し、コメントの @claude を待ちます。prompt 入力のあるワークフローは、メンションを待たずに自動化モードで動作します。
  • 認証情報は GitHub Secrets としてのみ保存し、コミットしないでください。ワークフローには必要な権限だけを与え、マージ前に Claude の変更をレビューします。
  • 実行のたびに GitHub Actions の分数と API トークンを消費します。--max-turns、タイムアウト、並行実行の制御で上限を設けられます。

できること

Claude Code GitHub Action は、リポジトリのワークフロー内で Claude Code を実行します。プルリクエストや Issue のコメントで @claude とメンションすると、Claude がコードを分析し、変更を実装して、コミットを push します。prompt を渡して、任意の GitHub イベントで自動実行させることもできます。Anthropic は、Issue からプルリクエストを作る、コメントからバグを修正する、定期的なタスクを自動化する、といった用途を挙げています。

Claude Code の名前を持つ製品はいくつかあります。このページが扱うのは、リポジトリのワークフローファイルで設定する claude-code-action です。ワークフローを書かずにすべてのプルリクエストを自動でレビューしたい場合、Anthropic のページは、別の製品である Code Review を案内しています。

セットアップ:クイックか手動か

どちらの方法でも、リポジトリへの admin アクセスが必要です。

方法やること使うタイミング
クイックセットアップClaude Code から /install-github-app を実行します。Claude Code が GitHub App をインストールし、認証用のシークレットを追加して、ワークフローのプルリクエストを準備します。Claude Code をローカルで実行している場合。
手動セットアップアプリのインストール、シークレットの追加、ワークフローファイルのリポジトリへのコピーを、自分で行います。Claude Code をローカルで実行していない場合、コマンドが失敗する場合、またはワークフローファイルを完全に制御したい場合。

クイックセットアップ

/install-github-app は、github.com のリポジトリでのみ動作します。リポジトリの git リモートが gitlab.com や bitbucket.org にある場合、コマンドはセットアップを始めず、通知を出力して終了します。

  1. GitHub CLI をインストールし、gh auth login で認証します。Claude Code はそれがあるか確認し、なければ警告します。
  2. 接続したいリポジトリで claude を開き、/install-github-app を実行して、プロンプトに従います。Claude Code は Claude GitHub App をインストールし、ワークフロー用の認証シークレットを設定します。
  3. シークレットの選び方:Claude Code がすでに API キーを持っている場合は、そのキーを再利用し、リポジトリにすでに ANTHROPIC_API_KEY のシークレットがあれば、それを維持するかを尋ねます。そうでなければ、Claude サブスクリプションで長期間有効なトークンを作るか、API キーを貼り付けるかを選びます。
  4. Claude Code は、認証情報をリポジトリのシークレットとして保存します。名前は、API キーなら ANTHROPIC_API_KEY、サブスクリプションのトークンなら CLAUDE_CODE_OAUTH_TOKEN です。
  5. Claude Code は、選んだワークフローファイルを、そのシークレットを使うように設定済みの状態でブランチに push し、プルリクエストを作成できる状態でブラウザの GitHub を開きます。そのプルリクエストを作成してマージすれば、リポジトリで @claude が動作します。

途中で止めるには、Esc を押します。進行中のステップは完了し、以降のステップは始まりません。最後のメッセージには、push されたブランチや保存されたシークレットなど、リポジトリですでに起きたことが一覧されます。GitHub App のインストール後、Claude Code は GitHub Actions のセットアップを続けるか尋ねます。Skip for now を選ぶと、GitHub App のインストールだけで止まり、後でもう一度 /install-github-app を実行して、ワークフローとシークレットのステップを完了できます。

レビューのワークフローを選ぶと、Claude は各レビューをプルリクエスト自体に投稿します。問題が見つかれば、それぞれにインラインコメントを付け、見つからなければ 1 つの要約コメントを付けます。Claude は、ドラフトなど一部のプルリクエストをスキップします。v2.1.229 より前は、Claude はレビューをワークフローの実行ログにだけ書いていました。

以前のバージョンが生成したレビューのワークフローを更新するには、次のいずれかを行います。

Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry を使う場合、Anthropic のページは、別のページ Use Claude Code GitHub Actions with cloud providers を案内しています。

手動セットアップ

1. Claude GitHub App をインストールする。Claude GitHub App をリポジトリにインストールします。この Action は、アプリの 3 つの権限を使います。

インストール時には、Claude の他の機能が使う権限も付与します。全体の一覧は、下の「GitHub App の権限」にあります。

2. 認証用のシークレットを追加する。認証の方法に応じて、次のシークレットのいずれかをリポジトリに追加します。GitHub のガイドは、using secrets in GitHub Actions です。

ワークフローファイルでは、シークレットを対応する入力に渡します。API キーなら anthropic_api_key、OAuth トークンなら claude_code_oauth_token です。

3. ワークフローファイルをコピーする。examples/claude.yml を、リポジトリの .github/workflows/ ディレクトリにコピーします。このファイルは単なる例ではなく、動作するワークフローです。コミットされたままの状態では、誰かが Issue やプルリクエストで @claude とメンションするたびに、Claude が ANTHROPIC_API_KEY のシークレットで認証して応答します。代わりに CLAUDE_CODE_OAUTH_TOKEN を追加した場合は、ワークフローの anthropic_api_key の行を claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} に変更します。

セットアップ後は、Issue や PR のコメントで @claude とタグ付けして試します。

組織で設定する

クイックセットアップと手動セットアップは、1 つのリポジトリずつ設定します。組織全体にこの Action を展開するには、次のようにします。

リポジトリ間で共有するシークレットには、OAuth トークンではなく、Claude Console の API キーで認証してください。OAuth トークンは、claude setup-token を実行した人のサブスクリプションに紐づくからです。長期間有効なシークレットをそもそも保存しないようにするには、ワークロード ID フェデレーションを使います。この Action は、ワークフローの GitHub OIDC トークンを、Claude Console のサービスアカウントを通じて Claude API へのアクセスと交換します。入力は anthropic_federation_rule_id、anthropic_organization_id、および任意の anthropic_service_account_id と anthropic_workspace_id で、ワークフローには id-token: write 権限が必要です。Console 側の設定は、Action のセットアップガイドにあります。

GitHub App の権限

Claude GitHub App は、この Action、Code Review、クラウドセッションでのプルリクエストの自動修正など、GitHub と連携するすべての Claude の機能で共有されます。GitHub App の権限セットは 1 つだけなので、この Action が使わない権限も含まれています。アプリをインストールすると、次の権限を付与することになります。

権限アクセス
Actions読み取りと書き込み
Administration読み取り
Checks読み取りと書き込み
Contents読み取りと書き込み
Discussions読み取りと書き込み
Issues読み取りと書き込み
Members読み取り
Merge queues読み取り
Metadata読み取り
Pull requests読み取りと書き込み
Repository hooks読み取りと書き込み
Statuses読み取り
Workflows読み取りと書き込み

アプリをインストールするということは、その権限セット全体を受け入れることを意味し、GitHub では一部だけを受け入れることはできません。組織が、この Action が使う権限だけを求める場合は、Action のセットアップガイドに従って、Contents、Issues、Pull requests だけを持つカスタムの GitHub App を作成します。カスタムアプリが対象とするのは、この Action だけです。Code Review とウェブの自動修正には、引き続き公式のアプリが必要です。

基本のワークフロー:@claude に応答する

このワークフローは、Action を対話モードで実行するので、誰かが Issue や PR のコメントで @claude とメンションするたびに、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 }}

このワークフローのうち、定型ではない部分は次のとおりです。

ワークフローを設定したら、任意の Issue や PR のコメントで、依頼と一緒に @claude とメンションします。

@claude implement this feature based on the issue description
@claude how should I implement user authentication for this endpoint?
@claude fix the TypeError in the user dashboard component

Claude は、同じ Issue や PR のコメントで返信し、作業を進めながらそれを更新します。

対話モード、自動化モード、誰が実行を起動できるか

この Action は、ワークフローの設定から、どう実行するかを検出します。

どちらのモードでも、Claude が始まる前に、この Action はトリガーとなったアクターに対して 2 つのチェックを行い、どちらかが拒否すると、実行は失敗します。

よく使う入力

これらは、最もよく使われる入力です。それぞれが、anthropics/claude-code-action のステップの with: のキーに対応します。

パラメーター説明必須
promptClaude への指示。プレーンテキストまたはスキルの呼び出し。省略すると、Claude は代わりにトリガーとなるフレーズに応答します。いいえ
claude_argsClaude Code に渡す CLI 引数。いいえ
anthropic_api_keyClaude API キー。Claude API では、claude_code_oauth_token かワークロード ID フェデレーションを使わない限り必要です。Bedrock、Agent Platform、Foundry では使われません。
claude_code_oauth_tokenClaude サブスクリプションで認証するための OAuth トークン。claude setup-token で生成します。いいえ
github_tokenGitHub の操作に使うトークン。省略すると、この Action は Claude GitHub App として認証します。いいえ
plugin_marketplacesプラグインマーケットプレイスの Git URL を、改行で区切った一覧。いいえ
plugins実行前にインストールするプラグイン名を、改行で区切った一覧。いいえ
settingsClaude Code の設定。JSON 文字列、または設定の JSON ファイルへのパス。いいえ
trigger_phraseClaude が応答するトリガーのフレーズ。デフォルト:@claude。いいえ
use_bedrockClaude API の代わりに Amazon Bedrock を使います。いいえ
use_vertexClaude API の代わりに Google Cloud の Agent Platform を使います。いいえ
use_foundryClaude API の代わりに Microsoft Foundry を使います。いいえ

入力の完全な一覧は、この Action の設定リファレンスを参照してください。

claude_args で CLI 引数を渡す

claude_args パラメーターは、任意の Claude Code の CLI 引数を受け付けます。

claude_args: "--max-turns 5 --model claude-sonnet-5 --mcp-config /path/to/config.json"

よく使う引数です。

その他のワークフローの例

examples ディレクトリには、さまざまなシナリオ向けに、そのまま使えるワークフローがあります。このページの例は、API キーによる認証を示しています。Claude サブスクリプションで認証する場合は、どの例でも、anthropic_api_key の行を claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} に置き換えてください。

プルリクエストを自動でレビューする(スキルを実行する)

prompt 入力は、プレーンテキストに加えて、スキルの呼び出しも受け付けます。

次のワークフローは、code-review プラグインをインストールし、プルリクエストが開かれたとき、更新されたとき、再オープンされたとき、レビュー可能としてマークされたときに、そのスキルを実行します。これは、クイックセットアップのレビューのワークフローと同じプラグインを実行します。プロンプト、モデル、トリガーを自分で制御したいときに、このようなワークフローを使います。公開リポジトリでは、GitHub は、フォークからのプルリクエストがトリガーする実行にシークレットを渡さないため、このレビューは、同じリポジトリ内のブランチからのプルリクエストでのみ実行されます。

name: Code Review
on:
  pull_request:
    types: [opened, synchronize, ready_for_review, reopened]
jobs:
  review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: read
      issues: read
      id-token: write
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 1
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          plugin_marketplaces: "https://github.com/anthropics/claude-plugins-official.git"
          plugins: "code-review@claude-plugins-official"
          prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
          claude_args: '--allowedTools "mcp__github_inline_comment__create_inline_comment"'

このワークフローの 2 行が、レビューの投稿先を制御します。

Claude は、ドラフトとクローズ済みのプルリクエスト、自動化されたものや些細なものなど、レビューが不要だと判断するプルリクエスト、すでに Claude のコメントがあるプルリクエストをスキップします。

スケジュールで実行する

prompt 入力があると、この Action は、cron スケジュールを含む任意の GitHub イベントで、自動化モードで実行されます。プレーンテキストのプロンプトでは、claude_args の --allowedTools か、settings 入力の permissions.allow ルールで、プロンプトに必要なツールを許可するまで、Claude はシェルにも GitHub API にもアクセスできません。代わりにスキルを呼び出す場合、Claude は、その allowed-tools frontmatter が許可するツールを使えます。GitHub は、スケジュールされたワークフローをデフォルトブランチからのみ実行し、公開リポジトリでは、リポジトリのアクティビティがないまま 60 日が過ぎると、スケジュールを無効にします。

このワークフローは、毎日 09:00 UTC に、ワークフローの実行ログにレポートを生成します。その claude_args の行は、モデルを選び、2 つの GitHub MCP ツールを許可します。Claude はそれらのツールを使って GitHub API 経由でコミットと Issue を読むので、checkout のステップは省略できます。

name: Daily Report
on:
  schedule:
    - cron: "0 9 * * *"
jobs:
  report:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      issues: read
      id-token: write
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: "Generate a summary of yesterday's commits and open issues"
          claude_args: |
            --model claude-opus-5-5
            --allowedTools "mcp__github__list_commits,mcp__github__list_issues"

CLAUDE.md でプロジェクトの基準を定義する

リポジトリのルートに CLAUDE.md ファイルを作成して、コードスタイルのガイドライン、レビューの基準、プロジェクト固有のルール、好ましいパターンを定義します。Claude は、PR を作成するときや、リクエストに応答するときに、これらのガイドラインに従います。書き方は CLAUDE.md の設定で説明しています。

セキュリティ:認証情報と権限

警告:API キーや OAuth トークンを、リポジトリに直接コミットしないでください。必ず GitHub Secrets として保存し、anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} のように、ワークフローから参照します。

ツールが何をしてよいかを制御する Claude Code の仕組みについては、権限モードとフックを参照してください。

コストと使用量

実行のたびに、2 種類のリソースを消費します。

Claude により明確なコンテキストを与え、各実行でできる作業量に上限を設けることで、どちらのコストも下げられます。

トラブルシューティング

Claude が @claude コマンドに反応しない

Claude のコミットで CI が実行されない

認証エラー

その他の解決策は、この Action の FAQ を参照してください。

アンインストールと beta からのアップグレード

FAQ

@claude とメンションしても何も起きません。最初に何を確認しますか?

この順序で確認します。GitHub App がリポジトリにインストールされているか、ワークフローが有効か、API キーまたは OAuth トークンがリポジトリのシークレットに設定されているか、@claude がコメントの中で完全な単語(/claude や @claude-bot ではない)になっているか、コメントしたユーザーが書き込みアクセスを持っているか。ボットのアクターは、allowed_bots に載せない限り拒否されます。

API キーと OAuth トークンのどちらを使うべきですか?

どちらでも使えます。ANTHROPIC_API_KEY は Claude Console の API キーで、CLAUDE_CODE_OAUTH_TOKEN は、Pro、Max、Team、Enterprise プランの Claude サブスクリプションで認証します。OAuth トークンの場合、実行は API の課金ではなく、サブスクリプションを使います。組織内のリポジトリ間で共有するシークレットには、OAuth トークンが claude setup-token を実行した人のサブスクリプションに紐づくため、Anthropic のページは API キーを使うよう述べています。

この Action を、リレーやカスタムのベース URL に向けられますか?

Anthropic のページには、カスタムのベース URL やゲートウェイのオプションの記載がないため、このページではそれについて何も主張しません。ページが説明しているのは、2 つの経路です。デフォルトで Claude API を直接呼び出す(API キーまたは OAuth トークンを使う)か、use_bedrock、use_vertex、use_foundry で自分のクラウドアカウント経由にするかです。お使いのマシンで Claude Code 自体を設定する方法は、Claude Code のセットアップにあります。

参考資料