
gitgalaxy — Updated!
ASTフリーのヒューリスティック知識グラフエンジンで、リポジトリの深層インテリジェンスとゼロトラストセキュリティスキャンを実現。GitLab CI/CDコンポーネントとして統合され、悪意のあるコードをブロックし、SARIFテレメトリをGitLab Security Dashboardへエクスポートします。
GitGalaxy
コンパイル不要のリポジトリ規模構造インテリジェンス。
Docs · Visualizer · Language Crucible · Raw Output
1回のスキャン · 97の構造シグナル · 50以上の言語 · コンパイル不要 · 19の リスク曝露カテゴリ · 6つの出力
概要
GitGalaxyは、ソーステキストから直接、リポジトリ全体の言語非依存の構造グラフを構築します。
これは、ポリグロット、部分的に壊れている、レガシー、ベンダー依存が強い、またはビルドファーストのワークフローでは分析が難しいリポジトリ向けに設計されています。
すべての言語に対して成功するビルドと個別のパーサー/ツールチェーンを必要とする代わりに、GitGalaxyは構造シグネチャ---関数、クラス、引数、制御フロー、状態変更、I/O、API、依存関係、その他のシグナル---の共通語彙を抽出し、それらの観測結果を1つのリポジトリモデルに正規化します。
同じグラフは、以下に利用できます:
- アーキテクチャ分析
- リスク曝露の優先順位付け
- 依存関係/SBOM分析
- リファクタリングおよび所有権分析
- レガシーコード分析
- AI向けコードベースコンテキスト
- CI/CDワークフロー
- 履歴リスク分析
中心的な主張: リポジトリ規模で非常に有用な構造情報を回復するために、完全な言語パースが常に必要とは限りません。
問題
大規模なリポジトリには、通常、以下が含まれています:``` text Go + C++ + Python + Java + Bash + YAML
- generated code + vendored code + legacy code
- half-migrated modules + broken dependencies
従来の言語ツールは、その意図された範囲内では優れている一方で、リポジトリが言語固有の表現に断片化されたままになる可能性があります。
GitGalaxyは、異なるトレードオフを選択します:``` text
Source repository
|
v
Structural signatures
|
v
Normalized entities + risk signals
|
v
Deterministic repository graph
|
+---- Architecture
+---- Risk exposure
+---- Dependencies / SBOM
+---- AI context
+---- Refactoring
+---- Git-history analysis
一つのグラフ、多くの利用者
GitGalaxyの核となる出力は、リポジトリの決定的な構造表現です。
利用者 問い
アーキテクチャ このリポジトリは何で構成されているか?
構造解析 関数、クラス、API、依存関係、制御構造はどこにあるか?
リスク曝露 潜在的に重要なリスクパターンはどこに集中しているか?
リファクタリング 複雑、高変更頻度、または基幹的なファイルはどれか?
サプライチェーン ディスク上に物理的に存在する依存関係は何か?
AIコンテキスト エージェントが知るべきアーキテクチャと関係性は何か?
レガシー移行 変換すべき構造単位はどこにあるか?
履歴分析 リポジトリの進化に伴い、測定された曝露はどう変化するか?

