如何从 Github API 触发 `workflow_dispatch`?

How to trigger a `workflow_dispatch` from Github API?

GH Rest API docs, seems we're able to create a repository_dispatch event, but no workflow_dispatch event. In the GH GraphQL API 中,我找不到如何调度事件。

甚至可以使用 API 触发 workflow_dispatch 事件吗?

可以,手动通过GithubAPI

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

Here is an official documentation about it

基本上,一旦您 select 选项卡上的工作流,如果工作流实施具有 workflow_dispatch 触发器,选项 Run workflow将出现在 window 的右侧,如下所示:

随着GithubAPI

在官方Github文档上,有一个服务到create a workflow dispatch event

这是一个 curl 示例:

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"}'

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

您还可以找到更多关于此的参考资料 in this article

还有另一个GithubAPI服务触发repository_dispatch events.

奖金

如果您正在寻找通过终端命令行触发那些 workflow_dispatch 事件(和 repository_dispatch 事件),您可以使用 this automation in Python. The implementation can be found in this class.

您也可以通过 GH CLI 工具 https://cli.github.com/.

触发 workflow_dispatch

例如:

gh workflow run <WORKFLOW_ID> -f param_1=foo

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