繁体   English   中英

我如何使用 GITHUB_TOKEN 在我的存储库 A 的 github 工作流程中添加一个步骤来检出与存储库 A 位于同一组织中的存储库 B?

[英]How I do I add a step in my repository A's github workflow to checkout repository B which is in the same org as repository A, using GITHUB_TOKEN?

以下是存储库 A 的 Github 工作流程中的步骤

- name: Checkout repo-b
  uses: actions/checkout@v2
  with:
    repository: myorg/repo-b
    fetch-depth: 1
    ref: master
    token: ${{ secrets.GITHUB_TOKEN }}

github 操作引发以下错误:

...
...
Fetching the repository
  /usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +refs/heads/master*:refs/remotes/origin/master* +refs/tags/master*:refs/tags/master*
  remote: Repository not found.
  Error: fatal: repository 'https://github.com/myorg/repo-b/' not found
...
...

我在包含此步骤的工作流作业中指定了以下权限:

permissions:
  contents: write
  packages: write

我是否需要启用这些存储库的任何存储库设置?

使用相同的 GITHUB_TOKEN,它可以在其他步骤中访问 github 的 npm/docker 注册表。

您不能使用secrets.GITHUB_TOKEN克隆另一个存储库。 该令牌仅适用于运行工作流的存储库。 如果您希望克隆另一个存储库,则需要使用具有执行克隆权限的 PAT 设置存储库机密。

https://docs.github.com/en/actions/security-guides/automatic-token-authentication#about-the-github_token-secret

当您启用 GitHub 操作时,GitHub 会在您的存储库上安装一个 GitHub 应用程序。 GITHUB_TOKEN 秘密是一个 GitHub 应用程序安装访问令牌。 您可以使用安装访问令牌代表存储库中安装的 GitHub 应用程序进行身份验证。 令牌的权限仅限于包含您的工作流程的存储库。 有关详细信息,请参阅“GITHUB_TOKEN 的权限”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM