在行动中克隆组织内的私有 github 存储库

新手上路,请多包涵

我在组织(比如 ORG)中有 2 个私人 GitHub 存储库(比如 A 和 B)。存储库 A 在 requirements.txt 中有存储库 B:

 -e git+git@github.com:ORG/B.git#egg=B

我有 A 的以下工作流程(在 .github/workflows/test.yml 中):

 name: Python package

on: push

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1

    - name: Install requirements
      run: |
        pip install -r requirements.txt

    - name: Test with pytest
      run: |
        pytest ./tests

由于 B 是私有的,因此安装失败。

如果他们在同一个组织中,是否可以在这个工作流中测试 A 的同时安装 B?如何?

原文由 Yevhen Kuzmovych 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 681
2 个回答

我是这样做的!

 - uses: actions/checkout@v1
  with:
    repository: organization_name/repo_name
    token: ${{ secrets.ACCESS_TOKEN }}

您需要提供一个有效的令牌,您可以按照 本指南 生成它

原文由 Duvan 发布,翻译遵循 CC BY-SA 4.0 许可协议

由于访问令牌绑定到一个帐户并且具有对其 所有 私有存储库的写入权限,因此这是一个非常糟糕的解决方案。

相反,使用 部署密钥

部署密钥

部署密钥只是可用于克隆存储库的 SSH 密钥。

  1. 在您的计算机上创建新的 SSH 密钥对
  2. 公钥 放入私有依赖库的 Deploy keys
  3. 私钥 放入应用程序仓库的 Actions secrets
  4. 从您的计算机中删除密钥

秘密

设置完成后,您可以在 GitHub Action 的 SSH 代理中设置私钥。无需导入第三方 GitHub Action,一个 2-liner 就足够了。

 eval `ssh-agent -s`
ssh-add - <<< '${{ secrets.PRIVATE_SSH_KEY }}'
pip install -r requirements.txt


我发现 ssh-add 命令 在这里

原文由 Nato Boram 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