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

GitLab Orbit Localの仕組み

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
  • ステータス: ベータ版

GitLab Orbit Localは実験的機能です。GAリリース前に、機能およびコマンドの形式が変更される場合があります。

インデックス作成パイプライン

orbit indexを実行すると、GitLab Orbit Localは次の処理を行います:

  1. .gitignoreの設定を尊重しながら、リポジトリのディレクトリツリーを走査します。
  2. 各ソースファイルを、言語に応じたパーサー(rust-analyzer、tree-sitter、またはカスタムパーサー)に渡します。
  3. 定義(関数、クラス、モジュール)、インポート宣言、およびクロスファイルのシンボル参照を抽出します。
  4. 結果をノードとエッジとして~/.orbit/graph.duckdbのローカルDuckDBファイルに書き込みます。

v2パイプラインはすべての言語パーサーを並列で実行します。中規模のリポジトリのインデックス作成は、通常数秒で完了します。

グラフモデル

GitLab Orbit Localはコードのみのグラフを構築します。GitLabへの接続がないため、SDLCデータ(マージリクエスト、パイプライン、ユーザー)にはアクセスできません。

ローカルグラフのノード:

  • ファイル - リポジトリ内のソースファイル
  • ディレクトリ - リポジトリ内のディレクトリ
  • 定義 - 関数、クラス、モジュール、またはその他の名前付きシンボル
  • ImportedSymbol - 別のファイルまたはパッケージからインポートされたシンボル

エッジは、ファイルとその定義、ファイルとそのインポート、および定義とファイル間で参照するシンボルを接続します。

クエリの実行

GitLab Orbit LocalはグラフをDuckDBデータベースとして公開します。orbit sqlを使用して、読み取り専用のSQLを実行できます:

  1. orbit sqlは~/.orbit/graph.duckdbを読み取り専用で開きます。
  2. SQLはグラフテーブルに対して直接実行されます。DSLのコンパイルや認可レイヤーは不要です。
  3. 結果はテーブル、JSON、NDJSON、またはCSV形式でストリーミングされます。

グラフ内のすべてのデータは、CLIを実行するユーザーがアクセスできます。

ストレージ

グラフは~/.orbit/graph.duckdbの単一のDuckDBファイルに保存されます。複数のリポジトリが同じデータベースを共有し、各リポジトリはマニフェストテーブル内のプロジェクトIDとブランチによってスコープが設定されます。

サポートされている言語

GitLab Orbit Remoteがサポートする13の言語はすべてローカルでもサポートされています:Ruby、Java、Kotlin、Python、TypeScript、JavaScript、Rust、Go、C#、C、C++、PHP、Bash/Shell。

完全な言語サポート表については、GitLab Orbitでデータをインデックス作成するを参照してください。

課金

GitLab Orbit LocalはGitLabクレジットを消費しません。すべての処理はローカルで行われます。