400尝试POST到JIRA问题时出错

时间:2015-10-22 16:28:58

标签: python json api jira

我正在尝试设置过渡' JIRA问题中的属性,无论它是什么,到完成(根据文档是10000)。根据文档,如果没有指定转换,则此错误为“'

我还使用了?expand = transitions.fields来验证10000是否完整。

使用这些文档 https://docs.atlassian.com/jira/REST/latest/#api/2/issue-doTransition https://jira.atlassian.com/plugins/servlet/restbrowser#/resource/api-2-issue-issueidorkey-transitions/POST

这是我的要求

url = 'http://MYURL/rest/api/2/issue/ISSUE-ID/transitions'
payload1 = open('data3.json', 'r').read()
payload = json.loads(payload1)
textFile = requests.post(url, auth=('username', 'password'), json=payload)

我的data3.json文件上的内容是

{
"transition": 10000
}

编辑:我还将我的JSON更改为此,我收到500错误

{
"transition": {
    "id": "10000"
   }
}

我得到的错误

{"errorMessages":["Can not instantiate value of type [simple type,classcom.atlassian.jira.rest.v2.issue.TransitionBean] from JSON integral number;no single-int-arg constructor/factory method (through reference chain:com.atlassian.jira.rest.v2.issue.IssueUpdateBean[\"transition\"])"]}400

我非常有信心我的问题出在我的json文件中,因为我已多次在此snippit上面的代码中使用GET,但我可能错了。

可能的原因 - https://jira.atlassian.com/browse/JRA-32132

2 个答案:

答案 0 :(得分:0)

我认为我遇到的问题是流程问题。我无法从我的问题被打开,直到“完成”。但是,我可以从创建的问题转到'完成'。

{
"transition": {
    "name": "Done",
    "id": "151"
    }
}

由于这是我需要的,我会使用它。如果我发现如何完成票证,我会回复。

另外,我认为我们自定义JIRA的事实导致我将'已完成'作为有效转换,即使它不是。

答案 1 :(得分:-1)

是的,你说JSON是错的,它甚至都不是有效的json,因为这个值不是数字,字符串,对象或数组。医生说:

  

可以在字段中的transtion上设置的字段   参数或更新参数可以使用   /rest/api/2/issue/{issueIdOrKey}/transitions?expand=transitions.fields   资源。

因此,您需要在/rest/api/2/issue/{issueIdOrKey}/transitions?expand=transitions.fields上执行get请求以获取可能值的列表,然后在json中设置

{
 "transition": {
     "id" : "an_id_from_response"
 }
}