GitHub Copilot がレビュー プロセスに追加するもの

完了

コード レビューと pull request レビューは品質に不可欠ですが、時間がかかり、不均等になる場合もあります。 開発者は、多くの場合、思慮深いフィードバックを提供しようとしながら、複数の言語、一貫性のない書式設定、および大きな相違を調整します。 GitHub Copilot は、共同作業レビュー担当者とアシスタントとして機能することで、このワークロードを容易にするのに役立ちます。 これは、一般的な問題を検出し、レビューコメントを下書きし、プルリクエストを要約し、さらにはセキュリティリスクを強調して、レビュー担当者に明確な出発点を提供します。 カスタム レビュー手順を使用すると、自分と同じパターンを監視するように Copilot をガイドし、チームとリポジトリ間の一貫性を確保できます。

このユニットを終了すると、次のことができるようになります。

  • コード レビューで Copilot の主な機能を特定します。
  • PRU が高度なレビュー機能のロックを解除する方法について説明します。
  • Copilot レビューが補完し、開発者を支援するさまざまな方法を認識します。

コード レビューにおける Copilot の主な機能

Copilot では、レビューを効率化するために設計されたいくつかの機能が導入されています。

  • PR の概要: Copilot は、変更の明確な概要と影響を受けるファイルの一覧を含む pull request の説明を自動的に下書きできます。 これにより、レビュー担当者は推測ではなくコンテキストで始まります。

  • セキュリティ修正: Copilot コード レビューが GitHub Code Scanning に統合されると、脆弱性に複数の言語でフラグが設定されます。 たとえば、 JavaScript では、Copilot は eval() とコメントに渡された未承認の入力を見つけることができます。

    ユーザー入力を使ったeval()はコードインジェクションを引き起こす可能性があります。 これを JSON.parse() のような安全なパーサーに置き換えます。"その後、リポジトリのセキュリティ ガイドラインに合わせたインライン パッチが提供されます。

  • 行ごとの説明: 校閲者はコードを強調表示し、Copilot に機能の説明を依頼して、未知のコードをすばやく理解できるようにします。

  • コメントの下書き: Copilot は、ベスト プラクティスまたはチームのガイドラインに基づいてレビュー コメントを生成し、フィードバックを明確かつ実用的なものにすることができます。

  • IDE でのレビュー: GitHub.com で直接作業するだけでなく、Copilot は IDE 内のコードをレビューすることもできます。 これにより、開発者は pull request を開く前に問題をキャッチして解決し、プロセスを高速化し、再作業を減らすことができます。

PRU による高度なレビュー機能のロック解除方法を理解する

PRU はこれらの高度な機能を強化します。 たとえば、PR レビュー担当者として Copilot を割り当てると、コメントを投稿するたびに PRU が使用されます。 カスタム .github/copilot-instructions.md ファイルと組み合わせると、PRU を利用したレビューは、読みやすさ、セキュリティ、スタイルのいずれに重点を置いているかにかかわらず、チームのルールに合わせて調整されます。

例:

Copilot がない場合、PR にはレビュー担当者からのあいまいなコメント ( "ここでセキュリティの問題を修正する" など) が含まれる場合があります。 Copilot + PRU の助けを借りて、レビューは次のようになります。

" exec() を使用すると、コードインジェクションの脆弱性が発生します。 コマンドの実行を安全にするために、 subprocess.run() に置き換えることを検討してください。 推奨されるパッチを次に示します:"

また、コード修正をインラインで提供します。

Copilot レビューが開発者を支援する 5 つの異なる方法

次に、Copilot レビューを使用して、よりスマートに作業する方法を確認します。

  • コード レビューの提案
  • 複数の言語にわたる Copilot レビュー
  • プル要求でのデータの書式設定
  • 有効なプル要求の概要の書き込み
  • コードの説明とレビュー

コード レビューでの Copilot の提案の使用

pull request をレビューするときに、改善できる可能性があるが、完全な例やスニペットを自分で下書きする時間がない領域を見つける場合があります。 GitHub Copilot は、著者の作品を引き継ぐことなく、そのギャップを埋めるのに役立ちます。 pull request の [ファイルが変更されました] ビュー内で、コードの行またはブロックを強調表示し、Copilot に改善を提案したり、潜在的な問題にフラグを付けたりすることができます。 その後、Copilot は、レビュー コメントにコピーできる具体的なコンテキストに対応した提案を生成し、フィードバックをより明確かつ簡単に作成者が操作できるようにします。

