如何实现JIRA工单流转至指定阶段时自动更新Bitbucket仓库文件?
实现方案:JIRA工单触发Bitbucket文件更新
核心逻辑
通过JIRA自动化规则监听工单状态变更,调用Bitbucket API将指定工单信息追加到目标文件顶部。
步骤1:配置JIRA自动化触发规则
- 进入目标JIRA项目的「自动化」页面,新建规则
- 触发条件选择「工单状态更新」,设置触发状态为
Ready to Deploy - 添加「发送Web请求」操作,用于后续调用Bitbucket API
步骤2:调用Bitbucket API修改文件
Bitbucket提供直接修改仓库文件的API,需分两步操作:
- 获取原有文件内容
调用GET /2.0/repositories/{workspace}/{repo_slug}/src/{branch}/changelog.md,获取当前changelog.md的内容,请求头携带Bitbucket个人访问令牌(PAT)认证。 - 构造新内容并提交更新
调用POST /2.0/repositories/{workspace}/{repo_slug}/src,请求体包含以下关键参数:branch:指定要修改的分支(如main)message:提交信息,示例:chore: add JIRA ticket to changelog - {issue.key}files:数组格式,指定目标文件路径:[{"path": "changelog.md", "content": "{新内容}"}]content:用JIRA智能值拼接新内容,示例:{issue.key}: {issue.summary} {issue.description} {{原有changelog内容}}
步骤3:权限与认证配置
- 在Bitbucket生成个人访问令牌(PAT),勾选「仓库读写」权限
- 在JIRA自动化的Web请求头中添加
Authorization: Bearer {你的PAT}
基础实现的注意点
- 暂不处理工单回退场景,确保状态流转到目标阶段时仅触发一次更新
- 若多工单同时触发可能出现提交冲突,基础实现可添加简单的重试逻辑
- 工单描述含特殊格式时,需做基础转义避免破坏changelog的Markdown结构
内容的提问来源于stack exchange,提问作者fractal5
相关产品推荐
相关产品推荐

