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

GitHub تطلق رموز npm للنشر المرحلي بأمان أكبر

أضافت GitHub خيارًا جديدًا عند إنشاء رموز الوصول الدقيقة في npm يتيح تجهيز إصدارات الحزم للمراجعة من دون منح سير العمل الآلي صلاحية نشرها مباشرة. ويأتي التغيير كمسار انتقالي قبل توجه npm إلى إلغاء النشر المباشر عبر الرموز التي تتجاوز المصادقة الثنائية.

GitHub تطلق رموز npm للنشر المرحلي بأمان أكبر

صلاحية جديدة لرموز الوصول في npm

أعلنت GitHub إتاحة خيار جديد عند إنشاء رمز وصول دقيق لحسابات npm، وهو Read and write (stage only)، أو القراءة والكتابة للنشر المرحلي فقط. صُمم هذا الخيار لسير العمل الآلي الذي يحتاج إلى إرسال نسخة من الحزمة إلى مرحلة المراجعة، لكنه لا يحتاج إلى امتلاك القدرة على نشر نسخة جديدة مباشرة إلى سجل npm.

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

كيف يعمل النشر المرحلي

بعد إنشاء الرمز بصلاحية النشر المرحلي، ينبغي استبدال رمز النشر المستخدم في سير العمل الآلي، ثم تغيير الأمر من npm publish إلى npm stage publish. يرسل الأمر الإصدار إلى النشر المرحلي بدلًا من إطلاقه مباشرة على سجل npm، ما يتيح للمشرف فحص النسخة قبل اتخاذ قرار النشر.

تتعامل npm مع محاولات النشر المباشر باستخدام هذا النوع من الرموز بالرفض. وتبقى هذه الحماية قائمة حتى في حال ضبط الرمز لتجاوز المصادقة الثنائية لأغراض الأتمتة؛ أي إن تفعيل خيار تجاوز 2FA لا يحوّل الرمز المرحلي إلى رمز قادر على النشر المباشر.

صلاحيات أخرى ما زالت متاحة

لا يعني تقييد النشر أن الرمز يفقد جميع صلاحيات الكتابة على الحزمة. توضح GitHub أن رموز النشر المرحلي تحتفظ بصلاحيات كتابة أخرى، من بينها نقل وسوم التوزيع dist-tags وإيقاف إصدارات أو تعليمها بأنها مهجورة عبر عملية deprecate.

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

تغيير اختياري يمهد لمرحلة انتقالية

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

ويأتي الخيار في سياق إعلان سابق من npm يستهدف يناير 2027 موعدًا لإزالة النشر المباشر عبر الرموز التي تتجاوز المصادقة الثنائية. وبالنسبة إلى الفرق التي لا تستطيع الانتقال بعد إلى trusted publishing، تقدم الرموز المرحلية مسارًا تدريجيًا لنقل الأتمتة القائمة على الرموز إلى نموذج يتطلب موافقة بشرية قبل الإصدار النهائي.

المتطلبات والجاهزية

يعمل النشر المرحلي مع حزم npm الموجودة، ولا يقتصر على الحزم الجديدة. لكن استخدامه يتطلب امتلاك صلاحية النشر على الحزمة المستهدفة، وتفعيل المصادقة الثنائية على حساب npm، وتشغيل npm CLI بالإصدار 11.15.0 أو أحدث، إلى جانب Node.js 22.14.0 أو أحدث.

لبدء الانتقال، يحتاج الفريق إلى إنشاء رمز وصول دقيق جديد بصلاحية Read and write (stage only) للحزم المطلوبة، ثم تحديث إعدادات سير العمل لاستخدام الرمز والأمر npm stage publish. بعد ذلك يراجع مشرف الحزمة النسخة المرحلية ويعتمد إصدارها باستخدام 2FA. وتشير GitHub إلى أن تفاصيل النشر المرحلي ومسائل الانتقال يمكن مناقشتها ضمن قسم مجتمع npm المخصص لذلك.

المصادر