获取所有 JIRA 问题的列表(python)

Luc*_*f3r 5 python jira jira-rest-api

我正在尝试获取所有 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)
Run Code Online (Sandbox Code Playgroud)

上面的代码返回所需的字段(但一次只有一个问题),但是,我需要能够将所有问题键的列表传递到:

issue = jira.issue('ISSUE_KEY')
Run Code Online (Sandbox Code Playgroud)

这个想法是编写一个 for 循环来遍历这个列表并打印指定的字段。

我无法填充此列表。

有人可以指出我正确的方向吗?

Iva*_*hin 9

def get_all_issues(jira_client, project_name, fields):
    issues = []
    i = 0
    chunk_size = 100
    while True:
        chunk = jira_client.search_issues(f'project = {project_name}', startAt=i, maxResults=chunk_size, fields=fields)
        i += chunk_size
        issues += chunk.iterable
        if i >= chunk.total:
            break
    return issues
issues = get_all_issues(jira, 'JIR', ["id", "fixVersion"])
Run Code Online (Sandbox Code Playgroud)


Man*_*and 6

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
       
Run Code Online (Sandbox Code Playgroud)

jira.search_issues() 的前 3 个参数是 jql 查询、起始索引(基于 0,因此需要在第 6 行进行乘法)和最大结果数。

  • 虽然此代码片段可能会解决问题,但 [包括解释](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而那些人可能不知道您提出代码建议的原因。 (2认同)

Rob*_*sso 3

您可以执行搜索而不是单个问题获取。

假设您的项目密钥是PRO-KEY,要执行搜索,您必须使用以下查询:

https://MY_JIRA.atlassian.net/rest/api/2/search?jql=project=PRO-KEY
Run Code Online (Sandbox Code Playgroud)

这将返回 的前 50 期PRO-KEY以及该字段中maxResults存在的总期数中的一部分。

除了数字之外,您还可以执行其他搜索,将其添加到上一个查询中:

&startAt=50

使用这个新参数,您将能够获取从 51 到 100 的问题(如果您将第一个问题视为 0,则可以从 50 到 99)。

下一个查询将&startAt=100依此类推,直到您获取 中的所有问题PRO-KEY

如果您希望获取超过 50 个问题,请添加到查询中:

&maxResults=200