如何基于Jira Issue创建分支时在Bitbucket自动创建多个分支
实现方案
两种落地路径,优先选Jira自动化规则的方案,不需要额外写服务、改仓库流水线配置,维护成本最低。
方案一:Jira Automation 配置(推荐)
前置准备
- 确认Jira项目和目标Bitbucket仓库已经完成官方应用关联,Jira页面可正常读取仓库分支、提交数据
- 生成一个Bitbucket项目访问令牌,仅授予分支读写权限,用于接口调用鉴权
- 提前配置触发拦截规则,避免循环触发:所有带
-FE、-BE后缀的分支,都不进入自动建分支的判断逻辑
配置步骤
- 进入对应Jira项目的设置页,打开「自动化规则」模块新建规则,触发器选择「分支创建」,触发范围绑定关联的Bitbucket目标仓库
- 添加条件判断节点:
- 校验触发事件对应的分支名,必须匹配正则
^feature/SA\d+$,过滤掉已经带后缀的子分支、其他命名规则的分支 - 校验分支名中提取的SA编号,和触发事件关联的Jira Issue编号完全一致,避免分支错绑
- 校验触发事件对应的分支名,必须匹配正则
- 添加10秒延迟节点,等Bitbucket侧完成新分支的同步落库,避免后续调用接口时找不到源分支报错
- 添加第一个HTTP请求动作,调用Bitbucket创建分支接口,基于当前触发的
feature/SAx分支创建feature/SAx-FE分支,分支名直接用变量拼接即可,鉴权信息填入提前准备的访问令牌 - 添加第二个HTTP请求动作,逻辑和上一步一致,创建
feature/SAx-BE分支 - 最后加异常兜底逻辑:如果对应FE/BE分支已经存在,直接跳过创建流程不抛错,可选择给触发分支创建的开发人员发Jira站内通知,告知子分支已创建完成
方案二:Bitbucket Pipeline 实现
如果不想依赖Jira侧的自动化配置,可以直接在仓库里写流水线逻辑实现,不需要额外申请鉴权凭证,用Bitbucket Pipeline内置的CI_TOKEN即可。
- 在仓库根目录新建/修改
bitbucket-pipelines.yml配置文件,配置分支创建触发的流水线,仅对匹配feature/SA*规则、且不包含-FE/-BE后缀的分支生效 - 流水线核心逻辑参考如下:
pipelines: branches: 'feature/SA*': - step: name: Auto create FE/BE sub branches clones: depth: full script: - git fetch origin - FE_BRANCH="${BITBUCKET_BRANCH}-FE" - BE_BRANCH="${BITBUCKET_BRANCH}-BE" # 检查分支是否存在,存在则跳过 - if git ls-remote --exit-code --heads origin "$FE_BRANCH"; then echo "FE branch already exists, skip creation"; else git checkout -b "$FE_BRANCH" && git push origin "$FE_BRANCH"; fi - if git ls-remote --exit-code --heads origin "$BE_BRANCH"; then echo "BE branch already exists, skip creation"; else git checkout -b "$BE_BRANCH" && git push origin "$BE_BRANCH"; fi
- 配置完成后记得给流水线开放仓库写权限,否则push分支的步骤会鉴权失败
核心注意项:无论选哪种方案,必须做好触发范围的过滤,绝对不能让-FE、-BE后缀的分支再次触发创建逻辑,否则会出现无限递归,创建出
feature/SAx-FE-FE这类无效分支。
内容的提问来源于stack exchange,提问作者Aileron
相关产品推荐
相关产品推荐

