我正在尝试获取所有JIRA问题的列表,以便我可以通过以下方式迭代它们:
from jira import JIRA
jira = JIRA(basic_auth=('username', 'password'), options={'server':'https://MY_JIRA.atlassian.net'})
issue = jira.issue('ISSUE_KEY')
print(issue.fields.project.key)
print(issue.fields.issuetype.name)
print(issue.fields.reporter.displayName)
print(issue.fields.summary)
print(issue.fields.comment.comments)
上面的代码返回所需的字段(但一次只发出一个问题),但是,我需要能够将所有问题密钥的列表传递到:
issue = jira.issue('ISSUE_KEY')
我们的想法是编写一个for循环,它将遍历此列表并打印指示的字段。
我无法填写此列表。
有人能指出我正确的方向吗?谢谢。
您可以执行搜索而不是单个问题获取。
假设您的项目密钥是PRO-KEY
,要执行搜索,您必须使用此查询:
https://MY_JIRA.atlassian.net/rest/api/2/search?jql=project=PRO-KEY
这将返回PRO-KEY
的前50个问题以及maxResults
字段中出现的问题总数。
取数字,您可以执行其他搜索添加到上一个查询:
&startAt=50
使用此新参数,您将能够将问题从51提取到100(如果您认为第一个问题为0,则为50到99)。
下一个查询将是&startAt=100
等等,直到您获取PRO-KEY
中的所有问题。
如果您希望获取超过50个问题,请添加到查询中:
&maxResults=200
您可以使用jira.search_issues()方法传入JQL查询。它将返回与JQL匹配的问题列表:
issues_in_proj = jira.search_issues('project=PROJ')
这将为您提供可以迭代的问题列表
options = {'server': 'YOUR SERVER NAME'}
jira = JIRA(options, basic_auth=('YOUR EMAIL', 'YOUR PASSWORD'))
size = 100
initial = 0
while True:
start= initial*size
issues = jira.search_issues('project=<NAME OR ID>', start,size)
if len(issues) == 0:
break
initial += 1
for issue in issues:
print 'ticket-no=',issue
print 'IssueType=',issue.fields.issuetype.name
print 'Status=',issue.fields.status.name
print 'Summary=',issue.fields.summary