إن تعلم كيفية إنشاء فرع في GitHub هو الخطوة الأولى. ومع ذلك، فإن إتقان كيفية دمج الفروع في GitHub بأمان أمر بالغ الأهمية لكل فرع. GitHub جيثب: سير العمل. لذا، في هذه التدوينة، سنشرح لك العملية بأكملها، بدءًا من كيفية إنشاء فرع في GitHub ومن ثم نعرض لكم كيفية دمج الفروع في GitHub سنغطي أيضًا كيفية إلغاء الدمج في حال وجود أي مشاكل، وأخيرًا، كيف يساعدك Xygeni في اكتشاف أي مشكلة قبل وصولها إلى فرعك الرئيسي.
دعونا نسير من خلاله خطوة بخطوة.
1. كيفية إنشاء فرع في GitHub بالطريقة الصحيحة
يبدأ كل سير عمل آمن بإنشاء فرع في GitHub. يتيح هذا للمطورين عزل الميزات أو الإصلاحات أو التجارب دون التأثير على شيفرة الإنتاج.
لإنشاء فرع في GitHub:
1. انتقل إلى مستودعك
2. انقر فوق القائمة المنسدلة لمحدد الفرع
3. اكتب اسم فرعك الجديد
4. انقر إنشاء فرع
من هنا، فرعك الجديد جاهز للانطلاق. يمكنك الآن إرسال الكود، والتعاون في التغييرات، وفتح فرع جديد. pull requestعلى الرغم من أن هذا إجراء أساسي في GitHub، إلا أنه يمهد الطريق للتطوير الآمن.
الأمر المهم هو أنه في كل مرة تقوم فيها بإنشاء فرع في GitHub، يجب أن يكون ذلك جزءًا من سير عمل متكرر ومحمي.
2. المسح الضوئي Pull Requests تلقائيًا قبل الدمج
عند إنشاء فرع في GitHub والاستعداد للمراجعة، فإن الخطوة التالية هي فهم كيفية دمج الفروع في GitHub بأمان. يجب أن يُفعّل كل فرع في GitHub عمليات فحص آلية. ولكن قبل الدمج، من الضروري: تحقق من أن الكود لا يقدم أي ثغرات أمنية. واحد غير آمن commit يمكنك عرض تطبيقك، leak secretس، أو كسر البنية التحتية الحيوية.
دمج الكود في فرعك الرئيسي عملية بالغة الأهمية. فبدون إجراءات التحقق المناسبة، قد يؤدي ذلك إلى عواقب وخيمة، مثل:
- ثغرات يوم الصفر الانزلاق إلى الإنتاج
- معروف مكافحة التطرف العنيف تم تقديمه من خلال حزم مفتوحة المصدر
- أسرار مبرمجة تم دفعه إلى المستودع
- أخطاء في تكوين البنية التحتية التي تضعف دفاعاتك
- الكود الخبيث أو المُعَرَّف الدخول من خلال التبعيات
هذا هو المكان الذي يحدث فيه Xygeni فرقًا حقيقيًا
باستخدام إجراءات جيثب، يمكنك تشغيل عمليات مسح Xygeni الآلية كلما فتح مطور ملفًا pull request في فرع محمي. الفرع المحمي في GitHub هو الفرع الذي يتطلب فحوصات أو موافقات محددة قبل السماح بدمج التغييرات.
يقوم Xygeni بتحليل أحدث تنفيذ لـ pull request سير العمل للتحقق من سلامة التغييرات المقترحة. ويشمل ذلك التحقق من المشكلات في الكود والتبعيات والأسرار، و CI/CD تكويناتلا يتم إعادة فحص الفرع بالكامل، ولكن يتم استخدام نتيجة سير العمل الأحدث لفرض السياسات ومنع عمليات الدمج غير الآمنة.
تُثبت هذه الفحوصات أن الكود آمن وجاهز للإنتاج. وتكشف عن:
- ثغرات في الكود (SAST)
- الحزم مفتوحة المصدر المعرضة للخطر (SCA)
- أسرار مبرمجة
- IaC الخاطئة
- البرامج الضارة المحتملة
دمج هذه الفحوصات المبكرة تضمن أنه في كل مرة تقوم فيها بإنشاء فرع في GitHub والاستعداد للدمج، فإنك تفعل ذلك باستخدام الرؤية الكاملة والتحكم.
فيما يلي إعداد مبسط:
on:
pull_request:
branches: [ main ]
jobs:
xygeni-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Xygeni Scanner
uses: xygeni/xygeni-action@3.2.0
with:
token: ${{ secrets.XYGENI_TOKEN }}
3. حظر عمليات الدمج غير الآمنة مع Guardrails
Guardrailsتأكد من أنه عند إنشاء فرع في GitHub أو محاولة دمج الفروع فيه، لن تصل إلا التغييرات الآمنة إلى فرعك الرئيسي في GitHub. يوفر لك Xygeni السيطرة الكاملة على ما يتم دمجه. يمكنك تعريف ما قبلcisقواعد مصممة خصيصًا لسياسات الأمان لديك وقدرتك على تحمل المخاطر. على سبيل المثال:
- حظر إذا كان هناك سر بالغ الأهمية تم العثور عليها (على سبيل المثال، مفاتيح AWS والرموز)
- فشل البناء إذا جديدة عالية المخاطر تم تقديم حزمة مفتوحة المصدر
- رفض pull requests أن تعديل المسارات الحساسة مثل
.github/workflows/,infrastructure/أوsecrets.env - منع الدمج إذا إعادة تقديم الإصدار الأدنى معروف نقاط الضعف
- حظر CI/CD تغييرات التكوين ما لم يتم تصنيفها بشكل صحيح
- إيقاف الدمج إذا SAST يكتشف ارتفاع أو القضايا الحرجة
- تطبيق أكثر صرامة Guardrails في فروع الإنتاج مع الحفاظ على المرونة في التطوير
تعمل هذه القواعد كبوابات آلية. فهي تساعد فريقك على دمج ما هو آمن فقط، دون مفاجآت، أو مراجعات يدوية، أو تدخلات طارئة.
مثال على قاعدة الحاجز الواقي:
guardrail block_critical_secrets
on secrets
when severity = critical
then @fail()
ردود الفعل البصرية في Dashboard
لضمان الرؤية الكاملة، يعرض Xygeni نتيجة أحدث تقييم لحالة Guardrail.
- أولا، الرمز الأخضر يعني أن جميع السياسات تم إقرارها.
- فى المقابل، يشير الرمز الأحمر إلى انتهاك شرط واحد أو أكثر من شروط Guardrail.
ونتيجة لذلك، يكتسب كل من المطورين وفرق الأمان نظرة فورية حول سبب حظر الدمج، دون البحث في سجلات CI.
مثال حقيقي من Dashboard:
على سبيل المثال، لنفترض أن المستودع لا يحتوي على فروع محمية، وهو خطأ شائع في التكوين يسمح للمطورين بالدفع commitبدون تحقق. هذا خطر كبير.
يكتشف Xygeni هذا تلقائيًا ويضع علامة عليه كـ وقعت_commits قضية تحت CI/CD فئة. ال dashboard يسلط الضوء:
- الخطورة: مرتفع
- النوع: وقعت Commits
- التفسير: لا يوجد لدى المستودع فروع محمية
- الحالة: ساعات العمل
وبالتالي، بفضل هذه الملاحظات الغنية بالسياق، تستطيع الفرق تحديد المخاطر بسرعة، وفهم تأثيرها، واتخاذ الإجراءات التصحيحية، كل ذلك من خلال واجهة مستخدم Xygeni.
تخصيص سلوك التنفيذ
أنت دائمًا المتحكم. اختر مدى صرامتك Guardrails يجب ان يكون:
--fail-on=critical: يتم دمج الكتل فقط في حالة النتائج الشديدة--never-fail: يجري Guardrails في وضع التشغيل التجريبي لاختبار السياسات قبل فرضها
لذا في المرة القادمة التي تقوم فيها بإنشاء فرع في GitHub، Guardrails موجودة بالفعل، تحميك pipeline وتنفيذ سياساتك تلقائيًا.
4. إلغاء الدمج في GitHub تلقائيًا عند اكتشاف المخاطر
في حال اكتشاف أي مخاطر، يُلغى الدمج. يحمي هذا الإجراء جميع فروع مشاريع GitHub، ويطبق أفضل الممارسات لدمج الفروع في GitHub.
يتكامل Xygeni مباشرةً مع واجهة مستخدم GitHub. عند اكتشاف خطر:
- يُظهر GitHub الفحص على أنه فاشل
- تمنع حماية GitHub الدمج
- تتخطى قائمة الدمج الكود غير الآمن
سواء كان الأمر سريًا أو CVE أو خطيرًا CI/CD النمط، والنتيجة هي نفسها: تم إلغاء الدمج في GitHub وتم وضع علامة عليها للمراجعة.
يمكنك أيضًا عرض النتائج التفصيلية في Xygeni:
- الحالة الأمنية لكل فرع
- لماذا تم حظر الدمج
- سجل المسح الكامل
- يتم عرض حالة الحاجز الواقي من خلال الأيقونات الخضراء (نجاح) أو الحمراء (فشل) في صفحة المشروع
تُسهّل هذه الملاحظات المرئية على المطورين وفرق الأمن اتخاذ الإجراءات بثقة. وعندما تحتاج إلى سياق أعمق، يتم ربط كل مشكلة بوثائق تتضمن معلومات عن خطورتها وعلاماتها وموقعها وإرشادات التخفيف.
دمج Tldr فقط ما هو آمن
باختصار، إليك كيفية الدمج بشكل آمن بعد إنشاء فرع في GitHub:
- إنشاء فرع في GitHub من خلال واجهة المستخدم
- تشغيل عمليات المسح التلقائي مع كل pull request مع زيجيني
- حظر عمليات الدمج غير الآمنة باستخدام Guardrails
- استخدم سياسات التدقيق على جانب الخادم لتحقيق تحكم أعمق
- إلغاء الدمج في GitHub عند فشل شيء ما
- تصور جميع النتائج في Xygeni dashboard
للحصول على أفضل الممارسات الإضافية بشأن حماية المستودع، اقرأ الأسئلة الشائعة حول أمان GitHub: ما يجب أن يعرفه كل مطور.
مع أن الدمج عملية بسيطة، إلا أن إجراؤه بأمان يتطلب رؤيةً وأتمتةً حقيقيتين. مع Xygeni، لا يقتصر الأمر على دمج الكود فحسب، بل يشمل أيضًا دمج الثقة.
حماية كل فرع من فروع GitHub بثقة
قضية واحدة تم التغاضي عنها في pull request قد يُعرّض فرعك الرئيسي للخطر. غالبًا ما تتأخر عمليات الفحص التقليدية، أو تغفل عن المخاطر الحرجة، أو تفشل في تطبيق سياسات فعّالة.
ولهذا السبب فإن حماية فروع GitHub الخاصة بك تتطلب أكثر من مجرد المسح الضوئي.
يوفر Xygeni تطبيقًا حقيقيًا. عندما يكون للـ pull request يستهدف فرعًا محميًا، ويقوم Xygeni بتحليل أحدث تنفيذ لـ CI/CD سير العمل. لا يُعيد فحص الفرع بأكمله، بل يُقيّم أحدث النتائج للتحقق من وجود أي مشاكل أمنية في الكود، والتبعيات، والأسرار، وتكوينات سير العمل. أنت لست مُنبّهًا فحسب، بل محميّ.
ما الذي يجعلها مختلفة:
- التحقق من صحة السياق الكامل: Guardrails فرض السياسة باستخدام سياق غني مثل شدة المشكلة وقابلية الاستغلال وبيانات الفرع.
- التكامل المدمج مع GitHub: يتم تشغيل كل شيء من المسح الضوئي إلى التنفيذ بشكل أصلي داخل سير عمل GitHub الخاص بك، دون الحاجة إلى نصوص مخصصة أو كود لاصق.
- عمليات التدقيق على جانب الخادم: من جانب الخادم Guardrails التحقق من صحة النتائج بعد التحميل، وإضافة طبقة ثانية من التحكم خارج pipeline.
بدلاً من الاعتماد على إعداد CI الخاص بك لالتقاط كل شيء، يطبق Xygeni إعدادات آلية تعتمد على السياسةcisقبل أن يصل أي شيء إلى فرعك الرئيسي.
مع أن الدمج عملية بسيطة، إلا أن إجراؤه بأمان يتطلب رؤيةً وأتمتةً حقيقيتين. مع Xygeni، لا تحمي مستودعاتك فحسب، بل تحمي كل فرع من فروع GitHub بثقة.





