عن المشروع
GitHub Actions Pins هو مستودع صيانة الغرض منه تتبع البيانات الوصفية المثبتة لـ GitHub Actions، بحيث يمكن لسير العمل تثبيت مراجعات غير قابلة للتغيير بدلاً من الوسوم القابلة للنقل. يصف ملف README المستودع بأنه قائمة تتبع وليس تطبيقاً، والمخرج العملي هو ملف قابل للقراءة آلياً يمكن للمشاريع الأخرى استهلاكه.
مصدر الحقيقة هو ملف يسمى actions.csv. يحتوي كل صف على عمودين: action و ref_override. يتم ترك عمود ref_override فارغاً عندما لا تكون هناك حاجة لتجاوز، مما يحافظ على سهولة قراءة القائمة مع السماح بفرض مرجع محدد لإدخال معين.
تتدفق التغييرات في القائمة من خلال عملية تعتمد على القضايا (issues). يمكن لأمر يسمى gh pin فتح قضية بعنوان "Add actions to pin list" تحمل تصنيف pins. تطبيق هذا التصنيف هو ما يوافق على الطلب. ثم يقوم سير عمل القضية بالتحقق من إدخالات owner/action@ref المقدمة في القضية، وعند النجاح يفتح طلب سحب (pull request) للدمج التلقائي يقوم بتحديث كل من actions.csv و pins.json. وبما أن طلب السحب مضبوط على الدمج التلقائي، يتم دمج الإضافات المعتمدة دون الحاجة إلى دمج يدوي.
تحكم بعض القواعد كيفية تفسير الإدخالات. تظل المسارات الفرعية للإجراءات جزءاً من مفتاح التثبيت، لذا فإن خطوة سير العمل التي تشير إلى دليل فرعي من إجراء ما يتم التعامل معها كمفتاح خاص بها. ومع ذلك، يتم حل البيانات الوصفية مقابل المالك/المستودع الرئيسي بدلاً من المسار الفرعي. أما الإدخالات التي تشير بالفعل إلى SHA كامل للالتزام فلا داعي لإضافتها إلى قائمة التثبيت على الإطلاق، لأن هذه المراجع غير قابلة للتغيير بطبيعتها.
يتم نشر ملف pins.json الناتج ونشره على https://unfun.co/pins.json، مما يمنح المستهلكين عنوان URL مستقراً لجلب بيانات التثبيت الحالية.
المشروع من تنفيذ Daniel Morris ومتاح بموجب رخصة MIT؛ ويحمل ملف README إشعار حقوق طبع ونشر لعام 2026 وروابط إلى ملف LICENSE.md في المستودع.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.