من فضلك تسجيل الدخول أو تسجيل لتفعل ذلك.

يواجه أصحاب المستودعات في المنظمات الكبيرة تحديًا مستمرًا في إدارة الوصول للمتعاونين الخارجيين، ومراجعة الأذونات مع تطور المشاريع، وأرشفة المستودعات التي لم تعد قيد الاستخدام. لمعالجة هذه المشكلة، طورت GitHub تطبيقًا داخليًا يحمل اسم Evergreen.

يعمل Evergreen كتطبيق GitHub App مصمم خصيصًا لأتمتة نظافة المنظمة عبر ميزات GitHub الأصلية. يهدف التطبيق إلى تبسيط العمل اليدوي الشاق المتعلق بتتبع المتعاونين، والمواعيد النهائية، ومتابعة كل مستودع، وهو ما يصبح صعبًا مع نمو المشاريع.

كيف يعمل Evergreen؟

يقوم Evergreen بأتمتة عمليتين رئيسيتين. أولاً، مراجعة وصول المتعاونين الخارجيين: كل ثلاثة أشهر، تتم مراجعة المتعاونين الخارجيين لكل مستودع، ويتم الاحتفاظ بمن يحتاجون إلى الوصول فقط وإزالة البقية. ثانياً، كشف المستودعات غير النشطة وأرشفتها: يتم تحديد المستودعات التي لا يوجد بها نشاط بشري بعد حد معين، ويتم تحذير أصحابها، ثم أرشفتها إذا بقيت دون تغيير. وقد تم تصميم التطبيق بمبادئ أساسية مثل «الفشل الآمن» (Fail secure)، حيث يتم سحب الوصول بشكل افتراضي إذا لم يتم الرد على المراجعة، ومبدأ «عدم تدمير أي شيء» (Never destroy anything)، حيث لا يحذف Evergreen أي مستودع أو محتوياته، بل يقوم بأرشفتها فقط.

يعمل Evergreen كخادم ويب Go صغير يعمل في حاوية، ولكن الجزء الأكثر إثارة للاهتمام هو كيفية تنسيقه للميزات الأصلية في GitHub. يستخدم التطبيق مهام GitHub Actions المجدولة، وwebhooks، وIssues، والخصائص المخصصة، والملفات العادية في المستودع. يحتفظ مستودع تحكم مخصص بذاكرة Evergreen وساعته، حيث يتم تخزين حالة كل مستودع كملف JSON في Git، مما يوفر مسار تدقيق كاملاً عبر سجل الالتزامات (commit history).

للتواصل مع المستخدمين، يستخدم Evergreen نظام Issues داخل كل مستودع. فعند بدء مراجعة الوصول، يتلقى كل مستودع مشكلة تحتوي على قائمة تحقق. يتمثل التفاعل ببساطة في تحديد المربعات الخاصة بالمتعاونين الذين سيبقون، ثم إغلاق المشكلة. يستمع Evergreen لحدث `issues.closed` webhook، ويحتفظ بالمتعاونين المحددين، ويسحب وصول البقية، ثم ينشر تعليقًا يوثق التغييرات. كما يضمن التطبيق أن يقوم Hubber (موظف GitHub) فقط بإغلاق Issue المراجعة، مما يضمن أن القرارات تأتي من الأفراد المخولين.

ما الذي يعنيه هذا للمطورين؟

بالنسبة للمطورين ومديري المنظمات، يقدم نموذج Evergreen دروسًا قيمة حول كيفية أتمتة مهام الإدارة والأمن بشكل فعال على GitHub. نرى أن هذه الطريقة تقلل بشكل كبير من عبء العمل اليدوي، مما يسمح للمطورين بالتركيز على بناء المنتجات بدلاً من قضاء الوقت في إدارة الأذونات وأرشفة المستودعات.

كما أن مبادئ التصميم مثل «الفشل الآمن» و«عدم تدمير أي شيء» توفر نموذجًا قويًا للأدوات الداخلية، حيث تضمن الأمان مع توفير آلية للتعافي من الأخطاء. ويمكن للمطورين الذين يعملون في منظمات كبيرة الاستفادة من هذا النمط لإنشاء أدوات أتمتة خاصة بهم تستخدم ميزات GitHub الحالية، مما يعزز نظافة المستودعات والأمن السيبراني، ويجعل العمل التعاوني أكثر سلاسة وكفاءة.

المصدر: github.blog

هجوم سيبراني واسع يعطل متاجر فرنسية ويفسد الأطعمة
حقن الأوامر غير المباشر عبر رؤوس HTTP يهدد وكلاء AI

Reactions

0
0
0
0
0
0
بالفعل كان رد فعل لهذا المنصب.

ردود الفعل