从Github操作中获取Github Registry npm软件包

时间:2019-10-29 13:44:15

标签: npm yarn github-actions github-package-registry

我已成功将@ myorganization / my-super-lib部署为GH npm软件包。现在,我想在其他GH项目中使用它。

这是一个私有库,也是一个私有项目(要记住,重要的是要讨论公共项目)。

在本地,没问题,只需在我的npm配置中添加带有我的个人令牌的正确authtoken配置。

现在,当使用Github Actions时,我不确定令牌访问库包的优雅解决方案。该文档说要使用个人文档,但是如果我离开组织该怎么办?我也可以为此使用专门的技术帐户,但这似乎不是“正确的”解决方案。

有人有更好的主意吗?

注释后编辑:起初我以为我可以简单地使用GITHUB_TOKEN,但仅限于访问当前存储库,从安全角度考虑后,这是合乎逻辑的。

3 个答案:

答案 0 :(得分:1)

要使用Github操作安装私有github软件包,您还需要在

  • actions/setup-node@v1:定义程序包注册表的范围
  • npm install:将personal access tokenread, repo一起使用。该令牌应由有权访问您使用的私有github软件包的任何github帐户创建,并存储为使用该操作的回购协议的秘密。

注意:--ignore-scripts是一个可选标志,可增加针对恶意脚本的额外保护,这些脚本可能窃取您的个人访问令牌

示例:

    steps:
      - uses: actions/checkout@v2

      - uses: actions/setup-node@v1
        with:
          node-version: '12.x'
          registry-url: 'https://npm.pkg.github.com'
          scope: '@antecha'

      - run: npm install --ignore-scripts
        env:
          NODE_AUTH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}

更新:
回购示例:https://github.com/antecha/survey

    我提到的
  • 个人访问令牌可以由有权访问私有注册表的 ANY 帐户创建。对于组织来说,最好的方法是在github上创建一个 admin-profile / account ,其唯一目的是管理此类令牌或/和组织对第三方应用程序的github身份验证。

答案 1 :(得分:0)

我个人使用该脚本(.github/workflows/my-super-workflow-file.yml

name: CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1
      - name: Setup node
        uses: actions/setup-node@v1
        with:
          node-version: '10.x'
          registry-url: 'https://npm.pkg.github.com'
      - run: npm install --ignore-scripts
        env:
          NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - run: npm test

答案 2 :(得分:0)

currently没有比使用个人访问令牌更好的选择,即:

  • 从具有读取访问权限的帐户中创建个人read:packages访问令牌
  • 将该令牌作为“秘密”插入存储库(在其中执行Github操作)
  • 通过Github Actions工作流程中的“秘密”访问令牌,以认证并安装存储在Github注册表中的依赖项