メインコンテンツまでスキップ

すべての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コンテンツは信頼できないものとして扱うプロンプトインジェクションを含む可能性があります。ジョブに重大な結果を伴うアクションを取らせないでください。
  • コストに上限を設ける — 大きな差分はトークンを消費します。変更されたファイルのみをレビューすることを検討してください。 :::

役に立つものにし、ノイズにしない

  • 確信度の高い所見だけを求めましょう — 細かい指摘の羅列は無視されます。
  • マージの判断は人間が行う、一次レビューとして保ちましょう。

次へ