العودة إلى التحديثات
UpdatedJul 24, 2026

gitgalaxy — Updated!

محرك رسم بياني معرفي استرشادي خالٍ من AST للذكاء العميق للمستودعات ومسح أمني ذو ثقة صفرية. يتكامل كمكون من مكونات GitLab CI/CD، ويحظر الكود العدائي، ويُصدّر بيانات SARIF عن بُعد إلى لوحة تحكم الأمان في GitLab.

مشاركة

GitGalaxy

بنية على مستوى المستودع دون الحاجة إلى ترجمة.

Docs · Visualizer · Language Crucible · Raw Output

فحص واحد · 97 إشارة بنيوية · أكثر من 50 لغة · بدون ترجمة · 19 فئة لتعرض المخاطر · 6 مخرجات

النسخة المختصرة

يبني GitGalaxy رسمًا بيانيًا بنيويًا مستقلًا عن اللغة لمستودع كامل مباشرةً من النص المصدري.

وهو مصمم للمستودعات متعددة اللغات، أو المكسورة جزئيًا، أو القديمة، أو المثقلة بالمكتبات الخارجية، أو التي يصعب تحليلها بأي طريقة أخرى عبر سير عمل يعتمد على البناء أولًا.

بدلًا من اشتراط بناء ناجح وأداة تحليل/سلسلة أدوات منفصلة لكل لغة، يستخرج GitGalaxy مفردات مشتركة من التوقيعات البنيوية---الدوال، والصنوف، والوسائط، وتدفق التحكم، وتغيير الحالة، والإدخال/الإخراج، وواجهات البرمجة، والتبعيات، وإشارات أخرى---ويوحّد تلك الملاحظات في نموذج مستودع واحد.

يمكن للرسم البياني نفسه أن يغذي بعد ذلك:

  • تحليل البنية
  • تحديد أولويات تعرض المخاطر
  • تحليل التبعيات/SBOM
  • تحليل إعادة الهيكلة والملكية
  • تحليل الكود القديم
  • سياق قاعدة الكود الموجه للذكاء الاصطناعي
  • سير عمل 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 هو تمثيل بنيوي حتمي للمستودع.


المستهلك السؤال


البنية المعمارية مم يتكون هذا المستودع؟

التحليل البنيوي أين توجد الدوال، والصنوف، وواجهات البرمجة، والتبعيات، وهياكل التحكم؟

التعرض للمخاطر أين تتركز أنماط المخاطر المهمة المحتملة؟

إعادة الهيكلة أي الملفات معقدة، أو عالية التغيير، أو حاملة للأحمال؟

سلسلة التوريد ما التبعيات الموجودة فعليًا على القرص؟

سياق الذكاء الاصطناعي ما البنية والعلاقات التي ينبغي أن يعرفها الوكيل؟

ترحيل الأنظمة القديمة أين توجد الوحدات البنيوية التي يجب تحويلها؟

التحليل التاريخي كيف يتغير التعرض المُقاس مع تطور المستودع؟

خط أنابيب بنية GitGalaxy


أطروحة الاستخراج البنيوي

لا يبدأ GitGalaxy عمدًا ببناء شجرة نحوية مجردة كاملة (AST) لكل لغة.

بل يستخدم حوالي 97 فئة من إشارات البنية لتحديد أشياء مثل:

  • حدود الدوال والطرق
  • الصنوف والتصريحات
  • الوسائط
  • الفروع وتدفق التحكم
  • تحوير الحالة
  • الإدخال/الإخراج
  • واجهات البرمجة والمسارات
  • الاستيرادات والتبعيات
  • العمليات غير الآمنة
  • الانعكاس والتنفيذ الديناميكي
  • التزامن
  • الإغلاقات
  • المتغيرات العامة
  • الانتروبيا والشذوذ في الملفات الفيزيائية

يخلق هذا فرضية محددة وقابلة للاختبار:

