如何从 Github API 触发“workflow_dispatch”?

ary*_*ing 18 github github-api github-actions

GH Rest API 文档来看,我们似乎能够创建一个repository_dispatch事件,但没有workflow_dispatch创建事件。在GH GraphQL API中,我找不到如何调度事件。

是否可以workflow_dispatch使用 API 触发事件?

Gui*_*urd 17

是的,可以通过Github API或使用GH CLI手动进行。

手动(通过Actions存储库上的选项卡。)

这是关于它的官方文档

基本上,一旦您在选项卡上选择工作流,如果工作流实现具有工作流调度触发器,该选项Run workflow将出现在窗口的右侧部分,如下所示:

在此输入图像描述

使用 Github API

在Github官方文档上,有一个创建工作流调度事件的服务

这是一个卷曲示例:

curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/octocat/hello-world/actions/workflows/42/dispatches \
  -d '{"ref":"main"}'
Run Code Online (Sandbox Code Playgroud)

请注意,您还可以通过此 API 发送工作流程inputs

您还可以在本文中找到更多相关参考资料。

还有另一个Github API服务可以触发repository_dispatch事件

GH CLI

您还可以通过以下命令workflow_dispatch使用GH CLI 工具触发事件:

gh workflow run [<workflow-id> | <workflow-name>] [flags]

为给定工作流创建workflow_dispatch 事件。

此命令将触发 GitHub Actions 运行给定的工作流程文件。给定的工作流文件必须支持workflow_dispatch“on”触发器才能以这种方式运行。

参考

奖金

如果您正在寻找通过终端命令行触发这些workflow_dispatch事件(和事件),您可以在 Python 中使用此自动化功能可以在此类中找到实现。repository_dispatch


rav*_*yla 8

workflow_dispatch您还可以通过GH CLI 工具触发:gh workflow run文档

例如:gh workflow run <WORKFLOW_ID> -f param_1=foo

  • 您可以通过 获取工作流 ID gh workflow list

或者,您也可以使用工作流程文件名而不是工作流程 ID。

例如:gh workflow run staging.yml -f param_1=foo