如果我按照以下方式发布问题转换:
{
"fields" : {
"resolution" : {
"name" : "Fixed"
}
}
}
...我收到此错误:
{
"errorMessages" : ["Missing 'transition' identifier"],
"errors" : {}
}
这似乎暗示我需要包含转换ID以及我更改的字段列表。 https://stackoverflow.com/a/14642966/565869似乎也这么说。细
但是,转换ID似乎是全局的。仅查找此问题的最高转换ID并增加它是不够的;这样的ID可能在别处使用。不惜一切代价,我可以获得系统中任何地方使用的最高交易ID;目前这可能是68,000。但是,如果我当时使用事务ID 68,001,那么GUI用户很可能会尝试自己的转换并在可能之前使用此ID。
我可以使用1,000,001及以上范围内的事务ID,但如果JIRA Web GUI在生成新ID时使用了之前使用的最高事务ID,那么我将在此范围内而不是68,000范围内发生冲突。我可以使用69,000,并相信在获得最高交易ID所需的时间内不会有一千次转换。
然而,这些看起来都非常笨拙。是否无法发布转换并让JIRA生成自己的唯一ID?我不需要检索生成的ID,我只想更新问题的状态和解决方案。答案 0 :(得分:6)
要转换JIRA问题,您可以使用转换ID来确定要应用于该问题的转换。您没有为事务指定ID或转换ID以识别转换发生,JIRA会为您处理此事。
理解它的最简单方法是看它。
首先,您可以通过对API调用执行GET来查看问题可用的转换:
/rest/api/2/issue/${issueIdOrKey}/transitions
示例:
/rest/api/2/issue/ABC-123/transitions
将显示如下内容:
{
"expand": "transitions",
"transitions": [
{
"id": "161",
"name": "Resolve",
"to": {
"description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.",
"iconUrl": "https://localhost:8080/images/icons/statuses/resolved.png",
"id": "5",
"name": "Resolved",
"self": "https://localhost:8080/rest/api/2/status/5"
}
}
]
}
因此,您只能看到问题ABC-123
只有1次转化,且ID为161
。
如果您通过GUI浏览到该JIRA问题,您将看到只有1个可用的转换,它将与API调用匹配。事实上,如果您检查了该元素,您应该看到它具有a
标记并且href
类似action=161
所以,如果您想转换此问题,则需要对以下网址进行POST:
/rest/api/2/issue/ABC-123/transitions
使用这样的JSON:
{
"update": {
"comment": [
{
"add": {
"body": "Bug has been fixed."
}
}
]
},
"fields": {
"assignee": {
"name": "bob"
},
"resolution": {
"name": "Fixed"
}
},
"transition": {
"id": "161"
}
}
使用从显示所有转换的调用中找到的转换ID。我还会更新决议和受让人并同时添加评论。
这更有意义吗?