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失敗時に自動的に分析し、修復を試みる