3

我已成功将 @myorganization/my-super-lib 部署为 GH npm 包。现在我想在另一个 GH 项目中使用它。

这是一个私有库,也是一个私有项目(重要的是要记住,因为这一点与公共库没有实际意义)。

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

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

有没有人有更好的主意?

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

4

3 回答 3

3

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

  • 从具有读取权限的帐户创建个人read:packages访问令牌
  • 将该令牌作为“秘密”插入到存储库(执行 Github 操作的地方)
  • 通过 Github Actions Workflow 中的 Secrets 访问令牌以验证和安装存储在 Github Registry 中的依赖项
于 2019-11-30T20:31:48.463 回答
1

使用 Github 操作安装您还需要的私有 github 包

  • actions/setup-node@v1: 定义包注册表的范围
  • npm install:使用具有访问权限的个人访问令牌read, repo。此令牌应由有权访问您使用的私有 github 包的任何 github 帐户创建,并存储为使用该操作的 repo 的秘密。

注意:这--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

  • 我提到的个人访问令牌可以由任何有权访问私有注册表的帐户创建。对于组织来说,最好是在 github 上创建一个管理员配置文件/帐户,仅用于管理此类令牌或/和组织对 3rd 方应用程序的 github 身份验证。
于 2020-04-19T13:00:17.330 回答
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
于 2019-11-03T18:25:53.197 回答