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

Repository Name as a GitHub Action environment variable?

如何将存储库名称(不是用户或组织)作为 GitHub 操作中的环境变量? 我找到了 github.repository 但它包含所有者作为第一部分,如下所示:owner/repo.

尝试github.event.repository.name

- run: echo ::set-env name=REPO_NAME::${{ github.event.repository.name }}

Documentation 除了,我 真的 建议转储上下文(可能在某些测试回购中)只是为了熟悉它们,因为有很多数据在编写重要的工作流程时可能有用也可能没用。

- name: Dump github context
  run:   echo "$GITHUB_CONTEXT"
  shell: bash
  env:
   GITHUB_CONTEXT: ${{ toJson(github) }}

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

我认为您要查找的语法实际上是 github.event.repository.name

@Samira 的 toJson(github) 提示非常有用。我看了一眼,发现 repository 属性 在`event.

下缩进了一点

您可以直接使用该值,或在顶层赋值:

env:
  REPO_NAME: ${{ github.event.repository.name }}

你可以从github.repository中提取它:

name: Print repo name

on:
    workflow_dispatch:

jobs:
    print-name:
        runs-on: ubuntu-latest
        steps:
            - name: get-name
              run: |
                  echo "REPO_NAME=$(basename ${{ github.repository }})" >> $GITHUB_ENV
            - name: print-name
              run: |
                  echo "${{ env.REPO_NAME }}"

示例: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