# دليل المساهمة في نظام 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 ساعة عمل. --- ## شكر خاص نشكر جميع المساهمين الذين ساعدوا في تطوير هذا المشروع! 🙏