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](#عملية-تقديم-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. **استنساخ المستودع**:
```bash
git clone https://github.com/yourusername/auto-guardian.git
cd auto-guardian
```
2. **تثبيت تبعيات Python**:
```bash
pip install -r requirements.txt
```
3. **تثبيت تبعيات Node.js**:
```bash
npm install
```
4. **تشغيل الفحوصات محليًا**:
```bash
# فحص 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: إنشاء فرع جديد
```bash
git checkout -b feature/your-feature-name
```
### الخطوة 3: إجراء التغييرات
قم بإجراء التغييرات المطلوبة على الكود أو الوثائق.
### الخطوة 4: اختبار التغييرات
```bash
# تشغيل جميع الفحوصات
python -m pytest
npm test
```
### الخطوة 5: إنشاء Commit
```bash
git add .
git commit -m "إضافة: وصف موجز للتغييرات"
```
### الخطوة 6: رفع الفرع
```bash
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 ساعة عمل.
---
## شكر خاص
نشكر جميع المساهمين الذين ساعدوا في تطوير هذا المشروع! 🙏