如何获取自己的GitHub事件负载JSON以便在本地测试GitHub Actions?

32

我使用GitHub Actions并想在本地测试它。 我正在使用这个工具,而且它很好用。 https://github.com/nektos/act

我可以提供一个event.json用于本地测试,但是创建一个真正的事件负载非常困难。

是否有任何方法获取真实的事件负载? 例如,我从控制台上创建拉取请求,并获得该事件负载的json。


如果有人想知道如何提供events.json文件,请参见https://github.com/nektos/act#events - Vito
1个回答

52

要获取事件数据,您可以使用 GitHub Action 将事件打印到日志中。

# change this to the event type you want to get the data for
on:
  pull_request:
    types: [opened, closed, reopened]

jobs:
  printJob:    
    name: Print event
    runs-on: ubuntu-latest
    steps:
    - name: Dump GitHub context
      env:
        GITHUB_CONTEXT: ${{ toJson(github) }}
      run: |
        echo "$GITHUB_CONTEXT"

你也可以在文档中找到事件数据的示例: https://docs.github.com/en/developers/webhooks-and-events/webhook-events-and-payloads#webhook-payload-example-30


非常感谢。 我可以打印出真实的事件负载并将其用于本地测试。我提交了一个编辑请求以使其正常工作。 - alpaca
请注意,这将为您提供GitHub发送的完整Webhook负载,但是您只想在event.json文件中包含event键中的负载部分。 - Vito
2
使用此功能时需要注意:文档中提到:“警告:当使用整个 GitHub 上下文时,请注意它包含诸如 github.token 等敏感信息。GitHub 在将密钥打印到控制台时会进行掩码处理,但在导出或打印上下文时仍需谨慎。” - Louis Maddox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接