Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Claude Code GitHub Actionsによる 自動レビューシステムの一元化と最適化
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
今津快斗
November 28, 2025
0
52
Claude Code GitHub Actionsによる 自動レビューシステムの一元化と最適化
2025/11/29 機械学習の社会実装勉強会第53回 今津快斗
今津快斗
November 28, 2025
Tweet
Share
More Decks by 今津快斗
See All by 今津快斗
Terraform Apply失敗パターンの自動分類と学習型レビューチェックリスト生成による再発防止システムの構築
kaitimadu
1
130
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Believing is Seeing
oripsolob
1
68
Code Reviewing Like a Champion
maltzj
528
40k
GitHub's CSS Performance
jonrohan
1032
470k
Darren the Foodie - Storyboard
khoart
PRO
3
2.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
130
Building an army of robots
kneath
306
46k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
sira's awesome portfolio website redesign presentation
elsirapls
0
170
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
190
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Transcript
Claude Code GitHub Actionsによる 自動レビューシステムの一元化と最適化 2025/11/29 機械学習の社会実装勉強会第53回 今津快斗
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 2
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 3
Claude Code GitHub Actionsとは Anthropic社が提供する公式のGitHub Actions統合 公式リポジトリ: anthropics/claude-code-action@v1 モデル一覧 •
claude-haiku-4-5-20251001 ➢ 特徴: 最速のモデル • claude-sonnet-4-5-20250929 ➢ 特徴: 最も賢いモデルで複雑な エージェントとコーディングに対応 • claude-opus-4-1-20250805 ➢ 特徴: 専門的な推論タスクに対応 Sonnet 3.5モデルは 2025年10月28日に廃止 4
Claude Code GitHub Actionsとは 流れイメージ PR作成 イベントを 検知 GitHub Actions実行
Claude実行、 レスポンス • pull_request ➢ opened ➢ ready for review ➢ synchronize • issue_comment ➢ created etc. • Anthropic API Key • モデル指定 • プロンプト チェック CLAUDE.md 5
自動レビュー steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth:
0 - name: Automatic PR Review uses: anthropics/claude-code-action@v1 with: anthropic_api_key: ${{ secrets.anthropic_api_key }} track_progress: true claude_args: | --model claude-sonnet-4-5-20250929 prompt: | REPO: ${{ github.repository }} PR NUMBER: ${{ github.event.pull_request.number }} 以下プロンプト PR内の差分をもとに、渡した プロンプトの内容でレビューを行 う トリガー条件例 v1で必須 6
自動レビュー 出力例 リポジトリ特有 (後述) 7
メンション呼び出し steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth:
1 - name: Run Claude Code id: claude uses: anthropics/claude-code-action@v1 with: anthropic_api_key: ${{ secrets.anthropic_api_key }} track_progress: true claude_args: | --model claude-sonnet-4-5-20250929 prompt: | 以下プロンプト PRコメントで以下のように記述: @claude [メッセージ ] PRの変更内容を理解した上で回答 トリガー条件例 8
メンション呼び出し 出力例 @claude のみで起動 9
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 10
背景と課題 背景 ➢ 社内のほとんどのリポジトリで導入 ➢ リポジトリごとに個別管理 課題 1. 管理コスト ➢
ワークフロー更新が大変 ➢ 設定の不整合が発生 2. レビュー品質の不統一 ➢ 社内コーディング規則が反映されない ➢ リポジトリごとに異なる基準 3. レビューの非効率性 ➢ レビューコメントが長すぎる ➢ Draft中もコミットごとに通知 Claudeワークフローの導入と README.mdの更新に関するPRのレビュー 11
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 12
ワークフローを一元化 9つのリポジトリそれぞれでワークフローを置いていて、管理が大変 →バージョンを変えるだけでも9つのPRが必要 global-workflowsリポジトリにreusableワークフロー を配置し、各リポジトリから参照する形に変更 変更前 変更後 13
ワークフローを一元化 特有のプロンプト プロジェクト特有のプロンプト リポジトリに適したレビューポイントを指定したい! →変数として、Reusableワークフローに渡す 例:Terraformリポジトリ(一部抜粋) jobs: auto-review: uses: claude-review-reusable.ymlのパス@master
secrets: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} with: project_specific_prompt: | -セキュリティへの影響 - HCL構文と構造の適切性 - terraform plan結果の妥当性 トリガーWF 再利用WF global-workflows terraform 14
ワークフローを一元化 コード例 on: pull_request: types: [opened, synchronize, reopened, ready_for_review] jobs:
auto-review: uses: claude-review-reusable.ymlのパス@master secrets: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} with: project_specific_prompt: | 以下プロジェクト特有のプロンプト on: workflow_call: inputs: project_specific_prompt: required: false type: string default: '' secrets: anthropic_api_key: required: true jobs: 以下job内容 Reusableワークフロー(global-workflows) トリガーワークフロー(各リポジトリ) 注意 secretsはトリガー用ワークフローから渡さないと行けない! 15
ワークフローを一元化 まとめ メリット • global-workflowsの修正のみで全リポジトリに反映 • 更新作業が1回で完了 • 設定の統一 デメリット
• reusableワークフローが止まると全リポジトリで停止 16
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 17
社内コーディング規則の組み込み Claude Code GitHub Actionsに社内コーディング規則(Confluence)を読み込ませ、 全リポジトリで統一されたコーディング規約を自動適用できるようにする 案1 Atlassian APIを用いて、毎回Confluenceを見に行く 案2
global-workflowsリポジトリにmdファイルとして配置して、 GitHub Appを使って読み取る 18 VS
社内コーディング規則の組み込み 案1 案1 Atlassian APIを用いて、毎回Confluenceを見に行く リポジトリ(トリガー) 各プロジェクト コーディング規則 Confluence Claude
1. PRレビュー依頼 Atlassian API key 2. APIで規則を参照 3. レビュー結果を投稿 global-workflows 19
社内コーディング規則の組み込み 案2 案2 global-workflowsリポジトリにmdファイルとして配置して、 GitHub Appを使って読み取る リポジトリ(トリガー) 各プロジェクト 2. PRレビュー依頼
1. .mdに移行 5. レビュー結果を投稿 coding_rules.md global-workflows 3. GitHub App Token を生成 20 4. ファイル内容 を取得 GitHub AppのIDとSecrets
社内コーディング規則の組み込み 案2実装1 Q. なぜGitHub App Tokenの生成が必要なのか? A. 他のプライベートリポジトリの中身を読み取る必要があるから 21 トリガーリポジトリでReusableワークフローの機能を借りている状態なので、
global-workflowsリポジトリにはアクセス出来ない リポジトリ(トリガー) 各プロジェクト GitHub App global-workflows 権限なし 1. Token生成 2. gh api 3. ファイル内容 4. ファイル内容 仲介役
社内コーディング規則の組み込み 案2実装2 Claudeのプロンプトにそれを参照するように追記 「coding_rules.md」ファイルに記載されているコーディング規則に準拠しているかを確認してください。 **重要**: レビュー概要の冒頭で、coding_rules.mdファイルを読み取れたかを必ず明記してください: - 読み取れた場合: 「 coding_rules.mdを参照してレビューしました」
- 読み取れなかった場合: 「 coding_rules.mdの読み取りに失敗しました」 22
社内コーディング規則の組み込み まとめ メリット • Claudeが社内のコーディング規約に基づいたレビューが可能 ➢ 定型チェック(変数名、DRY原則など)をClaudeが自動でレビュー • coding_rules.mdのバージョン履歴が残る デメリット
• 資料の二重管理 • Claudeのレビュー内容が増加 23
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 24
レビューコメント最適化 課題 自動レビューのワークフローにおいて、 1. PRがdraft状態でもcommitの度にレビューが実行され、通知が多い 2. レビューコメントが長すぎて、重要な指摘が埋もれやすい 3. Commitする度に新しいレビューコメントが追加され、コメント欄が散らかる 25
レビューコメント最適化 課題1 1. PRがdraft状態でもcommitの度にレビューが実行され、通知が多い jobs: auto-review: runs-on: ubuntu-latest if: github.event.pull_request.draft
== false PRがdraftではないときのみ以下を実行する 26
レビューコメント最適化 課題2 2. レビューコメントが長すぎて、重要な指摘が埋もれやすい • CRITICAL/HIGHレベルの指摘はすべて記載 • MEDIUM/LOWレベルの指摘は合わせて最大3件に制限 • インラインコメント化
### インラインコメント(該当コード行に記載) ``` ### CRITICAL / HIGH / MEDIUM / LOW **問題点:** 具体的な説明(簡潔に) **推奨対応:** 修正方法(簡潔に) ``` 27
レビューコメント最適化 課題3 3. Commitする度に新しいレビューコメントが追加され、コメント欄が散らかる 新しいコミット追加時にGitHub GraphQL APIで前回のレビューコメントを 自動的に最小化し、最新のレビューのみを表示する GraphQL minimizeComment
28 展開も出来る
レビューコメント最適化 課題3実装 新しいコミット追加時にGitHub GraphQL APIで前回のレビューコメントを 自動的に最小化し、最新のレビューのみを表示する const isClaude = review.body
&& review.body.includes('Claudeレビュー概要’); if (isClaude) { … 「Claudeレビュー概要」を含むレビューを最小化 const isClaudeComment = comment.body.startsWith('###') && (comment.body.includes('CRITICAL') || comment.body.includes('HIGH') || comment.body.includes('MEDIUM') || comment.body.includes('LOW')); if (isClaudeComment) { … 「###」で始まり、CRITICAL/HIGH/MEDIUM/LOWを含むコメント(Claudeのレビュー形式)を最小化 29
レビューコメント最適化 まとめ メリット • Claudeによるレビューコメントは常に最新である • 改善すべき箇所とその重要度が明確になった デメリット • 軽微なレビューポイントは無視される可能性がある
30
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 31
BotによるPRの無効化 1. Claude Code GitHub Actions(anthropics/claude-code-action@v1)は、 デフォルトで人間のユーザーによる起動のみを許可 ➢ CIが落ちる 2.
そもそもBotによるPRにがっつりレビューは必要ない Error: Workflow initiated by non-human actor: renovate (type: Bot). Add bot to allowed_bots list or use '*' to allow all bots. 32
BotによるPRの無効化 実装 jobs: check-actor: runs-on: ubuntu-latest outputs: is_bot: ${{ steps.check.outputs.is_bot
}} steps: - name: Check if actor is bot id: check run: | if [[ "${{ github.actor }}" == *"[bot]" ]]; then echo "is_bot=true" >> $GITHUB_OUTPUT else echo "is_bot=false" >> $GITHUB_OUTPUT fi review: needs: check-actor if: needs.check-actor.outputs.is_bot == 'false' reviewがほしい場合は、 @claude このPRをreviewして! が使える! 33
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRの無効化 • まとめ 34
まとめ 成果 • ワークフロー設定を一元管理化し、メンテナンスにかかる工数を大幅に圧縮 • 社内独自のコーディング規約をシステムに統合し、全プロジェクトで均質なレビュー 基準の適用を実現 • コメントの最小化、Draft時、Botへの通知抑制により、開発者へのノイズを排除し、 重要な指摘に集中できる環境を提供
今後は… • CIと連携した自律的な修正フローの構築 • パフォーマンスやコスト削減など、高度な視点を導入 • 開発者の声をプロンプトやルールに即座に反映させるツールの開発 • 最新技術のキャッチアップ 35
ご清聴ありがとうございました!