[英]GitHub Actions: Must have admin rights to trigger workflow_dispatch?
[英]How to trigger a `workflow_dispatch` from Github API?
从GH Rest API 文档,我们似乎能够创建repository_dispatch
事件,但没有workflow_dispatch
事件。 在GH GraphQL API中,我找不到如何调度事件。
甚至可以使用 API 触发workflow_dispatch
事件吗?
您还可以通过 GH CLI 工具https://cli.github.com/触发workflow_dispatch
。
例如: gh workflow run <WORKFLOW_ID> -f param_1=foo
gh workflow list
获取工作流 ID。或者,您也可以使用工作流文件名而不是工作流 ID。
例如: gh workflow run staging.yml -f param_1=foo
是的,可以手动或通过 Github API 来实现。
Actions
”选项卡。)基本上,一旦你 select 选项卡上的工作流,如果工作流实现有工作流调度触发器,选项Run workflow
将出现在 window 的右侧,如下所示:
在官方的 Github 文档上,有一个创建工作流调度事件的服务
这是一个 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
。
您还可以在本文中找到更多关于此的参考资料。
还有另一个Github API 服务来触发repository_dispatch 事件。
如果您正在寻找通过终端命令行触发这些workflow_dispatch
事件(和repository_dispatch
事件),您可以在 Python 中使用此自动化。 可以在此 class中找到实现。
下面是触发 GitHub 工作流程的 Python 代码示例。
您可以通过gh workflow list
获取工作流 ID,请参阅: https ://stackoverflow.com/a/71972073/1661491
github_token
是经典的个人令牌,参见: https ://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
workflow_ref
是分支或标签。
import requests
import json
parameter_dict = ...
github_token = ...
workflow_ref = ...
workflow_id = ...
org = ...
repo_name = ..
inputs_str = json.dumps(parameter_dict)
response = requests.post(
f"https://api.github.com/repos/{org}/{repo_name}/actions/workflows/{workflow_id}/dispatches",
headers={"Authorization": f"Bearer {github_token}"},
data=f'{{"ref": "{workflow_ref}", "inputs": {inputs_str}}}'
)
if response.status_code >= 400:
raise ValueError(f"Failed to trigger workflow: {response.status_code} {response.text}")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.