Node 项目在同一帐户下的 github action 工作流中安装 github 私有包

Node project installing a github private package in a github action workflow under the same account

提问人:i2i3 提问时间:11/13/2023 最后编辑:i2i3 更新时间:11/14/2023 访问量:59

问:

github 文档真的让我感到困惑。我到底应该怎么做才能将 github 包中的包嵌入 github actions 中?

在 github action 工作流中,文档建议使用 .但是我看不出如何在 Node 项目中使用它。GITHUB_TOKENnpm install

工作流程

on: push

jobs:
  install-package:
    permissions:
      packages: read
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Use Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 18.x
      - run: npm i

.npmrc

// MY_SCOPE is my account name.
@MY_SCOPE:registry=https://npm.pkg.github.com

错误

npm ERR! code E401
npm ERR! 401 Unauthorized - GET https://npm.pkg.github.com/@MY_PACKAGE - authentication token not provided

npm ERR! A complete log of this run can be found in: /home/runner/.npm/_logs/2023-11-13T04_23_29_816Z-debug-0.log
Error: Process completed with exit code 1.

*私有包和打算安装它的项目都在同一个帐户下。

github 操作 npm-install

评论

0赞 Azeem 11/13/2023
这是私人套餐吗?
0赞 Azeem 11/13/2023
这回答了你的问题吗?从 github npm 注册表安装包 - 身份验证错误 401
0赞 i2i3 11/13/2023
不,它没有。但我刚才已经想通了。

答:

0赞 i2i3 11/13/2023 #1

我刚才已经想通了。我在结帐操作后添加到 .npmrc 中。GITHUB_TOKEN

*根据 @Azeem 的评论,这仅适用于我的情况,即打算安装它的包和项目位于同一帐户下。如果需要在 github registry 中安装包,则需要使用 PAT 进行安装。

工作流程

on: push

jobs:
  install-package:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      // Add the token value into .npmrc
      - run: echo -e "\n//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" >> ./.npmrc
      - name: Use Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 18.x
      - run: npm i

评论

0赞 Azeem 11/13/2023
尝试将其与另一个工作流安装在同一个存储库(范围)中?
0赞 i2i3 11/13/2023
显式添加 .GITHUB_TOKEN
0赞 Azeem 11/13/2023
在不同作业下的同一工作流中发布和安装?
0赞 i2i3 11/13/2023
不。发布工作流在包的工作流中完成,安装在项目的工作流中进行。我可能不明白你的意图。
1赞 Azeem 11/13/2023
右。是的。这就是为什么我最初将其标记为重复项的原因。但是,您的用例是不同的。您可能希望为将来的读者提供这些关键信息来更新您的问题。谢谢!