Claude Code GitHub Actions完全ガイド|PRレビュー自動化・Issue実装・CI/CDパイプライン統合

Claude Code GitHub Actions完全ガイド|PRレビュー自動化・Issue実装・CI/CDパイプライン統合 AI開発

PRを開くたびにClaudeが自動でコードレビューし、IssueにコメントするとClaudeが実装し、スケジュールでデイリーレポートを生成する——これらをすべてGitHub Actionsのワークフロー設定だけで実現できます。

2026年3月9日、Anthropicはanthropics/claude-code-action@v1を正式リリースしました。ベータ版の複雑な設定が大幅に簡素化され、YAMLファイルを1つ置くだけでClaude CodeをCI/CDパイプラインに組み込めます。この記事では公式アクションの全機能を実用的なYAML例つきで解説します。

Claude Code全般の使い方はClaude Code完全ガイドを、MCPサーバーとの組み合わせはClaude Code MCP完全ガイドを参照してください。

スポンサーリンク

GitHub Actionsでできること

機能 概要 トリガー
@claudeメンション対応 PRやIssueのコメントで@claudeに話しかけると返答 コメント作成
PR自動レビュー PR作成・更新時に自動でコードレビューコメントを投稿 PR作成/更新
Issue→実装 Issueの内容を読んでブランチを作成・実装・PRを作成 Issueへの割り当て
スケジュール実行 定期的にレポート生成・コード品質チェック等を実行 cronスケジュール
ヘッドレス実行 -pフラグでClaude CLIを非インタラクティブに実行 任意のイベント

セットアップ方法

クイックセットアップ(推奨)

最も簡単なセットアップ方法は、Claude Codeのターミナルから/install-github-appを実行することです。GitHub Appのインストール・シークレットの設定・基本ワークフローの作成まで自動で行われます。

/install-github-appでセットアップ
# Claude Codeのセッションで実行
> /install-github-app

# 実行されること:
# 1. https://github.com/apps/claude を開いてリポジトリを選択
# 2. ANTHROPIC_API_KEY をリポジトリシークレットに追加するよう案内
# 3. .github/workflows/claude.yml の雛形を作成

手動セットアップ

  1. https://github.com/apps/claude でGitHub Appをリポジトリにインストール
  2. GitHubリポジトリ → Settings → Secrets and variables → Actions → ANTHROPIC_API_KEY を追加
  3. .github/workflows/ に以下のYAMLファイルを作成

@claudeメンション対応:PRやIssueで直接質問・依頼する

最も手軽な使い方です。PRレビューコメントやIssueのコメントで@claudeとメンションするだけで、Claude Codeが返答します。コードの説明を求める・実装方針を相談する・バグ修正を依頼するなど、チャット感覚で使えます。

.github/workflows/claude.yml(@claudeメンション対応)
name: Claude Code
on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
  issues:
    types: [opened, assigned]
  pull_request_review:
    types: [submitted]

jobs:
  claude:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      issues: write
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 1

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
@claudeに話しかける例
# PRのコメントやIssueで @claude にメンション

# コードの説明を求める
@claude このコンポーネントが再レンダリングされすぎている原因を教えてください

# 実装を依頼する
@claude このIssueの内容を実装してください。実装後にPRを作成してください

# バグ修正を依頼する
@claude src/api/auth.ts の jwt検証でエラーが出ています。修正してください

# レビューを依頼する
@claude このPRをセキュリティ観点でレビューしてください

PR自動レビュー:PR作成時に自動でレビューコメントを投稿

PRが作成・更新されるたびに自動でレビューを行うワークフローです。2026年3月9日にGAリリースされたマルチエージェントPRレビュー機能により、セキュリティ・パフォーマンス・コード品質を並列でチェックできます。

.github/workflows/pr-review.yml(PR自動レビュー)
name: PR Auto Review
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: |
            このPull Requestをレビューしてください。

            以下の観点で確認し、問題があればPRにレビューコメントを投稿してください:
            1. セキュリティ(SQLインジェクション・XSS・認証バイパス・シークレットのハードコード)
            2. パフォーマンス(N+1クエリ・不要なループ・メモリリーク)
            3. コード品質(命名・単一責任・重複コード)
            4. テストカバレッジ(新機能のテストが追加されているか)

            問題がない場合は「LGTM ?」とコメントしてください。
          claude_args: "--max-turns 5 --model claude-sonnet-4-6"

