[英]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.