通过Python REST API执行JIRA转换

时间:2012-09-19 16:39:22

标签: python rest post jira

如何使用 REST API (版本2)将 JIRA问题标记为已解决已关闭的Python

我在http://docs.atlassian.com/jira/REST/latest/#id199544找到了文档,但我遇到了各种错误,包括:

  • HTTP错误415:不支持的媒体类型
  • HTTP错误400

1 个答案:

答案 0 :(得分:5)

经过长时间的搜索,我找到了解决方案,我在这里发帖给其他任何有兴趣让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()

如果您不想添加评论,则可以完全省略评论部分。