Auto-Guardian-Core / CONTRIBUTING.md
AbdulElahGwaith's picture
Upload folder using huggingface_hub
7270c96 verified

دليل المساهمة في نظام Auto-Guardian

شكرًا لاهتمامك بالمساهمة في تطوير نظام Auto-Guardian! نرحب بجميع المساهمات التي تساعد في تحسين هذا المشروع مفتوح المصدر.

فهرس المحتوى

  1. كيفية المساهمة
  2. إعداد بيئة التطوير
  3. قواعد كتابة الكود
  4. عملية تقديم Pull Request
  5. إرشادات الأمان
  6. التواصل والدعم

كيفية المساهمة

هناك عدة طرق للمساهمة في تطوير النظام:

  • الإبلاغ عن الأخطاء: إذا وجدت خطأ في النظام، يُرجى فتح Issue جديدة مع وصف مفصل للمشكلة وكيفية إعادة إنتاجها.
  • اقتراح الميزات: نرحب باقتراحاتك لتحسين النظام. يُرجى فتح Issue جديدة في قسم Feature Requests.
  • تحسين الوثائق: إذا وجدت أي أخطاء في الوثائق أو أردت تحسينها، يُرجى تقديم مساهمتك.
  • كتابة الكود: يمكنك حل أي Issue مفتوح وتقديم Pull Request.
  • مراجعة الكود: ساعد في مراجعة Pull Requests الأخرى وتقديم ملاحظات بنّاءة.

إعداد بيئة التطوير

المتطلبات الأساسية

قبل البدء، تأكد من تثبيت المتطلبات التالية:

Python >= 3.11
Node.js >= 20
Go >= 1.21
Rust (أحدث إصدار ثابت)
Git

خطوات الإعداد

  1. استنساخ المستودع:
git clone https://github.com/yourusername/auto-guardian.git
cd auto-guardian
  1. تثبيت تبعيات Python:
pip install -r requirements.txt
  1. تثبيت تبعيات Node.js:
npm install
  1. تشغيل الفحوصات محليًا:
# فحص Python
bandit -r scripts/
pylint scripts/

# فحص JavaScript
npx eslint .

# فحص Go
gosec ./...

قواعد كتابة الكود

معايير كود Python

  • اتبع أسلوب PEP 8 لكتابة الكود.
  • استخدم أسماء متغيرات واضحة ومعبرة.
  • أضف docstrings لجميع الدوال والكلاسات.
  • استخدم type hints حيثما أمكن.
  • احتفظ بطول السطر أقل من 120 حرفًا.

معايير كود JavaScript/TypeScript

  • اتبع معايير ESLint المعرفة في .eslintrc.json.
  • استخدم const و let بدلاً من var.
  • استخدم arrow functions حيثما أمكن.
  • أضف أنواع TypeScript لجميع الدوال والمتغيرات.

معايير كود Go

  • اتبع معايير Go الرسمية.
  • استخدم gofmt لتنسيق الكود.
  • أضف توثيق لجميع الدوال العامة.
  • استخدم go vet للفحص.

معايير كود Rust

  • اتبع معايير Rust الرسمية.
  • استخدم cargo fmt لتنسيق الكود.
  • أضف توثيق للدوال العامة.
  • تحقق من السلامة مع cargo clippy.

عملية تقديم Pull Request

الخطوة 1: إنشاء Fork

انتقل إلى صفحة المستودع على GitHub وأنشئ Fork الخاص بك.

الخطوة 2: إنشاء فرع جديد

git checkout -b feature/your-feature-name

الخطوة 3: إجراء التغييرات

قم بإجراء التغييرات المطلوبة على الكود أو الوثائق.

الخطوة 4: اختبار التغييرات

# تشغيل جميع الفحوصات
python -m pytest
npm test

الخطوة 5: إنشاء Commit

git add .
git commit -m "إضافة: وصف موجز للتغييرات"

الخطوة 6: رفع الفرع

git push origin feature/your-feature-name

الخطوة 7: إنشاء Pull Request

انتقل إلى صفحة GitHub وأنشئ Pull Request جديدًا. تأكد من:

  • وصف التغييرات بشكل واضح.
  • ربط أي Issue ذي صلة.
  • إرفاق لقطات شاشة إذا كانت التغييرات مرئية.
  • اجتياز جميع الفحوصات الآلية.

إرشادات الأمان

الإبلاغ عن الثغرات الأمنية

إذا اكتشفت ثغرة أمنية في النظام، يُرجى عدم فتح Issue علني. بدلاً من ذلك:

  1. أرسل بريدًا إلكترونيًا إلى: security@example.com
  2. وصف الثغرة بتفصيل.
  3. أخبرنا إذا كنت تريد أن يتم الإشارة إليك في شكر المساهمين.

أفضل الممارسات الأمنية

  • لا تقم أبدًا بتنفيذ كود غير موثوق.
  • تحقق من جميع المدخلات قبل معالجتها.
  • استخدم HTTPS للاتصالات الآمنة.
  • لا تخزن بيانات حساسة في الكود.

التواصل والدعم

الحصول على المساعدة

  • الأسئلة الشائعة: راجع قسم FAQ في الوثائق.
  • المجتمع: انضم إلى Discord server الخاص بالمشروع.
  • الدعم: افتح Issue مع تصنيف "question".

ساعات العمل

نحاول الرد على جميع الاستفسارات خلال 48 ساعة عمل.


شكر خاص

نشكر جميع المساهمين الذين ساعدوا في تطوير هذا المشروع! 🙏