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

リポジトリX-Rayとコード提案

リポジトリX-Rayは、以下の機能を自動的に強化します:

これを実現するため、リポジトリX-Rayは次の方法で、コードアシスタントにプロジェクトのコードベースや依存関係に関する高度なインサイトを提供します:

  • 依存関係マネージャーの設定ファイル(例: Gemfile.lockpackage.jsongo.mod)を検索する。
  • 検索した内容からライブラリのリストを抽出する。
  • 抽出したリストを追加のコンテキストとして提供し、GitLab Duoコード提案がコード生成、リファクタリング、修正、テスト作成の各リクエストに活用できるようにする。

使用中のライブラリやその他の依存関係を把握することで、リポジトリX-Rayは、プロジェクトで採用されているコードパターン、スタイル、技術に合わせてコードアシスタントが提案を調整できるよう支援します。これにより、対象の技術スタックにシームレスに統合され、ベストプラクティスに従ったコード提案が可能になります。

リポジトリX-Rayはコード生成リクエストのみを強化し、コード補完リクエストは強化しません。

リポジトリX-Rayの仕組み

プロジェクトのデフォルトブランチに新しいコミットをプッシュすると、リポジトリX-Rayはバックグラウンドジョブをトリガーします。このジョブは、リポジトリ内の該当する設定ファイルをスキャンして解析します。

通常、各プロジェクトで一度に実行されるスキャンジョブは1つだけです。2回目のスキャンがトリガーされたときに、スキャンがすでに進行中の場合、2回目のスキャンは、最初のスキャンが完了するまで実行を待機します。これにより、最新の設定ファイルデータがデータベースで解析および更新されるまでに、わずかな遅延が発生する可能性があります。

コード生成リクエストが行われると、解析されたデータからの最大300個のライブラリが追加のコンテキストとしてプロンプトに含まれます。

リポジトリX-Rayを有効にする

プロジェクトがGitLab Duoコード提案にアクセスできる場合、リポジトリX-Rayサービスは自動的に有効になります。

サポートされている言語と依存関係マネージャー

リポジトリX-Rayは、リポジトリのルートから最大2つのディレクトリレベルを検索します。たとえば、Gemfile.lockapi/Gemfile.lock、またはapi/client/Gemfile.lockはサポートされますが、api/v1/client/Gemfile.lockはサポートされません。言語ごとに、最初に一致する依存関係マネージャーのみが処理されます。ロックファイルが存在する場合は、ロックファイルではない対応ファイルよりもロックファイルが優先されます。

言語依存関係マネージャー設定ファイルGitLabバージョン
C/C++Conanconanfile.py17.5以降
C/C++Conanconanfile.txt17.5以降
C/C++vcpkgvcpkg.json17.5以降
C#NuGet*.csproj17.5以降
GoGo Modulesgo.mod17.4以降
JavaGradlebuild.gradle17.4以降
JavaMavenpom.xml17.4以降
JavaScriptNPMpackage-lock.jsonpackage.json17.5以降
KotlinGradlebuild.gradle.kts17.5以降
PHPComposercomposer.lockcomposer.json17.5以降
PythonCondaenvironment.yml17.5以降
PythonPip*requirements*.txt 117.5以降
PythonPoetrypoetry.lockpyproject.toml17.5以降
RubyRubyGemsGemfile.lock17.4以降

補足説明:

  1. Python Pipの場合、*requirements*.txt globパターンに一致するすべての設定ファイルが処理されます。