レビュー対象ファイルを絞る

.github/workflows/pr-review-focused.yml(特定ファイルのみ)
name: Security Review
on:
  pull_request:
    paths:
      - "src/api/**"
      - "src/auth/**"
      - "src/middleware/**"

jobs:
  security-review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: |
            API・認証・ミドルウェアに関連するファイルが変更されています。
            セキュリティ観点のみで集中的にレビューし、
            発見した問題を重大度(CRITICAL/MAJOR/MINOR)つきでコメントしてください。
          claude_args: "--max-turns 3 --model claude-opus-4-6"

Issue→実装の自動化

Issueに特定のラベルをつけるか、Claudeを担当者にアサインすると自動でブランチを作成・実装・PRを作成するワークフローです。繰り返し性の高いタスク(バグ修正・小機能追加・ドキュメント更新等)に特に効果的です。

.github/workflows/issue-to-pr.yml(Issue→実装)
name: Issue to PR
on:
  issues:
    types: [assigned]

jobs:
  implement:
    runs-on: ubuntu-latest
    # Claudeがアサインされたときのみ実行
    if: github.event.assignee.login == "claude[bot]"
    permissions:
      contents: write
      issues: write
      pull-requests: write
    steps:
      - uses: actions/checkout@v4

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: |
            GitHub Issue #${{ github.event.issue.number }} の内容を実装してください。

            手順:
            1. Issue の内容を詳しく確認する
            2. 関連するコードを調査する
            3. ブランチ名: feature/issue-${{ github.event.issue.number }} を作成
            4. 実装を行う
            5. テストを追加または更新する
            6. Pull Requestを作成し、Issue を close するリンクを含める

            不明な点があればIssueにコメントして確認してください。
          claude_args: "--max-turns 20 --model claude-sonnet-4-6"
Issue実装の運用ポイント
担当者を「claude[bot]」にアサインするだけで実装が始まります。実装中にClaudeがIssueへ進捗コメントを投稿するため、どこまで進んでいるかリアルタイムで確認できます。複雑すぎるタスクには--max-turnsを増やすか、Issueをより細かく分割することを推奨します。

スケジュール実行:定期タスクの自動化

デイリー開発レポートの自動生成

.github/workflows/daily-report.yml
name: Daily Development Report
on:
  schedule:
    - cron: "0 9 * * 1-5"  # 平日9時(UTC)

jobs:
  report:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      issues: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 50

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: |
            昨日のgit logを確認して、以下の内容を含むデイリーレポートを
            GitHub Issueとして作成してください(タイトル: Daily Report YYYY-MM-DD):

            - 昨日マージされたPR一覧と変更サマリ
            - 新しくオープンされたIssue
            - 解決されたIssue
            - 注目すべき変更点(破壊的変更・パフォーマンス影響等)
            - 今日のTODO推奨(未解決の重要Issue・古いPR等)
          claude_args: "--max-turns 5 --model claude-sonnet-4-6"

週次コード品質チェック

.github/workflows/weekly-quality.yml
name: Weekly Code Quality Check
on:
  schedule:
    - cron: "0 8 * * 1"  # 毎週月曜9時(UTC+1)

jobs:
  quality:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      issues: write
    steps:
      - uses: actions/checkout@v4

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: |
            プロジェクト全体のコード品質を分析してIssueを作成してください。

            確認項目:
            1. package.jsonの依存関係に古いバージョンや脆弱性がないか
            2. TypeScriptのstrictモード違反が増えていないか
            3. テストカバレッジが低いファイルがないか
            4. TODO/FIXMEコメントが増えていないか
            5. 大きすぎる関数・ファイルがないか(300行超)

            問題があればIssueに報告してください(タイトル: Weekly Quality Report)
          claude_args: "--max-turns 10 --model claude-sonnet-4-6"

ヘッドレス実行:-pフラグでCLIをパイプライン化する

