إنتقل إلى المحتوى الرئيسي

تكامل GitLab

قم بتوصيل مستودعات GitLab الخاصة بك بـ ArchiCore للتحليل التلقائي.

الميزات

  • دعم الاستضافة الذاتية — اتصل بـ gitlab.com أو مثيل GitLab الخاص بك
  • مثيلات متعددة — اتصل بعدة خوادم GitLab في وقت واحد
  • المستودعات الخاصة — وصول كامل للمشاريع الخاصة
  • اختيار الفرع — اختر الفرع المراد تحليله
  • التحليل التلقائي — تحليل تلقائي عند أحداث الدفع
  • مراجعات طلب الدمج — مراجعات كود مدعومة بالذكاء الاصطناعي على MRs

الإعداد

الخطوة 1: إنشاء رمز وصول شخصي

  1. اذهب إلى GitLab → الإعداداترموز الوصول
  2. أنشئ رمزًا جديدًا بهذه النطاقات المطلوبة:
    • apiمطلوب للوصول الكامل لـ API (المستودعات الخاصة، webhooks، تعليقات MR)
    • read_repositoryمطلوب لقراءة محتوى المستودع
النطاقات المطلوبة

للمستودعات الخاصة، نطاق api إلزامي. بدونه، لا يمكن لـ ArchiCore الوصول إلى المشاريع الخاصة حتى لو كنت مالك المستودع أو مديره.

  1. انسخ الرمز (لن تراه مرة أخرى!)

الخطوة 2: توصيل مثيل GitLab

عبر واجهة الويب:

  1. اذهب إلى ArchiCore → الإعداداتالتكاملات
  2. انقر إضافة GitLab
  3. أدخل عنوان URL الخاص بـ GitLab (مثل https://gitlab.com أو https://gitlab.company.com)
  4. الصق رمز الوصول الشخصي
  5. انقر اتصال

عبر API:

curl -X POST https://api.archicore.io/api/gitlab/instances \
-H "Authorization: Bearer رمز_ARCHICORE_الخاص_بك" \
-H "Content-Type: application/json" \
-d '{
"instanceUrl": "https://gitlab.company.com",
"accessToken": "رمز_GITLAB_PAT_الخاص_بك",
"name": "GitLab الشركة"
}'

الخطوة 3: توصيل مستودع

  1. بعد توصيل مثيل GitLab، انقر إضافة مشروع
  2. حدد مثيل GitLab
  3. ابحث عن مستودعك
  4. حدد فرعًا
  5. انقر اتصال

GitLab المستضاف ذاتياً

ArchiCore يدعم بالكامل مثيلات GitLab المستضافة ذاتياً.

شهادات SSL

إذا كان GitLab يستخدم شهادة موقعة ذاتياً:

  1. عند الاتصال، فعّل "السماح بالشهادات الموقعة ذاتياً"
  2. أو اضبط rejectUnauthorizedSSL: false في استدعاء API

الوصول للشبكة

لكي تعمل webhooks، يجب أن يتمكن مثيل GitLab من الوصول إلى نقطة نهاية webhook الخاصة بـ ArchiCore:

https://api.archicore.io/api/gitlab/webhook

إذا كان ArchiCore أيضاً مستضافاً ذاتياً، قم بتكوين GITLAB_WEBHOOK_URL في بيئتك.

مثيلات متعددة

يمكنك توصيل عدة مثيلات GitLab:

  • gitlab.com (عام)
  • gitlab.company.com (مؤسسي)
  • gitlab.client.com (مشاريع العملاء)

يُدار كل مثيل بشكل منفصل ببيانات اعتماده الخاصة.

Webhooks

يمكن لـ ArchiCore إنشاء webhooks تلقائياً لـ:

  • أحداث الدفع — تشغيل التحليل عند دفع الكود
  • أحداث طلب الدمج — إضافة تعليقات مراجعة AI إلى MRs

إعداد Webhook

يتم إنشاء Webhooks تلقائياً عند توصيل مستودع مع تمكين "التحليل التلقائي".

تكوين webhook اليدوي:

  1. اذهب إلى مشروع GitLab → الإعداداتWebhooks
  2. أضف URL: https://api.archicore.io/api/gitlab/webhook
  3. الرمز السري: (يوفره ArchiCore)
  4. تمكين: أحداث الدفع، أحداث طلب الدمج

مرجع API

قائمة المثيلات

GET /api/gitlab/instances

إضافة مثيل

POST /api/gitlab/instances
Content-Type: application/json

{
"instanceUrl": "https://gitlab.company.com",
"accessToken": "glpat-xxxxxxxxxxxx",
"name": "GitLab الخاص بي",
"rejectUnauthorizedSSL": true
}

قائمة المشاريع

GET /api/gitlab/instances/{instanceId}/projects?search=myproject

قائمة الفروع

GET /api/gitlab/instances/{instanceId}/projects/{projectId}/branches

توصيل مستودع

POST /api/gitlab/repositories/connect
Content-Type: application/json

{
"instanceId": "uuid",
"projectId": 123,
"autoAnalyze": true,
"analyzeMRs": true,
"branch": "main"
}

قطع اتصال المستودع

DELETE /api/gitlab/repositories/{repoId}

استكشاف الأخطاء وإصلاحها

"رمز غير صالح"

  • تحقق من انتهاء الصلاحية — تأكد من أن PAT لم تنته صلاحيته
  • تحقق من النطاقات — يجب أن يحتوي الرمز على نطاقات api و read_repository
  • تحقق من URL — لـ GitLab المستضاف ذاتياً، تأكد من صحة URL (بما في ذلك https://)
  • أعد إنشاء الرمز — إذا استمرت المشاكل، أنشئ رمزًا جديدًا بالنطاقات الصحيحة

"خطأ شهادة SSL"

  • فعّل "السماح بالشهادات الموقعة ذاتياً" عند الاتصال
  • أو أضف شهادة CA إلى مخزن ثقة النظام

"Webhook لا يستقبل الأحداث"

  • تحقق من أن GitLab يمكنه الوصول إلى عنوان URL الخاص بـ webhook
  • تحقق من GitLab → المشروع → الإعدادات → Webhooks → التسليمات الأخيرة
  • تأكد من تطابق سر webhook

"المستودع غير موجود"

  • تحقق من نطاقات الرمز — للمستودعات الخاصة، يجب أن يحتوي PAT على نطاق api. نطاق read_api وحده غير كافٍ.
  • تحقق من أذونات الرمز — حتى لو كنت مدير المستودع أو مالكه، لا يمكن للرمز ذي النطاقات الخاطئة الوصول إلى المشاريع الخاصة.
  • أدخل المسار الكامل — عند الاتصال، استخدم مسار المستودع الكامل (مثل مجموعة/مجموعة-فرعية/اسم-المشروع)، وليس فقط اسم المشروع.
  • تحقق من حالة الأرشفة — قد لا تظهر المستودعات المؤرشفة في نتائج البحث.
  • تحقق من المثيل الصحيح — تأكد من أنك تنظر إلى خادم GitLab الصحيح (gitlab.com مقابل المستضاف ذاتياً).