
はじめに
この記事はBASEアドベントカレンダーの12日目の記事です。
BASEのカートチームでバックエンドエンジニアをしている、かがの(@ykagano)です。
他チームのコードも含めてレビューをする機会が増えてきたので、コードレビューの話をしようと思います。
コードレビューの流れ
普段自分が行っているコードレビューの流れは下記表の通りです。
GitHub Copilot Code Reviewでは個別コメントの形でレビューしてくれるのですが、コード自体の品質を複数の観点で評価をしてもらいたいことから、別途VSCodeで複数のレビュー観点を与えた上でコードレビューを行っています。
今回はこの「VSCodeのGitHub Copilotに独自観点を与えて対象PRのコードレビューを依頼する」の部分を解説します。
| No. | 概要 | 補足 |
|---|---|---|
| 1 | descriptionで概要を掴む | |
| 2 | PRにプロジェクト用のlabelが付いているか確認をする | Findy Team+で対象プロジェクトを計測しているため |
| 3 | GitHub Copilot Code Reviewが実施済みか確認する | 実施済みでなければレビュアーに追加する |
| 4 | VSCodeのGitHub Copilotに独自観点を与えて対象PRのコードレビューを依頼する | 詳細は後述 |
| 5 | その間にコードをざっと読む | |
| 6 | GitHub Copilotに依頼したコードレビューの応答結果を確認する | |
| 7 | 応答結果を踏まえてコードの気になった部分をあらためて読む | |
| 8 | リリース影響の動作確認ができているか確認する | FeatureFlagを使わないリリースの場合、既存の動作確認ができているか確認する |
| 9 | 気になった点があればコメントする | この時、コメントのtypoのようなnitsが一点だけならコメントしませんが、imoがあれば一緒に報告します |
| 10 | 問題なければApproveする |
MCP ServerとCustom Instructionsの準備
VSCodeにGitHub Copilot Chatの拡張機能をインストールしていることを前提とします。
まずGitHub MCP ServerをVSCodeにインストールします。
下記GitHub MCP ServerからInstall MCP Serverボタンを押してVSCodeにインストールしてください。
インストール直後に「PAT(Personal Access Token)or App token」の入力が求められるので、いずれかを入力してください。
これでGitHub MCP Serverが使用できるようになりました。
次にCustom Instructionsを準備します。
プロジェクトの .github/instructions 配下に codereview.instructions.md ファイルを作成します。
Gistにアップロードしましたので内容はこちらのリンクからご確認ください。
https://gist.github.com/ykagano/0db4debc7339a93038858b5ec677dc8e
codereview.instructions.md の最下部に記載のコードレビューの手順を抜粋します。
# コードレビューの手順 1. [ ] まずは変更が加えられたファイルの一覧を確認してください。 2. [ ] 次に変更差分を取得して、どのような対応がされているかを解説してください。 3. [ ] 変更差分について、コードレビューガイドラインの項目について○△×で評価して表にしてください。 4. [ ] テストクラスに実装されているテストケースを列挙してください。不足しているテストがあれば指摘してください。 5. [ ] 同じネームスペース内に存在する既存実装を参照して参照したクラス名を教えてください。また、それらのクラスと比較して過度に異なる実装をしている場合は指摘してください。 6. [ ] 気になった箇所について、詳細な説明と改善案を提案してください。
コードレビューは上記手順で実行されます。
ではここからはVSCodeでCopilotにPRをコードレビューしてもらいます。
GitHub CopilotのCustom Instructionによるコードレビュー
VSCodeでCopilot Chatを開きます。
チャットの左上にある「コンテキストの追加」を選択すると、入力エリアが開くので「手順…」を選択します。

「codereview」を選択します。

その後以下のプロンプトをチャットに入力します。
https://github.com/[org]/[repo]/pull/[num] をレビューしてください
つまりPRのURLを貼って「レビューしてください」と言うだけです。
するとGitHub MCP Serverを通して取得したコード差分をCopilotがチェックし、Custom Instructionsで与えた観点に沿ったレビュー結果が表示されます。
ここではサンプルコードをCopilotに作成してもらい、一時的に作成したPRに対してレビューしてみます。
まずPRの概要と変更内容が解説されます。

「コードレビューガイドライン」に沿って○△×で評価してくれます。

テストケースが列挙され、既存実装と比較されます。

気になった箇所と改善点を列挙してくれます。

最後にPR作成者への質問があれば列挙され、総評が出力されます。

これらの情報はコードをレビューする上で、有益な情報になっていると思います。
参考にさせていただいた記事
こちらのCustom Instructionsは、以下の記事を参考に作成しています。
コードレビュー結果を○△×の表で評価する方法を使わせていただきました。
多数のコードレビューガイドラインを用意されていたので非常に参考になりました。
また作成にあたり @OgasawaraYuki さんにご協力いただきました(@OgasawaraYuki さんはアドベントカレンダー21日目に登場予定です)。
ありがとうございました!
おわりに
Copilotによってある種複眼でのチェックが単独で行えるようになりました。
自分の眼で確認したレビュー品質の下限を担保できる上に、レビュー速度も向上しました。
BASEではこのようにCopilotと協働いただけるエンジニアを募集しています。
明日は @UenoKazuki さんの記事です、お楽しみに!