【问题标题】:Github Actions and git clone issueGithub Actions 和 git clone 问题
【发布时间】:2020-05-30 00:59:47
【问题描述】:

在 Github Actions 中使用 git clone 时遇到一些问题,无论我尝试什么,都会得到以下结果:

我的 main.yml 中失败的代码:

jobs:
 terraform:
   name: 'Terraform with Github Actions!'
   runs-on: ubuntu-latest
   steps:
   - name: 'Login to Azure'
    uses: azure/login@v1
    with:
      creds: ${{ secrets.AZURE_CREDENTIALS }}
  - name: 'Checkout'
    uses: actions/checkout@master
  - name: 'Preparing blueprint-environment'
    run: |
      snip
      git clone git@github.com:ourcompany/whateverrepo.git

错误信息:

git@github.com:权限被拒绝(公钥)。

我看过很多关于添加 ssh-keys 的帖子,但那是在本地,而不是在从 Github 操作运行的 ubuntu 版本中——我在这里缺少什么?我无法生成 ssh-keys 并将私钥即时添加到 Github repo-settings,我该如何解决这个问题?

【问题讨论】:

    标签: terraform github-actions


    【解决方案1】:

    如果您需要检查两个存储库,我建议您再次使用 checkout 到相对路径。请参阅checkout multiple repos side by side 的文档。您可能需要使用repo 作用域Personal Access Token (PAT)

      - name: 'Checkout'
        uses: actions/checkout@v2
      - name: 'Preparing blueprint-environment'
        uses: actions/checkout@v2
        with:
          token: ${{ secrets.PAT }}
          repository: ourcompany/whateverrepo
          path: whateverrepo
    

    如果确实需要,可以使用Deploy keys 通过 SSH 克隆存储库。

    1. Create a new SSH key pair 用于您的存储库。不要设置密码。
    2. 将公钥(.pub 文件)的内容复制到新的存储库 deploy key 并选中“允许写入访问”复选框。
    3. 向包含私钥全部内容的存储库添加一个秘密。
    4. 如下例所示,配置actions/checkout 以使用您创建的部署密钥。
        steps:
          - uses: actions/checkout@v2
            with:
              ssh-key: ${{ secrets.SSH_PRIVATE_KEY }}
    

    【讨论】:

    • 所以这个需要添加的令牌,是否只是来自 blueprint-repo 的类似令牌,现在也添加到要查看蓝图的当前 repo 中?感谢您的回复!
    • PAT 需要在对 blueprint-repo 具有写入权限的帐户上创建。
    • 快速跟进,我无法通过变量插值访问 PAT - PAT 是通过开发人员设置为用户创建的,我是否仍然可以使用 {{ secrets.PAT }}?这似乎仅适用于在 repo 上创建的秘密?
    • 创建 PAT 后,您需要将其作为机密添加到运行工作流的存储库中。您可以随意命名秘密。我在示例中使用了PAT
    • 然后我可以在我的 .yml 中使用 {{ secrets.whatevername }} 来访问该私有仓库?
    猜你喜欢
    • 2021-06-19
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 1970-01-01
    相关资源
    最近更新 更多