Claude Code GitHub Actions

Claude Code GitHub Actions は、AI 駆動の自動化をあなたの GitHub ワークフローにもたらします。

PR または Issue で簡単にメンションするだけで、@claudeClaude はコードを分析し、Pull Request を作成し、機能を実装し、バグを修正します。その際、プロジェクトの標準規約に従います。


なぜ Claude Code GitHub Actions を使うのか

  • PR を即座に作成:要件を記述すると、Claude が完全な Pull Request を作成します
  • 自動化されたコード実装:Issue を実用的なコードに変換、わずか 1 コマンド
  • プロジェクト標準に準拠:あなたのCLAUDE.mdガイドラインや既存のコードパターンを尊重します
  • シンプルで高速:数分で使い始められます
  • 安全で信頼性が高い:コードは GitHub のランナー上で実行されます

クイックスタート

方法1:自動インストール(推奨)

Claude Code ターミナルで以下を実行:

/install-github-app

これにより、次の手順が案内されます:

  • GitHub App のセットアップ
  • 必要な Secrets の追加

要件:リポジトリの管理者である必要があります。GitHub App には Contents、Issues、Pull requests の読み取り/書き込み権限が必要です。Claude API を直接使用するユーザーのみに適用されます(AWS Bedrock や Google Vertex AI はサポートされません)。

方法2:手動インストール

ステップ1:Claude GitHub App をインストール

アクセス:https://github.com/apps/claude

必要な権限:

  • Contents:読み取り/書き込み権限
  • Issues:読み取り/書き込み権限
  • Pull requests:読み取り/書き込み権限

ステップ2:API キーを追加

リポジトリの Secrets に追加ANTHROPIC_API_KEY

ステップ3:ワークフローファイルを作成

サンプルファイルからコピー:examples/claude.yml 到 .github/workflows/


ワークフロー設定

基本ワークフロー(@claude メンションに応答)

name: Claude Code
on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
jobs:
  claude:
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

自動コードレビュー

name: Code Review
on:
  pull_request:
    types: [opened, synchronize]
jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: "Review this pull request for code quality, correctness, and security."
          claude_args: "--max-turns 5"

スケジュールタスク

name: Daily Report
on:
  schedule:
    - cron: "0 9 * * *"
jobs:
  report:
    runs-on: ubuntu-latest
    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 opus"

@claude よく使うコマンド

PR または Issue のコメントで使用:

@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 review this PR for security issues
@claude add tests for this new function

Action パラメータ詳細

パラメータ 説明 必須かどうか
prompt Claude への指示(プレーンテキストまたはスキル名) いいえ*
claude_args Claude Code に渡す CLI パラメータ 否
anthropic_api_key Claude API キー はい**
github_token GitHub Token(API アクセス用) 否
trigger_phrase カスタムトリガーワード(デフォルト:@claude) 否
use_bedrock Claude API の代わりに AWS Bedrock を使用 否
use_vertex Claude API の代わりに Google Vertex AI を使用 否

* issue/PR コメントで使用する場合、prompt を省略すると、Claude はトリガーワードに応答します

** Claude API を直接使用する場合は必須、Bedrock/Vertex の場合は不要

よく使う CLI パラメータ

パラメータ 説明
--max-turns 最大会話ターン数(デフォルト 10)
--model 使用するモデル(例:claude-sonnet-4-6)
--mcp-config MCP 設定ファイルのパス
--allowedTools 使用を許可するツール(カンマ区切り)
--append-system-prompt システムプロンプトを追加
--debug デバッグ出力を有効にする

claude_args の例

claude_args: |
  --max-turns 5
  --model claude-sonnet-4-6
  --mcp-config /path/to/config.json
  --append-system-prompt "Follow our coding standards"

AWS Bedrock 統合

前提条件

  • AWS Bedrock アクセスが有効化されており、Claude モデルの権限が含まれている
  • GitHub が AWS で OIDC アイデンティティプロバイダーとして設定されている
  • IAM ロールが Bedrock の権限を持っている

必要な Secrets

Secret 名 説明
AWS_ROLE_TO_ASSUME Bedrock アクセス用の IAM ロール ARN
APP_ID GitHub App ID
APP_PRIVATE_KEY GitHub App の秘密鍵

Bedrock ワークフローの例

name: Claude PR Action
permissions:
  contents: write
  pull-requests: write
  issues: write
  id-token: write

on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]