بالنسبة لذكاء على مستوى المستودع، يمكن للاستخراج البنيوي الموجَّه استعادة الكيانات المطلوبة لذكاء برمجي مفيد دون الحاجة إلى محلل لغة كامل لكل ملف.

تُختبر هذه الفرضية تجريبيًا.


التحقق البنيوي: GitGalaxy مقابل Tree-sitter وCtags

هذا حاليًا أحد أهم برامج التحقق في المشروع.

يُقيَّم GitGalaxy مقابل Tree-sitter وUniversal Ctags على نفس مجموعة Language Crucible.

الأهداف البنيوية الأولى هي:

  • الدوال
  • الصنوف
  • الوسائط

لا يُعامل المعيار عمدًا كمسابقة شعبية بين ثلاث أدوات.

عندما تختلف الأدوات:

  1. يُسجَّل الاختلاف؛
  2. يُفحص المصدر؛
  3. يُحقق في سلوك كل أداة؛
  4. تُصحح GitGalaxy عندما تكون GitGalaxy مخطئة؛
  5. يُصحح كود المقارنة/المهايئ عندما يكون المقارن مخطئًا؛
  6. تُوثَّق قيود الأدوات الحقيقية؛
  7. يُعاد قياس النتيجة.

24 من 45 لغة تُقارن فيها الأدوات الثلاث جميعًا، و16 لغة أخرى تُقارن فيها أداتان، و 5 لغات خاصة بـ GitGalaxy فقط (abap، dockerfile، jcl، livecode، yaml) تحصل على تحقق يدوي مراجَع بدلًا من اتفاق عبر الأدوات. من بين 180 شكل اختلاف مُسجَّل حتى الآن، 87 تم التحقق منها (48%) — أي قُرئت وحُقق فيها وسُجلت بحكم، وليس مجرد عدّ.

الهدف هو إنهاء التدقيق، وإغلاق عيوب GitGalaxy المتبقية، وتأسيس حقيقة أرضية مستقلة عند الحاجة، ثم نشر قياسات الدقة/الاسترجاع النهائية. انظر وثيقة منهجية المقارنة الثلاثية لفهم كيفية عمل المطابقة، ودورة حياة السجل، وإنفاذ التكامل المستمر.

المقارنة الثلاثية

انظر:

ما يسأله المعيار فعليًا

ليس:

"هل 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 قياسات تعرض للمخاطر، وليس أحكامًا على الثغرات.

التعرض المرتفع يعني:

هذا الموقع يستحق الاهتمام نسبيًا إلى بقية المستودع.

ولا يعني:

"هذا الكود ثغرة مؤكدة."

ينتج النظام الحالي فئات تعرض معيارية عبر المستودع ويلفّ المعلومات من الكيانات البنيوية عبر الملفات والمجلدات وعروض مستوى المستودع.

تغطي التوقيعات الأساسية أنماطًا تتعلق بمجالات مثل:

  • الأسرار
  • سطح الحقن
  • العمليات غير الآمنة/الذاكرة
  • التنفيذ الديناميكي
  • الإدخال/الإخراج
  • التزامن
  • تحوير الحالة
  • الانعكاس
  • واجهات البرمجة
  • التبعيات
  • الانتروبيا
  • خصائص بنيوية/أمنية أخرى

السؤال البحثي المهم هو ما إذا كانت هذه التوقيعات مرتبطة تجريبيًا بفئات ذات معنى من المخاطر البرمجية، بدلًا من مجرد ارتباطها بنتيجة بنتها 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 وبرمجيات طيران أبولو 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 حيثما
يتوفر التغطية — 24 من أصل 45 لغة تحصل على الأدوات الثلاث جميعها، وتم
التحقق من 87 من أصل 180 اختلافًا مسجلًا حتى الآن. راجع
[المنهجية](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)

### مجموعة الانحدار