GitHub Actionsではなく、シェルスクリプトやカスタムパイプラインでClaude CLIを非インタラクティブに実行したい場合は-p(または--print)フラグを使います。

-pフラグの基本
# 基本的なヘッドレス実行
claude -p "このPRのコードをレビューして" --allowedTools "Read,Glob,Grep"

# JSON形式で出力(プログラムから解析しやすい)
claude -p "バグを探して" --output-format json

# ストリーミング出力(リアルタイムで結果を受け取る)
claude -p "大きなリファクタを実行して" --output-format stream-json --verbose

# --bareフラグで起動オーバーヘッドを削減(CI/CD向け)
claude --bare -p "コードを分析して" --allowedTools "Read,Glob"
オプション 説明 使い分け
-p "プロンプト" 非インタラクティブ実行 CI/CDパイプライン全般
--output-format text プレーンテキスト出力(デフォルト) 人が読む用途
--output-format json JSON形式で出力 プログラムからの解析
--output-format stream-json リアルタイムJSONストリーム 長時間タスクの進捗表示
--allowedTools "Read,Edit" 使用ツールを制限 CI環境でのセキュリティ確保
--max-turns N 最大ターン数を制限 コスト・実行時間の上限設定
--bare hooks・スキャン等をスキップ CI/CDでの高速起動
--model claude-opus-4-6 モデルを指定 品質重視の処理はOpusで

構造化出力の活用

JSONスキーマで構造化出力を取得
# JSONスキーマで構造化された出力を取得
claude -p "auth.tsのセキュリティ問題を探して" \
  --output-format json \
  --json-schema '{"type":"object","properties":{"issues":{"type":"array","items":{"type":"object","properties":{"severity":{"type":"string"},"line":{"type":"integer"},"description":{"type":"string"}}}}}}'

# 出力をjqで解析
claude -p "関数名を抽出して" --output-format json | jq .result

CLAUDE.mdでCI動作をカスタマイズする

リポジトリルートにCLAUDE.mdを置くと、GitHub Actions上で動くClaudeにもプロジェクト固有の指示が適用されます。コーディング規約・レビュー基準・禁止事項などを記述しておくことで、チームのスタンダードに沿った自動化が実現します。

CLAUDE.md(CI向け設定例)
# Project Guidelines for Claude Code

## コーディング規約
- TypeScript strict モードを遵守すること
- 関数は100行以内に収めること
- エラーハンドリングは必ずResult型またはtry/catchで行うこと

## PRレビュー基準
- セキュリティ問題(CRITICAL/MAJOR)は必ず指摘すること
- パフォーマンス問題はコード例とともに提案すること
- スタイルの指摘は最小限にすること(ESLintが自動修正するため)

## 禁止事項
- console.log を本番コードに残さないこと
- any型を使わないこと(型定義を必ず追加する)
- mainブランチへの直接pushは行わないこと

## テスト要件
- 新機能には必ずユニットテストを追加すること
- テストカバレッジ80%以上を維持すること

AWS Bedrock・Google Vertex AI連携

Anthropic APIの代わりにAWS BedrockまたはGoogle Vertex AIを使うことで、静的なAPIキーなしにOIDC認証で安全に運用できます。企業のセキュリティポリシー上、Anthropic APIキーを使えない場合の代替手段です。

AWS Bedrock連携

.github/workflows/claude-bedrock.yml
name: Claude Code (AWS Bedrock)
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
      id-token: write  # OIDC認証に必要
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Configure AWS Credentials (OIDC)
        uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
          aws-region: us-west-2

      - uses: anthropics/claude-code-action@v1
        with:
          use_bedrock: "true"
          claude_args: "--model us.anthropic.claude-sonnet-4-6 --max-turns 5"
          prompt: "このPRをレビューしてください"

Google Vertex AI連携

.github/workflows/claude-vertex.yml
name: Claude Code (Vertex AI)
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
      id-token: write
    steps:
      - uses: actions/checkout@v4

      - name: Authenticate to Google Cloud
        id: auth
        uses: google-github-actions/auth@v2
        with:
          workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}
          service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}

      - uses: anthropics/claude-code-action@v1
        with:
          use_vertex: "true"
          claude_args: "--model claude-sonnet-4@20250514 --max-turns 5"
          prompt: "このPRをレビューしてください"
        env:
          ANTHROPIC_VERTEX_PROJECT_ID: ${{ steps.auth.outputs.project_id }}
          CLOUD_ML_REGION: us-east5

