在 Github 操作中通过 Yarn 从 Github Package Registry 下载私有模块?发布作品,但安装遇到“401 Unauthorized”
Download private module from Github Package Registry via Yarn within a Github Action? Publishing works, but installing is met with '401 Unauthorized'
出于各种原因,我们无法使用 yarn 来管理我们的包,因此我们不能依赖包-lock.json 来使用 npm 和 github 操作。
我们无法让 Yarn 作为 github 操作的一部分进行身份验证。
我们已经将 repo npmrc 配置为:
@COMPANY:registry=https://npm.pkg.github.com
registry=https://registry.npmjs.org/
我们正在使用 this action for yarn.
这是一个基本设置,我们只是尝试安装模块 -- 仅此而已。
name: CI
on: [push]
jobs:
build:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: borales/actions-yarn@v2.1.0
with:
auth-token: ${{ secrets.GITHUB_TOKEN }}
registry-url: "https://npm.pkg.github.com"
scope: tlabs
cmd: version
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_REGISTRY_URL: https://npm.pkg.github.com
- name: Create NPMRC
run: |
echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" > ~/.npmrc
- name: Install
run: |
yarn install --verbose
默认情况下,此操作将尝试 运行 安装以绕过我在那里提供的基本命令 'version' 因此它只显示 yarn 版本,仅此而已。
运行 yarn install 适用于所有其他包,但当它到达我们的私有模块时,它会尝试从正确的注册表 (github) 获取它们,但会遇到401.
完整错误:
verbose 7.614802156 Error: https://npm.pkg.github.com/download/@tlabs/utils/1.0.1/afe9eaa6f9565f95c31563cbecfe617d7970f44077302cbe9ca8ee3223550469: Request failed "401 Unauthorized"
at ResponseError.ExtendableBuiltin (/usr/share/yarn/lib/cli.js:696:66)
at new ResponseError (/usr/share/yarn/lib/cli.js:802:124)
at Request.<anonymous> (/usr/share/yarn/lib/cli.js:66996:16)
at Request.emit (events.js:210:5)
at Request.module.exports.Request.onRequestResponse (/usr/share/yarn/lib/cli.js:141441:10)
at ClientRequest.emit (events.js:210:5)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:583:27)
at HTTPParser.parserOnHeadersComplete (_http_common.js:115:17)
at TLSSocket.socketOnData (_http_client.js:456:22)
at TLSSocket.emit (events.js:210:5)
error An unexpected error occurred: "https://npm.pkg.github.com/download/@tlabs/utils/1.0.1/afe9eaa6f9565f95c31563cbecfe617d7970f44077302cbe9ca8ee3223550469: Request failed \"401 Unauthorized\"".
默认值 GITHUB_TOKEN
仅适用于当前存储库。您不能使用它来访问另一个存储库中的包。使用 read:packages
和 repo
范围 Personal Access Token 而不是 GITHUB_TOKEN
.
我正在创建文件 .npmrc 和 .yarnrc。
类型:
name: Test
on: push
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- uses: actions/checkout@v2
- name: Node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Create NPMRC
run: |
echo "//npm.pkg.github.com/:_authToken=${{ secrets.PACKAGES_TOKEN }}" >> ~/.npmrc
echo "@you-scope:registry=https://npm.pkg.github.com" >> ~/.npmrc
echo 'registry "https://registry.yarnpkg.com"' >> ~/.yarnrc
- run: yarn install
用LowerCase 为github 或github 中您的组织的用户替换@you-scope。
为此存储库创建一个 PACKAGES_TOKEN 秘密。
在项目的根目录中有一个 .npmrc 文件。
.npmrc 的内容:
registry=https://registry.npmjs.org/
@{scope}:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=********** (Token generated from github)
@{scope}
是您的组织名称或您的用户名。它区分大小写。
此外,要访问 github 注册表中的私有包和 public 包,您需要有一个令牌。
参考:You need an access token to publish, install, and delete packages.
出于各种原因,我们无法使用 yarn 来管理我们的包,因此我们不能依赖包-lock.json 来使用 npm 和 github 操作。
我们无法让 Yarn 作为 github 操作的一部分进行身份验证。 我们已经将 repo npmrc 配置为:
@COMPANY:registry=https://npm.pkg.github.com
registry=https://registry.npmjs.org/
我们正在使用 this action for yarn.
这是一个基本设置,我们只是尝试安装模块 -- 仅此而已。
name: CI
on: [push]
jobs:
build:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: borales/actions-yarn@v2.1.0
with:
auth-token: ${{ secrets.GITHUB_TOKEN }}
registry-url: "https://npm.pkg.github.com"
scope: tlabs
cmd: version
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_REGISTRY_URL: https://npm.pkg.github.com
- name: Create NPMRC
run: |
echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" > ~/.npmrc
- name: Install
run: |
yarn install --verbose
默认情况下,此操作将尝试 运行 安装以绕过我在那里提供的基本命令 'version' 因此它只显示 yarn 版本,仅此而已。
运行 yarn install 适用于所有其他包,但当它到达我们的私有模块时,它会尝试从正确的注册表 (github) 获取它们,但会遇到401.
完整错误:
verbose 7.614802156 Error: https://npm.pkg.github.com/download/@tlabs/utils/1.0.1/afe9eaa6f9565f95c31563cbecfe617d7970f44077302cbe9ca8ee3223550469: Request failed "401 Unauthorized"
at ResponseError.ExtendableBuiltin (/usr/share/yarn/lib/cli.js:696:66)
at new ResponseError (/usr/share/yarn/lib/cli.js:802:124)
at Request.<anonymous> (/usr/share/yarn/lib/cli.js:66996:16)
at Request.emit (events.js:210:5)
at Request.module.exports.Request.onRequestResponse (/usr/share/yarn/lib/cli.js:141441:10)
at ClientRequest.emit (events.js:210:5)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:583:27)
at HTTPParser.parserOnHeadersComplete (_http_common.js:115:17)
at TLSSocket.socketOnData (_http_client.js:456:22)
at TLSSocket.emit (events.js:210:5)
error An unexpected error occurred: "https://npm.pkg.github.com/download/@tlabs/utils/1.0.1/afe9eaa6f9565f95c31563cbecfe617d7970f44077302cbe9ca8ee3223550469: Request failed \"401 Unauthorized\"".
默认值 GITHUB_TOKEN
仅适用于当前存储库。您不能使用它来访问另一个存储库中的包。使用 read:packages
和 repo
范围 Personal Access Token 而不是 GITHUB_TOKEN
.
我正在创建文件 .npmrc 和 .yarnrc。 类型:
name: Test
on: push
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- uses: actions/checkout@v2
- name: Node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Create NPMRC
run: |
echo "//npm.pkg.github.com/:_authToken=${{ secrets.PACKAGES_TOKEN }}" >> ~/.npmrc
echo "@you-scope:registry=https://npm.pkg.github.com" >> ~/.npmrc
echo 'registry "https://registry.yarnpkg.com"' >> ~/.yarnrc
- run: yarn install
用LowerCase 为github 或github 中您的组织的用户替换@you-scope。 为此存储库创建一个 PACKAGES_TOKEN 秘密。
在项目的根目录中有一个 .npmrc 文件。
.npmrc 的内容:
registry=https://registry.npmjs.org/
@{scope}:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=********** (Token generated from github)
@{scope}
是您的组织名称或您的用户名。它区分大小写。
此外,要访问 github 注册表中的私有包和 public 包,您需要有一个令牌。
参考:You need an access token to publish, install, and delete packages.