GitHub CopilotのChat機能でコードレビューを効率化する実践ガイド
GitHub CopilotのChat機能を活用してコードレビューを自動化・効率化する具体的な手順と活用パターンを解説します。
GitHub CopilotのChat機能でコードレビューを効率化する実践ガイド
コードレビューは開発チームの品質担保に欠かせないプロセスですが、「レビューに時間がかかりすぎる」「指摘漏れが怖い」「一人開発でセルフレビューが甘くなる」という悩みを抱えている方は多いのではないでしょうか。
GitHub Copilotといえば補完機能が有名ですが、Copilot Chatを使ったコードレビュー支援は、まだ十分に活用されていないケースが目立ちます。
この記事では、GitHub Copilot Chatのコードレビュー関連機能を徹底解説します。 単なるコード補完を超えた、「AIとの対話型レビュー」の実践手順を、具体的なプロンプト例・設定例とともに紹介していきます。
GitHub Copilot Chatとは?補完機能との違いをおさらい
GitHub Copilotには大きく分けて2つのモードがあります。
- Copilot(補完モード): コードを書いている最中にリアルタイムでサジェストを表示する従来機能。
- Copilot Chat: テキストで質問・指示を出し、AIと対話しながらコードの説明・改善・レビューを行う機能。
Copilot Chatは、2023年末にGA(一般提供開始)されて以降、急速に機能が拡張されています。 現在では、Visual Studio Code・JetBrains IDE・GitHub.com上のPull Requestなど複数の場所で利用できます。
コードレビューの文脈では、「選択したコードに対して質問する」「Pull Request全体をAIにレビューさせる」という2つの使い方が特に強力です。
事前準備:Copilot Chatを使えるようにする
まずは使えるかどうかを確認しましょう。
必要なプランと権限
- GitHub Copilot Individual / Business / Enterprise のいずれかのサブスクリプションが必要です。
- Business・Enterpriseプランでは、Organization管理者がCopilot Chatを有効化している必要があります。
- 詳細は GitHub Copilot公式ドキュメント で確認できます。
VS CodeへのCopilot Chat拡張機能のインストール
VS Codeを使う場合、以下の手順で拡張機能を導入します。
- VS Codeを開き、左サイドバーの「拡張機能」アイコンをクリック。
- 検索バーに
GitHub Copilot Chatと入力。 - 「GitHub Copilot Chat」(Microsoftが公開しているもの)をインストール。
- GitHubアカウントでサインインしてアクティベート完了。
インストール後、左サイドバーにチャットアイコンが表示されれば準備完了です。
# VS Code CLIから拡張機能をインストールすることも可能
code --install-extension GitHub.copilot-chat
JetBrains IDEの場合も、Marketplaceから「GitHub Copilot」プラグインを導入することで、同様のChat機能が利用できます。
実践①:選択コードへのインラインレビュー
Copilot Chatの最もシンプルかつ強力な使い方が、「コードを選択して質問する」インラインレビューです。
使い方の手順
- VS Codeでレビューしたいコードをマウスまたはキーボードで選択する。
- 右クリックメニューから 「Copilot」→「Explain This」「Fix This」 などを選ぶ、もしくはチャットパネルを開いて直接質問する。
- AIが選択範囲のコードをコンテキストとして認識した上で回答してくれる。
実際に使えるプロンプト例
レビュー観点を具体的に伝えると、より精度の高い指摘が返ってきます。 以下に実践的なプロンプト例をまとめました。
# セキュリティ観点でのレビュー
このコードにセキュリティ上の問題点はありますか?
SQLインジェクション・XSS・認証バイパスの観点で確認してください。
# パフォーマンス観点でのレビュー
この関数のパフォーマンスを改善できる点を指摘してください。
特にループ処理・メモリ使用量・非同期処理の観点でお願いします。
# 可読性・保守性の観点でのレビュー
このコードの可読性を改善するためのリファクタリング案を提示してください。
変数名・関数の責務分離・コメントの観点で教えてください。
# テストの観点でのレビュー
このコードに対してどのようなユニットテストを書くべきか、
テストケースの一覧と理由を教えてください。
返ってくる回答の例
例えば以下のような簡単な関数を選択してレビューを依頼すると:
def get_user(user_id):
query = "SELECT * FROM users WHERE id = " + user_id
return db.execute(query)
Copilot Chatは次のような指摘を返します。
【セキュリティ問題の指摘】
このコードにはSQLインジェクションの脆弱性があります。
user_idを直接文字列連結しているため、悪意のある値が渡された場合に
データベースが不正操作される危険性があります。
【修正案】
プレースホルダーを使ったパラメータ化クエリへの変更を推奨します:
def get_user(user_id):
query = "SELECT * FROM users WHERE id = ?"
return db.execute(query, (user_id,))
このように、問題の説明と修正案をセットで提示してくれるため、レビュー品質が一段階上がります。
実践②:Pull RequestをAIに自動レビューさせる
GitHub.com上のPull Requestでも、Copilot Chatが活用できます。 これはチームでのレビュー作業を大幅に効率化できる、特に注目の機能です。
GitHub上でのCopilot Chatの使い方
- GitHub.comでPull Requestを開く。
- 「Files changed」タブで差分を表示する。
- コードの行番号の横に表示される「Copilotアイコン」をクリックするか、コメント欄でCopilotにメンションしてレビューを依頼する。
Copilot on Pull Requestsを活用する
GitHub Copilot Enterprise プランでは、Pull RequestのサマリーをAIが自動生成する 「Copilot pull request summaries」 機能が利用できます。
この機能を使うと:
- PRの変更内容を自然言語で自動要約。
- 影響を受けるファイルと変更の意図を一覧化。
- レビュワーが「何が変わったか」を即座に把握できる。
Enterpriseプランでない場合でも、Copilot Chatのコメント機能でほぼ同等のことが手動でできます。
チームでのPRレビューフローに組み込む方法
実際のチーム運用では、以下のようなフローが効果的です。
1. PR作成者がCopilotにセルフレビューを依頼
PRを出す前にCopilot Chatで「このコードの問題点を洗い出してほしい」と聞き、明らかなバグや抜けをセルフ修正してからレビュー依頼を出す。
2. レビュワーがCopilotを使って理解を深める
「この変更の意図を説明してほしい」「この関数は何をしているか」といった質問をCopilotにすることで、コードの理解速度が上がる。
3. レビューコメントの文章をCopilotに整えてもらう
「指摘内容を丁寧かつ建設的な文章に書き直してほしい」とCopilotに依頼することで、コミュニケーション品質も向上する。
実践③:カスタム指示(Custom Instructions)でレビュー観点を固定する
Copilot Chatには 「Custom Instructions(カスタム指示)」 機能があり、毎回同じ前提条件を伝えなくても済むように、プロジェクトやチームのルールを事前設定できます。
これは .github/copilot-instructions.md ファイルをリポジトリに置くことで設定できます(公式ドキュメント参照)。
設定ファイルの作成手順
リポジトリのルートに以下の場所にファイルを作成します。
プロジェクトルート/
├── .github/
│ └── copilot-instructions.md ← ここに作成
├── src/
└── ...
copilot-instructions.md の記載例
# GitHub Copilot カスタム指示
## プロジェクト概要
このリポジトリはNext.js + TypeScriptで構築されたECサイトです。
バックエンドはNode.js + PostgreSQLを使用しています。
## コードレビューの観点
コードをレビューする際は以下の点を必ず確認してください:
1. **型安全性**: TypeScriptの型定義が適切か。anyの使用を避けているか。
2. **セキュリティ**: ユーザー入力の検証・エスケープが行われているか。
3. **エラーハンドリング**: 例外処理が適切に実装されているか。
4. **パフォーマンス**: N+1クエリや不要な再レンダリングが発生していないか。
5. **テスト**: 変更に対応するテストが追加・更新されているか。
## コーディング規約
- 変数名・関数名はcamelCaseを使用する。
- コンポーネント名はPascalCaseを使用する。
- コメントは日本語で記載する。
- 関数は1つの責務のみを持つようにする(単一責任の原則)。
## 禁止事項
- console.logをコミットに含めない。
- any型の使用を避ける(やむを得ない場合はコメントで理由を明記)。
- 直接DOMを操作するコードをReactコンポーネント内に書かない。
このファイルをリポジトリに追加するだけで、Copilot Chatが常にプロジェクトのルールを踏まえた上でレビューや回答をしてくれるようになります。 毎回「TypeScriptのプロジェクトです」「日本語でお願いします」と伝える手間がなくなる点が大きなメリットです。
実践④:よくあるレビュー指摘パターンをCopilotに学習させる
繰り返し発生するレビュー指摘を事前にCopilotに伝えておくことで、チーム固有のレビュー品質を担保できます。
「チームの指摘パターン」をプロンプトに組み込む方法
過去のレビューコメントを集めて、以下のような形式でCopilotに伝えるプロンプトを作ると効果的です。
私たちのチームでは以下のパターンをよく指摘します。
これらの観点を重点的にチェックしてください。
【よくある指摘パターン】
1. useEffectの依存配列が不完全(ESLintのexhaustive-depsルール違反)
2. Promiseのエラーハンドリングが.catch()またはtry-catchで行われていない
3. React Keyにindexを使用している
4. 環境変数がハードコーディングされている
5. パスワードや認証トークンがログに出力されている
上記のコードを上記の観点でレビューし、問題があれば具体的な修正案とともに指摘してください。
こうしたテンプレートプロンプトをチームのドキュメント(NotionやConfluenceなど)に共有しておけば、全員が同じ基準でAIレビューを活用できます。
スニペットとして登録する(VS Code)
VS Codeのユーザースニペット機能を使えば、上記のプロンプトをショートカットで呼び出せます。
Ctrl+Shift+P→「スニペット: ユーザースニペットの構成」→「グローバルスニペット」から以下のように設定します。
{
"Copilot Code Review": {
"prefix": "review",
"body": [
"以下のコードを私たちのチームのコーディング規約に基づいてレビューしてください。",
"観点: セキュリティ・パフォーマンス・TypeScript型安全性・エラーハンドリング・テストの網羅性",
"問題点があれば、問題の説明と修正案をセットで提示してください。",
"日本語で回答してください。"
],
"description": "Copilot Chatコードレビュー用プロンプト"
}
}
これにより、Copilot Chatの入力欄で review と打つだけで定型プロンプトが展開され、毎回タイピングする手間がなくなります。
Copilot Chatのコードレビューで気をつけるべきこと
Copilot Chatは非常に強力ですが、使う上でいくつかの注意点があります。
AIの指摘を鵜呑みにしない
Copilot Chatが「問題なし」と回答しても、必ずしも完全に安全とは言えません。 特にドメイン固有のビジネスロジックや、外部システムとの連携仕様に関わる部分は、AIが文脈を十分に把握できていないことがあります。 AIのレビューはあくまで「一次チェックの補助」と位置づけ、最終判断は人間が行うことが重要です。
機密情報の取り扱い
Copilot Chatに貼り付けるコードに、APIキーやパスワードなどの機密情報が含まれていないか注意してください。 GitHub Copilotのプライバシーポリシー でデータの扱いが説明されていますが、機密データを意図せず送信しないよう注意が必要です。
Copilotの知識カットオフに注意
Copilot Chatが学習しているデータには知識カットオフがあるため、ごく最近リリースされたライブラリのバージョンやAPIの変更に追いついていない場合があります。 最新バージョンの仕様については、必ず公式ドキュメントで確認する習慣をつけましょう。
Copilot for Business/Enterpriseのポリシー確認
組織でCopilot Businessを使っている場合、管理者がCopilot Chatの使用を制限していることがあります。 また、入力したコードがモデルの学習に使われないよう設定する方法については、GitHub Copilotのデータプライバシー設定 を確認してください。
まとめ:Copilot Chatをコードレビューに組み込む3ステップ
ここまで解説した内容を振り返り、実際に導入するための3ステップをまとめます。
ステップ1: まず個人で試す
自分のローカル開発環境(VS Code)でCopilot Chat拡張機能をインストールし、自分のコードを選択して「セキュリティ上の問題を指摘してください」と質問してみましょう。 最初の一歩として最もハードルが低く、即座に効果を実感できます。
ステップ2: プロジェクトにcustom instructionsを追加する
.github/copilot-instructions.md ファイルをリポジトリに追加し、プロジェクト固有のルールや禁止事項を記載します。
これだけで毎回のプロンプトが短くなり、レビューの精度も上がります。
ステップ3: チームでレビュープロンプトを標準化する
チームでよく指摘するパターンをテンプレートプロンプトとしてドキュメント化し、全員が同じプロンプトを使えるようにします。 VS Codeのスニペット機能に登録すれば、ショートカット一発で呼び出せる環境が整います。
Copilot Chatを使ったコードレビューは、「AIが全部やってくれる」ものではありません。 しかし、一次チェックの自動化・指摘漏れの防止・レビュースピードの向上 という3つの点で、開発生産性を確実に底上げしてくれます。 まずは今日、手元のコードを1つ選択してCopilot Chatに「問題点を指摘して」と聞いてみることから始めてみてください。