Codex のコードレビューを活用すると、GitLab のマージリクエストに対して、重要な問題を的確に捉える追加レビューを実施できます。Codex はマージリクエストの差分を確認し、リポジトリのガイダンスに従って、重大な問題に焦点を当てた標準的な GitLab のコードレビューを投稿します。
GitLab のサポートはベータ版で、すべての ChatGPT プランで利用できます。Codex との連携は Codex Cloud 上で動作します。デスクトップアプリの GitHub 形式の リポジトリ操作機能( Pull Request を作成など)は、このベータ版には含まれません。
開始前の確認事項
以下を用意してください。
- 接続済みの GitLab アカウントが必要です。GitLab.com では 標準の接続手順に従って接続します。 セルフマネージド GitLab または Dedicated GitLab のインスタンスでは、 ワークスペース管理者によるテンプレートのセットアップが必要です。
- Codex がリポジトリ固有のレビューガイダンスに従うようにする場合は、
AGENTS.mdファイルを 用意してください。
Codex コードレビューのセットアップ
GitLab 接続と Codex のレビュー用アカウントの設定
GitLab.com では、まず ChatGPT で GitLab に接続した後、Codex で GitLab アカウントを接続します。 セルフマネージド GitLab または Dedicated GitLab では、 ワークスペース管理者用テンプレートが公開された後に、各レビュアーが 接続してください。
セルフマネージド GitLab または Dedicated GitLab の場合は、 Codex Cloud → 設定 → コネクタを開きます。 ワークスペース管理者は、Codex にサービスアカウントを作成させるか、既存の サービスアカウントの個人アクセストークンを保存できます。
Codex によるアカウントの作成
Codex Cloud → 設定 → コネクタで、
セルフマネージド GitLab または Dedicated GitLab のホスト用アプリを選択し、 サービスアカウントを設定 →
サービスアカウントを作成を選択します。セットアップを行うワークスペース管理者には、
GitLab インスタンスの管理者権限が必要です。 選択したグループ
または 選択したプロジェクトのみを選び、Codex の操作対象を指定してアカウントを作成します。
グループを選択すると、選んだ各グループに Developer 権限が付与され、
配下のプロジェクトとサブグループにその権限が継承されます。プロジェクトを選択した場合は、
選んだ個々のプロジェクトにのみ Developer 権限が付与されます。Codex は ChatGPT
Codex Connector というインスタンスサービスアカウントを作成し、
api スコープの個人アクセストークンを付与します。
既存アカウントの使用
GitLab でサービスアカウントを作成または選択し、Codex の操作対象となるグループまたは
プロジェクトに限って Developer 権限を付与します。 サービス
アカウント ページで対象のアカウントを選択し、 アクセストークンを管理 → 新しい
トークンを追加 の順に選択して、
個人アクセストークンを作成します。
トークンには api スコープを付与し、有効期限を 30 日以上先に設定します。
Codex に戻って 既存のサービスアカウントを使用を選択し、トークンを貼り付けて、
トークンを保存を選択します。トークンは保存時に暗号化され、以後表示されることはありません。
サービスアカウントのトークン管理
ワークスペース管理者は、 Codex Cloud → 設定 → コネクタでサービスアカウントを管理できます。Codex が作成したアカウントの場合は、 現在のトークンを失効させて新しいトークンを生成できます。既存のアカウントの場合は、 Codex に保存したトークンを差し替えるか削除し、必要に応じて GitLab 側でも そのトークンを失効させることができます。有効なトークンが設定されるまでは、Codex は GitLab のアクティビティに応答できません。
GitLab アクティビティの Codex への通知方法
コーディングタスクやプロジェクト固有の設定に必要なプロジェクト環境の作成
Codex Cloud → 設定 → 環境で、対象の GitLab プロジェクトを 選択します。そのプロジェクトで Codex にコードを作成または実行させる場合は、 プロジェクト環境を作成してください。たとえば、ファイルの編集、変更のコミット、 マージリクエストのブランチへの更新のプッシュが該当します。レビューにプロジェクト固有のシークレット、 ネットワークアクセス、またはセットアップコマンドが必要な場合も、プロジェクト環境を作成してください。
GitLab.com では、Codex によるレビューを有効にする際にもプロジェクト環境が必要です。
環境の作成時に GitLab からの Codex アクティビティを有効にするをオンにして、
マージリクエスト、コメント、イシューのイベントを Codex に送信するプロジェクト Webhook を
インストールします。プロジェクト Webhook の作成には、Maintainer 権限または Owner 権限、
管理者権限、あるいはプロジェクト Webhook を管理できるカスタムロールが
必要です。署名付きのプロジェクト Webhook とグループ Webhook には GitLab 19.0 以降が必要です。
セルフマネージド GitLab 19.0 では、webhook_signing_token 機能フラグが
有効になっていることを確認してください。このフラグはデフォルトで有効で、GitLab 19.1 で削除されました。
GitLab グループ全体のプロジェクトに対する Codex レビュー用アクティビティの有効化
セルフマネージド GitLab または Dedicated GitLab では、ワークスペース管理者が 環境 → GitLab アクティビティ → グループを管理 を開き、グループと そのサブグループ全体で Codex レビューを有効にできます。Codex は、グループ内のすべてのプロジェクトを 対象とするグループ Webhook をインストールします。接続済みの GitLab ユーザーにはグループの Owner 権限が必要で、 グループ Webhook には GitLab Premium または Ultimate、および GitLab 19.0 以降が必要です。
グループアクティビティを有効にするとコードレビューは利用できますが、プロジェクト環境は作成されません。ファイルの編集、コマンドの実行、変更のコミット、マージリクエストへの更新のプッシュなど、GitLab を起点とするコーディングタスクを実行するには、プロジェクト環境を作成してください。
コードレビューポリシーの設定
コードレビューポリシーは、
Codex のレビュー設定で設定します。
リポジトリポリシーとして Review my MRs、Review team MRs、
Review all MRs、または Follow personal を選択します。続いて、レビューの実行タイミングとして MR の作成時、
プッシュのたび、または 試験運用版のスマートトリガーを選択します。リポジトリ設定によって、
個人のデフォルト設定を上書きできます。
Codex レビューの依頼
- マージリクエストのコメントで
@codex reviewをメンションします。 - Codex が 👀 でリアクションし、レビューを投稿するまで待ちます。
Codex はチームメンバーと同じように、マージリクエストに GitLab のディスカッションやコメントを投稿します。デフォルトでは、手動で依頼したレビューには P0、P1、P2 の指摘が含まれる場合がありますが、自動レビューでは P0 と P1 の指摘に重点が置かれます。
自動レビューの有効化
条件を満たすマージリクエストを自動的にレビューするには、Codex の設定で 自動
レビュー をオンにし、GitLab リポジトリのポリシーを選択して、
トリガーとして MR の作成時、 プッシュのたび、または 試験運用版のスマートトリガーを選択します。
マージリクエストのイベントがそのポリシーとトリガーに一致すると、@codex review のコメントがなくても
Codex が実行されます。
GitLab のアクティビティは、プロジェクト Webhook または上位グループの Webhook を通じて有効化されている必要があります。セルフマネージド GitLab または Dedicated GitLab では、設定されたサービスアカウントにプロジェクトへの書き戻し権限も必要です。プロジェクト環境が設定されている場合、Codex はその環境を使用します。上位グループですでにアクティビティが有効化されている場合は、配下のプロジェクトにもその設定が引き継がれます。
Codex のレビュー対象のカスタマイズ
Codex はリポジトリ内の AGENTS.md ファイルを探し、適用可能な
コードレビュールールに従います。ルールの対象となるコードに最も近いファイルに ## Code Review Rules セクションを
追加してください。必要に応じて ### 見出しを使用し、関連するチェック項目を
グループ化できます。
たとえば、実験結果を報告するサービスでは、実験への曝露後の行動によって比較対象のコホートが変わらないようにできます。
## Code Review Rules
### Experiment cohorts
- Do not filter treatment comparisons on post-exposure behavior, including conversion or retention.
Safe path: build cohorts from assignment or exposure; report conversion as an outcome.
リポジトリ全体に適用するルールはルートの AGENTS.md に、サービス固有のルールは
services/experiment_reporting/AGENTS.md のような下位ディレクトリ内のファイルに記述します。Codex は
変更された各ファイルについて、ルートのガイダンスと、より範囲を絞ったガイダンスを適用します。
そのため、無関係な変更にサービス固有のコンテキストを含める必要はありません。
レビュアーが頻繁に説明する確認事項を、まずは 2~3 個の簡潔なルールにまとめます。効果的なルールの例は次のとおりです。
- リポジトリ固有の重要な挙動に注目する 。指摘すべき 互換性の制約、データ境界、危険な副作用と、 それらが重要な理由を説明します。
- 安全な方法や例外を明記する 。Codex が実際の問題と想定どおりの挙動を 区別できるよう、十分なコンテキストを提供します。
- ルールの適用範囲を絞り、長く使える内容にする 。変更される可能性のある関数名よりも 期待される結果を重視し、対象コードの近くにガイダンスを配置します。
- 機械的なチェックは CI に任せる 。フォーマットや lint など、 機械的に判定できる項目はレビュールールに含めません。
代表的なマージリクエストを開き、@codex review でレビューを依頼します。
実際の指摘やフィードバックに基づいてルールを改善し、不要な指摘を生む
ガイダンスは適用範囲を絞るか削除します。
コードレビュールールは Codex に指針を示すものであり、テスト、ブランチ保護、必須の承認の代わりにはなりません。
一度だけ特定の点に注目させたい場合は、その内容をマージリクエストのコメントに追加します。
@codex review for issues in the database migration
レビューで指摘された問題への対応
レビューで指摘された問題を修正するには、 設定済みのプロジェクト環境が必要です。 グループアクティビティだけでもレビューは可能ですが、コーディングタスクは実行できません。 プロジェクトに環境が設定されている場合は、同じマージリクエストにコメントを追加して、 Codex に問題の修正を依頼します。
@codex fix the P1 issue
Codex はマージリクエストをコンテキストとするクラウドチャットを開始し、 権限がある場合は修正をブランチにプッシュできます。
Codex へのその他のタスクの依頼
その他のコーディングタスクにも 設定済みのプロジェクト環境が必要です。
グループアクティビティだけで利用できるのはレビューのみです。コメントで @codex をメンションし、
review 以外の内容を伝えると、Codex はクラウドチャットを開始し、
マージリクエストをコンテキストとして使用します。
@codex fix the CI failures
コードレビューのトラブルシューティング
Codex がリアクションしない場合やレビューを投稿しない場合は、次の点を確認してください。
- 目的の GitLab アプリが選択されていることを確認します。プロジェクト固有の設定を使用する場合は、対象プロジェクトに目的の Codex Cloud 環境が設定されていることも確認します。
- プロジェクトまたは上位グループでアクティビティが有効になっていることを確認します。GitLab で Webhook → 最近のイベントを開き、 マージリクエストとコメントのイベントが正常に配信されていることを確認します。
- セルフマネージド GitLab または Dedicated GitLab の場合は、プロジェクトまたはグループの Webhook が
署名されていること、SSL 検証が有効になっていること、インスタンスのバージョンが GitLab 19.0
以降であることを確認します。セルフマネージド GitLab 19.0 では
webhook_signing_token機能フラグが有効であることを 確認し、失敗後に自動的に無効化されたフックを修復します。 - セルフマネージド GitLab または Dedicated GitLab の場合は、既存のサービスアカウントの
個人アクセストークンが有効で、
apiスコープを持っていることを確認します。 Codex がサービスアカウントを作成した場合は、 Codex のコネクタ設定で正しく設定されていることと、 プロジェクトまたはグループが有効化されていることを確認します。 - セルフマネージド GitLab または Dedicated GitLab の場合は、接続済みの GitLab ユーザーだけでなく、ワークスペースのサービスアカウントにも、プロジェクトまたは親グループの Developer 権限が付与されていることを確認します。これにより Codex はレビューやリアクションを投稿できます。メンバーシップは継承されますが、アクティビティとサービスアカウントのアクセス権は別々です。
- コードレビュー または 自動レビュー が有効であり、MR が リポジトリのポリシーとトリガーに一致していることを確認します。
@codex reviewを使用します。