GitHub Actions で Claude Code を動かす:claude-code-action の導入と使い方

Claude Code 公開: 更新:

公式の claude-code-action を使って、GitHub の Issue や PR で @claude にメンションするだけでコード修正やレビューを行う仕組みを作る手順を解説します。API キーの設定、ワークフローの書き方、権限の絞り方、自動レビューの構成を紹介します。

検証日 2026年10月17日 仕様変更が早い分野です。最新の公式ドキュメントも併せてご確認ください。 記事の作り方と検証手順
目次
  1. セットアップの流れ
  2. 構成 1:@claude メンションに応答する
  3. 構成 2:PR 作成時に自動レビューする
  4. 権限とコストを絞る
  5. CLAUDE.md との関係
  6. まとめ

Issue に「@claude この不具合を直して」とコメントすると、Claude Code が修正を実装して PR を作る。PR が開かれると自動でレビューコメントが付く。こうした仕組みは、公式の claude-code-action を使うと 1 つのワークフローファイルで実現できます。

この記事では、セットアップから、メンション応答と自動レビューの 2 つの構成、権限とコストを絞る方法までを扱います。

KEY POINT

この記事で分かること

  • /install-github-app によるセットアップと API キーの登録
  • @claude メンションに応答するワークフロー
  • PR 作成時に自動レビューするワークフローと、権限・コストの制御

セットアップの流れ

  1. ローカルの Claude Code で /install-github-app を実行します。ブラウザが開き、GitHub App のインストールとリポジトリの選択、ワークフローファイルの追加が案内されます。
  2. 認証用の Secret を登録します。API キーなら ANTHROPIC_API_KEY(Claude Console で発行)、Claude のサブスクリプションを使うなら CLAUDE_CODE_OAUTH_TOKEN(claude setup-token で生成)です。ワークフローでは前者を anthropic_api_key、後者を claude_code_oauth_token に渡します。
  3. 追加されたワークフローファイル(.github/workflows/claude.yml など)を確認し、コミットします。

手動で構成する場合は、GitHub App のインストールと Secrets の登録を自分で行い、次のワークフローを追加します。

用語解説

GitHub App と GITHUB_TOKEN: claude-code-action は、Claude のコメントや PR 作成に GitHub App の認証を使います。App を入れずに GITHUB_TOKEN だけで動かすこともできますが、その場合 Claude のコミットが別のワークフローをトリガーしないなどの制約があります。

構成 1:@claude メンションに応答する

name: Claude Code
on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
  issues:
    types: [opened, assigned]

jobs:
  claude:
    if: |
      contains(github.event.comment.body, '@claude') ||
      contains(github.event.issue.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 }}

actions: read は Claude が PR の CI 結果を読むために必要です。id-token: write は Action 既定の GitHub App 認証に必要です。

Issue や PR のコメントに @claude を含めると、その文脈(Issue 本文、PR 差分、コメントのスレッド)を読んで応答します。修正を伴う場合はブランチを切ってコミットし、PR を作成します。

指示の例:

  • Issue で「@claude 再現手順を確認して修正案を PR にして」
  • PR のレビューコメントで「@claude この関数のエラーハンドリングを追加して」
  • PR で「@claude この変更で影響を受けるテストを追加して」

構成 2:PR 作成時に自動レビューする

prompt を渡すと、メンションを待たずに走る automation モード になります。PR が開かれたときの自動レビューはこの形です。

公式ドキュメントが示す現在の構成は、自由記述のプロンプトではなく code-review プラグインのスキルを呼ぶ形です。

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-code.git"
          plugins: "code-review@claude-code-plugins"
          prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
          claude_args: '--allowedTools "mcp__github_inline_comment__create_inline_comment"'

--comment を付けないとコメントは投稿されない

