コードレビュー
コードレビュー
ChatGPT および Codex クライアントでコードの変更をレビューします
- ChatGPT デスクトップアプリ デスクトップでプロジェクト、ファイル、長時間のタスクを扱います。
- ChatGPT ウェブ版 ブラウザーでチャット、プロジェクト、Work を利用します。
- Codex CLI ターミナルで Codex を利用します。
- Codex IDE 拡張機能 エディターで Codex を利用します。
ChatGPT または Codex を使用してコードの変更を理解し、潜在的な問題を調査して、 レビューのフィードバックを準備します。
プルリクエストのレビュー
Code Review プラグインには、プルリクエストの説明、変更されたファイル、 コメント、チェックが表示されます。承認前に潜在的な問題を調査するために使用してください。
GitHub のコードレビューは一般提供されています。GitLab のマージリクエストへの対応は、
Code Review ではプレビュー段階です。GitLab からクラウドレビューを開始するには、
@codex review またはマージリクエストの自動レビューを使用します。詳しくは、
Codex で GitLab のマージリクエストをレビューするを参照してください。
リポジトリを起点とするレビューについては、GitHub 連携ガイドと Codex Cloud (Legacy) の環境セットアップを参照してください。
デスクトップアプリには Code Review が含まれています。インストール済みのプラグインから、アプリのサイドバーにピン留めできます。
プルリクエストを表示する
- サイドバーから Code Review を開きます。
- 求められたら、ソースコードをホストしているサービスのアカウントを接続します。レビュー対象のリポジトリにアクセスできるアカウントを使用してください。
- サイドバーからプルリクエストを選択するか、検索フィールドにそのリンクを入力します。
- 概要 で説明、アクティビティ、コメント、チェックを確認します。 変更 を開くと、変更されたファイルとコメントを差分とともに確認できます。
対応が必要なレビューを見つける
個人の受信トレイを使用して、リポジトリを横断して GitHub のプルリクエストを見つけます。 自分に依頼されたレビューには自分に割り当て、チームに依頼されたレビューには自分のチームに割り当て、自分の変更に戻るには自分が作成 を選択します。 レビューのステータスを確認し、プルリクエストを開いてフィードバックとチェックを確認してください。
後でレビューに戻るには、ツールバーのピンを選択します。プルリクエストはサイドバーのピン留め済み に表示されます。
変更されたファイルと関連するプルリクエストを確認する
変更 でファイルを確認したら、確認済みにする を選択します。 もう一度選択すると、確認済みのマークを解除できます。このマークは、表示中のリビジョンに適用されます。
変更が依存関係のある複数のプルリクエストに分かれている場合は、概要 のスタック から関連するプルリクエストを開き、差分、コメント、チェックを確認します。 このセクションは、Code Review がオープンなプルリクエストのスタックを検出したときに表示されます。
クラウドの自動レビューを読む
ChatGPT Codex コネクターと必要なリポジトリ権限を設定し、自動レビューを有効にすると、GitHub のプルリクエストを開く前に Codex がレビューできます。 コメントは GitHub と Code Review に表示されます。
クラウドレビューでは、クラウド環境を作成したり管理したりする必要はありません。
接続要件、リポジトリの設定、および次のコマンドで開始するレビューについては、
@codex reviewの説明を含むGitHub で Codex を使用するを参照してください。
レビューの指摘事項を差分と照らし合わせて確認します。クラウドの自動レビューは、 プルリクエストのチャットから開始するレビューとは別のものです。
変更について質問する
プルリクエストのチャットで期待する動作を説明し、Codex に変更の説明や調査を依頼します。
Codex でレビュー を選択すると、新しいチャットでレビューが始まります。 既存のチャットの横にプルリクエストを表示している場合は、そのチャットで変更について質問できます。
インストール済みのスキルや接続済みのソースを使って、チームのレビューガイドラインや設計ドキュメントを Codex に提供します。変更の要約とリスクの説明を依頼し、 参照されたコンテキストやコードを確認します。
たとえば、プルリクエストで Issue ボードにオープン とクローズ済み のフィルターを追加するとします。すべて が引き続きデフォルトになり、条件に一致する Issue がない場合は空の状態が表示されることを期待しています。
Walk me through this pull request. Focus on the default filter and what
happens when there are no matching issues. All should remain the default.根拠の提示を依頼します。
Show me the code path and tests for the no-matches case. Explain what is
covered and what still needs verification.参照された差分とテストを、期待する動作と照らし合わせて確認します。
指摘事項を選択すると、変更 でその説明と該当する行を確認できます。 修正が必要かどうかを判断する前に、最新の差分、期待する動作、テストと照らし合わせます。実行中のレビューを停止するには、レビューチャットを使います。
レビューをカスタマイズする
Codex でレビュー の横にあるレビューの指示 の歯車アイコンを選択します。 これらの指示は、設定 > Code Review でも編集できます。
すべてのレビューに共通して適用する基準と報告形式を Codex に指定します。 たとえば、次のように指示します。
Start with a short summary. Prioritize behavior changes, data loss, and
missing edge-case tests. For each finding, explain the triggering input,
expected behavior, and actual behavior. Use our team's concise review style.これらの指示は、リポジトリを問わず、Codex でレビュー から開始するレビューに適用されます。レビューの実行中に変更した指示は、次回のレビューから適用されます。 特定の変更についての質問には、プルリクエストのチャットを使います。
必要に応じて、コミック、可視化、PDF を選択すると、その形式で変更を説明するための指示の候補を追加できます。必要に応じてテキストを編集し、 保存 またはレビューを実行 を選択します。
フィードバックを共有して対応する
チャットでプルリクエストをレビューしても、コメントの投稿、承認、マージは行われません。 どの指摘事項を共有するかは、自分で選択します。
懸念点を検証したら、レビューコメントの作成を Codex に依頼します。
Using the team review guidelines we discussed, draft a comment describing
the no-matches behavior we verified, what should happen instead, and the test
that would cover it. Keep the comment as a draft.投稿する前に、下書きに含まれるファイルと行の参照を確認します。準備が整うまでは下書きをチャットに残しておきます。概要 や変更 から投稿すると、レビューを送信 を待たずに、 ソースプロバイダーへコメントが即座に送信されます。
レビューを送信 からコメント、承認、変更をリクエスト のいずれかを選択し、 ソースプロバイダーにレビューを送信します。送信前に、選択した判断とレビューコメントを確認してください。
自分が作成者の場合は、プルリクエストに戻り、具体的なフィードバックへの対応を Codex に依頼します。対応による変更を確認し、関連するテストを実行します。 承認やマージの前に、最新のリビジョン、チェック、および未対応のフィードバックを確認してください。
Code Review では、画像が添付されたプルリクエストの説明の編集には対応していません。こうした説明を編集するには、GitHub でプルリクエストを開いてください。
チャットで続ける
概要 にスレッド が表示されている場合は、リンクされたチャットを選択すると、その会話に戻れます。ここには、プルリクエストに関連付けられた自分のチャットが表示されます。
Codex でオープンなプルリクエストのチェック にある修正 を選択すると、失敗したチェックをチャットに添付できます。この操作ではメッセージが準備されるだけで、送信はされません。プロンプトを確認または追加してから送信し、Codex に調査を依頼します。修正をプッシュする前に、生成された変更を確認し、関連するテストを再実行してください。
利用できる診断情報は、チェックのプロバイダーによって異なります。サードパーティーの CI では、 Codex は GitHub に報告されたステータスと出力を利用できます。
ローカルの変更をレビューする
Codex に組み込まれた /review コマンドは、Git のチェックアウト内の変更をレビューし、
Code Review プラグインはプルリクエストを扱います。
使用するクライアントを選択して、該当する手順を確認してください。
ChatGPT Work でレビュー対象のコードをアップロードするか、インストール済みのソース プラグインを通じて利用できるようにします。プロンプトで、対象の pull request、ブランチ、コミット、ファイル、レビュー基準を指定してください。
アプリでレビューする
レビューペインを開くと、変更内容を把握し、行ごとのフィードバックを提供して、 ステージ、元に戻す、コミット、プッシュの対象を決められます。
Codex に変更のレビューを依頼するには、コンポーザーに /review と入力します。
ベースブランチとの差分をレビュー または未コミットの変更をレビュー を選択します。Codex は作業ツリーを変更せず、優先順位を付けた指摘事項を報告します。
レビューペインを使用するには、プロジェクトが Git リポジトリ内にある必要があります。プロジェクトがまだ Git リポジトリでない場合、アプリに作成を促すメッセージが表示されます。
/review と入力して、CLI のレビュープリセットを開きます。Codex は専用のレビュアーを起動し、
選択した差分を読み取って、優先順位が付けられた実行可能な指摘事項を、
作業ツリーを変更せずに報告します。
IDE 拡張機能のメッセージ作成欄に /review と入力します。ベースブランチとの差分をレビュー またはコミットされていない変更をレビュー を選択します。Codex は、作業ツリーを変更せずに、優先順位が付けられた指摘事項を報告します。
/review コマンドは、開いているプロジェクトが Git
リポジトリ内にある場合にのみ表示されます。
レビュー範囲を選択する
プロンプトで、確認する pull request、ブランチ、コミット、またはファイルを指定します。インストール済みのソースプラグインから利用できないローカルファイルをレビューするには、 チャットにアップロードしてください。
表示される変更
レビューペインには、Codex が編集した内容だけでなく、Git リポジトリの状態が反映されます。Codex による変更、自分で加えた変更、リポジトリ内のその他すべての未コミットの変更が含まれます。
デフォルトでは、レビューペインにステージされていない 変更が表示されます。Git インデックスには ステージ済み、選択したコミットにはコミット、ベースブランチとの差分には ブランチ、直近のアシスタントターンには前回のターン を使用します。
複数のリポジトリをレビューする
ローカルプロジェクトに複数のフォルダーが含まれ、 それぞれが異なる Git リポジトリに対応している場合、レビューペインには各リポジトリの変更を表示できます。レビューのヘッダーにあるリポジトリセレクターを開くと、 現在のレビューペインを離れずに別のリポジトリを確認し、追加または削除された行を表示できます。
接続されている複数のリポジトリにわたるアシスタントの最新の変更を表示するには、前回のターン を選択します。 このビューでは、リポジトリセレクターにすべてのリポジトリ と表示されます。ステージされていない、 ステージ済み、ブランチ など、その他のレビュー範囲は、選択したリポジトリに適用されます。
次の /review スコープのいずれかを選択します。
- ベースブランチとの差分をレビュー は、マージベースを特定し、ブランチの差分をレビューします。
- コミットされていない変更をレビュー には、ステージ済み、未ステージ、未追跡のファイルが含まれます。
- コミットをレビュー は、選択したコミットの正確な変更セットをレビューします。
- カスタムレビュー指示 は、指定した基準に沿ってレビューを行います。
次の /review スコープのいずれかを選択します。
- ベースブランチとの差分をレビュー は、現在のブランチと選択したブランチを比較します。
- コミットされていない変更をレビュー は、作業ツリー内の変更をレビューします。
レビュー結果を活用する
レビューの指摘事項は Web チャットに表示されます。根拠を尋ねたり、 対象をさらに絞った追加レビューを依頼したり、修正済みファイルの準備を ChatGPT に依頼したりできます。
コードレビューの結果
レビューの指摘事項は、レビューペインにインラインコメントとして表示されます。
デフォルトでは、レビューは現在のチャットで実行されます。設定 > 一般 > コードレビュー で分離 を選択すると、別のレビューチャットを開始できます。 開発者設定を参照してください。
レビューは、トランスクリプト内の 1 つのターンとして表示されます。現在のセッションとは異なるモデルをレビューに使用する場合は、config.toml で
review_model を設定します。
デフォルトでは、レビューは現在のチャットで実行されます。/review で別のレビューチャットを開始する場合は、
chatgpt.reviewDelivery を detached に設定します。
IDE 拡張機能の設定リファレンスを参照してください。
ChatGPT に修正済みファイルの準備を依頼する場合も、そのチャットで利用できるツールとワークスペースの権限が引き続き適用されます。
Codex に検出した問題の修正を依頼する場合は、通常のサンドボックスと承認の設定が適用されます。
レビューペイン内を移動する
- ファイル名をクリックすると、通常は選択したエディターでそのファイルが開きます。 デフォルトのエディターは開発者設定で選択できます。
- ファイル名の背景部分をクリックすると、差分が展開または折りたたまれます。
- Command を押しながら行をクリックすると、選択したエディターでその行が開きます。
- 変更に問題がなければ、ステージングしたり、不要な変更を元に戻したりできます。
フィードバック用のインラインコメント
インラインコメントを使用すると、差分内の特定の行にフィードバックを直接添付できます。 多くの場合、Codex を適切な修正へ導く最も速い方法です。
インラインコメントを残すには、次の手順に従います。
- レビューペインを開きます。
- コメントしたい行にカーソルを合わせます。
- 表示される + ボタンを選択します。
- フィードバックを入力して送信します。
- フィードバックをすべて残したら、チャットにメッセージを送信します。
コメントは行に紐づいているため、Codex は一般的な指示よりも正確に対応できます。
Codex はインラインコメントをレビューのガイダンスとして扱います。コメントを残した後、 たとえば「インラインコメントに対応し、変更範囲は最小限にしてください」のように、意図を明確にするフォローアップメッセージを送信してください。
ファイルをステージする、または元に戻す
レビューペインには Git の操作が用意されており、コミットする前に差分を整えられます。
次の単位で、変更をステージ、ステージ解除、または元に戻すことができます。
- 差分全体: すべてステージ やすべて元に戻す など、レビューのヘッダーにある操作ボタンを使用します。
- ファイル単位: 個々のファイルをステージ、ステージ解除、または元に戻します。
- ハンク単位: 1つのハンクをステージ、ステージ解除、または元に戻します。
作業の一部を採用する場合はステージを使用し、破棄する場合は元に戻します。
ステージ済みとステージされていない状態
Git では、同じファイル内にステージ済みの変更とステージされていない変更の両方が存在することがあります。その場合、両方のビューに同じファイルが表示されることがあります。これは Git の通常の動作です。