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 ساعة عمل.

---

## شكر خاص

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