上級

GitHub Actions で Claude Code を CI/CD に組み込む

anthropics/claude-code-action を使って、PRレビュー、自動修正、テスト生成をCIパイプラインに組み込む方法

解決の目安約5分
最終確認

確認済みバージョン

Claude Code 2.1.220claude-code-action v1(入力仕様は要確認)
Claude Code

必須: Claude Code

ci-cdgithub-actionsautomation

症状・対象

PR レビューを自動化したいが、Secret、GitHub 権限、起動条件、成功判定が分散していて設定できないチームが対象です。ここでは同一リポジトリからの PR に限定した読み取り中心のレビューを作ります。

最短解決

  1. Claude Code で /install-github-app を実行し、GitHub App と workflow の現行セットアップを生成する。
  2. リポジトリの Settings → Secrets and variables → Actions に ANTHROPIC_API_KEY を登録する。値を YAML やログへ書かない。
  3. 生成された action の入力名を確認し、下の最小 workflow と差分があれば生成結果を優先する。
  4. .github/workflows/claude-review.yml を default branch に追加し、テスト PR を開く。

コピペ例

claude-code-action@v1 の入力仕様は同期資料だけでは確定できないため、/install-github-app の生成結果との照合が前提です。anthropic_api_key と github_token が生成結果に存在する場合の最小構成は次です。

name: Claude PR review

on:
  pull_request:
    types: [opened, synchronize, reopened]

permissions:
  contents: read
  pull-requests: write
  issues: write

concurrency:
  group: claude-review-${{ github.event.pull_request.number }}
  cancel-in-progress: true

jobs:
  review:
    if: github.event.pull_request.head.repo.full_name == github.repository
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - name: Review pull request
        uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          github_token: ${{ secrets.GITHUB_TOKEN }}
          prompt: |
            Review this pull request.
            Focus on correctness, security, and missing tests.
            Do not modify files. Return actionable findings with file paths.
          claude_args: "--max-turns 5"

初回は draft PR で、空のコミットを push して再実行できます。

git commit --allow-empty -m "test: run Claude PR review"
git push

期待結果

  • Actions 画面に Claude PR review / review の Check が作られる。
  • job が成功し、PR にレビュー結果またはコメントが追加される。
  • workflow ログに API キーの値が表示されない。
  • fork からの PR では job が skip され、Secret が渡らない。

検証

  1. Actions の job summary で action の終了コードが 0 であることを確認する。
  2. PR の Checks と Conversation を確認し、ファイルパス付きの結果があることを確認する。
  3. リポジトリ設定の workflow permissions が読み取り専用でも、workflow 内の明示権限で必要範囲だけ許可されていることを確認する。
  4. Secret 名を一時的に存在しない名前へ変えた検証 branch では job が失敗することを確認し、元へ戻す。

落とし穴

  • pull_request_target で未信頼の PR コードを checkout すると Secret 流出につながります。この例では使いません。
  • fork PR には通常 Secret が渡りません。if を外して無理に動かさず、保守者が内容を確認して別 branch で実行します。
  • contents: write はレビューだけなら不要です。自動修正を追加するときは別 workflow に分け、対象 branch と許可ツールを絞ります。
  • @v1 はメジャー参照です。組織ポリシーで SHA pin が必要なら、検証済み commit SHA に置き換えます。
  • コストと暴走を抑えるため timeout-minutes、concurrency、--max-turns を残します。

ロールバックは workflow を追加した commit の revert で行います。キーをログや commit に入れた可能性がある場合は、ファイル削除だけで済ませず API キーを失効・再発行してください。

次の一手

関連コンテンツ