GitHub Copilot code reviewでPRを自動レビューする

公開日:
目次

PRのコードレビューを自動化したいと思いました。GitHub Copilot code reviewを使えば、PRを作成するたびに自動でレビューが走るようにできます。設定方法を調べたので備忘録です。

GitHub Copilot code reviewとは

GitHub Copilot code reviewは、PRのコードをCopilotが自動でレビューしてくれる機能です。セキュリティの問題やコードの改善点を指摘してくれます。

私が気に入っているポイントは以下です。

  • 修正提案がそのまま適用できる :指摘にはコード修正が含まれており、数クリックで適用できる
  • すべての言語に対応 :特定の言語に限らず使える
  • 静的解析ツールと連携可能 :CodeQL、ESLint、PMDと組み合わせられる

利用条件

Copilot code reviewはプレミアム機能です。以下のプランで利用できます。

  • Copilot Pro
  • Copilot Pro+
  • Copilot Business
  • Copilot Enterprise

Copilot Freeでは利用できません。

自動レビューを有効にする

PRを作成するたびにCopilotが自動でレビューするように設定します。設定方法は2つあります。

個人設定で有効にする場合

Copilot Pro/Pro+プランの場合は個人設定から有効にできます。

  1. GitHubの右上にあるプロフィール画像をクリック

Image from Gyazo

  1. Copilot settings を選択
  2. Automatic Copilot code reviewEnabled に変更

Image from Gyazo

Rulesetsで有効にする場合

リポジトリや組織全体で統一的に設定したい場合はRulesetsを使います。

リポジトリの設定画面を開きます。

Settings → Rules → Rulesets → New ruleset → New branch ruleset

以下の項目を設定します。

  • Ruleset name :任意の名前(例:copilot-review)
  • Enforcement StatusActive を選択
  • Target branches :対象ブランチを指定(Include default branchなど)

Branch rules セクションで以下をチェックします。

  • Automatically request Copilot code review :自動レビューを有効化

オプションとして以下も設定できます。

  • Review new pushes :プッシュのたびにレビュー実行
  • Review draft pull requests :ドラフトPR段階からレビュー実行

最後に Create をクリックして完了です。

レビューの観点

Copilot code reviewは以下の観点からコードを分析します。

  • コード構造の最適化
  • 重複コードの検出(DRY原則)
  • セキュリティの脆弱性(CodeQL連携時)

静的解析ツールとの連携も可能です。CodeQLはデフォルトで有効になっていますが、ESLintやPMDは手動で有効にする必要があります。

注意点

レビューリクエストごとに月間クォータを1件消費します。自動レビューの場合、クォータはPR作成者に適用されます。月間クォータに達すると、リセットされるまで利用できなくなります。

組織でCopilot Business/Enterpriseを契約している場合、ライセンスを持っていないメンバーもコードレビュー機能を使えるようにできます。ただし、追加使用料(Overage usage)として課金されるため、管理者がポリシーで明示的に有効化する必要があります。