automation モードの結果は、既定ではワークフローの実行ログに出ます。公式ドキュメントは「By default, results appear in the workflow run log rather than a comment」と書いています。PR にコメントさせたいなら --comment が必要です。claude_args の --allowedTools も必須で、スキル側の allowed-tools に同じツールが書かれていても、Action はここに名前がある場合にだけインラインコメント用の MCP サーバーを起動します。

自由記述の prompt を使う場合は、Claude に必要なツールを自分で与える必要があります。公式ドキュメントは「For a plain-text prompt, Claude has no shell or GitHub API access until you grant the tools the prompt needs」と書いています。claude_args の --allowedTools か、settings 入力の permissions.allow で渡します。

claude_args には CLI と同じオプションを渡せます。レビューは読み取り中心なので、--max-turns を小さくし、--model claude-sonnet-5-5 のように軽いモデルを指定すると費用を抑えられます。

権限とコストを絞る

目的方法
外部ユーザーのコメントで実行させないAction 側で既にチェックされます(後述)。さらに絞るなら if: に github.event.comment.author_association の条件を足す
書き込みを最小限にするレビュー用ワークフローは contents: read にする
使えるツールを限定するclaude_args に --allowedTools を渡す
実行回数の上限--max-turns を渡す
リポジトリのルールを守らせるリポジトリの CLAUDE.md は Action でも読み込まれるので、ここに書く

用語解説

実行できる人は Action 側でもチェックされる: 公式ドキュメントによると、Action は実行前に 2 つのチェックを行い、どちらかで弾かれると実行は失敗します。1 つは書き込み権限で、Issue と PR のイベントでは、起動したユーザーがリポジトリへの書き込み権限を持っている必要があります(例外を作るには allowed_non_write_users と自前の github_token を使います)。もう 1 つは人間かどうかで、ボットは allowed_bots に列挙しない限り拒否されます。これは schedule 実行にも適用されます。

ワークフロー側でさらに絞るなら、次のように書けます。

    if: |
      contains(github.event.comment.body, '@claude') &&
      contains(fromJSON('["OWNER","MEMBER","COLLABORATOR"]'), github.event.comment.author_association)

Secrets とフォークからの PR

フォークからの PR では、既定で Secrets が渡されません。そのため外部からの PR には自動レビューが走りません。意図的に有効にする場合は、pull_request_target の危険性(フォークのコードが Secrets 付きで実行される)を理解したうえで構成してください。

CLAUDE.md との関係

Action 内の Claude も、リポジトリの CLAUDE.md と .claude/settings.json を読み込みます。ローカルで使っている規約がそのまま CI でも効くので、レビュー基準や禁止事項はワークフローの prompt ではなく CLAUDE.md に書いておくと、二重管理になりません(CLAUDE.md の書き方)。

公式 Action を使わず、claude -p を直接呼び出す軽量な構成は 非対話モードの使い方 で解説しています。Codex を同じ用途で使う場合の比較は Codex クラウド版で GitHub のタスクを任せる を参照してください。

まとめ

  • /install-github-app で GitHub App とワークフローを導入し、ANTHROPIC_API_KEY を Secrets に登録する
  • @claude メンション応答と、PR 自動レビューの 2 構成が基本
  • if: でコメント投稿者を制限し、--max-turns と Sonnet 系モデルで費用を抑える
  • レビュー基準や禁止事項はワークフローではなく CLAUDE.md に書く

よくある質問

claude-code-action は無料で使えますか?
Action 自体は無料ですが、Anthropic API の利用料(従量課金)と GitHub Actions の実行時間が発生します。パブリックリポジトリなら Actions の実行時間は無料です。
@claude と書けば誰でも実行できてしまいますか?
既定ではリポジトリへの書き込み権限を持つユーザーのコメントに反応します。外部からのコメントで実行されないよう、ワークフローの条件で制限してください。
Claude が作った変更はどこに反映されますか?
新しいブランチにコミットされ、PR が作成されます(または既存の PR ブランチにコミットされます)。直接 main には書き込みません。

参考にした一次情報

この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合は お問い合わせからお知らせください。