【问题标题】:query on jira data rest api jql查询jira数据rest api jql
【发布时间】:2015-11-19 22:02:21
【问题描述】:

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

【问题讨论】:

    标签: jira jira-rest-api


    【解决方案1】:

    无法使用 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. 您需要为每个优先级发出一个请求,以检索所有已知优先级的计数

    如果这些限制不可接受,那么您可以选择项目的所有问题并仅返回 priority 字段。然后,您必须自己解析 JSON 并汇总结果。但请注意,来自 API 的结果是分页,因此您不一定会从单个结果中返回所有问题。

    来自 JIRA REST API 文档;

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

    【讨论】:

    • 我发现查询字段值中的空格必须提供为 \\u0020。
    猜你喜欢
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 2022-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多