如何获得JIRA项目的总问题?

时间:2014-03-11 18:08:20

标签: jira jira-rest-api

由于JIRA API只允许发出最多1000个问题的搜索请求,因此我需要知道是否有办法让问题的总数达到项目,这样我就可以遍历所有数千个问题。 / p>

IRestResponse responseIssues = client.Execute(new RestRequest("search?jql=project=" + "\"DATPROJECT\"" + "&maxResults=5000&fields=assignee,summary,timetracking,resolutiondate,resolution,worklog", Method.GET));

我目前正在做上面的代码,但我只得到1000个结果,而不是我需要的5000个。我知道我可以使用过滤器" startAt"迭代所有结果,但我不知道存在多少问题。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

搜索休止点返回给定JQL搜索的总问题数。来自documentation

的示例结果
{
"expand": "names,schema",
"startAt": 0,
"maxResults": 50,
"total": 1,
"issues": [
    {
        "expand": "",
        "id": "10001",
        "self": "http://www.example.com/jira/rest/api/2/issue/10001",
        "key": "HSP-1"
    }
]

}

"total":1值是您正在寻找的值。

答案 1 :(得分:1)

嘿,休息Api我找不到任何可以解决所有问题的休息。但如果你想要所有问题,你可以从java方面获得它。如果您需要总问题数

long getIssueCountForProject (Long projectId)

如果您想要所有问题并希望迭代它,请使用

Collection<Long> getIssueIdsForProject (Long projectId)

请参阅atlassian documentation了解所有这些方法。

谢谢。

答案 2 :(得分:0)

您可以使用maxResults = 0来仅获取省略实际结果的描述性数据。

例如,如果我们想知道当前登录用户的未解决问题数量:

rest/api/2/search?jql=project=SP+AND+statusCategory!=3+AND+assignee+in+(currentUser())&maxResults=0

结果:

{
  "startAt": "0",
  "maxResults": "0",
  "total": "68",
  "issues": [
  ]
}

这里的“总计”字段正是我们所需要的。