تكامل GitLab
قم بتوصيل مستودعات GitLab الخاصة بك بـ ArchiCore للتحليل التلقائي.
الميزات
- دعم الاستضافة الذاتية — اتصل بـ gitlab.com أو مثيل GitLab الخاص بك
- مثيلات متعددة — اتصل بعدة خوادم GitLab في وقت واحد
- المستودعات الخاصة — وصول كامل للمشاريع الخاصة
- اختيار الفرع — اختر الفرع المراد تحليله
- التحليل التلقائي — تحليل تلقائي عند أحداث الدفع
- مراجعات طلب الدمج — مراجعات كود مدعومة بالذكاء الاصطناعي على MRs
الإعداد
الخطوة 1: إنشاء رمز وصول شخصي
- اذهب إلى GitLab → الإعدادات → رموز الوصول
- أنشئ رمزًا جديدًا بهذه النطاقات المطلوبة:
api— مطلوب للوصول الكامل لـ API (المستودعات الخاصة، webhooks، تعليقات MR)read_repository— مطلوب لقراءة محتوى المستودع
النطاقات المطلوبة
للمستودعات الخاصة، نطاق api إلزامي. بدونه، لا يمكن لـ ArchiCore الوصول إلى المشاريع الخاصة حتى لو كنت مالك المستودع أو مديره.
- انسخ الرمز (لن تراه مرة أخرى!)
الخطوة 2: توصيل مثيل GitLab
عبر واجهة الويب:
- اذهب إلى ArchiCore → الإعدادات → التكاملات
- انقر إضافة GitLab
- أدخل عنوان URL الخاص بـ GitLab (مثل
https://gitlab.comأوhttps://gitlab.company.com) - الصق رمز الوصول الشخصي
- انقر اتصال
عبر 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: توصيل مستودع
- بعد توصيل مثيل GitLab، انقر إضافة مشروع
- حدد مثيل GitLab
- ابحث عن مستودعك
- حدد فرعًا
- انقر اتصال
GitLab المستضاف ذاتياً
ArchiCore يدعم بالكامل مثيلات GitLab المستضافة ذاتياً.
شهادات SSL
إذا كان GitLab يستخدم شهادة موقعة ذاتياً:
- عند الاتصال، فعّل "السماح بالشهادات الموقعة ذاتياً"
- أو اضبط
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 اليدوي:
- اذهب إلى مشروع GitLab → الإعدادات → Webhooks
- أضف URL:
https://api.archicore.io/api/gitlab/webhook - الرمز السري: (يوفره ArchiCore)
- تمكين: أحداث الدفع، أحداث طلب الدمج
مرجع 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 مقابل المستضاف ذاتياً).