如何使用Python通过其REST API(版本 2)将JIRA 问题标记为已解决或已关闭?
我在http://docs.atlassian.com/jira/REST/latest/#id199544找到了文档,但我遇到了各种错误,包括:
- HTTP 错误 415:不支持的媒体类型
- HTTP 错误 400
如何使用Python通过其REST API(版本 2)将JIRA 问题标记为已解决或已关闭?
我在http://docs.atlassian.com/jira/REST/latest/#id199544找到了文档,但我遇到了各种错误,包括:
在搜索了很长时间后,我找到了解决方案,我将其发布在这里,供任何有兴趣制作 Git/Gerrit 钩子来做像我这样的事情的人使用:
首先http://example.com/rest/api/2/issue/<ISSUE>/transitions?expand=transitions.fields
在浏览器中打开您的网站和问题编号以查找转换 ID。
假设它是 1000:
import urllib
import urllib2
import base64
import json
key = 'JIRA-123'
comment = "It's done!"
username = 'username'
password = 'password'
# See http://docs.atlassian.com/jira/REST/latest/#id199544
url = 'http://example.com/rest/api/2/issue/%s/transitions' % key
auth = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
data = json.dumps({
'transition': {
'id': 1000 # Resolved (for my setup)
},
'update': {
'comment': [
{
'add': {
'body': comment
}
}
]
},
})
request = urllib2.Request(url, data, {
'Authorization': 'Basic %s' % auth,
'Content-Type': 'application/json',
})
print urllib2.urlopen(request).read()
如果您不想添加评论,可以完全省略评论部分。