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

Bitbucket Cloud Curl触发自定义流水线报错:yml不存在但实际存在

修正Bitbucket自定义流水线触发的Curl请求

问题根源分析

你的请求Payload存在两个关键问题,导致API返回错误:

  1. 无效的WAIT顶级字段:Bitbucket Pipelines API的请求体中没有WAIT这个参数,该字段会破坏JSON格式合法性,导致API无法正确解析请求,进而误报找不到流水线配置文件。
  2. 自定义流水线选择器匹配问题:如果请求中selector.pattern的值与bitbucket-pipelines.yml里自定义流水线的name不完全一致(包括大小写、空格、标点),API会无法定位到对应的流水线配置,同样会触发"yml not found"的错误。

修正后的Curl命令

curl -X POST -is -u "$BITBUCKET_USERNAME":"$BITBUCKET_APP_PASSWORD" \
--header 'Content-Type: application/json' \
https://api.bitbucket.org/2.0/repositories/<workspace>/<repository>/pipelines/ \
--data '
  {
    "target": {
      "ref_type": "branch",
      "type": "pipeline_ref_target",
      "ref_name": "develop",
      "selector": {
        "type": "custom",
        "pattern": "Deploy to environment"
      }
    },
    "variables": [
      {
        "key": "NAMESPACE",
        "value": "xxx"
      },
      {
        "key": "URL",
        "value": "https://api.xx.xxx.net/"
      },
      {
        "key": "KID",
        "value": "xxxxx"
      }
    ]
  }'

关键验证步骤

  • 移除WAIT字段:该字段不属于Bitbucket Pipelines API的请求参数规范,必须删除。
  • 核对流水线名称:打开仓库的bitbucket-pipelines.yml,找到自定义流水线的name字段,确保和请求中selector.pattern的值完全一致。例如,如果yml中是:
    pipelines:
      custom:
        Deploy to Environment:
          - step:
              script:
                - echo "Deploying"
    
    那么请求中的pattern必须改为"Deploy to Environment"。
  • 确认分支配置:确保develop分支的根目录下确实存在bitbucket-pipelines.yml,且该文件包含你要触发的自定义流水线配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 18:47:06