You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Curl在Postman正常但Git Action触发Workflow Dispatch报Bad Request

解决方案

问题排查与修复步骤

1. 校验Token权限与存储方式

  • 确保用于授权的Personal Access Token(PAT)拥有workflow权限(私有仓库需额外添加repo权限),且未过期、未被撤销。
  • 禁止在代码中硬编码Token,改用GitHub仓库密钥存储:在仓库A的「Settings → Secrets and variables → Actions」中添加密钥(如TRIGGER_WORKFLOW_TOKEN),然后在curl命令中替换为${{ secrets.TRIGGER_WORKFLOW_TOKEN }},示例:
    -H "Authorization: token ${{ secrets.TRIGGER_WORKFLOW_TOKEN }}"
    

2. 修正curl命令格式问题

  • 检查命令中的特殊字符:你的yaml里curl行末尾的反斜杠\、Token字段、JSON参数中可能存在全角空格,bash会将其识别为无效字符,导致请求格式错误。重新手动输入命令,确保所有符号为半角,示例:
    curl https://api.github.com/repos/project/admin/actions/workflows/56876875/dispatches \
      -H "Accept: application/vnd.github.v3+json" \
      -H "Content-Type: application/json" \
      -H "Authorization: token ${{ secrets.TRIGGER_WORKFLOW_TOKEN }}" \
      -d '{"ref": "sharon_trunk_cicd", "inputs": {}}'
    

3. 验证分支与工作流配置

  • 确认仓库B中存在sharon_trunk_cicd分支,分支名称大小写敏感,无拼写错误;若为保护分支,需确保Token拥有该分支的操作权限。
  • 检查仓库B的目标工作流是否已启用workflow_dispatch触发器,配置示例:
    on:
      workflow_dispatch:
        inputs: {} # 需与请求中的inputs结构匹配
    

4. 核对工作流ID有效性

  • 通过访问https://api.github.com/repos/project/admin/actions/workflows接口,获取仓库B的所有工作流ID,确认56876875与目标工作流ID完全匹配。

5. 添加调试信息定位问题

  • 在curl命令中加入-v参数,查看详细请求与响应日志,精准定位错误原因:
    curl -v https://api.github.com/repos/project/admin/actions/workflows/56876875/dispatches \
      -H "Accept: application/vnd.github.v3+json" \
      -H "Content-Type: application/json" \
      -H "Authorization: token ${{ secrets.TRIGGER_WORKFLOW_TOKEN }}" \
      -d '{"ref": "sharon_trunk_cicd", "inputs": {}}'
    

内容的提问来源于stack exchange,提问作者Sharon Manisha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:05:14