Настройка учётной записи издателя
Настройка доверенного издателя npmjs.com для @ahmed-g-gad/apothem и предварительных требований к выпуску на стороне GitHub.
Этот runbook настраивает сторону издателя для поверхности выпуска. История
распространения имеет один реестр: 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 name404означает, что пакет с областью видимости ещё не опубликован. Любой другой ответ пакета должен соответствовать этому репозиторию и учётной записи перед публикацией. -
Создайте пакет в 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 CLI закреплены внутри
.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 устанавливаются runbook включения 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 на пользовательском домене |