إعداد حساب الناشر
تكوين الناشر الموثوق على npmjs.com لـ @ahmed-g-gad/apothem والمتطلبات المسبقة للإصدار على جانب GitHub.
يُكوِّن دليل التشغيل هذا جانب الناشر من سطح الإصدار. حكاية التوزيع لها سجل
واحد: حزمة npm ذات النطاق @ahmed-g-gad/apothem على
npmjs.com، يَنشُرها سير العمل publish-npm.yml المُرسَل
يدويًا بعد أن تصبح أسطح عمل GitHub Release وPages
وCI وconformity وharness خضراء. كل أثر آخر
يُشحَن على صفحة GitHub Release نفسها ولا يحتاج إلى أي حساب ناشر
خارجي.
خريطة الهوية
| السطح | الحساب | هوية الحزمة |
|---|---|---|
| GitHub | ahmed-g-gad | ahmed-g-gad/apothem |
| npm (npmjs.com) | ahmed-g-gad | @ahmed-g-gad/apothem |
يُسمح لمالك GitHub بالتغيُّر في المستقبل. تقرأ منطقُ سير العمل
والمُثبِّت github.repository أو github.repository_owner
أو APOTHEM_GITHUB_REPOSITORY حيث تسمح المنصة بالحل الديناميكي.
يبقى مُعرِّف حزمة السجل مستقرًا لأن المستخدمين يُثبِّتون اسم الحزمة، لا اسم حساب
المشرف.
npm (npmjs.com)
-
سجِّل الدخول إلى
https://www.npmjs.com/بصفتكahmed-g-gad. -
فعِّل المصادقة الثنائية على الحساب.
-
أكِّد اسم الحزمة ذات النطاق:
npm view @ahmed-g-gad/apothem nameيعني
404أن الحزمة ذات النطاق لم تُنشَر بعد. يجب أن تطابق أي استجابة حزمة أخرى هذا المستودع وهذا الحساب قبل النشر. -
أنشئ الحزمة على npm إذا كانت الواجهة تتطلب أول سجل حزمة. أبقِ الاسم ذا نطاق:
@ahmed-g-gad/apothem. -
كوِّن النشر الموثوق (Trusted Publishing) لـ
@ahmed-g-gad/apothemمن GitHub Actions:- مالك GitHub:
ahmed-g-gad - المستودع:
apothem - اسم ملف سير العمل:
publish-npm.yml - البيئة:
npmjs - الإجراء المسموح:
npm publish.
- مالك GitHub:
-
في GitHub، تحقَّق من أن بيئة
npmjsموجودة علىahmed-g-gad/apothemوتتطلب موافقة يدوية للنشر. -
أبقِ سطح npm على حزمة سجل عامة واحدة:
@ahmed-g-gad/apothemعلى npmjs.com. -
أكِّد جاهزية الإصدار:
Release readiness bash scripts/release/check-release-ready.sh <release-tag> -
شغِّل
Publish — npm(publish-npm.yml) من علامة تبويب GitHub Actions معtag=<release-tag>ووافق على نشر بيئةnpmjs. -
تحقَّق من الحزمة الحية:
npm verification npm view @ahmed-g-gad/apothem version npx @ahmed-g-gad/apothem@<version> --version
لا يلزم أي سر NPM_TOKEN أو اسم مستخدم أو كلمة مرور. يَنشُر سير
العمل عبر npm Trusted Publishing (OIDC) مع تثبيت إصدار
Node وأرضية OIDC الخاصة بواجهة سطر أوامر npm
داخل .github/workflows/publish-npm.yml. يُشغِّل
npm publish --access public مقابل npmjs.com؛ ويُصدِر
npm تلقائيًا المنشأ (provenance) للحزم العامة المنشورة من
سير عمل GitHub Actions عام. 404 من السجل أثناء
PUT يعني أن الناشر الموثوق على جانب npm أو نطاق الحزمة
أو تفويض الحساب لم يتوائم بعد؛ أصلح إعدادات حزمة npm قبل إعادة
محاولة سير العمل.
المراجع: الناشرون الموثوقون في npm ومنشأ npm ونطاقات npm.
المتطلبات المسبقة للإصدار على جانب GitHub
أسطح الإصدار المتبقية أصيلة في GitHub وتُصادِق باستخدام
GITHUB_TOKEN ذي نطاق المستودع؛ ولا يشارك أي حساب خارجي.
-
GitHub Release. يعمل
.github/workflows/release.ymlعلى وسم الإصدار ولا يحتاج إلا إلى إذنه المحلي للمهمةcontents: write. أكِّد أن ملف سير العمل موجود علىmainقبل الوسم. -
نطاق Pages المخصص. يُنشَر موقع التوثيق عبر
publish-static-site.ymlإلى النطاق المخصصapothem.ahmedgad.com. النطاق وDNS وفرض HTTPS يُؤسِّسها دليل تشغيل تمكين Pages؛ تحقَّق:Pages verification gh api repos/ahmed-g-gad/apothem/pages --jq '.cname, .https_enforced' curl -sSI https://apothem.ahmedgad.com/ | head -n 1 -
مُثبِّتات السكربت. يُقدَّم
install.shوinstall.ps1من موقع Pages (https://apothem.ahmedgad.com/install.shوhttps://apothem.ahmedgad.com/install.ps1). يَنشُرهما نشر Pages نفسه؛ ولا يلزم حساب أو رمز منفصل.
مصفوفة التحقق
بعد الإعداد، يُجيب كل سطح ناشر على فحصه المعياري:
| السطح | الفحص |
|---|---|
| npmjs.com | npm view @ahmed-g-gad/apothem version يُرجِع الإصدار المنشور |
| GitHub Release | gh release view <release-tag> --json assets --jq '.assets[].name' يُدرِج sdist وwheel وSBOM وحُزم cosign والمنشأ وأرشيفات المنصة |
| Pages | curl -sSI https://apothem.ahmedgad.com/ يُرجِع 200 على النطاق المخصص |