Bitbucket Cloud下master分支保护及命令行合并PR相关问题咨询
Bitbucket Cloud 使用问题解答
1. 获批Pull Request的CLI合并方案
- 存在可用的CLI工具完成合并操作,官方提供了
bitbucket-cli命令行工具,也可以直接调用Bitbucket Cloud REST API实现合并。 - 合并前升级版本号的标准流程如下:
- 本地拉取已获批PR对应的源分支最新代码
- 执行版本号升级操作,提交变更后推回远端源分支
- 确认源分支的CI校验全部通过后,执行合并命令即可
- 参考操作命令:
- 官方CLI合并命令:
bitbucket pr merge <PR编号> --type merge - curl调用API合并命令:
curl -X POST -u "账号:应用密码" https://api.bitbucket.org/2.0/repositories/<工作空间>/<仓库名>/pullrequests/<PR编号>/merge -H "Content-Type: application/json" -d '{"merge_strategy": "merge_commit"}'
- 官方CLI合并命令:
2. 仅允许特定分支合并到master的配置方案
- 可以实现该限制,在Bitbucket Cloud仓库后台的「分支权限」配置模块中操作:
- 找到master分支对应的保护规则
- 添加合并源分支限制,指定允许合并到master的源分支匹配规则(例如仅允许
release/*、hotfix/*格式的分支) - 保存后不符合规则的源分支将无法创建PR合并到master,或创建后也无法通过合并校验。
3. CI/CD流程中版本号升级的执行方案
- 版本号升级必须放在PR合并到master之前执行,避免合并后提交变更触发循环CI。
- 不同场景的实现方式:
- 手动操作场景:要求所有PR发起合并申请前,必须已经包含版本号升级的提交,可在PR的合并前置检查中添加规则,强制校验版本文件是否有符合要求的变更,否则禁止合并。
- 自动操作场景:对接外部CI工具(如Jenkins等,无需Bitbucket Pipelines),监听PR创建/更新的webhook,自动在PR源分支执行版本号升级,提交时在提交信息中添加
[skip ci]标识避免重复触发CI,升级完成后自动标记PR可合并。 - 控制台合并PR场景:可配置Bitbucket的合并前触发规则,点击合并按钮后先触发外部CI任务完成版本号升级并推回PR源分支,校验通过后再自动执行合并操作,全程无需人工干预升级步骤。
内容的提问来源于stack exchange,提问作者systemdebt
相关产品推荐
相关产品推荐

