python - 在操作中克隆组织内的私有(private) github 存储库

标签 python github github-actions

我在组织(比如 ORG)中有 2 个私有(private) 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 是私有(private)的,因此安装它失败。
如果他们在同一个组织中,是否可以在此工作流程中测试 A 时安装 B?如何?

最佳答案

由于访问 token 绑定(bind)到一个帐户并且对其所有私有(private)存储库具有写访问权限,因此这是一个非常糟糕的解决方案。
相反,请使用 deploy keys .
Deploy keys
部署 key 只是可用于克隆存储库的 SSH key 。

  • 在您的计算机上创建一个新的 SSH key 对
  • 将公钥放入私有(private)依赖仓库的部署 key
  • 将私钥放入应用程序仓库的 Actions secret
  • 从您的计算机中删除 key

  • secrets
    设置好后,您可以在 GitHub Action 的 SSH 代理中设置私钥。无需导入第三方 GitHub Action,2-liner 就足够了。
    eval `ssh-agent -s`
    ssh-add - <<< '${{ secrets.PRIVATE_SSH_KEY }}'
    pip install -r requirements.txt
    

    我发现 ssh-add命令 here .

    关于python - 在操作中克隆组织内的私有(private) github 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57612428/

    相关文章:

    continuous-integration - 有没有办法在设置页面的 Github 操作中设置非 secret 环境变量?

    github - 您可以将 `enum` 与 GitHub Action 的 `action.yml` 中的输入和工作流文件一起使用吗?

    python - 使用 PIL 对图像进行矢量化 reshape 和裁剪

    python - 如何检查某个数字是否在 Pytorch 张量中?

    python - API前端架构

    macos - Git: 'rebase' 不是 git 命令。见 'git --help'

    maven - 从 GitHub 导入 Maven 原型(prototype)

    python - 如何使qtablewidget中过滤器中使用的菜单栏在pyqt5中可滚动?

    github - github 中的文件夹与存储库

    docker - GitHub 操作 : How to run docker-compose in windows-latest and macos-latest?