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

使用curl POST请求触发GitLab Pipeline时遭遇404 Not Found错误

解决GitLab Pipeline触发curl请求返回404的问题

核心问题:混淆了个人访问令牌与项目触发令牌

你当前使用的是个人访问令牌调用触发Pipeline的端点,但该端点要求使用项目专属的触发令牌,而非个人访问令牌。个人访问令牌适用于常规GitLab API调用(比如你测试的/pipelines/latest),但触发Pipeline的端点有专门的认证机制。

解决步骤

1. 获取项目触发令牌

在GitLab项目中:

  • 进入「设置」→「CI/CD」
  • 展开「触发器」选项
  • 点击「添加触发器」,生成专属的触发令牌(保存好这个令牌,仅显示一次)

2. 使用正确的curl请求格式

用刚生成的项目触发令牌替换原请求中的个人访问令牌,以下两种格式均有效:

表单提交方式

curl -X POST --form token="项目触发令牌" --form ref="main" "https://[GitLab实例地址]/api/v4/projects/37/trigger/pipeline"

URL参数方式

curl -X POST "https://[GitLab实例地址]/api/v4/projects/37/trigger/pipeline?token=项目触发令牌&ref=main"

3. 额外排查点

  • 确认项目ID正确性:若项目ID无误仍报错,可尝试用项目路径编码替代ID(比如my-group%2Fmy-project),替换URL中的37部分
  • 检查实例地址:确保GitLab实例URL无拼写错误,比如是否包含www、指定端口(如果有)
  • 权限验证:生成触发令牌时,默认已具备触发Pipeline的权限,无需额外配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 07:15:57