セキュリティ設定

パーミッション設定の最小化

GitHub Actionsのパーミッションは必要最小限に設定してください。用途によって必要なパーミッションが変わります。

用途 必要なパーミッション
PRレビューのみ contents: read, pull-requests: write
PRコメント + ファイル修正 contents: write, pull-requests: write
Issue作成・コメント issues: write
Bedrock/Vertex AI OIDC 上記に加えid-token: write

–allowedToolsで実行ツールを制限

ツール制限の設定例
- uses: anthropics/claude-code-action@v1
  with:
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    # 読み取り専用操作のみ許可(コードを変更させない)
    claude_args: "--allowedTools Read,Glob,Grep,WebSearch"

    # または特定のbashコマンドのみ許可
    # claude_args: "--allowedTools Bash(git diff *),Bash(git log *),Read"
APIキーをワークフローファイルに直接書かない
ANTHROPIC_API_KEYはGitHubリポジトリのSecretsに登録し、${{ secrets.ANTHROPIC_API_KEY }}で参照してください。ワークフローファイルに直接書くとリポジトリを見られる人全員にキーが露出します。SecretsはSettings → Secrets and variables → Actionsで設定できます。

まとめ

Claude Code GitHub Actionsを使うと、コードレビュー・Issue実装・定期レポートなど繰り返し発生する開発作業を自動化できます。まずは@claudeメンション対応のワークフロー1つだけ追加するところから始めましょう。セットアップは/install-github-appコマンドで5分以内に完了します。

慣れてきたらPR自動レビューを追加し、繰り返しタスクが多い場合はIssue→実装の自動化も試してみてください。チームの開発速度が大きく変わります。

ローカルでのClaude Code活用(Hooks・Subagents・MCP)はClaude Code完全ガイドで体系的に解説しています。

よくある質問

QGitHub Actions上でClaude Codeを動かすとAPIコストはどれくらいかかりますか?

APRレビュー1回あたりおよそ$0.01〜$0.10程度(コード量とモデルによる)です。Claude Sonnet 4.6は速度とコストのバランスが良く、通常のPRレビューに適しています。複雑な処理には--max-turnsで上限を設けてコストを制御できます。--model claude-haiku-4-5-20251001を使うとさらにコストを抑えられます。

Qプライベートリポジトリでも使えますか?

Aはい。GitHub Appをプライベートリポジトリにインストールすることで利用できます。コードはAnthropicのAPIに送信されますので、社内規定でAnthropicのAPI利用が許可されていることを確認してください。規定上問題がある場合はAWS Bedrock/Vertex AI経由での利用を検討してください。

Q@claudeメンションへの返答がありません。

AGitHub Appが正しくインストールされているか、ANTHROPIC_API_KEYがSecretsに設定されているかを確認してください。Actionsタブでワークフローの実行ログを確認すると原因が分かります。よくある原因: Appがリポジトリにインストールされていない・シークレット名のタイポ・YAMLのインデントエラーです。

QIssue→実装で「claude[bot]」をアサインするにはどうすればいいですか?

AGitHub Appをインストールすると「claude」というボットアカウントが追加されます。Issueの担当者欄でclaudeを選択してアサインします。権限がない場合はリポジトリのCollaboratorにclaudeを追加する必要があります。

Qワークフローが長時間かかってタイムアウトします。

AデフォルトのGitHub Actionsタイムアウトは6時間ですが、ジョブ設定で変更できます。また--max-turns Nで処理ターン数を制限することで実行時間を抑えられます。複雑なタスクはSubagentsで分割する設計も検討してください。

Qfork元のPRにも自動レビューを走らせることはできますか?

AforkからのPRはセキュリティ上の理由でSecrets(ANTHROPIC_API_KEY等)が使えません。pull_request_targetイベントを使うか、リポジトリメンテナーが手動で@claude reviewとメンションすることで対応できます。forkからのPRへの自動実行は慎重に設計することを推奨します。