**7,043 اختبارًا** في المجموعة الافتراضية (`python -m pytest tests/`)،
منها **6,165** اختبارًا لكل توقيع عبر جميع اللغات الـ45 ذات التوقيعات
الهيكلية — التطابقات الإيجابية، والاستثناءات الصريحة، ومدخلات
الخصومة/ReDoS. راجع [`tests/README.md`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/tests/README.md) للتفصيل، و
[`docs/why_gitgalaxy_beats_ast_here.md`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/why_gitgalaxy_beats_ast_here.md)
لحالات محددة وموثقة حيث يتفوق هذا الاستخراج على قراءة AST.

### التحقق التاريخي

ستختبر طبقة البحث التالية ما إذا كانت قياسات التعرض تتوافق مع
الأحداث الأمنية والصيانة الحقيقية عبر تاريخ Git.

------------------------------------------------------------------------

# ما هو GitGalaxy — وما ليس كذلك

### GitGalaxy هو

-   ذكاء هيكلي على نطاق المستودع
-   تحليل شيفرات مصدرية مستقل عن اللغة
-   تمثيل هيكلي موحد عبر شيفرات غير متجانسة
-   تحديد أولويات التعرض للمخاطر
-   رسم خرائط البنية
-   توليد أدلة ملائم لـ CI
-   مفيد للمستودعات المعطوبة/غير المترجمة
-   مصمم للعمل المحلي/غير المتصل

### GitGalaxy ليس

-   بديلاً عن تحليل تدفق البيانات العميق في CodeQL
-   بديلاً عن نظام قواعد Semgrep
-   بديلاً عن قواعد بيانات CVEs للتبعيات
-   دليلًا على قابلية الاستغلال
-   محللًا زمنيًا (runtime)
-   محللًا لغويًا كاملًا
-   ضمانًا بأن التعرض المرتفع يمثل ثغرة

  -----------------------------------------------------------------------
  الأداة                                السؤال الأساسي
  ----------------------------------- -----------------------------------
  **GitGalaxy**                       كيف يبدو هذا المستودع بأكمله
                                      هيكليًا، وأين يجب أن يتجه
                                      الانتباه أولاً؟

  Tree-sitter                         ما البنية النحوية التي تحتويها
                                      هذه الشيفرة المصدرية؟

  Ctags                               أين الكيانات البرمجية القابلة
                                      للتنقل؟

  Semgrep                             هل تطابق هذه الشيفرة نمطًا
                                      محددًا؟

  CodeQL                              ما العلاقات البياناتية/التحكمية
                                      التي يمكن للتحليل الأعمق
                                      إثباتها؟

  أدوات SCA/CVE                       هل هذه التبعية/النسخة مرتبطة
                                      باستشارة أمنية معروفة؟
  -----------------------------------------------------------------------

------------------------------------------------------------------------

# النطاق الواقعي

GitGalaxy مخصص للمستودعات غير المتجانسة أو المعطوبة جدًا بحيث لا
تناسب سير العمل التقليدي أحادي اللغة القائم على البناء أولاً.

مثال: **Kubernetes**

\~1.39 مليون سطر عبر Go وYAML وJSON وShell وProto.

فحص شامل من البداية إلى النهاية: **50.83 ثانية**.

