ChatGPT や Codex を使ってコードの変更内容を把握し、問題がないか調べて、レビューコメントを準備できます。
Pull Request のレビュー
Code Review プラグインでは、Pull Request の説明、変更されたファイル、コメント、チェック結果を確認できます。承認する前に、問題がないか調べる際に利用してください。
GitHub のコードレビューは一般提供されています。Code Review での GitLab マージリクエストのサポートはプレビュー段階です。GitLab から @codex review でクラウドレビューを開始する方法や、マージリクエストを自動でレビューする方法については、Codex を使った GitLab マージリクエストのレビューを参照してください。
リポジトリから開始するレビューについては、GitHub 連携ガイドと Codex Cloud(レガシー)の環境設定を参照してください。
デスクトップアプリには Code Review が含まれています。インストール済みプラグインの一覧から、アプリのサイドバーにピン留めできます。
Pull Request の表示
- サイドバーから Code Review を開きます。
- 接続を求められたら、ソースコードのホスティングサービスのアカウントを接続します。レビューするリポジトリにアクセスできるアカウントを使用してください。
- サイドバーから Pull Request を選択するか、検索欄にそのリンクを入力します。
- 概要で説明、アクティビティ、コメント、チェック結果を確認します。変更を開くと、変更されたファイルとコメントを差分とともに確認できます。
対応が必要なレビューの確認
個人の受信トレイでは、複数のリポジトリにまたがって GitHub の Pull Request を探せます。自分に依頼されたレビューは自分に割り当て、チームに依頼されたレビューは自分のチームに割り当て、自分が作成した Pull Request は自分が作成を選択します。レビューのステータスを確認してから Pull Request を開き、フィードバックとチェック結果を確認します。
後でレビューに戻れるようにするには、ツールバーのピンを選択します。サイドバーのピン留め済みにその Pull Request が表示されます。
変更されたファイルと関連する Pull Request の確認
変更でファイルをレビューしたら、そのファイルの確認済みにするを選択します。もう一度選択すると確認済みのマークが外れます。このマークは、表示中のリビジョンに適用されます。
変更が依存関係のある複数の Pull Request に分かれている場合は、スタックを概要で開きます。そこから関連する Pull Request を開くと、差分、コメント、チェック結果を確認できます。このセクションは、Code Review が依存関係でつながったオープンな Pull Request を検出した場合に表示されます。
自動クラウドレビューの確認
ChatGPT の Codex コネクタを接続し、必要なリポジトリ権限を付与して自動レビューを有効にすると、GitHub の Pull Request を開く前に Codex がレビューできます。コメントは GitHub と Code Review の両方に表示されます。
クラウドレビューを利用するために、クラウド環境を作成したり管理したりする必要はありません。接続要件、リポジトリの設定、@codex review で開始するレビューについては、GitHub での Codex の利用を参照してください。
レビューの指摘事項を差分と照らし合わせて確認します。自動クラウドレビューは、Pull Request のチャットから開始するレビューとは別に実行されます。
変更内容についての質問
Pull Request のチャットで期待する動作を伝え、変更内容の説明や調査を Codex に依頼します。
Codex でレビューを選択すると、新しいチャットでレビューが始まります。既存のチャットと並べて Pull Request を表示している場合は、そのチャットで変更について質問できます。
インストール済みのスキルや接続済みのソースを使って、チームのレビューガイドラインや設計文書を Codex に共有します。変更の要約とリスクの説明を依頼し、Codex が参照した背景情報とコードを確認します。
たとえば、ある Pull Request で課題ボードに Open と Closed のフィルターを追加するとします。期待する動作は、既定のフィルターが引き続き All で、条件に一致する課題がないときはそのことが画面に示されることです。
この Pull Request の変更内容を順に説明してください。特に、既定のフィルターが引き続き All になっているか、条件に一致する課題がない場合にどう動作するかを確認してください。判断の根拠を尋ねます。
条件に一致する課題がない場合のコードの実行経路と、そのケースを対象とするテストを示してください。テストで何を確認でき、何をさらに検証する必要があるかを説明してください。参照された差分とテストが、期待する動作に合っているか確認します。
指摘事項を選択すると、変更で説明と該当行を確認できます。修正が必要かどうかは、最新の差分、期待する動作、テストと照らし合わせて判断します。実行中のレビューは、レビュー用のチャットから停止できます。
レビューのカスタマイズ
レビュー指示の歯車アイコンは、Codex でレビューの横にあります。このアイコンを選択して指示を編集します。設定 > Code Review からも編集できます。
複数のレビューで共通して使う評価基準と報告形式を Codex に伝えます。たとえば、次のように指示します。
まず、変更内容を簡潔にまとめてください。動作の変更、データの損失、エッジケースのテスト漏れを優先して確認してください。指摘事項ごとに、どの入力で問題が起きるのか、期待される動作は何か、実際にはどう動作するのかを説明してください。チームのレビューの書き方に合わせて簡潔に書いてください。この指示は、リポジトリを問わず、Codex でレビューから開始するレビューに適用されます。レビューの実行中に指示を変更した場合は、次のレビューから反映されます。個別の変更について質問するには、その Pull Request のチャットを使います。
必要に応じて、漫画、可視化、PDF のいずれかを選択すると、その形式で変更内容を説明するための指示例が追加されます。必要な箇所を編集し、保存またはレビューを実行を選択します。
フィードバックの共有と対応
チャットで Pull Request をレビューしても、コメントの投稿、承認、マージは行われません。どの指摘を共有するかは自分で選びます。
問題を確認したら、Codex にレビューコメントの下書きを依頼します。
先ほど話し合ったチームのレビューガイドラインに沿って、レビューコメントの下書きを作成してください。条件に一致する課題がない場合について、実際に確認した動作、期待する動作、その期待どおりに動くことを検証するためのテストを説明してください。コメントは投稿せず、下書きのままにしてください。投稿する前に、下書きで参照しているファイルと行を確認します。投稿の準備ができるまでは、下書きをチャットに残しておきます。概要または変更からコメントを投稿すると、レビューを送信を選択する前でも、ホスティングサービスに即座に送信されます。
レビューを送信でコメント、承認、変更をリクエストのいずれかを選択し、ホスティングサービスにレビューを送信します。送信前に、選択した判定とレビューコメントを確認してください。
作成者の場合は、自分の Pull Request に戻り、対応してほしいフィードバックを具体的に Codex に伝えます。修正内容を確認し、関連するテストを実行します。承認またはマージする前に、最新のリビジョン、チェック結果、未対応のフィードバックを確認してください。
Code Review では、画像が添付された Pull Request の説明は編集できません。その場合は GitHub で Pull Request を開いて説明を編集してください。
チャットでの作業の再開
概要にスレッドが表示されている場合は、リンク先のチャットを選択して会話を再開できます。ここには、その Pull Request に関連する自分のチャットが表示されます。
Codex で修正を選択すると、失敗したチェックをチャットに添付できます。この操作は、オープンな Pull Request のチェックから行います。メッセージが準備されますが、自動では送信されません。プロンプトを確認するか書き加えてから送信し、Codex に調査を依頼します。修正をプッシュする前に、変更内容を確認し、関連するテストを再実行してください。
利用できる診断情報は、チェックを実行するサービスによって異なります。サードパーティの CI では、GitHub に報告されたステータスと出力を Codex が利用できます。
ローカルの変更のレビュー
Codex の組み込みコマンド /review は、Git でチェックアウトした作業コピーの変更をレビューします。一方、Code Review プラグインは Pull Request を対象とします。利用するクライアントを選択して、該当する手順を確認してください。
ChatGPT Work では、レビューするコードをアップロードするか、インストール済みのソース連携プラグインからコードを参照できるようにします。プロンプトに、対象の Pull Request、ブランチ、コミット、ファイルと、レビュー基準を明記します。
アプリでのレビュー
レビューペインを開くと、変更内容を確認し、特定の行にフィードバックを付けられます。どの変更をステージするか、元に戻すか、コミットするか、プッシュするかも判断できます。
Codex に変更のレビューを依頼するには、コンポーザーに /review と入力します。ベースブランチとの差分をレビューまたは未コミットの変更をレビューを選択します。Codex は作業ツリーを変更せず、指摘事項を優先度順に報告します。
レビューペインを使うには、プロジェクトが Git リポジトリ内にある必要があります。プロジェクトがまだ Git リポジトリでない場合は、アプリにリポジトリの作成を促すメッセージが表示されます。
/review と入力すると、CLI のレビュープリセットが表示されます。Codex はレビュー専用のエージェントを起動します。このエージェントは選択した差分を読み取り、作業ツリーを変更せずに、具体的に対応できる指摘事項を優先度順に報告します。
IDE 拡張機能のコンポーザーに /review と入力します。ベースブランチとの差分をレビューまたは未コミットの変更をレビューを選択します。Codex は作業ツリーを変更せず、指摘事項を優先度順に報告します。
/review コマンドは、開いているプロジェクトが Git リポジトリ内にある場合にのみ表示されます。
レビュー範囲の選択
確認したい Pull Request、ブランチ、コミット、またはファイルをプロンプトで指定します。インストール済みのソース連携プラグインから参照できないローカルファイルをレビューする場合は、チャットにアップロードしてください。
表示される変更
レビューペインには Git リポジトリの状態が反映されます。Codex が加えた変更に加えて、自分で加えた変更や、リポジトリ内のその他の未コミットの変更も表示されます。
既定では、レビューペインに未ステージの変更が表示されます。ステージ済みでは Git インデックスの内容、コミットでは選択したコミットの変更、ブランチではベースブランチとの差分、直前のターンではアシスタントの直前のターンで加えた変更を確認できます。
複数のリポジトリのレビュー
ローカルプロジェクトに複数のフォルダーが含まれ、それぞれが異なる Git リポジトリに属する場合、レビューペインには各リポジトリの変更を表示できます。レビューのヘッダーにあるリポジトリ選択メニューを開くと、同じペインで別のリポジトリに切り替え、追加または削除された行を確認できます。
直前のターンを選択すると、プロジェクトに含まれるすべてのリポジトリを対象に、アシスタントが直前に加えた変更を確認できます。この表示では、リポジトリ選択メニューにすべてのリポジトリと表示されます。未ステージ、ステージ済み、ブランチなど、ほかのレビュー範囲は、選択したリポジトリに適用されます。
/review の範囲を次の中から選択します。
- ベースブランチとの差分をレビューでは、マージベースを特定し、そこから現在のブランチまでの差分をレビューします。
- 未コミットの変更をレビューでは、ステージ済み、未ステージ、未追跡のファイルを対象とします。
- コミットをレビューでは、選択したコミットに含まれる変更だけをレビューします。
- カスタムレビュー指示では、指定した基準に絞ってレビューします。
/review の範囲を次の中から選択します。
- ベースブランチとの差分をレビューでは、現在のブランチを選択したブランチと比較します。
- 未コミットの変更をレビューでは、作業ツリー内の変更をレビューします。
レビュー結果の活用
レビューの指摘事項はウェブのチャットに表示されます。ChatGPT に指摘の根拠を尋ねたり、範囲を絞って再レビューを依頼したり、修正済みのファイルを用意するよう依頼したりできます。
コードレビューの結果
レビューの指摘事項は、レビューペインにインラインコメントとして表示されます。
既定では、現在のチャットでレビューが実行されます。設定 > 一般 > コードレビューで分離を選択すると、レビュー用のチャットが別に開きます。詳しくは開発者設定を参照してください。
レビュー結果は会話履歴の 1 ターンとして表示されます。review_model を config.toml で設定すると、現在のセッションとは異なるモデルをレビューに使えます。
既定では、現在のチャットでレビューが実行されます。chatgpt.reviewDelivery を detached に設定すると、/review でレビュー用のチャットが別に開きます。詳しくは IDE 拡張機能の設定リファレンスを参照してください。
ChatGPT に修正済みのファイルを用意するよう依頼した場合も、そのチャットで利用できるツールとワークスペースの権限が適用されます。
Codex が見つけた問題の修正を依頼する場合は、通常のサンドボックスと承認の設定が適用されます。
レビューペインの操作
- ファイル名をクリックすると、通常は指定したエディターでそのファイルが開きます。既定のエディターは開発者設定で選択できます。
- ファイル名の背景部分をクリックすると、差分を展開したり折りたたんだりできます。
- Command キーを押しながら行をクリックすると、指定したエディターでその行が開きます。
- 変更内容を確認したら、採用する変更をステージし、不要な変更を元に戻すことができます。
インラインコメントによるフィードバック
インラインコメントを使うと、差分の特定の行に直接フィードバックを付けられます。Codex に修正箇所と意図をすばやく伝えるのに適しています。
インラインコメントを追加する手順は次のとおりです。
- レビューペインを開きます。
- コメントを付けたい行にポインターを合わせます。
- 表示された + ボタンを選択します。
- フィードバックを入力して送信します。
- フィードバックをすべて入力したら、チャットに戻ってメッセージを送信します。
コメントは特定の行に紐づくため、全体への指示よりも Codex が的確に対応できます。
Codex はインラインコメントをレビュー時の指針として扱います。コメントを付けた後は、「インラインコメントに対応し、変更範囲は必要最小限にしてください」のように、してほしいことをチャットで明示してください。
ファイルのステージと変更の取り消し
レビューペインでは Git の操作ができるため、コミット前に含める変更を調整できます。
変更のステージ、ステージ解除、取り消しは、次の単位で行えます。
- 差分全体:レビューのヘッダーにあるすべてステージやすべて元に戻すなどの操作ボタンを使います。
- ファイル単位:個別のファイルをステージしたり、ステージから外したり、変更を元に戻したりできます。
- ハンク単位:差分のひとまとまりをステージしたり、ステージから外したり、元に戻したりできます。
変更の一部を採用するには、その部分をステージします。破棄するには、該当する変更を元に戻します。
ステージ済みと未ステージの状態
Git では、同じファイルにステージ済みの変更と未ステージの変更が混在することがあります。その場合、レビューペインでは両方の表示に同じファイルが含まれることがあります。これは Git の通常の動作です。