Codex で GitLab マージリクエストをレビューする
GitLab マージリクエスト向けにコードレビューを設定し、@codex review でレビューをリクエストします。
Codex コードレビューを使用すると、GitLab のマージリクエストに対して、シグナルの質が高い追加のレビューパスを得られます。Codex はマージリクエストの差分をレビューし、リポジトリのガイダンスに従って、重大な問題に重点を置いた標準的な GitLab コードレビューを投稿します。
GitLab のサポートはベータ版で、すべての ChatGPT プランで利用できます。Codex の統合は Codex cloud で実行されます。デスクトップアプリにある Create pull request などの GitHub 形式のリポジトリ操作は、このベータ版には含まれていません。
始める前に
以下を準備してください。
- 接続済みの GitLab アカウント。GitLab.com では 標準の接続フローが必要です。 セルフマネージドまたは Dedicated GitLab インスタンスでは、 ワークスペース管理者によるテンプレート設定が必要です。
- Codex にリポジトリ固有のレビューガイダンスに従わせる場合は、
AGENTS.mdファイル。
Codex コードレビューを設定する
GitLab 接続と Codex のレビュー用 ID を設定する
GitLab.com では、ChatGPT で GitLab に接続した後、Codex で GitLab アカウントを接続します。 セルフマネージドまたは Dedicated GitLab では、ワークスペース管理者用テンプレートの公開後に、各レビュアーが接続する必要があります。
セルフマネージドまたは Dedicated GitLab では、Codex Cloud → Settings → Connectorsを開きます。 ワークスペース管理者は、Codex にサービスアカウントを作成させるか、既存のサービスアカウントの personal access token を保存できます。
Codex にアカウントを作成させる
Codex Cloud → Settings → Connectors で、セルフマネージドまたは Dedicated GitLab ホスト用のアプリを選択し、Set up service account → Create a service account を選択します。設定を完了するワークスペース管理者には、GitLab インスタンスへの管理者アクセス権が必要です。Selected groups または Selected projects only を選択し、Codex を動作させる場所を選んでアカウントを作成します。グループオプションでは、選択した各グループに Developer アクセス権が付与され、そのプロジェクトとサブグループにも継承されます。プロジェクトオプションでは、選択した個々のプロジェクトにのみ Developer アクセス権が付与されます。Codex は、api スコープを持つ personal access token とともに、ChatGPT Codex Connector インスタンスのサービスアカウントを作成します。
既存のアカウントを使用する
GitLab でサービスアカウントを作成または選択し、Codex を動作させるグループまたはプロジェクトに限って Developer アクセス権を付与します。Service accounts ページでアカウントを選択し、Manage access tokens → Add new token を選択して、api スコープを持ち、有効期限が少なくとも30日以上先の personal access token を作成します。Codex に戻り、Use an existing service account を選択してトークンを貼り付け、Save token を選択します。トークンは保存時に暗号化され、その後再び表示されることはありません。
サービスアカウントのトークンを管理する
ワークスペース管理者は、Codex Cloud → Settings → Connectors でサービスアカウントを管理できます。Codex が作成したアカウントでは、管理者は現在のトークンを取り消して新しいトークンを生成できます。既存のアカウントでは、管理者は Codex に保存されたトークンを置換または削除し、必要に応じて GitLab 側でも個別に取り消せます。有効なトークンが設定されるまで、Codex は GitLab のアクティビティに応答できません。
GitLab のアクティビティを Codex に届ける方法を選択する
コーディングタスクまたはプロジェクト固有の設定用にプロジェクト環境を作成する
Codex Cloud → Settings → Environments で GitLab プロジェクトを選択し、そのプロジェクトで Codex にコードの記述や実行を行わせる場合(ファイルの編集、変更のコミット、マージリクエストブランチへの更新のプッシュなど)、またはレビューがプロジェクト固有のシークレット、ネットワークアクセス、セットアップコマンドに依存する場合に、プロジェクト環境を作成します。
GitLab.com では、Codex のレビューを有効にするためにもプロジェクト環境が必要です。
環境の作成中に Enable Codex activity from GitLab をオンにし、マージリクエスト、コメント、issue のイベントを Codex に配信するプロジェクト webhook をインストールします。プロジェクト webhook を作成するには、Maintainer または Owner アクセス権、管理者アクセス権、あるいはプロジェクト webhook を管理できるカスタムロールが必要です。署名付きのプロジェクト webhook とグループ webhook には GitLab 19.0 以降が必要です。セルフマネージド GitLab 19.0 では、webhook_signing_token feature flag が有効であることを確認してください。この flag はデフォルトで有効で、GitLab 19.1 で削除されました。
GitLab グループ全体のプロジェクトで Codex レビュー用アクティビティを有効にする
セルフマネージドまたは Dedicated GitLab では、ワークスペース管理者が Environments → GitLab activity → Manage groups を開き、グループとそのサブグループ全体で 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 を選択します。次に、レビューを実行するタイミングとして On MR open、On every push、または Smart Trigger (Experimental) を選択します。リポジトリ設定は個人のデフォルト設定を上書きできます。
Codex レビューをリクエストする
- マージリクエストのコメントで
@codex reviewをメンションします。 - Codex がリアクション(👀)してレビューを投稿するまで待ちます。
Codex は、チームメイトと同じように、マージリクエストへ GitLab のディスカッションとノートを投稿します。デフォルトでは、手動でリクエストしたレビューには P0、P1、P2 の指摘が含まれる場合があります。一方、自動レビューでは P0 と P1 の指摘に重点が置かれます。
自動レビューを有効にする
条件を満たすマージリクエストを自動的にレビューするには、Codex の設定で Automatic reviews をオンにし、GitLab リポジトリポリシーとトリガー(On MR open、On every push、または Smart Trigger (Experimental))を選択します。マージリクエストのイベントがそのポリシーとトリガーに一致すると、Codex は @codex review コメントなしで実行されます。
GitLab のアクティビティは、プロジェクト webhook または上位グループの webhook を通じて有効にする必要があります。セルフマネージドまたは 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 issueCodex はマージリクエストをコンテキストとして cloud chat を開始し、必要な権限があれば修正をブランチへプッシュできます。
Codex にほかのタスクを依頼する
ほかのコーディングタスクにも、設定済みのプロジェクト環境が必要です。グループアクティビティだけでもレビューはサポートされます。コメントで @codex をメンションし、review 以外の内容を指定すると、Codex はマージリクエストをコンテキストとして cloud chat を開始します。
@codex fix the CI failuresコードレビューのトラブルシューティング
Codex がリアクションまたはレビューを投稿しない場合は、以下を確認してください。
- 目的の GitLab アプリが選択されていること。プロジェクト固有の設定を使用している場合は、そのプロジェクトに目的の Codex cloud 環境があることも確認します。
- プロジェクトまたは上位グループのアクティビティ。GitLab で Webhooks → Recent eventsを確認し、マージリクエストとノートの配信が成功していることを検証します。
- セルフマネージドまたは Dedicated GitLab の場合、プロジェクトまたはグループの webhook が署名され、SSL 検証が有効で、インスタンスが GitLab 19.0 以降であること。セルフマネージド GitLab 19.0 では、
webhook_signing_tokenfeature flag が有効であることも確認します。失敗後に自動的に無効化された hook は修復してください。 - セルフマネージドまたは Dedicated GitLab の場合、既存のサービスアカウントの personal access token が有効で、
apiスコープを持つこと。Codex がサービスアカウントを作成した場合は、Codex コネクター設定で正しく設定され、プロジェクトまたはグループが有効になっていることを確認します。 - セルフマネージドまたは Dedicated GitLab の場合、接続された GitLab ユーザーだけでなく、ワークスペースのサービスアカウントにも、Codex がレビューとリアクションを投稿できるように、プロジェクトまたは親グループへの Developer アクセス権があること。メンバーシップは継承されますが、アクティビティとサービスアカウントのアクセス権は別々です。
- Code review または Automatic reviews が有効で、MR がリポジトリポリシーとトリガーに一致していること。
@codex reviewを使用します。