我需要每月根据jira的优先级报告门票数量。我知道我可以通过使用过滤器/高级搜索在jira Web门户中这样做。但它给了我所有的门票细节,而不是我想要的。我正在尝试对此进行报道。那么最好的方法是什么?我尝试使用curl和jira rest api使用jql,但这给了我一个包含所有细节的json文件。我只需优先购买门票数量。 jql可以这样做,还是我必须将json文件加载到某个应用程序并解析它?
答案 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
不幸的是,这个解决方案存在局限性;
如果这些限制不可接受,那么您可以选择项目的所有问题,只返回priority
字段。然后,您必须解析JSON并自行汇总结果。但请注意,API的结果是分页,因此您不一定会从单个结果中返回所有问题。
来自JIRA REST API文档;
maxResults(int) 要返回的最大问题数(默认为50)。最大允许值由JIRA属性jira.search.views.default.max'决定。如果您指定的值高于此数字,搜索结果将被截断。