Claude Code Actionの初期設定を見直す
はじめに
私たちの組織では以前から試験的に社内の一部リポジトリでClaude Code Actionを使えるようにしていました。
先日これがv1.0に到達したため社内の主要なリポジトリへ展開していったのですが、設定周りで自分がはまったポイントがいくつかあったので、本記事で共有したいと思います!
前提
Claude Code ActionはClaude Code経由でスラッシュコマンド/install-github-app
を使って各リポジトリへ展開しました。このとき「@Claude Code」と「Claude Code Review」を有効化しています。
/install-github-app
経由で初期設定された~/.github/workflows/claude-code-review.yml
が以下になり、赤線を引いた辺りが今回のポイントになります。
自動レビューの起動トリガー変更
初期設定のままだとPRをオープンにした際、pushしてコードを更新した際に毎回レビューが走ることになります。
私たちの組織ではClaudeによる自動レビューは人にレビューを依頼する前の段階、つまりセルフレビューを支援するような形で使いたかったので、PRに「AI_Review」ラベルを付けた時だけ自動レビューを実行させる形式に変更しました。
on:
pull_request:
types: [labeled]
jobs:
claude-review:
if: github.event.label.name == 'AI_Review'
runs-on: ubuntu-latest
プロンプトにレビュー対象のPR番号を明示
初期設定ではPRオープン時からの自動レビューを想定しているため、prompt
にPR番号が明示されておらず、場合によってはレビューしてほしいPRとは別の最新PRをレビューしてしまうケースがありました。
そこでprompt
にPR番号を明示的に渡すようにしました。
- name: Run Claude Code Review
id: claude-review
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: |
対象リポジトリ: ${{ github.repository }}
対象PR番号: ${{ github.event.pull_request.number }}
以下の観点に沿って、このプルリクエストをレビューしフィードバックを提供してください:
- コードの品質とベストプラクティス
- 潜在的なバグや問題
- パフォーマンスの考慮事項
- セキュリティの懸念
- テストカバレッジ
リポジトリのCLAUDE.mdをスタイルと規約の指針としてご利用ください。フィードバックは建設的で有益なものにしてください。
特定のコードの問題を強調するには、`mcp__github_inline_comment__create_inline_comment` を使用してください。
レビュー状況に応じて、Bashツール`gh pr comment`を使用してプルリクエストへのコメントとしてレビューを残してください。
該当するPR番号が取得できない、もしくはPRの内容が取得できない場合は、レビューを中止して"Cannot get PR details."とだけ返答してください。
`WebFetch`や`WebSearch`を使用した際に、信頼に足りうる情報源が見つからない場合は、"No relevant information found."と返答に注記してください。
インラインコメントの有効化
claude-code_actionリポジトリで紹介されているyamlを見ると、mcp__github_inline_comment__create_inline_comment
を有効化することでレビュー時にインラインコメントを付けられることがわかりました。
claude_args: |
--allowedTools 'mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),WebFetch,WebSearch'
WebSearchとWebFetchの有効化
先ほどの設定では--allowedTools
の中でWebFetch
とWebSearch
も実は有効化させています。
claude_args: |
--allowedTools 'mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),WebFetch,WebSearch'
renovateやdependabotによるライブラリーアップデートのPRに対して自動レビューを使った場合、リリースノートの検索などでWebFetch
とWebSearch
を有効化しないと上手く情報を取得できないケースがあったためです。
実はリリースノートの取得に失敗しているケース
設定の追加によって、バージョン変更に伴う破壊的変更点を検索できている
まとめ
Claude Codeの/install-github-app
で導入されるyamlのままだと、想定するユースケースを満たせない場合があります。
結局のところ、claude-code_actionリポジトリにある解説ドキュメントとyaml例が最新のものとして参考になる印象を持ちました。
現在の設定
長いので折りたたんでいます
name: Claude Code Review
on:
pull_request:
types: [labeled]
# Optional: Only run on specific file changes
# paths:
# - "src/**/*.ts"
# - "src/**/*.tsx"
# - "src/**/*.js"
# - "src/**/*.jsx"
jobs:
claude-review:
if: github.event.label.name == 'AI_Review'
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
fetch-depth: 1
- name: Run Claude Code Review
id: claude-review
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: |
対象リポジトリ: ${{ github.repository }}
対象PR番号: ${{ github.event.pull_request.number }}
以下の観点に沿って、このプルリクエストをレビューしフィードバックを提供してください:
- コードの品質とベストプラクティス
- 潜在的なバグや問題
- パフォーマンスの考慮事項
- セキュリティの懸念
- テストカバレッジ
リポジトリのCLAUDE.mdをスタイルと規約の指針としてご利用ください。フィードバックは建設的で有益なものにしてください。
特定のコードの問題を強調するには、`mcp__github_inline_comment__create_inline_comment` を使用してください。
レビュー状況に応じて、Bashツール`gh pr comment`を使用してプルリクエストへのコメントとしてレビューを残してください。
該当するPR番号が取得できない、もしくはPRの内容が取得できない場合は、レビューを中止して"Cannot get PR details."とだけ返答してください。
`WebFetch`や`WebSearch`を使用した際に、信頼に足りうる情報源が見つからない場合は、"No relevant information found."と返答に注記してください。
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://docs.anthropic.com/en/docs/claude-code/sdk#command-line for available options
claude_args: |
--allowedTools 'mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),WebFetch,WebSearch'
Discussion