すべてのPRをレビューするGitHub Action
定番で価値の高い自動化: Claude にすべてのプルリクエストをレビューさせ、その所見をコメントとして投稿する — CIでヘッドレス実行します。安全に保つためのガードレールとともに、その全体像を示します。
何をするか
各PRで: 差分をチェックアウトし、Claude にバグ/エッジケース/規約の問題についてレビューを依頼し、コメントを投稿します。判断は引き続き人間が行い、Claude は素早い一次レビューを提供するだけです。
ワークフロー(概略)
name: Claude PR review
on: pull_request
permissions:
contents: read
pull-requests: write # to comment — NOT write to code
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with: { fetch-depth: 0 }
- name: Review the diff
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
git diff origin/${{ github.base_ref }}...HEAD > /tmp/diff.patch
claude -p "Review this diff for correctness bugs, missing edge cases, and
security issues. Report ONLY high-confidence findings as a Markdown
checklist with file:line. Diff:" < /tmp/diff.patch > /tmp/review.md
# then post /tmp/review.md as a PR comment (e.g. with the gh CLI or an action)
(正確なヘッドレスの呼び出し方法は異なる場合があります — ドキュメントを参照してください。原則は: 差分を渡し、Markdown を取得し、それを投稿する、というものです。)
ガードレール(自律実行のハードニングを読んでください)
:::warning CIでは最小権限を
- コメントのみ。
pull-requests: writeを付与し、contents: writeは付与しない — ボットがコードをプッシュすべきではありません。 - トークンのスコープを絞る。信頼できないPRコンテンツを読み取るジョブに、デプロイやシークレットへのアクセスを決して与えないでください。
- PRコンテンツは信頼できないものとして扱う — プロンプトインジェクションを含む可能性があります。ジョブに重大な結果を伴うアクションを取らせないでください。
- コストに上限を設ける — 大きな差分はトークンを消費します。変更されたファイルのみをレビューすることを検討してください。 :::
役に立つものにし、ノイズにしない
- 確信度の高い所見だけを求めましょう — 細かい指摘の羅列は無視されます。
- マージの判断は人間が行う、一次レビューとして保ちましょう。