Установка NPM из пакетов GH: работает локально, но не в действии GH

Я опубликовал частный пакет в репозитории пакетов нашей организации.

В соответствии с документацией я добавил файл .npmrc в корень другого проекта со следующим содержимым:

registry=https://npm.pkg.github.com/my-org

В моем локальном ~ / .npmrc находится мой Authtoken для npm.pkg.github.com

Я установил опубликованный пакет в свой package.json со следующей записью в package.json

"@my-org/my-package": "^1.0.0",

При локальной установке все работает нормально.

При установке через Github Actions установка завершается ошибкой:

npm ERR! code E404
npm ERR! 404 Not Found - GET https://npm.pkg.github.com/my-org/@my-org%2fmy-package - npm package "my-package" does not exist under owner "my-org"
npm ERR! 404 
npm ERR! 404  '@my-org/[email protected]' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)

Кажется, что "my-org" используется два раза в пути к пакету? Почему это работает локально, а не в Github Actions?

Первоначально мой .npmrc был таким (организация не добавлена ​​в URL-адрес реестра):

registry=https://npm.pkg.github.com

Это также отлично работает локально.

Он также работает для всех пакетов с ограниченной областью действия (например, @ coogle-cloud) в действии github, но не работает для пакетов с незаданной областью:

npm ERR! code E404
npm ERR! 404 Not Found - GET https://npm.pkg.github.com/chai
npm ERR! 404 
npm ERR! 404  '[email protected]' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

Обновление: Итак, я взял свой личный доступ (который работал локально) и зафиксировал, теперь рабочий процесс установки завершается успешно.

Документация (https://help.github.com/en/github/managing-packages-with-github-packages/using-github-packages-with-github-actions) говорит: «GITHUB_TOKEN прочитал: пакеты и напишите: объемы пакетов. " Разве этого не достаточно?

В моем личном токене доступа есть delete: packages, read: packages, repo, write: packages.


person zaphod1984    schedule 14.11.2019    source источник


Ответы (1)


В произвольной ветке твиттера похоронена информация о том, что GITHUB_TOKEN имеет доступ только к текущему репо. https://twitter.com/char_fish/status/1191442780729556993?s=21

Решение состоит в том, чтобы явно определить личный (sic!) Токен доступа и поместить его в хранилище секретов репозитория, используя этот секрет для аутентификации в репозитории пакетов.

  - name: 'authenticate with GH package registry'
    run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
person zaphod1984    schedule 14.11.2019