Skip to content
Apothem
أدلّة التشغيل

إعداد حساب الناشر

تكوين الناشر الموثوق على 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 نفسها ولا يحتاج إلى أي حساب ناشر خارجي.

خريطة الهوية

السطحالحسابهوية الحزمة
GitHubahmed-g-gadahmed-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)

  1. سجِّل الدخول إلى https://www.npmjs.com/ بصفتك ahmed-g-gad.

  2. فعِّل المصادقة الثنائية على الحساب.

  3. أكِّد اسم الحزمة ذات النطاق:

    npm view @ahmed-g-gad/apothem name

    يعني 404 أن الحزمة ذات النطاق لم تُنشَر بعد. يجب أن تطابق أي استجابة حزمة أخرى هذا المستودع وهذا الحساب قبل النشر.

  4. أنشئ الحزمة على npm إذا كانت الواجهة تتطلب أول سجل حزمة. أبقِ الاسم ذا نطاق: @ahmed-g-gad/apothem.

  5. كوِّن النشر الموثوق (Trusted Publishing) لـ @ahmed-g-gad/apothem من GitHub Actions:

    • مالك GitHub: ahmed-g-gad
    • المستودع: apothem
    • اسم ملف سير العمل: publish-npm.yml
    • البيئة: npmjs
    • الإجراء المسموح: npm publish.
  6. في GitHub، تحقَّق من أن بيئة npmjs موجودة على ahmed-g-gad/apothem وتتطلب موافقة يدوية للنشر.

  7. أبقِ سطح npm على حزمة سجل عامة واحدة: @ahmed-g-gad/apothem على npmjs.com.

  8. أكِّد جاهزية الإصدار:

    Release readiness
    bash scripts/release/check-release-ready.sh <release-tag>
  9. شغِّل Publish — npm (publish-npm.yml) من علامة تبويب GitHub Actions مع tag=<release-tag> ووافق على نشر بيئة npmjs.

  10. تحقَّق من الحزمة الحية:

    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 ذي نطاق المستودع؛ ولا يشارك أي حساب خارجي.

  1. GitHub Release. يعمل .github/workflows/release.yml على وسم الإصدار ولا يحتاج إلا إلى إذنه المحلي للمهمة contents: write. أكِّد أن ملف سير العمل موجود على main قبل الوسم.

  2. نطاق 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
  3. مُثبِّتات السكربت. يُقدَّم install.sh وinstall.ps1 من موقع Pages (https://apothem.ahmedgad.com/install.sh وhttps://apothem.ahmedgad.com/install.ps1). يَنشُرهما نشر Pages نفسه؛ ولا يلزم حساب أو رمز منفصل.

مصفوفة التحقق

بعد الإعداد، يُجيب كل سطح ناشر على فحصه المعياري:

السطحالفحص
npmjs.comnpm view @ahmed-g-gad/apothem version يُرجِع الإصدار المنشور
GitHub Releasegh release view <release-tag> --json assets --jq '.assets[].name' يُدرِج sdist وwheel وSBOM وحُزم cosign والمنشأ وأرشيفات المنصة
Pagescurl -sSI https://apothem.ahmedgad.com/ يُرجِع 200 على النطاق المخصص

On this page