はじめに
コードレビューは品質を担保するために欠かせないプロセスですが、レビュアーの負担が大きく、レビュー待ちでマージが遅延することも少なくありません。GitHub Copilot Code Reviewは、AIがプルリクエストを自動的にレビューし、セキュリティの脆弱性やコーディング規約違反を指摘してくれる機能です。
2025年12月現在、Copilot Code Reviewはパブリックプレビューから正式版へと進化し、CodeQL・ESLint・PMDなどの静的解析ツールとの連携機能も追加されています。本記事では、Copilot Code Reviewの自動レビュー設定方法、カスタムレビュー観点の指定方法、そしてセキュリティ・コーディング規約チェックの自動化について詳しく解説します。
Copilot Code Reviewの概要
主な機能と特徴
Copilot Code Reviewは、プルリクエストに対してAIが自動的にフィードバックを提供する機能です。
- あらゆるプログラミング言語に対応: 言語を問わずコードをレビュー可能
- コード変更に対するインラインコメント: 問題箇所を特定し、具体的な改善提案を表示
- ワンクリック修正: 提案された変更をボタン一つで適用可能
- 静的解析ツール連携: CodeQL、ESLint、PMDによる高精度なセキュリティ・品質チェック
- カスタム指示対応: プロジェクト固有のレビュー観点を設定可能
利用可能なプラン
Copilot Code Reviewは以下のプランで利用できます。
| プラン | 利用可能 | 月間プレミアムリクエスト |
|---|---|---|
| Copilot Pro | 可能 | プランに含まれる |
| Copilot Pro+ | 可能 | プランに含まれる |
| Copilot Business | 可能 | 組織ポリシーで有効化が必要 |
| Copilot Enterprise | 可能 | 組織ポリシーで有効化が必要 |
対応環境
Copilot Code Reviewは以下の環境で利用できます。
- GitHub.com(Webブラウザ)
- GitHub Mobile
- VS Code
- Visual Studio
- Xcode
- JetBrains IDEs
手動でレビューをリクエストする方法
まずは基本となる手動でのレビューリクエスト方法を確認しましょう。
GitHub.comでの手順
- プルリクエストページを開く
- 右側のサイドバーにある「Reviewers」メニューをクリック
- 表示されるリストから「Copilot」を選択
- 通常30秒以内にレビュー結果が表示される
Copilotのレビューは「Comment」として投稿されます。「Approve」や「Request changes」ではないため、マージをブロックすることはありません。人間のレビュアーによる承認と併用する形で活用できます。
レビュー結果の活用
Copilotのレビューコメントには、問題の説明と修正提案が含まれます。
- 提案の適用: 「Commit suggestion」ボタンで提案された変更をそのまま適用
- バッチコミット: 複数の提案をまとめて1つのコミットとして適用
- Coding Agentへの引き継ぎ: 「Implement suggestion」で、Copilot Coding Agentに修正を委託し、新しいプルリクエストを作成
自動レビューの設定方法
Copilot Code Reviewの真価は自動レビュー機能にあります。プルリクエストが作成されるたびに自動的にレビューが実行されるよう設定することで、レビュープロセスを大幅に効率化できます。
個人設定での自動レビュー有効化
Copilot ProまたはCopilot Pro+プランの個人ユーザーは、自分が作成するすべてのプルリクエストに対して自動レビューを有効化できます。
- GitHubの任意のページで右上のプロフィール画像をクリック
- 「Copilot settings」を選択
- 「Automatic Copilot code review」のドロップダウンをクリック
- 「Enabled」を選択
この設定を有効にすると、あなたが作成するすべてのプルリクエストでCopilotが自動的にレビューを開始します。
リポジトリ単位での自動レビュー設定
リポジトリ管理者は、Repository Rulesetsを使用してリポジトリ全体で自動レビューを有効化できます。
- リポジトリの「Settings」ページを開く
- 左サイドバーの「Code and automation」セクションで「Rules」→「Rulesets」を選択
- 「New ruleset」→「New branch ruleset」をクリック
- Ruleset名を入力(例:「Copilot Auto Review」)
- 「Enforcement Status」を「Active」に設定
- 「Target branches」で対象ブランチを指定(例:「Include default branch」または「Include all branches」)
- 「Branch rules」セクションで「Automatically request Copilot code review」にチェック
追加オプション
自動レビューには以下のオプションを設定できます。
| オプション | 説明 |
|---|---|
| Review new pushes | 新しいコミットがプッシュされるたびにレビューを実行 |
| Review draft pull requests | ドラフト状態のプルリクエストもレビュー対象に含める |
「Review draft pull requests」を有効にすると、人間のレビューをリクエストする前の段階でエラーを早期発見できます。
組織全体での自動レビュー設定
組織オーナーは、複数のリポジトリに対して一括で自動レビューを設定できます。
- 組織の「Settings」ページを開く
- 左サイドバーの「Code, planning, and automation」セクションで「Repository」→「Rulesets」を選択
- 「New ruleset」→「New branch ruleset」をクリック
- Ruleset名を入力
- 「Target repositories」で対象リポジトリのパターンを指定
- 例:
*feature(featureで終わるすべてのリポジトリ) - 例:
*(すべてのリポジトリ)
- 例:
- 「Target branches」で対象ブランチを指定
- 「Automatically request Copilot code review」にチェック
パターンマッチングでは、包含パターンと除外パターンを組み合わせることができます。例えば*cat*に一致するリポジトリを対象としつつ、not-a-catを除外するといった設定が可能です。
カスタムレビュー観点の設定
Copilot Code Reviewは、プロジェクト固有のコーディング規約やセキュリティポリシーに基づいたレビューを行うようカスタマイズできます。これにより、チームの開発ルールに沿った一貫性のあるフィードバックを得られます。
リポジトリ全体のカスタム指示
.github/copilot-instructions.mdファイルを作成することで、リポジトリ全体に適用されるレビュー観点を設定できます。
|
|
パス別のカスタム指示
.github/instructions/ディレクトリ内に*.instructions.mdファイルを作成することで、特定のファイルパスに対してのみ適用される指示を設定できます。
フロントエンドコード向けの設定例
|
|
バックエンドコード向けの設定例
|
|
テストコード向けの設定例
|
|
カスタム指示の有効化と無効化
リポジトリ設定から、カスタム指示の使用を有効化または無効化できます。
- リポジトリの「Settings」→「Copilot」→「Code review」を開く
- 「Use custom instructions when reviewing pull requests」のトグルを切り替え
組織レベルでカスタム指示を管理している場合、組織の設定がリポジトリ設定より優先されます。
特定の機能での指示の除外
パス別指示ファイルでexcludeAgentキーワードを使用することで、特定の機能でのみ指示を無効化できます。
|
|
逆に、excludeAgent: "coding-agent"とすることで、Code Reviewでのみ使用される指示を作成することもできます。
静的解析ツールとの連携
2025年のアップデートにより、Copilot Code Reviewは静的解析ツールと連携して、より高精度なセキュリティ・品質チェックを実行できるようになりました。
利用可能な静的解析ツール
| ツール | 対象言語 | 主な検出項目 |
|---|---|---|
| CodeQL | 多言語対応 | セキュリティ脆弱性 |
| ESLint | JavaScript/TypeScript | コード品質・スタイル |
| PMD | Java, Apex他 | コード品質・潜在的バグ |
静的解析ツールの有効化
プレビュー機能にアクセスできるユーザーは、以下の手順で静的解析ツールを有効化できます。
- 組織またはエンタープライズの設定で「Opt in to preview features」を有効化
- CodeQLはデフォルトで有効、ESLintとPMDは手動で有効化が必要
- Rulesetsで使用するツールを選択
CodeQLによるセキュリティチェック
CodeQLを有効にすると、以下のようなセキュリティ脆弱性を自動的に検出できます。
- SQLインジェクション
- クロスサイトスクリプティング(XSS)
- パストラバーサル
- 安全でないデシリアライゼーション
- ハードコードされた認証情報
CodeQLの検出結果は、通常のレビューコメントとして表示され、修正提案も含まれます。
ESLintによるJavaScriptコード品質チェック
ESLintを有効にすると、JavaScriptおよびTypeScriptのコードに対して以下のチェックが行われます。
- 未使用変数の検出
- 一貫性のないコーディングスタイル
- 潜在的なバグ(型の不一致など)
- ベストプラクティスへの準拠
既存のESLint設定ファイル(.eslintrc.jsやeslint.config.js)がある場合、その設定が考慮されます。
セキュリティ・コーディング規約チェックの自動化
Copilot Code Reviewを活用して、セキュリティチェックとコーディング規約チェックを完全に自動化するワークフローを構築しましょう。
推奨構成
以下のファイル構成で、包括的な自動チェック体制を整えることができます。
.github/
├── copilot-instructions.md # 共通のレビュー観点
└── instructions/
├── security.instructions.md # セキュリティチェック
├── frontend.instructions.md # フロントエンドコード規約
├── backend.instructions.md # バックエンドコード規約
└── api.instructions.md # API設計チェック
セキュリティチェック用カスタム指示の例
|
|
コーディング規約チェック用カスタム指示の例
|
|
ベストプラクティスと注意点
効果的なカスタム指示の書き方
Copilot Code Reviewに効果的なカスタム指示を作成するためのポイントをまとめます。
- 明確で具体的な指示を書く: 「良いコードを書いてください」ではなく「関数は単一責任の原則に従っているか確認してください」のように具体的に
- 「When performing a code review」で始める: レビュー時に適用されることを明示
- チェックリスト形式で記述: 確認項目を箇条書きにすることで漏れを防ぐ
- 優先度の高い項目を先に記載: セキュリティチェックなど重要な項目を最初に
- 2ページ程度に収める: 指示が長すぎると効果が薄れる可能性がある
Copilot Code Reviewの限界
Copilot Code Reviewは強力なツールですが、以下の点を理解しておく必要があります。
- 人間のレビューの代替ではない: AIのレビューは補助的な役割であり、最終判断は人間が行う
- すべての問題を検出できるわけではない: ビジネスロジックの正当性など、コンテキストが必要な判断は苦手
- 誤検知の可能性: 時として不要な指摘や誤った提案を行うことがある
- プレミアムリクエストのクォータ消費: 自動レビューはプルリクエスト作成者のクォータを消費
レビュー結果の検証
Copilotのレビュー結果は必ず検証しましょう。
- 提案された変更が本当に改善になるか確認する
- 誤った指摘にはサムズダウン(👎)でフィードバックを送る
- 有用な指摘にはサムズアップ(👍)で評価する
このフィードバックは、GitHubがCopilot Code Reviewの品質向上に活用します。
まとめ
GitHub Copilot Code Reviewは、コードレビュープロセスを大幅に効率化する機能です。本記事で解説した内容を実践することで、以下のメリットを得られます。
- レビュー待ち時間の短縮: 自動レビューにより、人間のレビュー前に問題を発見
- 一貫性のあるレビュー品質: カスタム指示により、チーム全体で統一されたレビュー観点を適用
- セキュリティチェックの自動化: CodeQL連携により、セキュリティ脆弱性を早期発見
- コーディング規約の自動適用: ESLint/PMD連携により、コード品質を維持
まずはリポジトリのRulesetsで自動レビューを有効化し、.github/copilot-instructions.mdでプロジェクト固有のレビュー観点を設定することから始めてみてください。AIと人間のレビュアーが協力することで、より高品質なコードを効率的に生み出せるようになります。
参考リンク
- Using GitHub Copilot code review - GitHub Docs
- Configuring automatic code review by GitHub Copilot - GitHub Docs
- About GitHub Copilot code review - GitHub Docs
- Adding repository custom instructions for GitHub Copilot - GitHub Docs
- Custom instructions - GitHub Copilot Customization Library
- Available rules for rulesets - GitHub Docs