このプロジェクトについて
GitGalaxyは、ビルドステップや言語ごとのツールチェーンを必要とせず、ソーステキストから直接リポジトリ全体の言語非依存な構造グラフを構築するツールである。多言語混在、部分的に壊れた、レガシー、ベンダー依存が大きい、その他ビルド優先のワークフローでは分析が困難なリポジトリを対象としている。
言語ごとに個別のパーサーを使う代わりに、GitGalaxyは構造的シグネチャの共通語彙 — 関数、クラス、引数、制御フロー、状態変更、I/O、API、依存関係 — を抽出し、それらを1つの決定論的なリポジトリモデルに正規化する。このモデルは、アーキテクチャ分析、リスク露出の優先順位付け、SBOM生成、リファクタリングと所有権分析、AI向けコードベースコンテキスト、CI/CDゲートに供給される。
単一のコマンド(`galaxyscope path/to/repo`)で6つの連携出力を生成する:
- LLMアーキテクチャ概要(エンジニアまたはAIエージェント向けのコンパクトなMarkdownレポート)
- CI/セキュリティダッシュボード統合向けのSARIF
- 依存関係インベントリ/コンプライアンス向けのCycloneDX SBOM
- クエリ可能なリポジトリ知識グラフ向けのSQLite
- フォレンジック/自動化ワークフロー向けのJSON監査データ
- インタラクティブなリポジトリトポロジー向けの3D可視化データ
アーキテクチャ概要には、リスク方程式、埋め込み解釈プロンプト、マクロ状態と言語構成、ネットワークトポロジー(モジュール性、関節点、循環密度)、依存関係のチョークポイント、最も重い関数とファイル、PageRankブラスト半径を伴うファイルごとの構造的シグネチャ、標的型および累積リスクのヒットリスト、サプライチェーン監査、リファクタリング対象、そしてスキャンを拒否したすべてのファイルとその理由の項目別リストが含まれる。
GitGalaxyは、固定コーパス(Language Crucible)上でTree-sitterおよびUniversal Ctagsとベンチマーク比較されている。そのコーパスでは、検証済み関数の精度はtree-sitterと比較可能な全31言語で100%であり、検証済みのクラスまたは引数の不一致において誤りと判定されたツールになることはない。インポートグラフは59言語中20言語で測定され、被呼び出し名は11言語、呼び出し解決は3言語(Python、TypeScript、Java)で測定され、精度は92.7%から99.9%の間だが再現率は41%から57.1%の間であるため、関数レベルのファンインとPageRankは下限値である。
言語間一貫性プログラム(Keyword Rosetta)は、同じ12プローブプログラムをサポートする全50言語に配置し、正確に既知のシグナル数を持つ。平均して94%の言語が、ゲート対象指標ごとに言語間中央値の±25%以内に収まり、未解決欠陥の割合は0.0%(2,844の比較可能セルのうち1つ)である。
実世界での規模:Kubernetes(約139万行)のスキャンは約51秒かかる。スキャン時間はフィットされた2レジームモデルに従う。
13のファイルごとのベクトルは元々`risk_*`と命名され、リスク露出測定として記述されていた。時間的検証プログラム(約3,550のスキャン済みスナップショット、2つのリポジトリ、3つのラベルファミリー、事前登録されたテスト)は、ファイルごとの恒常的な構造的リスクが欠陥を予測しないことを発見した — それは行数に還元される。2つの履歴指標は検証された:再犯性(最後の修正を行ったファイルが次の修正を受ける)と変更エントロピー(Hassan HCM)。ベクトルは現在Structural Surface Profileと呼ばれ、`risk_*`は互換性のためにDBカラム/JSONキーとして残っている。
GitGalaxyはローカルおよびエアギャップ運用向けに設計されている:ソースコードはクラウドサービスに送信されず、スキャンとベクトル化はローカルで行われ、スキャナーには実行時のネットワーク要件がなく、CI/CD実行はユーザーの環境内に留まることができる。
インストール:`pip install gitgalaxy`(インストール依存関係ゼロ)または追加のオプションパッケージ用に`pip install "gitgalaxy[full]"`。デフォルトのテストスイートは7,043のテストを持ち、そのうち6,165は構造的シグネチャを持つ全45言語にわたるシグネチャごとのテストである。
GitGalaxyは、CodeQLの深いデータフロー分析、Semgrepのルールエコシステム、依存関係CVEデータベース、悪用可能性の証明、ランタイムアナライザー、完全な言語パーサーの代替ではない。それは次に答える:「このリポジトリ全体は構造的にどのようなものか、そしてどこに最初に注意を向けるべきか?」
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.