![سرعة فحص
GitGalaxy](https://assets.kitploit.com/production/public/readmes/7003/596585161af8eeb861f49e2968927d69059333f145c0e2b6e9bb0cb9c9d7bc36.png)

راجع [مستودع المخرجات
الخام](https://github.com/squid-protocol/gitgalaxy-raw-output) للحصول
على القطع الأثرية غير المحررة.

------------------------------------------------------------------------

# المخرجات

  المخرج                       الغرض
  ---------------------------- ----------------------------------------
  **SARIF**                    تكامل لوحات معلومات CI/الأمان
  **CycloneDX SBOM**           جرد التبعيات/الامتثال
  **SQLite**                   قاعدة معرفة المستودع القابلة للاستعلام
  **ملخص بنية LLM**           سياق مضغوط موجه للآلة/الوكيل
  **بيانات تدقيق JSON**        سير عمل الطب الشرعي/الأتمتة
  **بيانات تصور ثلاثي الأبعاد** طوبولوجيا المستودع التفاعلية

هذه وجهات نظر مختلفة لنفس الفحص الحتمي، وليست محركات تحليل مستقلة.

------------------------------------------------------------------------

# تاريخ Git والبنية

يدمج GitGalaxy بالفعل تاريخ Git في إشارات مثل:

-   معدل التغيير (churn)
-   تركيز المساهمين
-   تعرض عامل الحافلة (bus-factor)
-   نقاط إعادة الهيكلة الساخنة
-   ملكية الملفات
-   النشاط الزمني

الاتجاه البحثي هو توسيع ذلك من **التاريخ كإشارة سياقية** إلى
**التاريخ كمصدر تحقق خارجي لنموذج التعرض**.

------------------------------------------------------------------------

# الخصوصية والنشر

GitGalaxy مصمم للعمل المحلي وغير المتصل بالشبكة.

-   لا تُرسل الشيفرة المصدرية إلى خدمة سحابية تابعة لـ GitGalaxy.
-   يتم الفحص والتوجيه (vectorization) محليًا.
-   لا يتطلب الماسح أي اتصال شبكي أثناء التشغيل.
-   يمكن أن يبقى تنفيذ CI/CD داخل بيئة المستخدم.
-   يعمل عارض المتصفح على البيانات المقدمة محليًا.

------------------------------------------------------------------------

# التثبيت``` bash
pip install gitgalaxy

انظر إلى التوثيق للحصول على الأوامر والإعدادات الحالية.

CI/CD

يتم توفير قوالب لكل من:

  • GitHub Actions
  • GitLab CI
  • Bitbucket Pipelines
  • Azure Pipelines
  • بيئات CI العامة القابلة للاستدعاء عبر الصدفة

انظر templates/ ودليل تكامل CI.


استكشف الأدلة


المورد ما يحتويه


التوثيق البنية، والادعاءات، والمنهجية

Language Crucible معيار مرجعي متعدد اللغات ومدونة ذهبية

المخرجات الخام فحوصات غير محررة لمستودعات حقيقية

tests/README.md منهجية الانحدار والمرجع الذهبي

tri_comparison_ledger.json سجل تحقق من الخلاف خلافًا بخلاف

manual_verification.json حالات مراجعة حيث تغطية المقارن غير متاحة

how_to_investigate_a_discrepancy.md منهجية خلاف المقارن

المُصوِّر تصور محلي قائم على المتصفح للمستودعات


اتجاه البحث الحالي

يتقدم GitGalaxy عبر سلسلة من الأسئلة المتزايدة الصعوبة:

هل يمكننا فحص المصدر غير المتجانس دون تجميعه؟

هل يمكننا استعادة الكيانات البنيوية اللازمة لفهمه بشكل موثوق؟

هل تتوافق تلك القياسات البنيوية مع تعرض حقيقي للمخاطر؟

هل يتصرف التعرض المُقاس بشكل صحيح مع تطور البرمجيات الحقيقية؟

التحقق من Tree-sitter/Ctags مكتمل حاليًا في منتصفه تقريبًا. الأولوية المباشرة هي إنهاء هذا التدقيق قبل تحويل القياسات الأولية إلى ادعاءات أقوى.

التجربة الرئيسية التالية هي:

سجل Git → أحداث تغيير/إصلاح محددة بشكل مستقل → فحوصات GitGalaxy قبل/بعد → فروقات التعرض → تحليل إحصائي.

هنا يمكن لـ GitGalaxy أن يبدأ في اختبار ليس فقط ما إذا كان يرى البنية، بل ما إذا كان نموذجه البنيوي يتتبع التغييرات المهمة في البرمجيات الحقيقية.


الترخيص

حقوق النشر (c) 2026 Joe Esquibel

يتم توزيع GitGalaxy بموجب رخصة PolyForm غير التجارية 1.0.0.

انظر ترخيص المستودع للشروط الكاملة.

الفئات