【问题标题】:how to config git to use PAT token in GitHub actions checkout如何配置 git 以在 GitHub 操作结帐中使用 PAT 令牌
【发布时间】:2021-04-10 03:46:38
【问题描述】:

我需要在 GitHub Actions 工作流程中签出私人存储库。我正在使用结帐操作,并遵循其README

  1. 我创建了一个服务帐户,即一个单独的 GitHub 帐户,仅用于 GitHub Actions 工作流程。
  2. 我为服务帐户创建了一个 PAT(个人访问令牌),具有访问私有存储库和当前工作流存储库的权限。
  3. 我创建了一个秘密来存储 PAT 令牌。

现在,当我只执行以下操作时,它不起作用:

- name: Checkout
  uses: actions/checkout@v2
  with:
    token: ${{secrets.MY_TOKEN}}

似乎我没有正确配置git 以允许它使用令牌。我的问题是:我应该或如何配置git config 以在上述步骤中使用令牌?

谢谢。

编辑:私有仓库是主仓库的依赖项。两个 repos 都是 Rust 程序,使用 Cargo。所以我尝试使用相同的服务帐户首先签出主仓库。然后 cargo 将检查私有 repo。

编辑 2:抱歉,这是一个不好的问题。我不知道我在做什么。请忽略。

【问题讨论】:

  • 关于 git config,我想知道我是否应该对 credential helper 做任何事情,以便 git 使用令牌?
  • 您好,我最近创建了一个操作,可以解决您的问题,如果您想查看:clone-github-repo-action。基本上,此操作允许您使用 PAT 在工作流程中克隆公共或私有存储库,然后您将有权访问存储库文件和文件夹以执行操作。

标签: github-actions rust-cargo git-config


【解决方案1】:

根据the actions/checkout documentation,您需要为私有存储库添加repository input

在您的工作流.yml 文件中应该如下所示:

- name: Checkout
  uses: actions/checkout@v2
  with:
    path: main

- name: Checkout private repo
  uses: actions/checkout@v2
  with:
     repository: your-private/repo_name
     token: ${{ secrets.MY_TOKEN }}

您不需要对git 进行任何其他配置

除非您需要特定的path,否则您还需要将其作为输入告知:

- name: Checkout private repo
  uses: actions/checkout@v2
  with:
     repository: your-private/repo_name
     token: ${{ secrets.MY_TOKEN }}
     path: path-to-directory

【讨论】:

  • 我试过但没用。我没有使用repository,因为私有仓库是一个依赖项,而不是与主仓库并排的仓库。我想使用同一个帐户来拉取主仓库,它也会拉取依赖项。顺便说一句,两个 repo 都是使用 Cargo 的 Rust 程序。
  • 对不起,我发现我没有问正确的问题。 Checkout 实际上总是成功的,但 cargo build 失败了,因为构建是不同的操作,并且不使用提供给 checkout 操作的令牌。我现在找到了解决方案。
  • 太棒了!请分享解决方案,我现在很好奇:D
  • 解决方案是使用fusion-engineering/setup-git-credentials@v2。然后cargo build 将能够使用凭据来拉取依赖的私有仓库。
猜你喜欢
  • 1970-01-01
  • 2021-10-19
  • 1970-01-01
  • 2021-05-12
  • 2021-06-27
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
相关资源
最近更新 更多