Jira搜索状态为Done或Closed的项目中的所有问题

时间:2016-06-12 08:48:14

标签: python jira jql python-jira

我正在尝试列出状态为Done or Closed的项目中的所有项目。当我使用高级搜索运行JQL查询时,我得到:项目中的3096个问题。但是当我用python运行它时,我会遇到5​​0个问题。

#/usr/bin/python
import jira.client
from jira.client import JIRA

options = {'server': 'http://jira.confluence.no' }
jira = JIRA(options, batch_auth=('admin', 'admin'))
project = jira.projects()

for project in projects:
   issues = jira.search_issues('project=JA')

for issue in issues:
    if str(issue.fields.status) == 'Done' or str(issue.fields.status) == 'Closed':
        print issue 

即使状态DoneClosed存在超过3000个带有JQL查询的问题,我也只会遇到50个问题。

可能有限制吗?

4 个答案:

答案 0 :(得分:6)

来自https://pythonhosted.org/jira/的文档:

search_issues(jql_str, startAt=0, maxResults=50, validate_query=True,
              fields=None, expand=None, json_result=None)

注意maxResults参数。我想你需要指定maxResults=False。或者,在如下循环中执行:

    got = 50
    total = 0
    while got==50:
        issues = jira.search_issues('project=JA', startAt = total)
        ....
        got = len(issues)
        total += got

答案 1 :(得分:3)

马丁·邦纳的答案还可以,但我只想发布一个答案,以增加更多的说明。

search_issues 方法使用JIRA REST API来运行JQL查询,因此您还可以查看JIRA REST API documentation以了解startAt和maxResults参数:

enter image description here

在本文档中,我假设 maxResults 仅接受 int 作为值。

答案 2 :(得分:0)

尝试一下:

projects = jira.projects()
for project in projects:
    issues = jira.search_issues('project=XXXX', maxResults=None)

答案 3 :(得分:-2)

使用 maxResults 参数,在您的情况下,maxResults = 3000应该可以使用