无法使用 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
很遗憾,此解决方案存在局限性;
- 您需要提供优先级作为输入(而不是简单地让 JIRA 汇总结果)
- 您需要为每个优先级发出一个请求,以检索所有已知优先级的计数
如果这些限制不可接受,那么您可以选择项目的所有问题并仅返回 priority 字段。然后,您必须自己解析 JSON 并汇总结果。但请注意,来自 API 的结果是分页,因此您不一定会从单个结果中返回所有问题。
来自 JIRA REST API 文档;
maxResults (int)
返回的最大问题数(默认为 50)。最大允许值由 JIRA 属性“jira.search.views.default.max”规定。如果您指定的值大于此数字,您的搜索结果将被截断。