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

リポジトリX-Ray

  • プラン: Premium、Ultimate
  • アドオン: GitLab Duo ProまたはEnterprise
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

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

このために、リポジトリX-Rayは、コードアシスタントに、プロジェクトのコードベースと依存関係について、次の方法でより多くのインサイトを提供します:

  • 依存関係マネージャーの設定ファイル(例: Gemfile.lockpackage.jsongo.mod)を検索します。
  • コンテンツからライブラリのリストを抽出します。
  • 抽出されたリストを、コード生成、コードをリファクタリング、コードの修正、およびテスト記述リクエストでGitLab Duo Code Suggestionsで使用される追加のコンテキストとして提供します。

リポジトリX-Rayは、使用中のライブラリやその他の依存関係を理解することで、コードアシスタントがプロジェクトで使用されているコードパターン、スタイル、およびテクノロジに合わせて提案を調整できるようにします。これにより、特定のスタックのベストプラクティスに従い、よりシームレスに統合されるコード提案が実現します。

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

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

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

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

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

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

プロジェクトがGitLab Duo Code Suggestionsにアクセスできる場合、リポジトリ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.json, package.json17.5以降
KotlinGradlebuild.gradle.kts17.5以降
PHPComposercomposer.lock, composer.json17.5以降
PythonCondaenvironment.yml17.5以降
PythonPip*requirements*.txt 117.5以降
PythonPoetrypoetry.lock, pyproject.toml17.5以降
RubyRubyGemsGemfile.lock17.4以降

補足説明:

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