GitLab のマージリクエストに、重要な問題に絞った Codex のコードレビューを追加できます。Codex はリポジトリのガイドラインに沿ってマージリクエストの差分を確認し、GitLab の標準のコードレビューとして結果を投稿します。
GitLab 連携はベータ版で、ChatGPT のすべてのプランで利用できます。この連携は Codex Cloud で動作します。デスクトップアプリで GitHub リポジトリを操作する機能(pull request を作成など)は、このベータ版の対象外です。
事前準備
次のものを用意してください。
- 接続済みの GitLab アカウント。GitLab.com の場合は標準の手順で接続します。GitLab Self-Managed または GitLab Dedicated のインスタンスでは、ワークスペース管理者によるテンプレートの設定が必要です。
- リポジトリ固有のレビュー方針を Codex に適用する場合は、その方針を記述した
AGENTS.mdファイル
Codex コードレビューの設定
GitLab 接続と Codex がレビューに使うアカウントの設定
GitLab.com の場合は、ChatGPT で GitLab に接続してから、Codex で自分の GitLab アカウントを接続します。GitLab Self-Managed または GitLab Dedicated の場合は、ワークスペース管理者がテンプレートを公開してから、各レビュアーが自分のアカウントを接続します。
GitLab Self-Managed または GitLab Dedicated の場合は、Codex Cloud → 設定 → コネクタを開きます。ワークスペース管理者は、Codex にサービスアカウントを作成させるか、既存のサービスアカウントのパーソナルアクセストークンを保存できます。
Codex によるアカウントの作成
Codex Cloud → 設定 → コネクタで、GitLab Self-Managed または GitLab Dedicated のホストに対応するアプリを選び、サービスアカウントを設定 → サービスアカウントを作成の順に選択します。設定を行うワークスペース管理者には、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 にプロジェクトのコードを書かせたり実行させたりする場合は、Codex Cloud → 設定 → 環境で対象の GitLab プロジェクトを選択し、プロジェクト環境を作成します。たとえば、ファイルの編集、変更のコミット、マージリクエストのブランチへのプッシュには、この環境が必要です。レビューにプロジェクト固有のシークレット、ネットワークアクセス、セットアップコマンドが必要な場合も、プロジェクト環境を作成してください。
GitLab.com では、Codex のレビューを有効にするためにもプロジェクト環境が必要です。
環境の作成時にGitLab からの Codex アクティビティを有効にするをオンにすると、マージリクエスト、コメント、イシューのイベントを Codex に届けるプロジェクト Webhook が設定されます。プロジェクト Webhook を作成するには、Maintainer または Owner 権限、管理者権限、もしくはプロジェクト Webhook を管理できるカスタムロールが必要です。署名付きのプロジェクト Webhook とグループ Webhook を利用するには、GitLab 19.0 以降が必要です。GitLab Self-Managed 19.0 では、機能フラグ webhook_signing_token が有効であることを確認してください。このフラグはデフォルトで有効で、GitLab 19.1 で削除されました。
GitLab グループ全体での Codex レビュー用アクティビティの有効化
GitLab Self-Managed または GitLab Dedicated の場合、ワークスペース管理者は環境 → GitLab アクティビティ → グループを管理を開き、グループとそのサブグループ全体で Codex のレビューを有効にできます。Codex は、そのグループ配下のすべてのプロジェクトを対象とするグループ Webhook を設定します。接続に使う GitLab ユーザーにはグループの Owner 権限が必要です。また、グループ Webhook を利用するには、GitLab Premium または Ultimate プランと GitLab 19.0 以降が必要です。
グループのアクティビティを有効にするとコードレビューが可能になりますが、プロジェクト環境は作成されません。GitLab を起点にファイルの編集、コマンドの実行、変更のコミット、マージリクエストのブランチへのプッシュなどのコーディングタスクを実行するには、プロジェクト環境を作成してください。
コードレビューポリシーの設定
コードレビューポリシーは、Codex のレビュー設定で設定します。対象のリポジトリを選び、自動レビューをオンにします。この項目はコードをレビューにあります。レビューで誰のマージリクエストをレビューするかを選び、トリガーでレビューを実行するタイミングを選びます。リポジトリの設定で個人のデフォルト設定を上書きできます。
Codex へのレビュー依頼
- マージリクエストのコメントに
@codex reviewと入力します。 - Codex が 👀 でリアクションし、レビューを投稿するまで待ちます。
Codex はチームメンバーと同じように、GitLab のマージリクエストにディスカッションやコメントを投稿します。デフォルトでは、手動で依頼したレビューには P0、P1、P2 の指摘が含まれることがあります。自動レビューでは P0 と P1 の問題を重点的に確認します。
自動レビューの有効化
条件に合うマージリクエストを自動的にレビューするには、Codex の設定で「自動レビュー」をオンにし、GitLab リポジトリのポリシーを選びます。次に、トリガーとして「マージリクエストの作成時」「プッシュするたび」「スマートトリガー(試験段階)」のいずれかを選択します。マージリクエストのイベントがポリシーとトリガーの条件に一致すると、@codex review というコメントがなくても Codex がレビューを実行します。
GitLab アクティビティは、プロジェクトの Webhook または上位グループの Webhook を通じて有効にする必要があります。GitLab Self-Managed または GitLab Dedicated の場合は、設定したサービスアカウントに対象プロジェクトへの書き込み権限も必要です。プロジェクト環境が設定されていれば、Codex はその環境を使用します。上位グループですでにアクティビティが有効になっている場合は、その配下のプロジェクトにも設定が継承されます。
Codex のレビュー内容のカスタマイズ
Codex はリポジトリ内の AGENTS.md ファイルを探し、対象のコードに適用されるコードレビュールールに従います。ルールの対象となるコードに最も近いファイルに ## Code Review Rules セクションを追加します。必要に応じて ### 見出しを使い、関連するチェック項目をまとめてください。
たとえば、実験結果を報告するサービスでは、施策に触れた後の行動によって比較対象のコホートが変わらないように、次のルールを設定できます。
## Code Review Rules
### 実験のコホート
- 施策の効果を比較するときは、コンバージョンや継続利用など、施策に触れた後の行動で比較対象を絞り込まないでください。
実験群への割り当て、または実際に施策に触れたかどうかに基づいてコホートを定義し、コンバージョンは結果として報告してください。
リポジトリ全体に適用するルールはルートの AGENTS.md に、サービス固有のルールは services/experiment_reporting/AGENTS.md のように該当するサブディレクトリ内のファイルに記述します。Codex は、変更されたファイルごとに、ルートのガイドラインと、そのファイルに適用されるより具体的なガイドラインの両方に従います。そのため、サービスに関係のない変更にまで、そのサービス固有のコンテキストを含める必要はありません。
まずは、レビュアーが繰り返し説明しているチェック項目を 2~3 個の簡潔なルールにまとめます。ルールを書く際は、次の点を意識してください。
- リポジトリ固有の、影響の大きい挙動に絞ります。 指摘すべき互換性の制約、データの境界、危険な副作用と、それが重要な理由を記述します。
- 安全な方法や例外を明示します。 Codex が実際の問題と想定どおりの挙動を区別できるよう、判断に必要な情報を記述します。
- 適用範囲を絞り、長く使えるルールにします。 変わる可能性のある関数名よりも、期待する結果を記述し、対象のコードに近い場所にガイドラインを置きます。
- 機械的なチェックは CI に任せます。 フォーマットや lint など、結果が一意に決まるチェックはレビュールールに含めません。
代表的なマージリクエストを開き、@codex review でレビューを依頼します。実際の指摘やフィードバックをもとにルールを改善し、不要な指摘につながるガイドラインは適用範囲を狭めるか削除してください。
コードレビュールールは Codex の判断を導くものです。テスト、ブランチ保護、必須の承認の代わりにはなりません。
今回のレビューで特に確認してほしい点がある場合は、マージリクエストのコメントに追記します。
@codex review データベースのマイグレーションに問題がないか確認してください
レビューで指摘された問題への対応
レビューで指摘された問題を Codex に修正させるには、設定済みのプロジェクト環境が必要です。グループのアクティビティだけでもレビューはできますが、コーディングタスクは実行できません。プロジェクトに環境があれば、同じマージリクエストに次のようなコメントを追加して、Codex に修正を依頼できます。
@codex P1 の問題を修正してください
Codex はマージリクエストをコンテキストとして従来のクラウドチャットを開始します。書き込み権限があれば、修正を元のブランチにプッシュできます。
Codex へのその他のタスクの依頼
他のコーディングタスクにも設定済みのプロジェクト環境が必要です。グループのアクティビティだけで利用できるのはレビューです。コメントで @codex にメンションし、review 以外の内容を指定すると、Codex はマージリクエストをコンテキストとして従来のクラウドチャットを開始します。
@codex CI が失敗する原因を修正してください
コードレビューのトラブルシューティング
Codex がリアクションしない場合や、レビューが投稿されない場合は、次の点を確認してください。
- 対象の GitLab アプリが選択されていることを確認します。プロジェクト固有の設定を使っている場合は、対象のプロジェクトに意図した Codex のクラウド環境が設定されていることも確認します。
- プロジェクトまたは上位グループでアクティビティが有効になっていることを確認します。GitLab で Webhook → 最近のイベントを開き、マージリクエストとコメントのイベントが正常に配信されていることを確認します。
- GitLab Self-Managed または GitLab Dedicated の場合は、プロジェクトまたはグループの Webhook に署名があり、SSL 検証が有効で、インスタンスが GitLab 19.0 以降であることを確認します。GitLab Self-Managed 19.0 では、機能フラグ
webhook_signing_tokenが有効であることを確認します。配信の失敗により自動的に無効化された Webhook があれば修復してください。 - GitLab Self-Managed または GitLab Dedicated で既存のサービスアカウントを使う場合は、パーソナルアクセストークンが有効で、
apiスコープを持っていることを確認します。Codex がサービスアカウントを作成した場合は、Codex のコネクタ設定でアカウントが正しく設定され、対象のプロジェクトまたはグループでアクティビティが有効になっていることを確認します。 - GitLab Self-Managed または GitLab Dedicated の場合、Codex がレビューやリアクションを投稿するには、接続済みの GitLab ユーザーだけでなく、ワークスペースのサービスアカウントにも、対象のプロジェクトまたは親グループの Developer 権限が必要です。グループのメンバーシップは配下に継承されます。アクティビティの有効化とサービスアカウントへのアクセス権の付与は別の設定です。
- コードレビューまたは自動レビューが有効で、マージリクエストがリポジトリのポリシーとトリガーの条件に一致していることを確認します。
@codex reviewを使ってください。