正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

コードレビューフロー

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

アドオンに応じて、GitLabでは以下の2つのコードレビュー機能のいずれかが実行されます:

  • コードレビューフロー: GitLab Duo Agent Platformの一部であるエージェント型バージョン。
  • GitLab Duoコードレビュー: GitLab Duo Enterpriseアドオンを使用するユーザーのみが利用できる非エージェント型バージョン。

このページでは、エージェント型バージョンについて説明します。2つの機能の比較説明をご覧ください。

コードレビューフローを使用すると、エージェント型AIによってコードレビューを効率化できます。

このフローには次の特長があります:

  • コードの変更を分析します。
  • リポジトリ構造やファイル間の依存関係を踏まえて、より高度にコンテキストを理解します。
  • 実行可能なフィードバックを含む、詳細なレビューコメントを提供します。
  • プロジェクトに合わせて調整されたカスタムレビュー指示をサポートします。

このフローはGitLab UIでのみ使用できます。

前提条件

フローを使用する

マージリクエストでコードレビューフローを使用するには:

  1. 左側のサイドバーで、コード > マージリクエストを選択して、マージリクエストを見つけます。
  2. 次のいずれかの方法でレビューをリクエストします:
    • @GitLabDuoをレビュアーとして割り当てます。
    • コメントボックスに、クイックアクション/assign_reviewer @GitLabDuoを入力します。
    • コメントボックスで@GitLabDuoにメンションし、レビューをリクエストします。

レビューをリクエストすると、コードレビューフローがセッションを開始します。レビューが完了するまでその状況を監視できます。

レビューでGitLab Duoとやり取りする

レビュアーとしてGitLab Duoを割り当てるだけでなく、次の方法でGitLab Duoとやり取りできます:

  • レビューコメントに返信して、説明や別のアプローチを求める。
  • ディスカッションスレッドで@GitLabDuoをメンションし、フォローアップの質問を行う。

コメントでのGitLab Duoとのディスカッションは、GitLab Duo Agent Platformを使用し、クレジットを消費します

GitLab Duoに提供したフィードバックは、他のマージリクエストの以降のレビューには影響しません。この機能の追加はイシュー560116で提案されています。

コンテキスト認識

コードレビューフローは、次の2つのステージで実行されます:

  1. プレスキャン: このフローはマージリクエストの差分を調べ、それを使用して、プロジェクトリポジトリからフェッチする関連コンテキストを特定します。プレスキャンには通常、ディレクトリ一覧や、変更によって参照されているテストや依存関係など、関連ファイルの内容が含まれます。フェッチされる正確なコンテキストは、差分の分析によって異なります。

  2. レビュー: このフローは、大規模言語モデルに次のデータを渡してレビューを実行します。レビューステージでは、オンデマンドで追加のコンテキストをフェッチすることはできません。

    • プレスキャンステップの結果。
    • マージリクエストのタイトル。
    • マージリクエストの説明。
    • マージリクエストの差分。
    • ファイルの元のバージョン。
    • ファイル名。
    • カスタムレビュー指示。

除外するコンテンツを指定するには、GitLab Duoからコンテキストを除外するを参照してください。

ファイルとコンテキストの制限

コードレビューフローでは、プロンプトを処理可能なサイズに収めるために、次の2つの制限が適用されます:

  • 10,000行を超えるファイルの場合、モデルに送信されるのは差分のみです。ファイル全体の内容は含まれません。
  • プレスキャンで収集されるコンテキストの合計は、約1 MiBに制限されます。この上限を超えると、レビューステージが実行される前にコンテキストが約800 KiBに切り詰められます。

この制限はフローが収集するデータに適用され、選択されたモデルのコンテキストウィンドウとは別に扱われます。

非常に大規模なマージリクエストの場合、切り詰められたコンテキストがレビューで考慮されない可能性があります。このリスクを軽減するには:

  • マージリクエストを、より小さなマージリクエストに分割する。
  • レビューに関連しないファイルのコンテキストを除外する。

カスタムコードレビュー指示

mr-review-instructions.yamlファイルを使用して、コードレビューフローの動作をカスタマイズします。

