Claude Code GitHub Actions自動化完全ガイド:Hooks連携とCI/CD設定方法¶
この記事のポイント¶
AIコードレビュー
PRの変更内容を自動分析し、改善提案やバグ検出を実施
自動コード実装
自然言語の指示から機能追加やバグ修正のPRを自動生成
インタラクティブサポート
Issue・PRコメントでClaudeと対話し、リアルタイムで開発支援
CI/CD統合
既存のGitHub Actionsワークフローに簡単統合可能
📖 概要¶
Claude Code GitHub Actionsは、Anthropic社が提供するAI駆動の開発自動化ツールです。GitHubのPull RequestやIssueで@claudeとメンションするだけで、Claudeがコードのレビュー、機能実装、バグ修正を自動実行します。
2025年9月現在ベータ版として提供されており、従来の手動コードレビューやタスク実装を大幅に効率化できる革新的なツールとして注目を集めています。最新のClaude Opus 4.1およびSonnet 4モデルに対応し、より高度な開発支援が可能になりました。
重要な制限事項: - 正式なPRレビューの提出不可 - PR承認機能なし - 1つのインタラクションにつき1コメントに限定
主要機能¶
1. PR・Issue統合¶
- コメント連携:
@claudeメンションで即座にAIアシスタントを呼び出し - 自動PR作成: 要件記述から完全なPull Requestを自動生成
- リアルタイム対話: コメント欄でClaudeと直接やり取り可能
- アーティファクト証明: 2025年より導入されたビルド証明書機能で信頼性向上
2. コードレビュー機能¶
- 変更内容分析: PRの全ファイルを横断的に分析
- 改善提案: コード品質向上のための具体的なアドバイス
- バグ検出: 潜在的な問題やセキュリティリスクを特定
3. 自動実装機能¶
- 機能追加: 新機能の要件から実装コードまで自動生成
- バグ修正: エラー内容から適切な修正コードを提案
- テスト生成: 実装に合わせたテストコードも自動作成
基本的な動作フロー¶
graph LR
A[Issue/PR Comment] --> B[@claude trigger]
B --> C[GitHub Action]
C --> D[Claude Code]
D --> E[Code Analysis]
E --> F[Implementation]
F --> G[PR Creation]
G --> H[Review & Merge]🔧 セットアップ手順¶
前提条件¶
- リポジトリの管理者権限
- AnthropicのAPIキーまたはOAuthトークン
- GitHub Actions有効化済みリポジトリ
1. 簡単セットアップ(推奨)¶
ターミナルでClaude Codeを使用している場合:
# Claude Codeターミナルで実行
/install-github-app
このコマンドにより、GitHub Appのインストールと必要なシークレット設定が自動化されます。
注意: このコマンドはAnthropicの直接APIユーザーのみ利用可能です。
2. 手動セットアップ¶
ステップ1: リポジトリシークレット設定¶
GitHubリポジトリの Settings > Secrets and variables > Actions で以下を追加:
# OAuth認証使用の場合(推奨)
CLAUDE_CODE_OAUTH_TOKEN: your_oauth_token_here
# または Anthropic API使用の場合
ANTHROPIC_API_KEY: your_api_key_here
CLAUDECODEOAUTH_TOKENの取得方法: 1. Claude Codeターミナルで /install-github-app を実行 2. または Claude Code設定でOAuthトークンを生成
ステップ2: ワークフローファイル作成¶
.github/workflows/claude.ymlを作成:
name: Claude Code Action
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, edited]
pull_request:
types: [opened, edited]
pull_request_review:
types: [submitted]
workflow_dispatch:
permissions:
contents: write
pull-requests: write
issues: write
id-token: write # OIDC認証に必須
jobs:
claude:
if: |
github.actor == 'your-username' &&
(
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'issues' && contains(github.event.issue.body, '@claude')) ||
(github.event_name == 'pull_request' && contains(github.event.pull_request.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
github.event_name == 'workflow_dispatch'
)
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Claude Code Action Official
uses: anthropics/claude-code-action@beta
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}
trigger_phrase: "@claude"
重要な設定ポイント: - permissionsセクションで必要な権限を明示的に指定 - id-token: writeはOIDC認証のために必須 - checkoutステップでリポジトリのクローンが必要 - github.actorで使用者を制限(セキュリティ対策)
3. 認証オプション¶
Claude Code GitHub Actionsは複数の認証方法をサポート:
OAuth認証(推奨)¶
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}
Anthropic API直接認証¶
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}
エンタープライズ向けオプション¶
- Amazon Bedrock: AWS OIDC認証経由
- Google Vertex AI: Workload Identity Federation経由
エンタープライズ環境では、独自のクラウドインフラを使用してデータ管理と請求を制御できます。
4. 高度な設定オプション¶
- uses: anthropics/claude-code-action@beta
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}
trigger_phrase: "@claude" # トリガーフレーズのカスタマイズ
direct_prompt: "Fix all linting errors" # 自動化ワークフロー用
timeout_minutes: 30 # タイムアウト設定(デフォルト30分)
model: "claude-opus-4-1-20250805" # 使用するモデルの指定(Opus 4.1、Sonnet 4も利用可能)
allowed_tools: "edit,create" # 使用可能なツールの制限
max_turns: 20 # 最大ターン数の設定
5. 動作確認手順¶
1. Secretsが正しく設定されているか確認¶
# GitHubリポジトリページで確認
Settings → Secrets and variables → Actions
# 以下が設定されていることを確認
✓ CLAUDE_CODE_OAUTH_TOKEN または ANTHROPIC_API_KEY
2. GitHub Actionsの実行確認¶
# Actions タブで最新の実行を確認
Actions → Claude Code Action → 最新の実行
# 成功時のログ確認ポイント
✓ "Using provided GITHUB_TOKEN for authentication"
✓ "Permission level retrieved: admin"
✓ "Actor has write access"
✓ "Created initial comment with ID"
3. テスト実行¶
Issueまたは既存のPRでコメント:
@claude テストです。このメッセージに返信してください。
6. CLAUDE.md設定ファイル¶
プロジェクトルートにCLAUDE.mdを作成し、プロジェクト固有のガイドラインを設定:
# プロジェクト設定
## コーディング規約
- TypeScript strict mode使用
- ESLint + Prettier設定に従う
- async/await優先、Promiseチェーンは避ける
## レビュー基準
- セキュリティチェック必須
- パフォーマンス影響の評価
- テストカバレッジ80%以上維持
## 禁止事項
- console.logの本番コード混入
- ハードコードされたAPI キー
- 非同期エラーハンドリング省略
💡 実践的な使用例¶
コードレビュー依頼¶
@claude このPRのセキュリティ面をレビューしてください。
特にSQL injection脆弱性がないかチェックお願いします。
機能実装依頼¶
@claude ユーザー認証のエンドポイントを実装してください。
JWT トークンベースで、ログイン・ログアウト・リフレッシュ機能が必要です。
バグ修正依頼¶
@claude このTypeErrorを修正してください:
TypeError: Cannot read property 'length' of undefined at line 45
テスト生成依頼¶
@claude 新しく追加したAPIエンドポイントのテストケースを作成してください。
正常系・異常系の両方をカバーしたいです。
🔄 ワークフロー例¶
1. 開発者がIssueを作成¶
# Issue: ユーザー管理機能の追加
@claude 以下の機能を実装してください:
- ユーザー登録・編集・削除機能
- 権限管理(admin, user)
- APIエンドポイント設計
2. Claudeが自動応答・実装¶
- 要件分析とアーキテクチャ設計提案
- 実装コードの自動生成
- 完全なPull Requestの作成
- テストコードの同時生成
3. 開発者がレビュー・フィードバック¶
# PRコメント
@claude ログイン試行回数制限を追加してください。
5回失敗でアカウントロック機能をお願いします。
4. Claudeが追加実装¶
- フィードバックに基づく機能追加
- セキュリティ強化の実装
- 関連テストの更新
📊 メリット・デメリット比較¶
✅ メリット¶
| 項目 | 詳細 |
|---|---|
| 開発効率向上 | 手動コーディング時間を最大70%削減 |
| コード品質 | AI による一貫したコードレビューと品質チェック |
| 学習支援 | 初心者でも高品質なコード実装が可能 |
| 24/7対応 | 時間を問わずコード支援を受けられる |
| 既存統合 | GitHub Actionsとのシームレス連携 |
❌ デメリット・制限事項¶
| 項目 | 詳細 |
|---|---|
| 処理速度 | 複雑な変更は25分程度かかる場合がある |
| メッセージ制限 | 5時間ごとにリセットされる使用制限 |
| コンテキスト制限 | 200Kトークンの制約でプロジェクト全体は処理不可 |
| ベータ版制限 | 機能・API変更の可能性 |
| コスト | Anthropic APIの従量課金が発生 |
🔐 セキュリティとベストプラクティス¶
セキュリティ考慮事項¶
- データ保護: コードはGitHubランナー上で処理、外部流出なし
- 権限管理: 必要最小限の権限でGitHub App設定
- API キー管理: リポジトリシークレットで安全に管理
ベストプラクティス¶
- 段階的導入: 小規模プロジェクトで試用後、本格運用
- CLAUDE.md活用: プロジェクト固有ルールの明文化
- 人間レビュー: AIの提案は必ず人間が最終チェック
- バックアップ: 重要な変更前はブランチ保護設定
2. PR の自動レビュー¶
# PR 作成時の自動レビュー
name: Auto Review
on:
pull_request:
types: [opened, synchronize]
jobs:
claude-review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Claude Code Review
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
review_mode: true
focus_areas: |
- Security vulnerabilities
- Performance issues
- Code quality
- Test coverage
3. 機能追加の自動化¶
<!-- PR コメント -->
@claude この機能を追加してください:
## 新機能: ダークモード切り替え
### 要件
- ヘッダーにダークモード切り替えボタンを追加
- ユーザーの設定を localStorage に保存
- 全てのコンポーネントでダークモードに対応
### 技術要件
- Material-UI の ThemeProvider を使用
- React Context でテーマ状態を管理
- CSS-in-JS でスタイリング
🔍 高度な活用例¶
1. 複数環境での自動テスト¶
name: Cross-Platform Testing
on:
pull_request:
types: [opened, synchronize]
jobs:
claude-test-generation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Generate Tests
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: |
Generate comprehensive tests for the changes in this PR:
- Unit tests for all new functions
- Integration tests for API endpoints
- E2E tests for UI components
- Edge case testing
env:
TEST_FRAMEWORKS: "jest,cypress,playwright"
run-tests:
needs: claude-test-generation
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node: [16, 18, 20]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Run Tests
run: npm test
2. セキュリティ監査の自動化¶
name: Security Audit
on:
schedule:
- cron: '0 2 * * *' # 毎日午前2時
pull_request:
types: [opened, synchronize]
jobs:
security-audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Claude Security Review
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: |
Perform a comprehensive security audit:
- Check for common vulnerabilities (XSS, SQL injection, etc.)
- Review authentication and authorization
- Analyze dependency security
- Check for hardcoded secrets
- Review API security
env:
SECURITY_TOOLS: "npm audit,snyk,semgrep"
3. ドキュメント自動生成¶
name: Documentation Update
on:
push:
branches: [main]
paths: ['src/**/*.ts', 'src/**/*.tsx']
jobs:
update-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Generate Documentation
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: |
Update the documentation based on code changes:
- Generate API documentation
- Update README.md
- Create component documentation
- Update changelog
env:
DOC_FORMATS: "markdown,jsdoc,typedoc"
🎯 ベストプラクティス¶
1. 効果的なプロンプト設計¶
<!-- 良い例 -->
@claude この機能を実装してください:
## 目的
ユーザーが商品を検索できる機能
## 詳細要件
- 検索バーをヘッダーに追加
- リアルタイム検索(入力時に結果を表示)
- カテゴリでのフィルタリング
- 検索履歴の保存
## 技術仕様
- TypeScript + React
- Material-UI コンポーネント
- Redux Toolkit for state management
- React Query for API calls
## 制約
- モバイルフレンドリー
- アクセシビリティ準拠
- 1秒以内の応答速度
2. 段階的な実装¶
# 段階的な機能実装
jobs:
phase-1:
name: "Phase 1: Basic Implementation"
runs-on: ubuntu-latest
steps:
- name: Implement Core Features
uses: anthropics/claude-code-action@beta
with:
prompt: "Implement basic search functionality"
phase-2:
name: "Phase 2: Enhanced Features"
needs: phase-1
runs-on: ubuntu-latest
steps:
- name: Add Advanced Features
uses: anthropics/claude-code-action@beta
with:
prompt: "Add filtering and sorting capabilities"
phase-3:
name: "Phase 3: Optimization"
needs: phase-2
runs-on: ubuntu-latest
steps:
- name: Optimize Performance
uses: anthropics/claude-code-action@beta
with:
prompt: "Optimize search performance and UX"
3. エラーハンドリング¶
jobs:
claude-with-fallback:
runs-on: ubuntu-latest
steps:
- name: Primary Claude Action
id: claude-primary
uses: anthropics/claude-code-action@beta
continue-on-error: true
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
- name: Fallback Action
if: steps.claude-primary.outcome == 'failure'
run: |
echo "Claude action failed, falling back to manual review"
gh pr comment ${{ github.event.pull_request.number }} \
--body "🤖 Claude Code action failed. Manual review required."
📊 効果測定¶
導入効果の例¶
| 指標 | 改善結果 |
|---|---|
| 開発速度 | 3倍高速化 |
| バグ発見率 | 早期発見 80% 向上 |
| コードレビュー時間 | 60% 短縮 |
| テストカバレッジ | 95% 達成 |
監視とアラート¶
name: Claude Performance Monitor
on:
workflow_run:
workflows: ["Claude Code Assistant"]
types: [completed]
jobs:
monitor:
runs-on: ubuntu-latest
steps:
- name: Check Performance
run: |
if [[ "${{ github.event.workflow_run.conclusion }}" == "failure" ]]; then
curl -X POST ${{ secrets.SLACK_WEBHOOK }} \
-H 'Content-type: application/json' \
--data '{"text":"🚨 Claude Code action failed in ${{ github.repository }}"}'
fi
🔧 トラブルシューティング¶
よくあるエラーと解決方法¶
1. "Did you remember to add id-token: write to your workflow permissions?"¶
# 解決策: permissionsセクションに追加
permissions:
contents: write
pull-requests: write
issues: write
id-token: write # ← これを追加
2. "fatal: not a git repository"¶
# 解決策: checkoutステップを追加
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Claude Code Action Official
uses: anthropics/claude-code-action@beta
# ...
3. "Bad credentials"エラー¶
# 解決策: Secretsの設定を確認
1. Settings → Secrets and variables → Actions
2. CLAUDE_CODE_OAUTH_TOKEN が正しく設定されているか確認
3. トークンの有効期限を確認
4. Claudeが反応しない¶
# 解決策: if条件を確認
if: |
github.actor == 'your-username' && # ← ユーザー名を確認
(
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
# ... 他の条件
)
デバッグ方法¶
1. GitHub Actionsログの確認¶
# 詳細ログの確認手順
1. Actions タブ → 失敗したワークフロー
2. jobの詳細を展開
3. エラーメッセージと該当行を特定
2. ローカルでのテスト¶
# actを使用したローカルテスト
act -j claude -s CLAUDE_CODE_OAUTH_TOKEN=$CLAUDE_CODE_OAUTH_TOKEN
3. 段階的なデバッグ¶
# デバッグ用のステップを追加
- name: Debug Info
run: |
echo "Event Name: ${{ github.event_name }}"
echo "Actor: ${{ github.actor }}"
echo "Trigger: ${{ github.event.comment.body }}"