Невозможно опубликовать sh в реестре пакетов github от travis: 401 не авторизован, несмотря на включение токена личного доступа github - PullRequest
1 голос
/ 25 февраля 2020

Я пытаюсь опубликовать sh пакет в реестре пакетов github от Travis CI. Кажется, что все работает нормально (сборка и тестирование прошло успешно), но при попытке опубликовать sh я получаю ошибку 401. Я добавил свой личный токен доступа github в качестве безопасной env var в конфигурации travis, и я вручную переопределяю root .npmrc с помощью npmr c, который включает в себя реестр github и токен доступа, но я Я все еще получаю разрешение проблем. Как я должен предоставить lerna / npm разрешение на публикацию sh пакета github?

Вот мой .travis.yml

env:
  global:
    secure: "my encrypted GH_TOKEN value (github personal access token with package registry permissions)"
language: node_js
node_js:
  - "12"
cache:
  directories:
    - "node_modules"
before_install:
  - echo "@my-org:registry=https://npm.pkg.github.com/:_authToken=\${GH_TOKEN}" > .npmrc
install:
  - npm ci
  - npm run bootstrap
script:
  - npm run test
  - npm run build
deploy:
  provider: script
  script: "npm run publish"
  skip_cleanup: true
  on:
    node: "12"
    tags: true

При запуске развертывания travis возникают ошибки с этим:

> lerna publish from-git --yes --npm-tag beta

WARN deprecated --npm-tag has been renamed --dist-tag

lerna notice cli v3.20.2

lerna info ci enabled

Found 1 package to publish:

 - @my-org/example-pkg => 1.0.2-beta.8

lerna info auto-confirmed 

lerna info publish Publishing packages to npm...

lerna notice Skipping all user and access validation due to third-party registry

lerna notice Make sure you're authenticated properly ¯\_(ツ)_/¯

lerna WARN ENOLICENSE Package @my-org/example-pkg is missing a license.

lerna WARN ENOLICENSE One way to fix this is to add a LICENSE.md file to the root of this repository.

lerna WARN ENOLICENSE See https://choosealicense.com for additional guidance.

lerna WARN lifecycle Skipping root "prepublish" because it has already been called

lerna http fetch PUT 401 https://npm.pkg.github.com/:_authToken=[secure]/@my-org%2fexample-pkg 153ms

lerna ERR! E401 Unable to authenticate, need: Basic realm="GitHub Package Registry"

npm ERR! code ELIFECYCLE

npm ERR! errno 1

npm ERR! ts-utilities@1.0.0 publish: `lerna publish from-git --yes --npm-tag beta`

npm ERR! Exit status 1

npm ERR! 

npm ERR! Failed at the ts-utilities@1.0.0 publish script.

npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:

npm ERR!     /home/travis/.npm/_logs/2020-02-25T19_46_08_862Z-debug.log

Script failed with status 1

failed to deploy

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 26 февраля 2020

Проблема закончилась тем, что мне понадобилось две строки в моем файле .npmrc. Один, чтобы связать org @my-org с реестром пакета github: И другой, чтобы предоставить токен аутентификации для реестра пакета github. Таким образом, все .npmrc выглядит следующим образом:

@my-org:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}

Затем я смог установить переменную окружения GITHUB_TOKEN для моего персонального токена доступа github (с разрешениями на чтение пакетов), а затем я смог запустить npm install @my-org/example-pkg.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...