リポジトリ固有のレビュー指示を使用して、GitLab Duoをガイドできます:

  • 特定のコード品質の側面(セキュリティ、パフォーマンス、保守性など)に重点を置く。
  • プロジェクトに固有のコーディング標準やベストプラクティスを適用する。
  • 特定のファイルパターンを対象に、カスタマイズされたレビュー基準を適用する。
  • 特定の種類の変更について、より詳細な説明を提供する。

コードレビューフローは、AGENTS.mdSKILL.mdファイルを参照しません。

カスタム指示を設定するには、GitLab Duoへのレビューの指示をカスタマイズするを参照してください。

プロジェクトのGitLab Duoによる自動レビュー

GitLab Duoの自動レビューにより、プロジェクト内のすべてのマージリクエストが初期レビューを受けるようになります。マージリクエストが作成されると、次の場合を除き、GitLab Duoがレビューします:

  • ドラフトとしてマークされている場合。GitLab Duoにマージリクエストをレビューさせるには、準備完了とマークします。
  • 変更が含まれていない場合。GitLab Duoにマージリクエストをレビューさせるには、変更を追加します。

前提条件:

@GitLabDuoがマージリクエストを自動的にレビューできるようにするには:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 左側のサイドバーで、設定 > マージリクエストを選択します。
  3. GitLab Duoコードレビューセクションで、GitLab Duoによる自動レビューを有効にするを選択します。
  4. 変更を保存を選択します。

自動レビューのクレジット使用量がどのように割り当てられるかについては、実行されるコードレビュー機能を判定するを参照してください。

グループとアプリケーションのGitLab Duoによる自動レビュー

グループまたはアプリケーションの設定を使用して、複数のプロジェクトで自動レビューを有効にします。

GitLabバージョン19.1以降、GitLab.comの新しいGitLab Duoトライアルでは、グループの自動レビューがデフォルトで有効になっています。

前提条件:

  • グループの自動レビューをオンにするには、グループのオーナーロールが必要です。
  • すべてのプロジェクトで自動レビューをオンにするには、管理者である必要があります。

グループの自動レビューを有効にするには:

  1. 上部のバーで、検索または移動先を選択して、グループを見つけます。
  2. 左側のサイドバーで、設定 > 一般を選択します。
  3. マージリクエストセクションを展開します。
  4. GitLab Duoコードレビューセクションで、GitLab Duoによる自動レビューを有効にするを選択します。
  5. 変更を保存を選択します。

すべてのプロジェクトで自動レビューを有効にするには:

  1. 右上隅で、管理者を選択します。
  2. 左側のサイドバーで、設定 > 一般を選択します。
  3. GitLab Duoコードレビューセクションで、GitLab Duoによる自動レビューを有効にするを選択します。
  4. 変更を保存を選択します。

設定は、アプリケーションからグループ、プロジェクトへとカスケードします。より具体的な設定は、より広範な設定をオーバーライドします。

自動レビューのクレジット使用量がどのように割り当てられるかについては、実行されるコードレビュー機能を判定するを参照してください。

トラブルシューティング

Error DCR4000

Code Review Flow is not enabled. Contact your group administrator to enable the foundational flow in the top-level group. Error code: DCR4000というエラーが表示されることがあります。

このエラーは、基本フローまたはコードレビューフローのいずれかが無効になっている場合に発生します。

管理者に連絡し、トップレベルグループのコードレビューフローを有効にするよう依頼してください。

Error DCR4001

Code Review Flow is enabled but the service account needs to be verified. Contact your administrator. Error code: DCR4001というエラーが表示されることがあります。

このエラーは、コードレビューフローは有効になっているものの、トップレベルグループのサービスアカウントが準備できていないか、まだ作成中の場合に発生します。

サービスアカウントがアクティブになるまで数分待ってから、もう一度お試しください。エラーが解決しない場合は、管理者に連絡し、トップレベルグループでデベロッパーロールを持つサービスアカウントが作成されていることを確認するよう依頼してください。

Error DCR4002

No GitLab Credits remain for this billing period. To continue using Code Review Flow, contact your administrator. Error code: DCR4002というエラーが表示されることがあります。

このエラーは、現在の請求期間に割り当てられたGitLabクレジットをすべて使い切った場合に発生します。

追加のクレジットを購入するよう管理者に依頼するか、次の請求期間の開始時にクレジットがリセットされるまで待ってください。

Error DCR4003

<User>, you don't have permission to create a pipeline for Code Review Flow in this project. Contact your administrator to update your permissions. Error code: DCR4003というエラーが表示されることがあります。

