为什么我不能为JIRA查询超过1000个结果?

时间:2016-08-09 15:10:55

标签: exec logstash jira jira-plugin

我正在使用Logstash Input Plugin exec定期运行命令来获取JIRA数据。即使我设置了maxResults = 99999,也只返回1000个结果。这是我现在的代码:

input {
    exec {
        command => "curl -u username:password https://mycompany.atlassian.net/rest/api/latest/search?project=project&maxResults=8500"
        interval => 300
        type => "issues"
    }


} output {  
    elasticsearch {
        hosts => "localhost:9200"
        index => "jira"
    }
}

我在网上发现,如果你运行大约10个高手,并且你将startAt设置为0,1000,2000等,你会得到大约10000个响应。这比仅仅一个提取8000个请求的exec更快吗?如何使用1个exec返回1000多个响应?

3 个答案:

答案 0 :(得分:2)

@ alpert的答案是正确的,但我会添加更多细节。

JIRA的REST API(以及大多数其他api)支持分页,以防止API的客户端对应用程序施加过多负载。这意味着您不能只使用1个REST调用来提取所有问题数据。

您只能使用分页查询参数 startAt maxResults 检索最多1000个问题的“页面”。请参阅分页部分here

如果您运行JIRA独立服务器,那么您可以调整JIRA返回的最大结果数,但对于云实例,这是不可能的。有关详细信息,请参阅此KB article

您的logstash配置显示您定期将项目的所有JIRA问题转储到ElasticSearch中。除了使用JIRA GET / issue REST API调用之外,可能有更好的方法来实现您正在尝试的操作。那么你在ElasticSearch中使用什么数据呢?

可能有一种方法可以在JIRA中执行您需要的操作,或者您可以寻找更方便的方法来导出所有JIRA数据,例如:使用export functionality

答案 1 :(得分:1)

取自:https://confluence.atlassian.com/jirakb/changing-maxresults-parameter-for-jira-rest-api-779160706.html

Unfortunately it is not possible to change this value as it falls under customizations which are not allowed in Atlassian Cloud.

似乎最好的方法是使用startAt aproach。

答案 2 :(得分:1)

<?php
$username="JIRA Email";
$password="JIRA Password";        
$handle = curl_init();
$project_url="https://jirasite.atlassian.net/rest/api/2/search?jql=project='project id'&maxResults=100";
$project_url=trim($project_url);
 curl_setopt($handle, CURLOPT_CUSTOMREQUEST, "GET");
 curl_setopt_array($handle, array(
    CURLOPT_URL => $project_url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_HTTPHEADER => array("content-type:application/json"),
    CURLOPT_HEADER => true,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_ENCODING => '',
    CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
    CURLOPT_USERPWD => $username . ':' . $password
      ));
     $response   = curl_exec($handle);
     print_r($response);

&GT?; 响应Wille {&#34;扩大&#34;:&#34;模式,名称&#34;&#34; startAt&#34;:0,&#34;的maxResults&#34;:100,&#34;总&#34 ;:52,&#34;问题&#34;:[{&#34;扩大&#34;:............