File size: 5,760 Bytes
7270c96 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | # دليل المساهمة في نظام 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 ساعة عمل.
---
## شكر خاص
نشكر جميع المساهمين الذين ساعدوا في تطوير هذا المشروع! 🙏
|