Einrichtung des Publisher-Kontos
Konfiguriert den vertrauenswürdigen npmjs.com-Publisher für @ahmed-g-gad/apothem und die Release-Voraussetzungen auf der GitHub-Seite.
Dieses Runbook konfiguriert die Publisher-Seite der Release-Oberfläche. Die
Distributionsgeschichte hat eine einzige Registry: das mit einem Scope versehene
npm-Paket @ahmed-g-gad/apothem auf npmjs.com, das vom manuell ausgelösten
Workflow publish-npm.yml veröffentlicht wird, nachdem die Workflows GitHub
Release, Pages, CI, conformity und harness grün sind. Jedes andere Artefakt wird
direkt auf der GitHub-Release-Seite ausgeliefert und benötigt kein externes
Publisher-Konto.
Identitätszuordnung
| Oberfläche | Konto | Paketidentität |
|---|---|---|
| GitHub | ahmed-g-gad | ahmed-g-gad/apothem |
| npm (npmjs.com) | ahmed-g-gad | @ahmed-g-gad/apothem |
Der GitHub-Eigentümer darf sich in Zukunft ändern. Die Workflow- und
Installer-Logik liest github.repository, github.repository_owner oder
APOTHEM_GITHUB_REPOSITORY, wo eine Plattform dynamische Auflösung erlaubt. Der
Paketbezeichner der Registry bleibt stabil, weil Benutzer den Paketnamen
installieren, nicht den Kontonamen des Betreuers.
npm (npmjs.com)
-
Melde dich bei
https://www.npmjs.com/alsahmed-g-gadan. -
Aktiviere die Zwei-Faktor-Authentifizierung für das Konto.
-
Bestätige den mit einem Scope versehenen Paketnamen:
npm view @ahmed-g-gad/apothem nameEin
404bedeutet, dass das mit einem Scope versehene Paket noch nicht veröffentlicht wurde. Jede andere Paketantwort muss vor der Veröffentlichung mit diesem Repository und diesem Konto übereinstimmen. -
Erstelle das Paket auf npm, falls die Benutzeroberfläche einen ersten Paketeintrag verlangt. Behalte den Scope-Namen bei:
@ahmed-g-gad/apothem. -
Konfiguriere Trusted Publishing für
@ahmed-g-gad/apothemaus GitHub Actions:- GitHub-Eigentümer:
ahmed-g-gad - Repository:
apothem - Workflow-Dateiname:
publish-npm.yml - Umgebung:
npmjs - Erlaubte Aktion:
npm publish.
- GitHub-Eigentümer:
-
Überprüfe in GitHub, dass die Umgebung
npmjsinahmed-g-gad/apothemexistiert und eine manuelle Genehmigung für das Deployment verlangt. -
Halte die npm-Oberfläche auf ein öffentliches Registry-Paket beschränkt:
@ahmed-g-gad/apothemauf npmjs.com. -
Bestätige die Release-Bereitschaft:
Release readiness bash scripts/release/check-release-ready.sh <release-tag> -
Führe
Publish — npm(publish-npm.yml) über den Tab GitHub Actions mittag=<release-tag>aus und genehmige das Deployment der Umgebungnpmjs. -
Überprüfe das Live-Paket:
npm verification npm view @ahmed-g-gad/apothem version npx @ahmed-g-gad/apothem@<version> --version
Es ist kein NPM_TOKEN-, Benutzernamen- oder Passwort-Secret erforderlich. Der
Workflow veröffentlicht über npm Trusted Publishing (OIDC), wobei die
Node-Version und die OIDC-Untergrenze der npm-CLI in
.github/workflows/publish-npm.yml fixiert sind. Er führt
npm publish --access public gegen npmjs.com aus; npm gibt automatisch die
Herkunft (Provenance) für öffentliche Pakete aus, die aus einem öffentlichen
GitHub-Actions-Workflow veröffentlicht werden. Ein Registry-404 während des
PUT bedeutet, dass der vertrauenswürdige Publisher auf der npm-Seite, der
Paket-Scope oder die Kontoautorisierung noch nicht abgestimmt sind; korrigiere
die npm-Paketeinstellungen, bevor du den Workflow erneut versuchst.
Referenzen: npm Trusted Publishers, npm-Provenance und npm-Scopes.
Release-Voraussetzungen auf der GitHub-Seite
Die übrigen Release-Oberflächen sind GitHub-nativ und authentifizieren sich mit
dem repository-gescopten GITHUB_TOKEN; es ist kein externes Konto beteiligt.
-
GitHub Release.
.github/workflows/release.ymlläuft auf dem Versions-Tag und benötigt nur seine job-lokale Berechtigungcontents: write. Bestätige, dass die Workflow-Datei vor dem Taggen aufmainvorhanden ist. -
Benutzerdefinierte Pages-Domain. Die Dokumentationsseite wird über
publish-static-site.ymlauf die benutzerdefinierte Domainapothem.ahmedgad.combereitgestellt. Die Domain, das DNS und die HTTPS-Durchsetzung werden durch das Pages-Aktivierungs-Runbook eingerichtet; überprüfe:Pages verification gh api repos/ahmed-g-gad/apothem/pages --jq '.cname, .https_enforced' curl -sSI https://apothem.ahmedgad.com/ | head -n 1 -
Skript-Installer.
install.shundinstall.ps1werden vom Pages-Standort bereitgestellt (https://apothem.ahmedgad.com/install.shundhttps://apothem.ahmedgad.com/install.ps1). Sie werden durch dasselbe Pages-Deployment veröffentlicht; es ist kein separates Konto oder Token erforderlich.
Verifizierungsmatrix
Nach der Einrichtung beantwortet jede Publisher-Oberfläche ihre kanonische Prüfung:
| Oberfläche | Prüfung |
|---|---|
| npmjs.com | npm view @ahmed-g-gad/apothem version gibt die veröffentlichte Version zurück |
| GitHub Release | gh release view <release-tag> --json assets --jq '.assets[].name' listet sdist, wheel, SBOM, cosign-Bundles, Provenance und Plattformarchive auf |
| Pages | curl -sSI https://apothem.ahmedgad.com/ gibt 200 auf der benutzerdefinierten Domain zurück |