查询 jira 数据 rest api jql

query on jira data rest api jql

我需要在 jira 中按优先级每月报告工单数量。我知道我可以在 jira 门户网站中使用 filters/advanced 搜索来做到这一点。但它给了我所有的门票细节,而不是我想要的。我正在尝试对此进行报道。那么最好的方法是什么?我尝试使用 curl 和 jira rest api 使用 jql,但这给了我一个包含所有详细信息的 json 文件。我只需要按优先顺序排列的票数。 jql 可以做到这一点还是我必须将该 json 文件加载到某个应用程序中并解析它?

无法使用 JQL 或 REST API 专门 select 计数。

但是,限制 return 从 JIRA 获取大型结果集的解决方案是使用 POST /rest/api/2/search API 方法,该方法允许您提供 JQL 查询以及结果集中您想要 return 的字段以及您想要 return.

的结果数

相关的 JIRA 文档在这里:https://docs.atlassian.com/jira/REST/latest/#api/2/search

例如:

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

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

{
  "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. 您需要针对每个优先级提出一个请求,以便检索所有已知优先级的计数

如果不能接受这些限制,那么您可以 select 一个项目的所有问题,并且只 return priority 字段。然后您必须自己解析 JSON 并汇总结果。但是请注意,API 的结果是 分页的 ,因此您不一定会从一个结果中 return 得到所有问题。

来自 JIRA REST API 文档;

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