如何使用python和XML-RPC从Jira获得'Resolution'

时间:2011-08-23 10:03:02

标签: python xml-rpc jira

我正在使用python通过xml-rpc从Jira中获取问题。除了缺少返回字典中的“Resolution”字段外,它运行良好。例如'Fixed'或'WontFix'等。

这就是我从Jira那里得到的问题:

import xmlrpclib

s = xmlrpclib.ServerProxy('http://myjira.com/rpc/xmlrpc')
auth = s.jira1.login('user', 'pass')
issue = s.jira1.getIssue(auth, 'PROJ-28')

print issue.keys()

这是我收到的字段列表:

['status', 'project', 'attachmentNames', 'votes', 'updated', 
 'components', 'reporter', 'customFieldValues', 'created', 
 'fixVersions', 'summary', 'priority', 'assignee', 'key', 
 'affectsVersions', 'type', 'id', 'description']

完整内容为:

{'affectsVersions': [{'archived': 'false',
                      'id': '11314',
                      'name': 'v3.09',
                      'released': 'false',
                      'sequence': '7'}],
 'assignee': 'myuser',
 'attachmentNames': '2011-08-17_attach.tar.gz',
 'components': [],
 'created': '2011-06-14 12:33:54.0',
 'customFieldValues': [{'customfieldId': 'customfield_10040', 'values': ''},
                       {'customfieldId': 'customfield_10010',
                        'values': 'Normal'}],
 'description': "Blah blah...\r\n",
 'fixVersions': [],
 'id': '28322',
 'key': 'PROJ-28',
 'priority': '3',
 'project': 'PROJ',
 'reporter': 'myuser',
 'status': '1',
 'summary': 'blah blah...',
 'type': '1',
 'updated': '2011-08-18 15:41:04.0',
 'votes': '0'}

当我这样做时:

resolutions = s.jira1.getResolutions(auth ) 
pprint.pprint(resolutions)

我明白了:

[{'description': 'A fix for this issue is checked into the tree and tested.',
  'id': '1',
  'name': 'Fixed'},
 {'description': 'The problem described is an issue which will never be fixed.',
  'id': '2',
  'name': "Won't Fix"},
 {'description': 'The problem is a duplicate of an existing issue.',
  'id': '3',
  'name': 'Duplicate'},
 {'description': 'The problem is not completely described.',
  'id': '4',
  'name': 'Incomplete'},
 {'description': 'All attempts at reproducing this issue failed, or not enough information was available to reproduce the issue. Reading the code produces no clues as to why this behavior would occur. If more information appears later, please reopen the issue.',
  'id': '5',
  'name': 'Cannot Reproduce'},
 {'description': 'Code is checked in, and is, er, ready for build.',
  'id': '6',
  'name': 'Ready For Build'},
 {'description': 'Invalid bug', 'id': '7', 'name': 'Invalid'}]

Jira版本是v4.1.1#522,我使用的是Python 2.7。

为什么我没有得到一个名为'resolution'的字段?

谢谢!

1 个答案:

答案 0 :(得分:2)

答案是JiraXmlRpcService.java中的getIssue方法使用RemoteIssue对象调用makeIssueStruct。 RemoteIssue对象包含Resolution字段,但makeIssueStruct仅复制已设置的值。因此,如果未设置Resolution,它将不会出现在Hashtable中。