• #GitHub Actions
  • #Claude
  • #CI/CD
  • #自動化
  • #コードレビュー
未分類

GitHub ActionsでClaudeを統合する方法

このリポジトリには、GitHub ActionsとClaude Codeを統合する2つのワークフローが設定されています。これらのワークフローにより、IssueやPull Requestで直接Claudeと対話したり、自動的なコードレビューを受けたりすることができます。

ワークフローの概要

1. Claude Code (.github/workflows/claude.yml)

IssueやPRのコメントで@claudeをメンションすることでClaudeを呼び出せるインタラクティブなワークフローです。

トリガー条件

以下のイベントで自動的に実行されます:

  • Issue コメント: Issueに@claudeを含むコメントが投稿された時
  • PR レビューコメント: PRのコードレビューコメントに@claudeが含まれている時
  • PR レビュー: PRレビュー本文に@claudeが含まれている時
  • Issue 作成/アサイン: Issueのタイトルまたは本文に@claudeが含まれている時

主な機能

permissions:
  contents: read
  pull-requests: read
  issues: read
  id-token: write
  actions: read  # CI結果の読み取りが可能
  • リポジトリの読み取り権限
  • PR/Issueの読み取り権限
  • CI/CDの実行結果を読み取る権限(PRのテスト結果確認など)

カスタマイズ可能な設定

# カスタムプロンプトの指定(オプション)
# prompt: 'Update the pull request description to include a summary of changes.'

# Claudeの動作をカスタマイズ(オプション)
# claude_args: '--model claude-opus-4-1-20250805 --allowed-tools Bash(gh pr:*)'

2. Claude Code Review (.github/workflows/claude-code-review.yml)

Pull Requestが作成または更新されたときに自動的にコードレビューを実行するワークフローです。

トリガー条件

  • PR オープン: 新しいPRが作成された時
  • PR 更新: PRに新しいコミットがプッシュされた時

レビュー内容

Claudeは以下の観点で自動的にコードをレビューします:

  1. コード品質とベストプラクティス: コーディング規約への準拠、可読性
  2. 潜在的なバグや問題点: ロジックエラー、エッジケースの検出
  3. パフォーマンス: 効率性、最適化の余地
  4. セキュリティ: 脆弱性、セキュリティリスクの検出
  5. テストカバレッジ: テストの十分性

カスタマイズオプション

# 特定のファイルのみを対象にする
# paths:
#   - "src/**/*.ts"
#   - "src/**/*.tsx"

# 特定の作成者のPRのみレビュー
# if: |
#   github.event.pull_request.user.login == 'external-contributor' ||
#   github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'

Claudeはgh pr commentコマンドを使用してレビュー結果をPRコメントとして投稿します。

セットアップ方法

1. Claude Code OAuth トークンの取得

  1. Claude Codeにアクセス
  2. OAuth認証を完了してトークンを取得

2. GitHub Secretsの設定

  1. リポジトリの SettingsSecrets and variablesActions に移動
  2. New repository secret をクリック
  3. 以下のシークレットを追加:
    • Name: CLAUDE_CODE_OAUTH_TOKEN
    • Secret: 取得したOAuthトークンを貼り付け

3. ワークフローファイルの配置

/install-github-appコマンドを実行すると、以下のファイルが自動的に作成されます:

.github/
└── workflows/
    ├── claude.yml
    └── claude-code-review.yml

使い方

インタラクティブモード(claude.yml)

Issueでの使用例

@claude このエラーを修正する方法を教えてください

TypeError: Cannot read property 'map' of undefined
  at src/components/ArticleList.vue:42

Claudeがエラーの原因を分析し、修正方法を提案します。

PRレビューコメントでの使用例

@claude この関数のパフォーマンスを改善できますか?

Claudeが該当のコードを分析し、最適化案を提示します。

PRレビューでの使用例

@claude このPRの変更内容をまとめた説明文を作成してください

Claudeがdiffを読み取り、PR説明文を生成します。

自動レビューモード(claude-code-review.yml)

PRを作成または更新すると、自動的にClaudeがコードレビューを実行します。

  1. ブランチを作成してコードを変更
  2. PRを作成
  3. GitHub Actionsが自動実行される
  4. 数分後、ClaudeのレビューコメントがPRに投稿される

高度なカスタマイズ

モデルの変更

より高度なタスクには、より強力なモデルを指定できます:

claude_args: '--model claude-opus-4-1-20250805'

使用可能なツールの制限

セキュリティのため、Claudeが使用できるツールを制限できます:

claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh pr comment:*)"'

カスタムプロンプトの作成

特定のタスク用にプロンプトをカスタマイズ:

prompt: |
  このPRのセキュリティリスクのみをレビューしてください。
  特に以下の点に注目してください:
  - SQLインジェクション
  - XSS脆弱性
  - 認証/認可の問題

特定ファイルのみレビュー

不要なレビューを避けるため、対象ファイルを限定:

on:
  pull_request:
    types: [opened, synchronize]
    paths:
      - "apps/web/**/*.ts"
      - "apps/web/**/*.vue"

トラブルシューティング

ワークフローが実行されない

確認事項:

  • CLAUDE_CODE_OAUTH_TOKENが正しく設定されているか
  • ワークフローファイルが.github/workflows/ディレクトリに配置されているか
  • リポジトリのActions設定で、GitHub Actionsが有効になっているか

権限エラーが発生する

解決方法:

permissions:
  contents: write  # 書き込み権限が必要な場合
  pull-requests: write

Claudeが応答しない

確認事項:

  • コメントに正確に@claudeと記載されているか(大文字小文字を区別)
  • ワークフローのトリガー条件に一致しているか

参考リンク

まとめ

この統合により、開発ワークフローに以下のメリットがあります:

コードレビューの自動化: 人手によるレビュー前にClaudeが基本的な問題を検出 ✅ 迅速な問題解決: Issueで直接Claudeに質問して即座に回答を得られる ✅ 一貫性のあるコード品質: すべてのPRで同じ基準でレビューが実行される ✅ 学習機会の提供: Claudeの提案から新しいベストプラクティスを学べる

GitHub ActionsとClaudeの統合で、より効率的で質の高い開発プロセスを実現できます。