عن المشروع

MergeMind هو محلل لطلبات الدمج متكامل مع CI، يستهدف الفرق التي يجب عليها تقديم أدلة تدقيق حول تغييرات الكود. يعمل كـ GitHub Action أو وظيفة GitLab CI، حيث يفحص الفروقات (diff) في طلب السحب/الدمج، وينشر تقييماً مهيكلاً في الطلب كتعليق أو ملاحظة. ## ما الذي ينتجه لكل طلب سحب، تقوم الأداة بتوليد: - عنوان وملخص مهيكل لطلب السحب (PR). - تصنيف لمستوى المخاطر (منخفض / متوسط / مرتفع). - ربط الامتثال بضوابط SOX و SOC2 و ISO 27001 (يستشهد مثال README بـ SOX CC6.1 و SOC2 CC6.1 و ISO 27001 A.9.4 لتغيير في المصادقة). - تحليل فجوات الضوابط. - توصيات المعالجة. يوضح ملف README الفرق بين وصف غامض مثل "تحديث بعض الملفات وإصلاح الأخطاء" وبين ملخص بعنوان، ومستوى مخاطر، وربط بالضوابط، وفجوة محددة (عدم تغطية فرض MFA بالاختبارات)، وإجراء مقترح قبل الدمج في الفرع الرئيسي (main). ## كيف يعمل GitHub Actions: تقوم بإضافة سير عمل (workflow) يتم تفعيله عند `pull_request` (فتح، مزامنة، إعادة فتح)، ويقوم بعمل checkout بـ `fetch-depth: 0` لضمان تحديد نطاق الفروقات، ثم يستدعي `gusinfosec/mergemind@v1`. السر المطلوب هو `OPENAI_API_KEY`؛ بينما يكون سر مفتاح الترخيص اختيارياً. يحتاج الإجراء إلى صلاحيات `contents: read` و `pull-requests: write`؛ ويتم إنشاء التعليق عند أول عملية دفع (push) ثم يتم تحديثه في مكانه لاحقاً. GitLab CI: يذكر ملف README أن مسار GitLab لا يزال يعتمد على النسخ واللصق — حيث تقوم بنسخ `examples/gitlab-ci.yml` إلى مستودعك (أو دمج الوظيفة)، والتي تقوم باستنساخ MergeMind في `.mergemind` وتشغيل التحليل هناك. متغيرات CI/CD المطلوبة هي `OPENAI_API_KEY` و `MERGEMIND_GITLAB_TOKEN` (رمز وصول شخصي بنطاق `api` لنشر ملاحظات MR)؛ ويغطي `MERGEMIND_GITLAB_HOST` المثيلات المدارة ذاتياً والافتراضي هو gitlab.com. تغليف الإجراء في سطر واحد متاح فقط لـ GitHub Actions. ## الترخيص والقيود تغطي الفئة المجانية عنوان وملخص طلب السحب بالإضافة إلى مستوى المخاطر. أما ربط الامتثال، وتحليل فجوات الضوابط، وتوصيات المعالجة، وتحليل الفروقات الكامل بدون حد للرموز (tokens)، فهي ميزات مقتصرة على الترخيص المدفوع. يوصف الترخيص بأنه عملية شراء لمرة واحدة بقيمة 29 دولاراً عبر Stripe، مع تخزين مفتاح الترخيص كسر في المستودع/CI؛ كما يدعي README وجود فئة مجانية تعمل بدون المفتاح. يلاحظ أن شارة المستودع تشير إلى ترخيص MIT بينما العديد من الميزات الأساسية مقيدة بهذا المفتاح المدفوع. ## الوضع الأمني كما هو موصوف تتم المعالجة داخل مشغل CI الخاص بك، ويتم الاحتفاظ بمفاتيح API كأسرار في CI، ويذكر README أنه لا يتم تخزين أي كود خارجياً. ومع ذلك، يتم إرسال الفروقات إلى OpenAI API للتحليل، وهو أمر يستحق التأكد منه مقابل متطلبات التعامل مع البيانات الخاصة بك. ## اعتبارات عملية قبل اعتماده، قم بتخصيص ميزانية لمفتاح OpenAI API وتكاليف النموذج لكل عملية تشغيل، وقرر ما إذا كان إرسال الفروقات إلى مزود نموذج خارجي مقبولاً للمستودعات المشمولة، وتعامل مع ربط الضوابط كمحفزات للمراجعين بدلاً من كونها رأياً تدقيقياً. المشروع منشور بواسطة Cyber Global Technologies LLC مع جهة اتصال للدعم team@mergemind.dev؛ وتوجه استفسارات المؤسسات إلى info@cyberglobal.ai.