代码之家  ›  专栏  ›  技术社区  ›  Sidharth Rampally

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

  •  3
  • Sidharth Rampally  · 技术社区  · 8 年前

    我正在使用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个请求快吗?如何向1个执行人员返回1000多个响应?

    3 回复  |  直到 8 年前
        1
  •  2
  •   GlennV    8 年前

    @阿尔伯特的回答是正确的,但我会再补充一点细节。

    JIRA的RESTAPI(以及大多数restapi)支持分页,以防止API的客户端对应用程序加载过多。这意味着您不能只通过一个REST调用拉入所有问题数据。

    使用分页查询参数只能检索最多1000个问题的“页面” 开始时间 最大结果数 。请参阅 标页码 部分 here .

    如果运行JIRA独立服务器,则可以调整JIRA返回的最大结果数,但对于云实例,这是不可能的。看看这个 KB article 了解更多信息。

    您的日志存储配置显示,您定期将项目的所有JIRA问题转储到ElasticSearch中。可能有更好的方法来实现您想要做的事情,而不是使用JIRAGET/issueRESTAPI调用。那么,您在ElasticSearch中使用这些数据是为了什么?

    export functionality .

        2
  •  1
  •   alpert    8 年前

    取自: 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 围裙。

        3
  •  1
  •   Simple Test    7 年前
    <?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);
    

    ?> 响应Wille be {“expand”:“schema,names”,“startAt”:0,“maxResults”:100,“total”:52,“issues”:[{“expand”:。。。。。。。。。。。。