構造抽出のテーゼ
GitGalaxyは意図的に、すべての言語に対して完全なASTを構築することから始めません。
約97の構造シグナルカテゴリを使用して、以下のようなものを識別します:
- 関数とメソッドの境界
- クラスと宣言
- 引数
- 分岐と制御フロー
- 状態変更
- I/O
- APIとルート
- インポートと依存関係
- 安全でない操作
- リフレクションと動的実行
- 並行性
- クロージャ
- グローバル
- エントロピーと物理ファイルの異常
これにより、具体的で検証可能な仮説が生まれます:
リポジトリ規模のインテリジェンスにおいて、対象を絞った構造抽出は、すべてのファイルに完全な言語パーサーを必要とせずに、有用なコードインテリジェンスに必要なエンティティを回復できる。
この仮説は経験的に検証されています。
構造検証:GitGalaxy vs Tree-sitter vs Ctags
これは現在、プロジェクトで最も重要な検証プログラムの一つです。
GitGalaxyは、同じLanguage Crucibleコーパス上でTree-sitterおよびUniversal Ctagsと比較評価されています。
最初の構造ターゲットは:
- 関数
- クラス
- 引数
ベンチマークは意図的に、3つのツールの人気コンテストとしては扱われません。
ツールが一致しない場合:
- 不一致が記録されます;
- ソースが検査されます;
- 各ツールの動作が調査されます;
- GitGalaxyが間違っている場合はGitGalaxyが修正されます;
- 比較器/アダプタコードが間違っている場合は比較器が修正されます;
- 真のツールの制限が文書化されます;
- 結果が再測定されます。
45言語中24言語で3つのツールすべてが比較され、さらに16言語で2つが比較され、5つのGitGalaxy専用言語(abap、dockerfile、jcl、livecode、yaml)は、ツール間の一致の代わりに手動レビューによる検証が行われます。これまでに記録された180の不一致パターンのうち、**87件が検証済み(48%)**です — 単に数えるだけでなく、読まれ、調査され、判定付きで記録されています。
目標は、監査を完了し、残りのGitGalaxyの欠陥を修正し、必要に応じて独立したグラウンドトゥルースを確立し、その後、最終的な適合率/再現率の測定値を公開することです。マッチング、台帳のライフサイクル、CIの適用方法については、三者比較方法論ドキュメントを参照してください。
参照:
tests/tools/tri_comparison_chart.pydocs/self_scan/tri_comparison_ledger.json— パターンごとの完全な検証済み記録docs/self_scan/tri_comparison_points_of_interest.md— 同じ台帳を、シグナル強度でレンダリングしランク付けしたものdocs/self_scan/how_to_investigate_a_discrepancy.mddocs/self_scan/manual_verification.json
ベンチマークが実際に問うていること
次のようなことではありません:
「GitGalaxyはTree-sitterより優れたパーサーか?」
しかし、次のようなことです:
「GitGalaxyがリポジトリグラフを構築するために必要な構造エンティティについて、対象を絞った構造抽出は、確立されたパースおよびインデックスシステムと比較して、それらをどの程度正確に回復できるか?」
それが、この実験が裏付けることができるより狭い主張です。
適切な比較器カバレッジのない言語
一部の言語には現在、適切な独立したTree-sitter/Ctags比較パスがありません。
これらは別の証拠カテゴリに保持され、ツール間の一致が存在するふりをするのではなく、コミットされた手動検証を使用します。
これには現在、以下のような言語が含まれます:
- ABAP
- Dockerfile
- JCL
- LiveCode
- YAML
実用的な場合、次のステップは独立した語彙ベース、文法ベース、またはドメイン固有の比較器を追加することです。信頼できる独立した比較器が存在しない場合、人間が検証したグラウンドトゥルースが適切なカテゴリのままです。
検証ははしごのようなもの
GitGalaxyの証拠は、段階的に強くなる問いを中心に整理されています。
1. 構造的妥当性
GitGalaxyはコード構造を正しく識別しますか?
Tree-sitter + Ctags + 独立して調査された不一致。上記の「構造検証」を参照してください。
2. 回帰的妥当性
実コード上で実装は安定していますか?
Language Crucibleに対するゴールデンマスターテスト。
3. スケール的妥当性
実際のリポジトリで機能しますか?
数百のリポジトリからの未編集の生スキャン出力。
4. モデル的妥当性
構造シグネチャは、それらが表すことを意図した曝露カテゴリに対応していますか?
GitGalaxy自身の方程式に対してだけでなく、独立して観測可能な結果に対する統計分析。
5. 時間的妥当性
ソフトウェアの変更に伴い、曝露は妥当に動作しますか?
実際の変更の前後のリポジトリ状態を比較するGit履歴分析。
6. 外的妥当性
曝露の変化は、独立して文書化されたセキュリティまたはメンテナンスの結果に対応していますか?
将来の作業:セキュリティ修正、回帰、勧告、欠陥、その他の外部イベントデータセット。
この区別は重要です:スコアは、必ずしも外部で意味を持つことなく、内部的に一貫性を持つことができます。
リスク曝露:GitGalaxyが主張すること
GitGalaxyはリスク曝露の測定値を生成します。脆弱性の判定ではありません。
高い曝露は次のことを意味します:
この場所は、リポジトリの他の部分と比較して注意に値する。
次のことを意味するわけではありません:
「このコードは間違いなく脆弱である。」
現在のシステムは、リポジトリ全体にわたって正規化された曝露カテゴリを生成し、構造エンティティからファイル、フォルダ、リポジトリレベルのビューを通じて情報をロールアップします。
基礎となるシグネチャは、以下のような領域を含むパターンをカバーします:
- シークレット
- インジェクション面
- 安全でない/メモリ操作
- 動的実行
- I/O
- 並行性
- 状態変更
- リフレクション
- API
- 依存関係
- エントロピー
- その他の構造的/セキュリティ特性
重要な研究課題は、これらのシグネチャが、GitGalaxy自身が数学的に構築したスコアと単に相関しているだけでなく、意味のあるクラスのソフトウェアリスクと経験的に関連しているかどうかです。
その区別が次のフェーズを推進します。
次の検証:Git履歴にわたるリスク
構造検証が十分に成熟したら、GitGalaxyはその曝露モデルを縦断的にテストできます。``` text Git history | v security-relevant event | +-------------------+ | | v v parent state changed state | | v v GitGalaxy scan GitGalaxy scan | | +---------+---------+ | v exposure delta | v independent event class
中央となる実験は次のとおりです。
> **セキュリティ修正として独立に特定されたコミットは、通常、
> 対応するGitGalaxyエクスポージャーを削減するか?**
ネガティブコントロールも同様に重要です。
> 通常の開発コミットは同じ挙動を示すか?
最終的には:
> セキュリティリグレッションはエクスポージャーを増加させるか?
計画されたハーネスは、コミットSHA、親状態、変更されたファイル/関数、変更前後のエクスポージャー、エクスポージャーの差分、構造的変更、イベント分類を保持します。
これにより、以下が検証されます。
**構造 → エクスポージャー → 実際のソフトウェア進化**
これは、エクスポージャーモデルの内部的な数学のみを検証するのではなく、実際のソフトウェア進化を検証するものです。
------------------------------------------------------------------------
# 主張ではなく、証拠
### 言語るつぼ
Godot、Roslyn、curl、Kubernetes、Apollo 11フライトソフトウェアなどのプロジェクトを含む、実世界のソースの固定コーパス。
[Language Crucible](https://github.com/squid-protocol/language-crucible)
### ゴールデンマスタ回帰テスト
実ソースが再スキャンされ、チェックイン済みの期待出力と比較されるため、パーサーの変更には観測可能な差分が生じます。[`tests/tools/update_golden_master.py`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/tests/tools/update_golden_master.py)で再生成され、手動編集はされません。
### 三者比較
同じコーパスが、カバレッジが存在する箇所でGitGalaxy、Tree-sitter、Ctagsに対して分析されます。45言語中24言語で3つのツールすべてが利用可能で、180件の記録された不一致のうち87件がこれまでに検証されています。詳細は[方法論](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/self_scan/tri_comparison_README.md)と、上記の[「構造的検証」セクション](#structural-validation-gitgalaxy-vs-tree-sitter-vs-ctags)を参照してください。
### 生のリポジトリ出力
未編集のGitGalaxy出力が、独立に選択された数百のリポジトリについて保持されています。
[Raw Output](https://github.com/squid-protocol/gitgalaxy-raw-output)
### 回帰テストスイート
デフォルトスイート(`python -m pytest tests/`)には**7,043件のテスト**があり、そのうち**6,165件**は、構造的シグネチャを持つ全45言語にわたるシグネチャ単位のテストです。肯定的マッチ、明示的除外、敵対的/ReDoS入力を含みます。内訳は[`tests/README.md`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/tests/README.md)を、この抽出がAST読み取りよりも優れている具体的で証拠に基づくケースは[`docs/why_gitgalaxy_beats_ast_here.md`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/why_gitgalaxy_beats_ast_here.md)を参照してください。
### 履歴検証
次の研究層では、エクスポージャー測定がGit履歴上の実際のセキュリティおよびメンテナンスイベントと対応するかどうかを検証します。
------------------------------------------------------------------------
# GitGalaxyとは何か --- そして何でないか
### GitGalaxyは以下です
- リポジトリ規模の構造的インテリジェンス
- 言語非依存のソース分析
- 異種コードにわたる共通の構造的表現
- リスクエクスポージャーの優先順位付け
- アーキテクチャマッピング
- CIネイティブな証拠生成
- 壊れた/未コンパイルのリポジトリでも有用
- ローカル/オフライン運用向けに設計
### GitGalaxyは以下ではありません
- CodeQLの深いデータフロー分析の代替
- Semgrepのルールエコシステムの代替
- 依存関係CVEデータベースの代替
- 悪用可能性の証明
- ランタイムアナライザー
- 完全な言語パーサー
- 高いエクスポージャーが脆弱性であることの保証
-----------------------------------------------------------------------
ツール 主な問い
----------------------------------- -----------------------------------
**GitGalaxy** このリポジトリ全体は構造的にどの
ように見え、どこに最初に注意を
向けるべきか?
Tree-sitter このソースにはどのような構文構造が
含まれているか?
Ctags ナビゲート可能なコードエンティティは
どこにあるか?
Semgrep このコードは指定されたパターンに
一致するか?
CodeQL より深い分析でどのようなデータ/制御
関係を確立できるか?
SCA/CVEツール この依存関係/バージョンは既知の
アドバイザリと関連しているか?
-----------------------------------------------------------------------
------------------------------------------------------------------------
# 実世界の規模
GitGalaxyは、従来の単一言語のビルドファーストワークフローには異種すぎる、または壊れすぎているリポジトリを対象としています。
例: **Kubernetes**
Go、YAML、JSON、Shell、Protoにわたる約139万行。
エンドツーエンドスキャン: **50.83秒**。

未編集の成果物については[生出力リポジトリ](https://github.com/squid-protocol/gitgalaxy-raw-output)を参照してください。
------------------------------------------------------------------------
# 出力
出力 目的
---------------------------- ----------------------------------------
**SARIF** CI/セキュリティダッシュボード統合
**CycloneDX SBOM** 依存関係インベントリ/コンプライアンス
**SQLite** クエリ可能なリポジトリ知識グラフ
**LLMアーキテクチャ概要** コンパクトな機械/エージェント向けコンテキスト
**JSON監査データ** フォレンジック/自動化ワークフロー
**3D可視化データ** インタラクティブなリポジトリトポロジ
これらは独立した分析エンジンではなく、同じ決定的スキャンの異なるビューです。
------------------------------------------------------------------------
# Git履歴とアーキテクチャ
GitGalaxyはすでにGit履歴を以下のようなシグナルに組み込んでいます。
- チャーン
- コントリビューター集中度
- バスファクターエクスポージャー
- リファクタリングホットスポット
- ファイル所有権
- 時間的アクティビティ
研究の方向性は、これを**コンテキストシグナルとしての履歴**から、**エクスポージャーモデルの外部検証ソースとしての履歴**へと拡張することです。
------------------------------------------------------------------------
# プライバシーとデプロイメント
GitGalaxyはローカルおよびエアギャップ環境での運用向けに設計されています。
- ソースコードはGitGalaxyクラウドサービスに送信されません。
- スキャンとベクトル化はローカルで実行されます。
- スキャナーには実行時のネットワーク要件はありません。
- CI/CD実行はユーザーの環境内に留まることができます。
- ブラウザビジュアライザーはローカルで提供されたデータで動作します。
------------------------------------------------------------------------
# インストール``` bash
pip install gitgalaxy
ドキュメントを参照して、 現在のコマンドと設定を確認してください。
CI/CD
以下のテンプレートが用意されています:
- GitHub Actions
- GitLab CI
- Bitbucket Pipelines
- Azure Pipelines
- 汎用シェル呼び出し対応のCI環境
templates/とCI統合
ガイドを参照してください。
エビデンスを探索する
リソース 内容
ドキュメント アーキテクチャ、主張、および 方法論
Language Crucible クロス言語ベンチマークとゴールデン コーパス
Raw Output 実際のリポジトリの未編集スキャン
tests/README.md リグレッションおよびゴールデンマスター
方法論
tri_comparison_ledger.json 不一致ごとの
検証記録
manual_verification.json コンパレータのカバレッジが
利用できないレビュー済みケース
how_to_investigate_a_discrepancy.md コンパレータ不一致の方法論
Visualizer ローカルブラウザベースのリポジトリ 可視化
現在の研究の方向性
GitGalaxyは、ますます困難になる一連の問いを順に進めています:
コンパイルせずに異種ソースをスキャンできますか?
↓
それを理解するために必要な構造的エンティティを確実に復元できますか?
↓
それらの構造的測定値は、意味のあるリスクエクスポージャーに対応していますか?
↓
測定されたエクスポージャーは、実際のソフトウェアが進化するにつれて正しく動作しますか?
Tree-sitter/Ctagsの検証は現在、約半分まで完了しています。 当面の優先事項は、予備的な測定値をより強力な主張に変える前に、その監査を完了することです。
次の主要な実験は次のとおりです:
Git履歴 → 独立して特定された変更/修正イベント → GitGalaxyの 変更前/変更後スキャン → エクスポージャーの差分 → 統計分析。
ここでGitGalaxyは、構造を見ることができるかどうかだけでなく、その構造モデルが実際のソフトウェアにおける意味のある変更を追跡するかどうかのテストを開始できます。
ライセンス
Copyright (c) 2026 Joe Esquibel
GitGalaxyはPolyForm Noncommercial License 1.0.0の下で配布されています。
完全な条件については、リポジトリのライセンスを参照してください。