存储库名称作为 GitHub 操作环境变量?

Cal*_*ken 8 continuous-integration yaml github github-actions

您如何在 GitHub Actions 中将存储库名称(而不是用户或组织)作为环境变量获取?我发现github.repository,但却包含了所有者,像这样的第一部分:owner/repo

小智 15

示例: https: //github.com/maguowei/awesome-stars/blob/master/.github/workflows/schedules.yml#L21

- name: get epository name
  run: echo "REPOSITORY_NAME=${GITHUB_REPOSITORY#*/}" >> $GITHUB_ENV
Run Code Online (Sandbox Code Playgroud)


小智 11

我认为你正在寻找的语法实际上是 github.event.repository.name

@Samira 的toJson(github)提示非常有用。我看了一眼才注意到该repository属性在“事件”下缩进了一点。

您可以直接使用该值,也可以通过以下方式在顶层分配它:

env:
  REPO_NAME: ${{ github.event.repository.name }}
Run Code Online (Sandbox Code Playgroud)


Sam*_*ira 9

尝试 github.repository.name

- run: echo ::set-env name=REPO_NAME::${{ github.repository.name }}
Run Code Online (Sandbox Code Playgroud)

除了文档之外,我真的建议转储上下文(可能在某些测试仓库中)只是为了熟悉它们,因为有很多数据在编写非平凡的工作流程时可能有用也可能没有用。

- name: Dump github context
  run:   echo "$GITHUB_CONTEXT"
  shell: bash
  env:
   GITHUB_CONTEXT: ${{ toJson(github) }}
Run Code Online (Sandbox Code Playgroud)

请注意,部分github上下文更改取决于哪个事件触发了工作流,因此最好仔细检查您要使用的数据是否可用于工作流中使用的所有事件。

  • 当您的工作流程按计划触发时,提及“github.event.repository.name”不可用可能会很有用。现在就对它进行排序!:) (13认同)
  • `github.event.repository.name` 为我工作。 (4认同)
  • 谢谢你!对于上下文,我需要拉请求事件的这些信息,我发现变量是“github.event.pull_request.base.repo.name”。我将把你的帖子标记为答案,因为它提供了非常好的调试建议,并引导我找到了解决方案。 (3认同)