手动调用GitHub Actions工作流程并传递参数

时间:2020-07-05 02:48:02

标签: github github-actions

我想传递一些动态参数,并手动调用GitHub Actions工作流程(最好是通过某些API)。这可能吗?

3 个答案:

答案 0 :(得分:2)

使用workflow_dispatch event trigger,您可以轻松进行手动触发。

流量:

.addtoken <token>

手动触发屏幕截图: screenshot

博客文章公告参考,https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/

答案 1 :(得分:2)

要通过 API 触发 workflow_dispatch,可以在 https://docs.github.com/en/free-pro-team@latest/rest/reference/actions#create-a-workflow-dispatch-event

找到文档

POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches

其中 {workflow_id} 也可以是工作流的文件名(这让事情变得容易多了)。

文档中的示例 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":"ref"}'

答案 2 :(得分:1)

我认为正确的答案是使用repository_dispatch而不是workflow_dispatch

仅存储库分派允许您从API调用触发工作流。

Docs

Hand Holding example

摘要:

  • URL端点:
https://api.github.com/repos/{owner}/{repo}/dispatches
  • 示例cURL调用:
curl -X POST -H "Accept: application/vnd.github.v3+json" -H "authorization: Bearer <token>" https://api.github.com/repos/{owner}/{repo}/dispatches -d '{"event_type": "type1","client_payload": {"key1": "Hello from CRUD"}}'