使用python脚本批量修改JIRA状态
由于JIRA官方提供的rest API接口中没有直接修改status的方法,所以需要使用transition来修改状态。
首先查看一下jira上可以被编辑的状态有哪些:
URL/jira/rest/api/2/issue/editmeta
创建一个json格式的文本,用于存储需要修改的jira状态:
payload = {
"update": {
"comment": [
{
"add": {
"body": "Comment added when resolving issue via REST call"
}
}
]
},
"transition": {
"id": "6",
},
"fields": {
"resolution": {
"name": "Done"
}
}
}
转换json格式,使用python中的requests post方法发送请求:
data = json.dumps(payload)
headers = {'Content-Type': 'application/json'}
r = requests.post(jiraURL, data=data, headers=headers, auth=(username, password))
注意,如果jira服务器开启了防火墙的话,会返回500错误,可以看到服务器实际上是接收到了请求的,不过被防火墙阻止了:
{"errorMessages":["Internal server error"],"errors":{}}
使用requests请求是没有问题的,不会被防火墙阻止:
r = requests.get(test_url, headers=headers, auth=(username, password))
保存一个jira REST API官方链接:
https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/
atlassian上关于JIRA status的解决方案: