PRレビューを自動化しよう!GitHub Copilot × システムプロンプトの基本

PRレビューを自動化しよう!GitHub Copilot × システムプロンプトの基本

ども!AI関連のブログを頑張って執筆中の龍ちゃんです。最近は、設計から開発まで幅広い範囲でのAI活用をしています。一向に仕事がなくなる気配がないですね。AIが仕事を奪うのはいつになるのでしょうか。それまでは、活用して業務効率化していかないといけないですね。

さて!今回は「GitHub CopilotのPull Request(PR)レビューにシステムプロンプトを与える」という内容になっています。GitHub Copilotをレビュワーとして活用している方の中に以下のような課題感を抱えた方がいれば、興味のある内容だと思います。

  • 英文でのレビューを日本語化したい
  • CopilotのPRの観点があいまい
  • コードレビューの品質を一定化したい

GitHub Copilotのレビューを向上させる

GitHub Copilot on VSCodeでシステムプロンプトを追加する

GitHub Copilotにシステムプロンプトを挿入する方法」についてはこちらで触れています。こちらでは、.github/copilot-instructions.mdというファイルを作成して自然言語でシステムプロンプトを設定しています。残念ながら、上記の方法ではPR発行時に読み込んでくれません。

GitHub Copilotにシステムプロンプトを追加する

GitHub Copilot PRレビューにシステムプロンプトを組み込む方法としては、PRに直接記述する必要があります。

# 実施事項
<!-- ここに人間向きのPRを書く -->

<!-- for GitHub Copilot review rule -->

日本語で記載してください。(Copilot向けの指示)

<!-- for GitHub Copilot review rule-->

PRの観点が一定の場合は、テンプレートとしてリポジトリ単位で保存しておくと効果的です。PRのテンプレートを作成する方法としては複数あります。

  • リポジトリのルート直下にpull_request_template.mdを配置
  • docsファイル直下にpull_request_template.mdを配置
  • .githubファイル直下にpull_request_template.mdを配置

docs.githubファイルの場合は、PULL_REQUEST_TEMPLATEというファイルを生成することで複数のテンプレートを作成することができます。

copilot-instructionspull_request_template の違い

これらの2つのファイルは、それぞれ異なる役割と特徴を持っていますが、上手く組み合わせることで効果的なPRレビュー環境を構築することができます。以下の表で違いについてまとめます。

項目.github/copilot-instructions.mdpull_request_template.md
用途Copilot(AI)に対するシステムプロンプト・カスタム指示を設定し、PR作成やCopilot Chatなどで自動的に反映させるPR作成時の説明・チェックリスト・レビュールールなどを人間・AIの両方に提示するテンプレート
主な対象Copilot(AI)PR作成者・レビュアー・Copilot(AI)
記述場所.github/copilot-instructions.md.github/pull_request_template.md
(または他の指定ディレクトリ)
反映タイミングCopilot Copilotの応答時
(Cpilot Chat, inline Chat …)
PR作成時にPR本文へ自動挿入される
人間への見やすさ人間は通常直接見ないPR本文に表示されるため人間も確認可能
運用の柔軟性リポジトリ全体に一括でAI指示を適用できる複数テンプレートや内容のカスタマイズが容易
主なメリットAI応答の一貫性・自動化PR作成の標準化・レビュープロセスの明確化・人間とAI両方に伝達可能
主なデメリット人間には直接見えない・AIが必ずしも全て反映するとは限らない指示がPR本文に残るためノイズになる場合も・AIへの伝達は工夫が必要

GitHub Copilot PR用プロンプト備忘録

こちらはまだ検証中の内容になります。運用を進めてみて、進展があればブログにてまとめて行きます。

コメントは絶対日本語でほしい

これは、マストで入れておきたい内容です。別に翻訳アプリを使うので、読めなくはないのです。ただ圧倒的に気分が駄々下がりになるので、絶対日本語化はしておきたいです。

絶対日本語で出力してください。

無視しておきたいことを「禁止事項」として追記

これは、開発時における不満です。Typescript環境でconsole.log を一生注意されるんです。検証時には残しておきたいですが、気分的にコンソールでトークン数が消費されるの気持ち的にげんなりです。

そのため、不要な指摘を減らすために以下のようなプロンプトを追加しています。

以下の点については、レビューの対象外としてください:
- console.logの使用
- 開発環境用の一時的なコメントアウト
- デバッグ用の一時的な変数

このように明示的に除外項目を指定することで、より効率的なレビューが可能になります。

もちろん、最終的なコードには含まれていては困るので改めてレビュー観点への追加対応を行う必要はあります。

おわり

今回は、GitHub CopilotのPRレビューをより効果的に活用するための方法として、システムプロンプトの追加方法とPRテンプレートの活用について紹介しました。AIと人間の両方に役立つ指示を設定することで、レビューの品質向上と一貫性を実現できます。これらのツールを上手く組み合わせることで、より効率的な開発プロセスを構築していきましょう。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です