Skip to content
Apothem
Руководства по эксплуатации

Настройка учётной записи издателя

Настройка доверенного издателя 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 и не требуют внешней учётной записи издателя.

Карта идентичности

ПоверхностьУчётная записьИдентификатор пакета
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 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 с областью видимости репозитория; внешняя учётная запись не задействована.

  1. GitHub Release. .github/workflows/release.yml выполняется на теге версии и нуждается только в своём локальном для задания разрешении contents: write. Убедитесь, что файл рабочего процесса присутствует на main перед созданием тега.

  2. Пользовательский домен 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
  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