مِخبارMIKHBAR
الأتمتة

GitHub يفتح ميزة قفل ملفات العمل في GitHub Actions للمعاينة العامة

تهدف هذه الميزة الجديدة إلى تعزيز أمان سلاسل التوريد البرمجية من خلال ضمان تنفيذ نفس الكود الموثوق به في كل مرة، بغض النظر عن تغييرات الفروع أو الوسوم.

GitHub يفتح ميزة قفل ملفات العمل في GitHub Actions للمعاينة العامة

إطلاق ميزة قفل ملفات الاعتماديات

أعلنت شركة GitHub رسمياً عن إطلاق ميزة قفل ملفات الاعتماديات (Workflow dependency lockfiles) الخاصة بأدوات GitHub Actions في مرحلة المعاينة العامة. تتوفر هذه الميزة حالياً لمستخدمي GitHub Enterprise Cloud، بما في ذلك إصدارات GitHub Enterprise Cloud مع الإقامة البيانية (Data Residency). وتهدف هذه الخطوة إلى معالجة فجوة أمنية مهمة في إدارة سلاسل التوريد البرمجية، حيث يمكن أن تتغير الوسوم (Tags) أو الفروع (Branches) بعد مراجعة المطورين، مما يؤدي إلى تنفيذ كود مختلف تماماً في التشغيلات اللاحقة دون أي تغييرات مرئية في مستودع المستخدم. ويمكن الرجوع إلى GitHub Changelog للاطلاع على التفاصيل الأصلية للمصدر.

تعزيز أمان سلاسل التوريد البرمجية

تعمل ملفات القفل على ربط عمليات تشغيل GitHub Actions بالإصدارات الدقيقة (Commits) التي تم قفلها مسبقاً، بدلاً من الاعتماد على الوسوم أو الفروع المتغيرة. هذا يمنع استغلال الثغرات الأمنية التي قد تنشأ إذا تم اختراق أحد الأكشنز (Actions) وتحريك وسمه نحو كود خبيث. ومع ذلك، تؤكد GitHub أن عملية القفل لا تحدد ما إذا كان الاعتمادية نفسها آمنة بطبيعتها، بل تضمن فقط تنفيذ الإصدار المحدد. لذلك، يظل من الضروري على المطورين مراجعة الاعتماديات بعناية قبل قفلها لضمان سلامتها من أي ثغرات معروفة. ويمكن الرجوع إلى Back to changelog للاطلاع على التفاصيل الأصلية للمصدر.

أدوات إنشاء وإدارة ملفات القفل

لتسهيل تبنّي هذه الميزة، توفر GitHub امتداداً جديداً لأداة GitHub CLI يُعرف باسم gh actions-lock. يتيح هذا الامتداد للمطورين إنشاء ملف قفل جديد (actions.lock) يحتوي على تفاصيل الإصدارات الدقيقة للأكشنز واعتمادياتها المتعددة (Transitive dependencies)، بالإضافة إلى اعتماديات سير العمل القابلة لإعادة الاستخدام. كما يدعم الامتداد التبنّي التدريجي للميزة، حيث يمكن للمطورين إضافة سير عمل واحد تلو الآخر. بمجرد إضافة سير عمل إلى نظام القفل، يتطلب GitHub Actions وجود إدخالات قفل لجميع اعتماديته، وسيستخدم الإصدارات المسجلة حتى لو تحركت الوسوم أو الفروع الأصلية.

سياسات الإلزام والإدارة المؤسسية

تتضمن المعاينة العامة أيضاً ميزة "سياسة إلزام القفل" (Require lockfile policy). تتيح هذه السياسة لمسؤولي المؤسسات، والمنظمات، والمستودعات فرض استخدام ملفات القفل على نطاق واسع. يمكن للمسؤولين تحديد متطلبات صارمة لضمان أن جميع سير العمل في نطاق إدارتهم تستخدم ملفات قفل، مما يعزز الامتثال لأفضل ممارسات الأمان على مستوى المؤسسة. كما يوفر الامتداد أدوات للتحقق من قِدم ملفات القفل (Stale lockfiles) دون الحاجة إلى تعديل الملفات، مما يجعل من السهل دمج هذا التحقق في عمليات البناء والتكامل المستمر (CI).

التكامل التلقائي مع Dependabot

لتسهيل الحفاظ على تحديث الاعتماديات، توفر GitHub تكاملاً سلساً مع أداة Dependabot. عندما يفتح Dependabot طلب سحب (Pull Request) لتحديث إصدار أكشن معين في سير عمل تم تبنّيه مسبقاً، يقوم تلقائياً بإعادة توليد إدخالات ملف القفل المطابقة في نفس الطلب. هذا يضمن بقاء مرجع سير العمل المحدث والإصدار المقفل متزامنين دون الحاجة إلى أي إعدادات إضافية من جانب المطور. يوفر هذا التكامل توازناً مثالياً بين الأمان من خلال القفل، والمرونة من خلال التحديثات التلقائية للأمان.

آلية البدء والمشاركة المجتمعية

يمكن للمطورين البدء باستخدام هذه الميزة من خلال تثبيت الامتداد من مستودع gh-actions-lock العام، ثم مراجعة ملف القفل المولد والتغييرات المقترحة على سير العمل قبل الالتزام بها. تشجع GitHub المجتمع على المشاركة في النقاشات القائمة حول هذه الميزة أو فتح مشاكل (Issues) في مستودع gh-actions-lock لتقديم الملاحظات والإبلاغ عن الأخطاء. وتوجه الشركة الشكر الخاص لأعضاء المجتمع الذين ساهموا في تشكيل هذه المعاينة من خلال الاختبارات والملاحظات، مع تقدير خاص لجهود التعاون المستمر على مدى العام الماضي.

المصادر

تابع التسلسل الزمني

تغطية الكيانات المرتبطة