使用python请求会话我可以连接到JIRA并检索问题信息......
session = requests.Session()
headers = {"Authorization": "Basic %s" % bas64_val}
session.post(jira_rest_url, headers=headers)
jira = session.get(jira_srch_issue_url + select_fields)
# select_fields = the fields I want from the issue
现在我正在尝试通过JIRA API发布有效负载,使用固定的问题网址,例如“https://my_jira_server.com:1234/rest/api/latest/issue/KEY-9876”
payload = { "update": {
"fixVersions": [ {"set": "release-2.139.0"} ]
}}
posted = session.post(jira_task_url, data=payload)
# returns <Response [405]>
# jira_task_url = https://my_jira_server.com:1234/rest/api/latest/issue/KEY-9876
但这似乎不起作用!查看 http 405 响应,表明我的有效负载格式不正确!值得注意的是,诊断并不是最容易的事情。
我在这里做错了什么?对此有任何帮助将非常感激。
请注意,我不希望使用python jira模块,我使用requests.session来管理不同系统的多个会话,即JIRA,TeamCity等。
答案 0 :(得分:0)
找到解决方案!我有两个问题:
1 )实际的语法结构应该是:
fix_version = { "update": { "fixVersions": [ {"set" : [{ "name" : "release-2.139.0" }]}]
2 )为确保有效负载实际呈现为JSON,请使用json.dumps()获取对象并生成字符串(请参阅here)并设置'content-type 'to'application / json':
payload = json.dumps(fix_version)
app_json = { 'content-type': 'application/json' }
session.put(https://.../rest/api/latest/issue/KEY-9876, headers=app_json, data=payload)
而不是尝试手动定义JSON!