jobs:
  claude-pr:
    if: |
      (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
      (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude'))
    runs-on: ubuntu-latest
    env:
      AWS_REGION: us-west-2
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Generate GitHub App token
        id: app-token
        uses: actions/create-github-app-token@v2
        with:
          app-id: ${{ secrets.APP_ID }}
          private-key: ${{ secrets.APP_PRIVATE_KEY }}

      - 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:
          github_token: ${{ steps.app-token.outputs.token }}
          use_bedrock: "true"
          claude_args: '--model us.anthropic.claude-sonnet-4-6 --max-turns 10'

Google Vertex AI 統合

前提条件

  • GCP プロジェクトで Vertex AI API が有効になっている
  • GitHub 向けに Workload Identity Federation を設定する
  • Vertex AI の権限を持つサービスアカウント

必要な Secrets

Secret 名 説明
GCP_WORKLOAD_IDENTITY_PROVIDER Workload Identity Provider のリソース名
GCP_SERVICE_ACCOUNT Vertex AI アクセス権を持つサービスアカウントのメールアドレス
APP_ID GitHub App ID
APP_PRIVATE_KEY GitHub App の秘密鍵

Vertex AI ワークフローの例

name: Claude PR Action
permissions:
  contents: write
  pull-requests: write
  issues: write
  id-token: write

on:
  issue_comment:
    types: [created]

jobs:
  claude-pr:
    if: github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Generate GitHub App token
        id: app-token
        uses: actions/create-github-app-token@v2
        with:
          app-id: ${{ secrets.APP_ID }}
          private-key: ${{ secrets.APP_PRIVATE_KEY }}

      - 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:
          github_token: ${{ steps.app-token.outputs.token }}
          trigger_phrase: "@claude"
          use_vertex: "true"
          claude_args: '--model claude-sonnet-4-5@20250929 --max-turns 10'
        env:
          ANTHROPIC_VERTEX_PROJECT_ID: ${{ steps.auth.outputs.project_id }}
          CLOUD_ML_REGION: us-east5

Beta バージョンからのアップグレード(v1.0 の重大な変更)

Beta の入力 新しい v1.0 の入力
mode (削除済み - 自動検出)
direct_prompt prompt
override_prompt GitHub 変数を使用したprompt
custom_instructions claude_args: --append-system-prompt
max_turns claude_args: --max-turns
model claude_args: --model
allowed_tools claude_args: --allowedTools
disallowed_tools claude_args: --disallowedTools

アップグレード前後の比較

Beta バージョン:

- uses: anthropics/claude-code-action@beta
  with:
    mode: "tag"
    direct_prompt: "Review this PR for security issues"
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    custom_instructions: "Follow our coding standards"
    max_turns: "10"
    model: "claude-sonnet-4-6"

GA バージョン (v1.0):

- uses: anthropics/claude-code-action@v1
  with:
    prompt: "Review this PR for security issues"
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    claude_args: |
      --append-system-prompt "Follow our coding standards"
      --max-turns 10
      --model claude-sonnet-4-6

トラブルシューティング

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

  • GitHub App が正しくインストールされているか確認
  • ワークフローが有効かどうか確認
  • API キーがリポジトリの Secrets に設定されていることを確認
  • コメントに次のものが含まれていることを確認:@claude(ではなく/claude)

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

  • GitHub App またはカスタムアプリを使用する(Actions ユーザーは使用しない)
  • ワークフロートリガーに必要なイベントが含まれているか確認
  • アプリの権限に CI トリガーが含まれていることを確認

認証エラー

  • API キーが有効で十分な権限があることを確認
  • Bedrock/Vertex の場合:資格情報の設定を確認
  • Secrets 名がワークフロー内で正しいことを確認

セキュリティに関する注意事項

  • API キーを直接コミットしないでくださいリポジトリへ
  • GitHub Secrets を使用して API キーを保存:${{ secrets.ANTHROPIC_API_KEY }}
  • action の権限を制限し、必要な権限のみを付与する
  • マージ前に Claude の提案をレビューする
  • AWS/GCPの場合:静的認証情報の代わりにOIDC IDプロバイダーを使用する
  • 各リポジトリに専用のサービスアカウントを作成する

コストに関する考慮事項

費用の内訳

  • GitHub Actions費用:GitHubホストランナー上で実行し、GitHub Actionsの分数を消費する
  • API費用:Claudeとの各インタラクションで、プロンプト/レスポンスの長さに応じてAPIトークンを消費する

コスト最適化の提案

  • 具体的な@claudeコマンドを使用し、不要なAPI呼び出しを減らす
  • 適切な制限を設定する--max-turns対話ラウンド数を制限する
  • ワークフローのタイムアウトを設定し、タスクの暴走を防ぐ
  • GitHubの並行性制御を使用して並行実行を制限する

ベストプラクティス

1. CLAUDE.md を作成

リポジトリのルートに作成するCLAUDE.mdファイル:コードスタイルガイドとプロジェクト固有のルールを定義する

# 项目开发规范

## 代码风格
- 使用 TypeScript 4.x
- 遵循 ESLint 配置
- 函数必须有 JSDoc 注释

## PR 要求
- 必须通过所有 CI 检查
- 至少一个代码审查
- 更新相关文档

## 禁止事项
- 不要修改 `migrations/` 目录
- 不要提交 `.env` 文件

2. 具体的な @claude コマンドを使用

@claude review this PR for SQL injection vulnerabilities
@claude add unit tests for the new validateEmail function

3. 適切な制限を設定

jobs:
  claude:
    runs-on: ubuntu-latest
    timeout-minutes: 15  # 设置超时
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          claude_args: "--max-turns 5 --allowedTools Read,Grep,Glob,Bash,Write,Edit"

4. CI/CD 自動化シナリオ

  • PR自動レビュー:PRがオープンまたは更新されると自動的にレビューがトリガーされる
  • Issueの自動分類:新しいIssueが作成されると自動的にラベルを追加して割り当てる
  • 定期レポート:毎日コード統計やセキュリティレポートを生成する
  • 自動修復:CI失敗時に自動的に分析し、修復を試みる
その他の拡張