作者:show窝_515 | 来源:互联网 | 2023-08-17 15:39
JIRA是一个非常不错的开发团队管理工具。可以与gitlab进行无缝集成。
如何通过gitlab中git的提交信息触发JIRA中的issue状态更新,网上一搜就会有很多的教程。
这里我想再增加两个点:
1.Transition ID必须是你对应的工作流中的转换ID,在项目的工作流配置中进行查看,具体如图中红框所勾选出来的:
也可以通过如下网址进行获取:
https://**JIRA网址**/rest/api/2/issue/**issue ID**/transitions
上述请求将得到当前的issue ID对应的工作流的下个环节的transition ID的列表,得到的返回报文如下,其中的transitions[0/1/2].id就是你将填入gitlab配置中的transitionID,例如我希望在我每次提交的时候,可以关闭当前关联的issue,那么我需要填入gitlab中的就是'181'这个id,对应的下个状态就是“已修复”:
{
"expand": "transitions",
"transitions": [
{
"id": "131",
"name": "方案如此",
"to": {
"self": "https://jira.citicgz.com/rest/api/2/status/10103",
"description": "设计方案、业务需求就是这样设计,不属于缺陷",
"iconUrl": "https://jira.citicgz.com/images/icons/statuses/generic.png",
"name": "方案如此",
"id": "10103",
"statusCategory": {
"self": "https://jira.citicgz.com/rest/api/2/statuscategory/4",
"id": 4,
"key": "indeterminate",
"colorName": "yellow",
"name": "处理中"
}
}
},
{
"id": "161",
"name": "修复中",
"to": {
"self": "https://jira.citicgz.com/rest/api/2/status/3",
"description": "开发人员正在进行缺陷修复工作",
"iconUrl": "https://jira.citicgz.com/images/icons/statuses/inprogress.png",
"name": "修复中",
"id": "3",
"statusCategory": {
"self": "https://jira.citicgz.com/rest/api/2/statuscategory/4",
"id": 4,
"key": "indeterminate",
"colorName": "yellow",
"name": "处理中"
}
}
},
{
"id": "181",
"name": "修复缺陷",
"to": {
"self": "https://jira.citicgz.com/rest/api/2/status/5",
"description": "开发已修复缺陷,等待测试人员回归测试",
"iconUrl": "https://jira.citicgz.com/images/icons/statuses/resolved.png",
"name": "已修复",
"id": "5",
"statusCategory": {
"self": "https://jira.citicgz.com/rest/api/2/statuscategory/4",
"id": 4,
"key": "indeterminate",
"colorName": "yellow",
"name": "处理中"
}
}
}
]
}
gitlab中支持填入多个jira的transition ID,中间通过','或者';'进行分割。
2.想要通过gitlab的提交触发jira的状态转换,必须要设置好gitlab上的默认分支。只有默认分支上的commit信息才能触发jira上的issue的状态变更。否则,非默认分支上的修改,只会触发jira的comment信息的更新。
具体的配置请搜索gitlab默认分支修改。如果你发现,gitlab上git的commit提交信息无法触发jira的transition状态变化,那一般是因为你不是在默认分支上提交。
一般默认分支应该是master分支。