このエラーは、コードレビューフローがCI/CDパイプライン上で実行され、このプロジェクトでパイプラインを作成する権限がないために発生します。

管理者に連絡し、パイプラインの実行に必要な権限を付与するよう依頼してください。

Error DCR4004

<User>, you need to set a default GitLab Duo namespace to use Code Review Flow in this project. Please set a default GitLab Duo namespace in your preferences. Error code: DCR4004というエラーが表示されることがあります。

このエラーは、GitLab Duoがレビューを開始したユーザーのデフォルトGitLab Duoネームスペースを特定できない場合に発生します。

設定でデフォルトGitLab Duoネームスペースを設定し、もう一度レビューをリクエストしてください。

Error DCR4005

Code Review Flow could not obtain the required authentication tokens to connect to the GitLab AI Gateway and the GitLab API. Please request a new review. If the issue persists, contact your administrator. Error code: DCR4005というエラーが表示されることがあります。

コードレビューフローがGitLab AIゲートウェイおよびGitLab APIに接続するには、認証トークンが必要です。このエラーは、トークンを生成できない場合に発生します。これは通常、GitLab Duoの設定が正しくないか、一時的なインフラストラクチャの問題が原因です。

Self-Managedインスタンスの場合、管理者にGitLab Duoの設定を確認するよう依頼してください。

Error DCR4006

Code Review Flow could not add the service account to this project. Contact your administrator to verify that the service account has the required project access. Error code: DCR4006というエラーが表示されることがあります。

このエラーは、サービスアカウントをプロジェクトのメンバーとして追加できない場合に発生します。これは、グループメンバーシップのロックが有効になっている場合や、サービスアカウントに必要なアクセス権がない場合に発生する可能性があります。

管理者に連絡し、サービスアカウントをデベロッパーとしてプロジェクトに追加できることを確認するよう依頼してください。

Error DCR4007

Code Review Flow is not available for this project. Contact your administrator to verify that the flow is enabled and the required configuration is in place. Error code: DCR4007というエラーが表示されることがあります。

このエラーは、フローが無効になっているか、プロジェクトに必要な設定がない場合に発生します。

管理者に連絡し、プロジェクトでフローが有効になっていることを確認するよう依頼してください。

Error DCR4008

Code Review Flow could not create the required CI/CD pipeline. Please request a new review. If the problem persists, contact your administrator. Error code: DCR4008というエラーが表示されることがあります。

このエラーは、Runnerの可用性の問題や内部設定の問題により、コードレビューフローがレビューを実行するためのCI/CDパイプラインを作成または設定できない場合に発生します。

レビューを再試行してください。エラーが解決しない場合は、管理者に連絡してください。

Error DCR4009

Code Review Flow could not retrieve the source branch for this merge request. Please request a new review. Error code: DCR4009というエラーが表示されることがあります。

このエラーは、コードレビューフローがマージリクエストのソースブランチを取得できない場合に発生します。

レビューを再試行してください。

Error DCR5000

Something went wrong while starting Code Review Flow. Please try again later. Error code: DCR5000というエラーが表示されることがあります。

このエラーは、GitLab Duo Agent Platformが内部エラーによりコードレビューフローを開始できない場合に発生します。

レビューを再試行してください。エラーが解決しない場合は、管理者に連絡してください。

大規模なマージリクエストのレビューでコンテキストが不足する

マージリクエストに大きな変更ファイルが多数含まれている場合、コードレビューフローでコンテキストが不足することがあります。

これは、プレスキャン結果がファイルとコンテキストの制限を超え、レビューステージが実行される前にデータが切り詰められる場合に発生することがあります。

レビューを改善するには:

  • マージリクエストを、より小さなマージリクエストに分割する。
  • レビューに関連しないファイルのコンテキストを除外する。
  • メンテナーまたはオーナーに、エージェント型コードレビュー設定を使用して別のモデルを選択するよう依頼する。

設定診断スクリプト

文書化されているエラーコードからコードレビューフローの問題の原因を特定できない場合は、診断スクリプトを実行してGitLab Duo設定を確認できます。

このスクリプトは、すべてのGitLab Duo Agent Platform機能に適用されるチェックを含め、コードレビューフローに必要な設定チェーン全体をチェックします。

詳細については、設定診断スクリプトを実行するを参照してください。