たとえば、繰り返しロジックを使用して Ruby ファイルを確認するときに、関連する行を強調表示して次の質問を行うことができます。

"この繰り返しのコードに対して、よりクリーンな Ruby リファクターを提案してください。"

Copilot は、一般的な Ruby のベスト プラクティスに従った更新バージョンを提案します。 その推奨事項 (またはその一部) を、自分の説明と共にレビュー コメントに貼り付けることができます。 これにより、全体的な品質とデザインに集中しながらも、レビューとコーディングの間の線をあいまいにすることなく、作成者に実用的で価値の高いフィードバックを提供できます。

複数の言語にわたるレビュー

コード レビューを要求すると、Copilot はベスト プラクティスやチーム のガイドラインに従っていない領域を自動的に強調表示できます

Copilot は、言語の規則に沿った改善を迅速に生成し、主要な専門分野外であっても、より強力で正確なレビュー フィードバックを提供できるようにします。

Go プログラムで変数宣言を短い変数宣言に置き換えるコード提案を示す GitHub pull request のスクリーンショット。

プル要求のデータの書式設定

プル要求は、メトリック、スクリーンショット、テスト結果などの適切な形式のコンテキストを含めると、はるかに明確になります。 ただし、多くの場合、チームはこのコンテンツを一貫して書式設定することを忘れます。 GitHub Copilot は、コードレビューの際に第三者の目として機能し、プルリクエストの説明文において不適切な形式のテーブルを自動で検出し、会社のスタイルガイドラインに合ったより洗練されたバージョンを提案することができます。

例: 開発者は、次のページ読み込み時間の表を含む pull request を送信します。 読みにくいし、チームの Markdown スタイル ガイドに従っていません。

テスト実行 LoadTimeBefore LoadTimeAfter
1.3 1.2
1.2 1.1
1.1 0.885
1.3 1.3
1.2 0.918
平均 1.22 1.0806

レビュー中に、Copilot は次のコメントを投稿します。

"このテーブルは、リポジトリの Markdown ガイドラインに従っていません。 会社のスタイル ガイドに基づくクリーンアップ バージョンを次に示します。

また、PR の説明に貼り付ける準備ができている修正済みのバージョンが含まれています。

テスト実行 事前の読み込み時間 (秒) 更新後の読み込み時間 (秒)
1 1.3 1.2
2 1.2 1.1
3 1.1 0.885
4 1.3 1.3
5 1.2 0.918
平均 1.22 1.0806

校閲者はワンクリックでCopilotの提案を受け入れることができ、PRは再フォーマットに時間を費やすことなく会社のスタイルに従うことができます。

これは、Copilot が (コーディング エージェントではなく) 自動レビュー担当者として機能することを示しています。書式設定されていないテーブルが表示され、 .github/copilot-instructions.mdから会社のガイドラインが適用され、修正されたバージョンがインラインで提供されます。

有効な pull request の概要の作成

PR の説明を書くことは、多くの場合、プロセスの最後のステップであり、ハードルのように感じることができます。 Copilot を使用すると、この作業が簡単になります。 PR 説明エディターから、Copilot アイコンを使用して下書きの概要またはアウトラインを生成できます。 編集を行っても、適切に構造化された開始点を使用すると、時間が節約され、レビュー担当者に必要な情報が確実に得られるようにします。

変更の概要またはアウトラインを生成するための GitHub Copilot オプションを含むコメント ボックスを示す GitHub pull request のスクリーンショット。

コードの説明とレビュー

場合によっては、プル要求のコードに慣れていない場合があります。 それに苦労するのではなく、Copilot に変更を説明するよう依頼できます。 また、チームメイトからのフィードバックを要求する前に、Copilot が独自の PR の初期レビューを実行することもできます。 これにより、小さな問題をキャッチし、ベスト プラクティスを検証し、提出の品質に対する信頼度を高めるのに役立ちます。

これで、コード レビューに関して、Copilot が何を実行できるかがわかります。 次に、GitHub.com で直接Copilotレビューを 使用する方法を見てみましょう。