【问题标题】:Complete list of github actions contextsgithub 操作上下文的完整列表
【发布时间】:2022-01-03 08:17:48
【问题描述】:

在研究如何在 github 操作中,我可以将存储库中特定文件的“基本”版本与文件的拉取请求(“头”)版本进行比较......在调查这一点时,我发现各种来源(例如github.communitygithub.com/actions/checkout README file 中的代码示例)...我发现以下上下文变量可用:

  • github.ref
  • github.sha
  • github.event.pull_request.head.ref
  • github.event.pull_request.head.sha
  • github.event.pull_request.base.ref
  • github.event.pull_request.base.sha

但是,除了前两个(github.refgithub.sha)之外,我在任何 github 操作文档中都找不到其他四个

我的问题是:是否有任何地方记录了可用上下文变量的完整列表?

例如,我有 found this,但它只列出了 github 上下文对象下一级的上下文变量。我找不到上面提到的更深层嵌套变量的文档。可能还有其他可能非常有用的上下文变量,但我似乎找不到完整列表,而只能找到那些碰巧在各种代码示例中被提及和散布的那些。

【问题讨论】:

    标签: github-actions github-actions-artifacts


    【解决方案1】:

    我认为您想区分上下文变量和有效负载。

    上下文变量在大多数情况下都可用,并且记录了例外情况(如您所见):https://docs.github.com/en/actions/learn-github-actions/contexts#github-context

    另一方面,有效负载取决于事件类型。如果您因on: pull_request 运行工作流,您将获得与运行on: push (等等)不同的有效负载。

    我从未见过列出所有有效负载的文档,但我相信您可以从 webhook 中获得灵感。例如,如果您在创建拉取请求时运行工作流,您可以在此处查看拉取请求的 webhook 有效负载:https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#webhook-payload-example-33

    由于两个 not 被记录为相同,您可能不得不求助于仅转储事件并检查您实际获得的内容。在docs 中,GitHub 有一个示例如何将上下文作为工作流程的一部分转储:

    jobs:
      one:
        runs-on: ubuntu-latest
        steps:
          - name: Dump GitHub context
            env:
              GITHUB_CONTEXT: ${{ toJSON(github) }}
            run: echo "$GITHUB_CONTEXT"
    

    【讨论】:

    • 谢谢。这很有帮助。我实际上正在考虑转储上下文作为探索它的一种方式,但无法弄清楚如何。然后,既然你提到它,快速搜索发现:docs.github.com/en/actions/learn-github-actions/… 谢谢。希望这会给我我需要的一切。
    猜你喜欢
    • 2022-11-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 2022-10-26
    相关资源
    最近更新 更多