
ماسح امتثال لقانون الذكاء الاصطناعي الأوروبي (EU AI Act) لخطوط أنابيب GitLab CI/CD — يكتشف مكتبات الذكاء الاصطناعي/التعلم الآلي وينشر تصنيف المخاطر كتعليقات على طلبات الدمج (MR).
لتسهيل البدء مع GitLab، إليك قائمة بالخطوات التالية الموصى بها.
هل أنت محترف بالفعل؟ فقط قم بتحرير ملف README.md هذا واجعله خاصًا بك. تريد تبسيط الأمور؟ استخدم القالب في الأسفل!
cd existing_repo
git remote add origin https://gitlab.com/guardia-ai/gitlab-component.git
git branch -M main
git push -uf origin main
استخدم التكامل المستمر المدمج في GitLab.
عندما تكون مستعدًا لجعل هذا README خاصًا بك، فقط قم بتحرير هذا الملف واستخدم القالب المفيد أدناه (أو لا تتردد في هيكلته كما تريد - هذه مجرد نقطة بداية!). شكرًا لـ makeareadme.com على هذا القالب.
كل مشروع مختلف، فكر في أي من هذه الأقسام ينطبق على مشروعك. الأقسام المستخدمة في القالب هي اقتراحات لمعظم المشاريع مفتوحة المصدر. ضع في اعتبارك أيضًا أنه بينما يمكن أن يكون ملف README طويلًا ومفصلًا، فإن الطويل أفضل من القصير. إذا كنت تعتقد أن README طويل جدًا، فكر في استخدام شكل آخر من أشكال التوثيق بدلاً من قص المعلومات.
اختر اسمًا واضحًا بذاته لمشروعك.
أخبر الناس بما يمكن لمشروعك فعله تحديدًا. قدم سياقًا وأضف رابطًا لأي مرجع قد لا يكون الزوار على دراية به. يمكن أيضًا إضافة قائمة بالميزات أو قسم فرعي عن الخلفية هنا. إذا كانت هناك بدائل لمشروعك، فهذا مكان جيد لذكر عوامل التمييز.
في بعض ملفات README، قد ترى صورًا صغيرة تنقل بيانات وصفية، مثل ما إذا كانت جميع الاختبارات تمر للمشروع. يمكنك استخدام Shields لإضافة بعضها إلى README الخاص بك. العديد من الخدمات لديها أيضًا تعليمات لإضافة شارة.
اعتمادًا على ما تصنعه، قد تكون فكرة جيدة تضمين لقطات شاشة أو حتى فيديو (سترى غالبًا صور GIF بدلاً من فيديوهات فعلية). أدوات مثل ttygif يمكن أن تساعد، ولكن تحقق من Asciinema للحصول على طريقة أكثر تطورًا.
ضمن نظام بيئي معين، قد تكون هناك طريقة شائعة لتثبيت الأشياء، مثل استخدام Yarn أو NuGet أو Homebrew. ومع ذلك، ضع في اعتبارك أن من يقرأ README الخاص بك قد يكون مبتدئًا ويحتاج إلى إرشادات أكثر. سرد الخطوات المحددة يساعد في إزالة الغموض ويساعد الأشخاص على استخدام مشروعك بأسرع وقت ممكن. إذا كان المشروع يعمل فقط في سياق معين مثل إصدار معين من لغة برمجة أو نظام تشغيل، أو لديه تبعيات يجب تثبيتها يدويًا، قم أيضًا بإضافة قسم فرعي للمتطلبات.
استخدم الأمثلة بحرية، وأظهر المخرجات المتوقعة إذا أمكن. من المفيد أن يكون لديك أصغر مثال استخدام يمكن عرضه مباشرة، مع توفير روابط لأمثلة أكثر تعقيدًا إذا كانت طويلة جدًا بحيث لا يمكن تضمينها بشكل معقول في README.
أخبر الناس أين يمكنهم الذهاب للحصول على المساعدة. يمكن أن يكون أي مزيج من متتبع المشكلات، أو غرفة دردشة، أو عنوان بريد إلكتروني، إلخ.
إذا كانت لديك أفكار لإصدارات مستقبلية، فمن الجيد ذكرها في README.
أذكر ما إذا كنت منفتحًا للمساهمات وما هي متطلباتك لقبولها.
بالنسبة للأشخاص الذين يرغبون في إجراء تغييرات على مشروعك، من المفيد أن يكون لديك بعض التوثيق حول كيفية البدء. ربما هناك سكريبت يجب تشغيله أو بعض متغيرات البيئة التي يحتاجون إلى تعيينها. اجعل هذه الخطوات واضحة. قد تكون هذه التعليمات مفيدة أيضًا لنفسك في المستقبل.
يمكنك أيضًا توثيق الأوامر لفحص الكود أو تشغيل الاختبارات. تساعد هذه الخطوات في ضمان جودة عالية للكود وتقليل احتمالية أن تؤدي التغييرات إلى كسر شيء ما عن غير قصد. وجود تعليمات لتشغيل الاختبارات مفيد بشكل خاص إذا كانت تتطلب إعدادًا خارجيًا، مثل بدء خادم Selenium للاختبار في متصفح.
أظهر تقديرك لأولئك الذين ساهموا في المشروع.
بالنسبة للمشاريع مفتوحة المصدر، اذكر كيف يتم ترخيصها.
إذا نفدت طاقتك أو وقتك لمشروعك، ضع ملاحظة في أعلى README تفيد بأن التطوير قد تباطأ أو توقف تمامًا. قد يختار شخص ما عمل fork لمشروعك أو التطوع للانضمام كمشرف أو مالك، مما يسمح لمشروعك بالاستمرار. يمكنك أيضًا تقديم طلب صريح للمشرفين.
بالإضافة إلى اكتشاف أي مكتبات AI تستخدمها، يقرأ الماسح الكود المصدري الخاص بك ويبلغ عن التزامات محددة في أسطر محددة:
| القاعدة | ما تبحث عنه |
|---|---|
GA-ART50-001 | نقطة نهاية موجهة للمستخدم تصل إلى نموذج، دون أي إفشاء في أي مكان في المستودع بأن الردود مولّدة بواسطة AI |
GA-ART12-001 | نموذج تم استدعاؤه دون أي تسجيل أو تدقيق أو استدعاء تتبع في النطاق |
تظهر الاكتشافات بثلاث طرق: كتعليق على طلب الدمج، كعلامات على فرق طلب الدمج عبر تقرير جودة الكود، ومع مفتاح API — كسجل في لوحة تحكم Guardia الخاصة بك يتتبع ما أصلحته وما أدخلته، commit بعد commit.
include:
- component: gitlab.com/guardia-ai/gitlab-component/scan@main
inputs:
guardia_api_key: $GUARDIA_API_KEY # optional — keeps the record
code_analysis: 'true'
fail_on_findings: 'none'
الاكتشافات تحل نفسها. أصلح الكود — تصحيحنا أو تصحيحك — والفحص التالي ببساطة يتوقف عن الإبلاغ عنه. لا شيء لتضغط عليه.
لقبول اكتشاف بدلاً من ذلك، اذكر ذلك في الكود:
# guardia: ignore GA-ART50-001 — notice is rendered by the chat UI shell
هذا لا يفشل البناء أبدًا، ويصل إلى لوحة التحكم الخاصة بك كقبول مخاطر موثق مع المؤلف من git blame، وهو ما يريد المراجع رؤيته.
مستودع عمره خمس سنوات سيحتوي على اكتشافات لم يتسبب بها أي شخص في الفريق حاليًا. قم بتجميدها مرة واحدة، وسيكون العمل الجديد فقط هو الذي يحتاج إلى أن يكون نظيفًا:
guardia-scan . --write-baseline .guardia/baseline.json
قم بإيداع هذا الملف. تظل الاكتشافات المضمنة في خط الأساس مرئية في التقرير وفي لوحة التحكم الخاصة بك — لكنها لا تفشل الفحص أبدًا. أي شيء تم إدخاله بعد ذلك سيفشل.
يمكن لكل تشغيل كتابة سجل مقاوم للتلاعب — ما تم اكتشافه، على أي commit، تحت أي إصدار من حزمة القواعد، ومقدار المراجعة القانونية التي حصلت عليها كل قاعدة في ذلك الوقت:
- uses: GharbiiAhmed/guardia-ai-action@v1
with:
evidence-file: guardia-evidence.json
evidence-signing-key: ${{ secrets.GUARDIA_EVIDENCE_KEY }} # optional
تتسلسل السجلات بواسطة التجزئة، لذا فإن تغيير سجل قديم يكسر كل سجل بعده. بدون مفتاح توقيع يثبت الاتساق الداخلي، وليس الأصالة — السجل يذكر ذلك بنفسه بدلاً من أن يتركك تفترض.
تذكر الاكتشافات ما يفعله كودك وتقتبس الالتزام. لا تؤكد أنك في حالة مخالفة — ما إذا كان الالتزام ينطبق يعتمد على غرض نظامك وسياق نشره، وهو ما لا يمكن لأي فحص كود تحديده. القواعد تستشهد باللائحة (EU) 2024/1689 حرفيًا حتى تتمكن من التحقق من المنطق بنفسك.
يعمل الكشف بالكامل دون اتصال بالإنترنت. مصدرك لا يغادر بيئة التشغيل أبدًا.