Configuration du compte d'éditeur
Configurez l'éditeur de confiance npmjs.com pour @ahmed-g-gad/apothem ainsi que les prérequis de publication côté GitHub.
Ce runbook configure le côté éditeur de la surface de publication. Le dispositif
de distribution ne comporte qu'un seul registre : le paquet npm à portée
@ahmed-g-gad/apothem sur npmjs.com, publié par le flux de travail
publish-npm.yml. Le flux de travail s'exécute au push de l'étiquette v*.*.*,
à côté de release.yml, et ne l'attend pas (un déclenchement manuel avec une
entrée tag sert de solution de repli). L'approbation de l'environnement
release est le point de contrôle : l'opérateur l'accorde une fois que les flux
de travail GitHub Release, Pages, CI, de conformité et d'environnements sont au
vert. Tous les autres artefacts sont distribués sur la page GitHub Release
elle-même et ne nécessitent aucun compte d'éditeur externe.
Carte d'identité
| Surface | Compte | Identité du paquet |
|---|---|---|
| GitHub | ahmed-g-gad | ahmed-g-gad/apothem |
| npm (npmjs.com) | ahmed-g-gad | @ahmed-g-gad/apothem |
Le propriétaire GitHub peut changer à l'avenir. La logique des flux de travail et de l'installateur lit github.repository, github.repository_owner ou APOTHEM_GITHUB_REPO là où une plateforme permet la résolution dynamique. L'identifiant du paquet dans le registre reste stable, car les utilisateurs installent le nom du paquet, et non le nom du compte du mainteneur.
npm (npmjs.com)
-
Connectez-vous à
https://www.npmjs.com/en tant queahmed-g-gad. -
Activez l'authentification à deux facteurs sur le compte.
-
Confirmez le nom du paquet à portée :
npm view @ahmed-g-gad/apothem nameUn
404signifie que le paquet à portée n'a pas encore été publié. Toute autre réponse de paquet doit correspondre à ce dépôt et à ce compte avant la publication. -
Créez le paquet sur npm si l'interface exige un premier enregistrement de paquet. Gardez le nom à portée :
@ahmed-g-gad/apothem. -
Configurez Trusted Publishing pour
@ahmed-g-gad/apothemdepuis GitHub Actions :- Propriétaire GitHub :
ahmed-g-gad - Dépôt :
apothem - Nom du fichier de flux de travail :
publish-npm.yml - Environnement :
release(l'environment:du job de publication danspublish-npm.yml; les deux doivent correspondre) - Action autorisée :
npm publish.
- Propriétaire GitHub :
-
Dans GitHub, vérifiez que l'environnement
releaseexiste surahmed-g-gad/apothemet qu'il exige une approbation manuelle pour le déploiement. -
Limitez la surface npm à un seul paquet de registre public :
@ahmed-g-gad/apothemsur npmjs.com. -
Approuvez le job
publish GitHub Releasede l'exécutionrelease.ymlque démarre le push de l'étiquette. Le job attend l'approbation de l'environnementrelease, et la vérification ci-dessous exige que cette exécution soit au vert ; le runbook du cycle de publication, §2.3, indique comment procéder. Confirmez ensuite l'état de préparation de la publication :Release readiness bash scripts/release/check-release-ready.sh <release-tag>La vérification nécessite que
GH_TOKENsoit défini et quesbom.cdx.jsonpublié se trouve dansdist/release-assets/. Le runbook du cycle de publication, §2.4, indique la portée du jeton et la commande de téléchargement. -
Approuvez le déploiement de l'environnement
releasepour l'exécution dePublish npm(publish-npm.yml) que démarre le push de l'étiquette. Si cette exécution n'a pas démarré, déclenchez le flux de travail depuis l'onglet GitHub Actions avectag=<release-tag>. -
Vérifiez le paquet en ligne :
npm verification npm view @ahmed-g-gad/apothem version npx @ahmed-g-gad/apothem@<version> --version
Aucun secret NPM_TOKEN, nom d'utilisateur ou mot de passe n'est requis. Le flux
de travail publie via npm Trusted Publishing (OIDC) avec la version de Node et
le plancher OIDC de la CLI npm épinglés dans
.github/workflows/publish-npm.yml. Il exécute
npm publish --provenance --access public sur npmjs.com, de sorte que la
déclaration de provenance Sigstore est explicite ; npm émet aussi la provenance
par défaut pour les paquets publics publiés depuis un flux de travail GitHub
Actions public. Un 404 du registre pendant PUT signifie que l'éditeur de
confiance côté npm, la portée du paquet ou l'autorisation du compte ne sont pas
encore alignés ; corrigez les paramètres du paquet npm avant de relancer le flux
de travail.
Dès qu'une publication de confiance a réussi, fermez définitivement la voie des jetons : dans Settings → Publishing access du paquet sur npmjs.com, sélectionnez Require two-factor authentication and disallow tokens, et supprimez tout secret de jeton npm restant dans le dépôt. Le flux de travail n'en lit plus aucun.
Références : Éditeurs de confiance npm, provenance npm et portées npm.
Prérequis de publication côté GitHub
Les surfaces de publication restantes sont natives de GitHub et s'authentifient
avec le GITHUB_TOKEN à portée de dépôt ; aucun compte externe n'est impliqué.
-
GitHub Release.
.github/workflows/release.ymls'exécute sur l'étiquette de version et n'a besoin que de sa permissioncontents: writelocale au job. Confirmez que le fichier de flux de travail est présent surmainavant d'étiqueter. -
Domaine personnalisé Pages. Le site de documentation se déploie via
publish-static-site.ymlvers le domaine personnaliséapothem.ahmedgad.com. Le domaine, le DNS et l'application de HTTPS sont établis par le runbook d'activation de Pages ; vérifiez :Pages verification gh api repos/ahmed-g-gad/apothem/pages --jq '.cname, .https_enforced' curl -sSI https://apothem.ahmedgad.com/ | head -n 1 -
Installateurs de script.
install.shetinstall.ps1sont servis depuis le site Pages (https://apothem.ahmedgad.com/install.shethttps://apothem.ahmedgad.com/install.ps1). Ils sont publiés par le même déploiement Pages ; aucun compte ni jeton distinct n'est requis.
Matrice de vérification
Après la configuration, chaque surface d'éditeur répond à sa vérification canonique :
| Surface | Vérification |
|---|---|
| npmjs.com | npm view @ahmed-g-gad/apothem version renvoie la version publiée |
| GitHub Release | gh release view <release-tag> --json assets --jq '.assets[].name' liste sdist, wheel, SBOM, paquets cosign, provenance et archives de plateforme |
| Pages | curl -sSI https://apothem.ahmedgad.com/ renvoie 200 sur le domaine personnalisé |