GitHub Action workflow_dispatch配置及API触发请求报错解决方法
你混淆了workflow_dispatch和repository_dispatch两个事件的API请求规范,当前用的event_type、client_payload是repository_dispatch的专用参数,workflow_dispatch接口不识别这两个字段,同时你漏了workflow_dispatch要求的必填顶层参数ref。
workflow_dispatch 触发规则配置说明
你现有的Workflow配置本身符合基础要求,以下是完整规范参考:
name: Run Workflow Dispatch on: workflow_dispatch: # 定义触发时可传入的输入参数,可自定义多个 inputs: version: description: '版本号' required: true # 标记是否必填 default: 'latest' # 非必填项可设置默认值 jobs: build: runs-on: ubuntu-latest steps: - name: 拉取代码 uses: actions/checkout@v4 # 建议升级到最新稳定版v4 # 传入的参数通过 github.event.inputs.参数名 调用 - run: | echo "version: ${{ github.event.inputs.version }}"
合法的触发请求构造
workflow_dispatch的触发接口仅接受两个顶层参数:
ref:必填,指定要触发工作流的分支/标签名称,比如main、v1.0.0inputs:可选,对应Workflow中定义的输入参数,键名要和Workflow中定义的完全一致
正确的curl请求示例如下:
curl -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer 你的GitHub个人访问令牌" \ https://api.github.com/repos/你的用户名/你的仓库名/actions/workflows/workflow_dispatch.yml/dispatches \ --data '{"ref": "main", "inputs": {"version": "v1.2.3"}}'
如果要使用version参数的默认值,inputs字段可以省略:
curl -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer 你的GitHub个人访问令牌" \ https://api.github.com/repos/你的用户名/你的仓库名/actions/workflows/workflow_dispatch.yml/dispatches \ --data '{"ref": "main"}'
注意:你的GitHub个人访问令牌需要有repo scope权限才能触发工作流。
内容的提问来源于stack exchange,提问作者Anton Patsev
相关产品推荐
相关产品推荐

