如果我发布这样的问题转换:
{
"fields" : {
"resolution" : {
"name" : "Fixed"
}
}
}
Run Code Online (Sandbox Code Playgroud)
...我收到此错误:
{
"errorMessages" : ["Missing 'transition' identifier"],
"errors" : {}
}
Run Code Online (Sandbox Code Playgroud)
这似乎意味着我需要包含一个转换ID以及我更改的字段列表. /sf/answers/1025007651/似乎也这么说.精细.
但是,转换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,我只想更新问题的状态和解决方案.
你有点混淆了.所以,让我们看看我是否可以更好地为您解释.
要转换JIRA问题,请使用转换ID来确定要应用于该问题的转换.您没有指定事务的ID或转换ID来标识转换发生,JIRA会为您处理此事.
理解它的最简单方法是看它.
首先,您可以通过对API调用执行GET来查看问题可用的转换:
/rest/api/2/issue/${issueIdOrKey}/transitions
Run Code Online (Sandbox Code Playgroud)
例:
/rest/api/2/issue/ABC-123/transitions
Run Code Online (Sandbox Code Playgroud)
这会显示如下:
{
"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"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
因此,您只能看到1个转换可用于发布ABC-123,其ID为161.
如果您通过GUI浏览到该JIRA问题,您将只看到1个可用的转换,它将与API调用匹配.事实上,如果你检查了元素,你应该看到它有一个a标签,并在href类似的东西action=161
所以,如果您想要转换此问题,则需要对以下URL进行POST:
/rest/api/2/issue/ABC-123/transitions
Run Code Online (Sandbox Code Playgroud)
使用这样的JSON:
{
"update": {
"comment": [
{
"add": {
"body": "Bug has been fixed."
}
}
]
},
"fields": {
"assignee": {
"name": "bob"
},
"resolution": {
"name": "Fixed"
}
},
"transition": {
"id": "161"
}
}
Run Code Online (Sandbox Code Playgroud)
它使用从显示所有转换的调用中找到的转换ID.我还更新了决议和受让人,并同时添加了评论.
那更有意义吗?
| 归档时间: |
|
| 查看次数: |
8363 次 |
| 最近记录: |