首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取50多个Jira问题?

如何获取50多个Jira问题?
EN

Stack Overflow用户
提问于 2018-04-10 07:26:39
回答 3查看 1.2K关注 0票数 3

我正在尝试使用API从Jirà获取所有任务。我找到了工作代码

代码语言:javascript
复制
public class CustomJiraRestClient {

    private static final String JIRA_URL = "http://jira-dev:8080";
    private static final String JIRA_ADMIN_USERNAME = "admin";
    private static final String JIRA_ADMIN_PASSWORD = "admin";

    public static void main(String[] args) throws Exception {
        // Construct the JRJC client
        System.out.println(String.format("Logging in to %s with username '%s' and password '%s'", JIRA_URL, JIRA_ADMIN_USERNAME, JIRA_ADMIN_PASSWORD));
        JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
        URI uri = new URI(JIRA_URL);
        JiraRestClient client = factory.createWithBasicHttpAuthentication(uri, JIRA_ADMIN_USERNAME, JIRA_ADMIN_PASSWORD);

        // Invoke the JRJC Client
        Promise<User> promise = client.getUserClient().getUser("admin");
        User user = promise.claim();

        Promise<SearchResult> searchJqlPromise = client.getSearchClient().searchJql("project = MYPURRJECT AND status in (Closed, Completed, Resolved) ORDER BY assignee, resolutiondate");

        for (Issue issue : searchJqlPromise.claim().getIssues()) {
            System.out.println(issue.getSummary());
        }

        // Done
        System.out.println("Example complete. Now exiting.");
        System.exit(0);
    }
}

但是有一个问题:-只显示前50个条目。在通常情况下,图形界面-一个有50个条目的页面。请帮帮我,我怎么能一次得到所有的记录?或者如何指定所需的页或项。

我找到了方法:

  • searchResult.getMaxResults(); -所有记录的数目(n)
  • 每页searchResult.getTotal();条目数(50)
  • searchResult.getStartIndex(); -第一个元素的数目(0)

但我不能把它们放在任何地方使用。我能认出他们,但这没有任何意义。

下面是我使用的软件版本:

  • Jira版本: 7.2.13
  • 亚特兰-形象-消费者(com.atlassian.image:atlassian-image-consumer:1.0.1:jar)
  • 卡罗尔(卡罗尔:卡罗尔:1.5.2:jar)
  • 卡罗尔-属性(卡罗尔:卡罗尔-属性:1.5.2:jar)
  • 数据文件( datafile :datafile:1.3.3:jar)
  • hibernate (hibernate:hibernate:2.1.8亚特兰:jar)
  • image4j (org.jClon:Image4j:0.7:jar)
  • JCaptcha (com.octo.captcha:jcaptcha-api:2.0-alpha-1:jar)
  • JCaptcha (com.octo.captcha:jcaptcha:2.0-alpha-1:jar)
  • (jfree:jcommon:1.0.8:jar)
  • jfreechart (jfree:jfreechart:1.0.13:jar)
  • JSCalendar (1.0)
  • jStyleParser (net.sf.cssbox:jstyleparser:1.16-atlassian-1:jar)
  • 用于XML的流API (javax.xml.stream:stax:1.0-2:jar)
  • TinyMCE-TinyMCE (4.4.0)
  • xapool (xapool:xapool:1.3.1:jar)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-10 07:49:07

简单地看一下API文档,我会说您需要使用重载的searchJql(String jql, int maxResults, int startAt)并指定maxResults参数。

票数 2
EN

Stack Overflow用户

发布于 2018-07-17 11:50:03

我使用这个简单的循环进行分页。

代码语言:javascript
复制
    List<Issue> issues = new ArrayList<>();
    SearchRestClient searchClient = restClient.getSearchClient();
    Set<String> set = new HashSet<String>();
    set.add("*all");  /* you can use simply null set if you dont need all values  */
    int start = 0;
    int maxPerPage = 25;  /* batch size (max 50) */
    int total = 0;
    do {
        SearchResult result = searchClient.searchJql(JQL, maxPerPage, start, set)
                .claim();
        total = result.getTotal();
        start += maxPerPage;
        result.getIssues().iterator().forEachRemaining(issues::add);
    } while (total > start );

现在所有问题都出现在issues列表中。

票数 0
EN

Stack Overflow用户

发布于 2020-06-25 13:13:02

我建议使用以下功能。

代码语言:javascript
复制
public List<Issue> getIssuesList(String query) {

    boolean flag = false;
    int start = 0, end=Constants.MAX_RESULTS_PER_PAGE, totalResults = 0;
    List<Issue> issueList = new ArrayList<Issue>();
    SearchResult searchResult;
    do {
        Promise<SearchResult> searchJqlPromise = client.getSearchClient().searchJql(query,end,start, null);

        searchResult = searchJqlPromise.claim();
        if(flag==false) {
            totalResults = searchResult.getTotal();
            flag=true;
        };
        List<Issue> res = (List<Issue>) searchResult.getIssues();
        issueList.addAll(res);
        
        start = start + Constants.MAX_RESULTS_PER_PAGE;
        totalResults -= Constants.MAX_RESULTS_PER_PAGE;
        
    } while(totalResults>0);
    
    return issueList;

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49747792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档