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

如何配置Bitbucket Pipelines仅在PR创建时运行、PR更新时不触发

Bitbucket Pipelines 仅PR首次创建触发流水线解决方案

Bitbucket Pipelines 原生的pull-requests触发规则没有直接提供「仅首次创建触发、后续源分支推送不触发」的配置项,你可以通过以下两种可落地的方式实现需求:

方案1:流水线内加逻辑判断(最常用,无额外依赖)

你可以在step脚本中调用Bitbucket REST API查询当前PR的构建历史,判断是否已经有过成功构建记录,没有的话才执行后续业务逻辑,有的话直接退出即可。
示例配置参考:

pipelines:
  pull-requests:
    "**":
      - step:
          script:
            # 调用API查询当前PR的已完成成功构建记录,需要提前在仓库变量中配置拥有API权限的BITBUCKET_TOKEN
            - BUILD_COUNT=$(curl -s -u ":$BITBUCKET_TOKEN" "https://api.bitbucket.org/2.0/repositories/$BITBUCKET_REPO_FULL_NAME/pipelines/?pagelen=100&q=target.selector.type=%22pull_request%22+and+target.selector.value=%22$BITBUCKET_PR_ID%22+and+state.result=%22SUCCESSFUL%22" | jq '.size')
            # 如果已有成功构建,直接跳过执行
            - if [ $BUILD_COUNT -gt 0 ]; then echo "PR已存在成功构建记录,跳过执行" && exit 0; fi
            # 下方编写你原本要执行的业务逻辑
            - echo "First step"

注意:你需要提前在仓库的「Repository settings -> Repository variables」中配置拥有仓库读取权限的BITBUCKET_TOKEN,同时确保step使用的镜像中预装了curl和jq工具。

方案2:改用自定义触发结合Webhook

如果你不想每次PR分支推送都启动空跑的step,可以关闭原生的pull-requests触发规则,自行配置Bitbucket Webhook,仅监听「Pull Request Created」事件,收到事件后调用Bitbucket API手动触发对应分支的流水线即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:45:04