查询jira数据rest api jql

时间:2015-11-19 12:26:51

标签: jira jira-rest-api

我需要每月根据jira的优先级报告门票数量。我知道我可以通过使用过滤器/高级搜索在jira Web门户中这样做。但它给了我所有的门票细节,而不是我想要的。我正在尝试对此进行报道。那么最好的方法是什么?我尝试使用curl和jira rest api使用jql,但这给了我一个包含所有细节的json文件。我只需优先购买门票数量。 jql可以这样做,还是我必须将json文件加载到某个应用程序并解析它?

1 个答案:

答案 0 :(得分:3)

没有办法使用JQL或REST API专门选择计数。

但是,限制从JIRA返回大型结果集的解决方案是使用POST /rest/api/2/search API方法,该方法允许您提供JQL查询以及要在结果集中返回的字段和要返回的结果数。

在此处发布JIRA文档:https://docs.atlassian.com/jira/REST/latest/#api/2/search

例如:

{
  "jql": "project = PROJECTKEY and priority = \"Must Have\"",
  "maxResults": 1,
  "fields": ["status"]
}

这将返回包含结果数的JSON对象。提供maxResults: 1意味着在问题列表中只返回一个结果。

{
  "expand": "names,schema",
  "startAt": 0,
  "maxResults": 1,
  "total": 354,
  "issues": [
    {...}
   ]
}

然后,您可以使用total属性进行计数。

使用cURL的具体示例:

curl -i -u username:password  -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"jql": "project = PROJECTKEY and priority = \"Must Have\"","fields": ["status"], "maxResults": 1}' https://jira.url/rest/api/2/search

不幸的是,这个解决方案存在局限性;

  1. 您需要提供优先级作为输入(而不是简单地让JIRA汇总结果)
  2. 您需要为每个优先级发出一个请求才能检索所有已知优先级的计数
  3. 如果这些限制不可接受,那么您可以选择项目的所有问题,只返回priority字段。然后,您必须解析JSON并自行汇总结果。但请注意,API的结果是分页,因此您不一定会从单个结果中返回所有问题。

    来自JIRA REST API文档;

    maxResults(int) 要返回的最大问题数(默认为50)。最大允许值由JIRA属性jira.search.views.default.max'决定。如果您指定的值高于此数字,搜索结果将被截断。