如何通过 Jira REST Java 客户端获取项目的所有问题?
How to get all issues of project via Jira REST Java Client?
我正在尝试获取项目的所有问题,然后查找已完成的问题,但我不知道如何做。
我将用户连接到 Jira,然后想要获得他的所有项目和所有问题。然后我想找到,哪些问题已经完成。有人可以帮我吗?
我知道了:
Iterable <BasicProject> allProj;
this.yourUsername = userName;
this.yourPassword = password;
this.jiraServerUri = new URI("https://applifting.atlassian.net");
this.factory = new JerseyJiraRestClientFactory();;
this.restClient = factory.createWithBasicHttpAuthentication(jiraServerUri, yourUsername, yourPassword);
final NullProgressMonitor pm = new NullProgressMonitor();
allProj = this.restClient.getProjectClient().getAllProjects(pm);
for(Iterator<BasicProject> i = allProj.iterator(); i.hasNext(); ) {
BasicProject proj = i.next();
Project ActualProject = this.restClient.getProjectClient().getProject(proj.getKey(), pm);
ComponentRestClient cm =
}
我想在这个 for
周期中,当我拥有所有项目时,我应该解决所有问题。
如果您有指定搜索条件的 JQL,您可以调用它:https://docs.atlassian.com/jira/REST/latest/#d2e2716
代码示例,请看这里:https://answers.atlassian.com/questions/192961/answers/4049301
一个工作示例:(也在这里:http://pastebin.com/WUMZ0vZa)
package com.example.jirasandbox;
import com.atlassian.jira.rest.client.api.JiraRestClient;
import com.atlassian.jira.rest.client.api.JiraRestClientFactory;
import com.atlassian.jira.rest.client.api.domain.BasicProject;
import com.atlassian.jira.rest.client.api.domain.Issue;
import com.atlassian.jira.rest.client.api.domain.SearchResult;
import com.atlassian.jira.rest.client.api.domain.User;
import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;
import com.atlassian.util.concurrent.Promise;
import java.net.URI;
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();
for (BasicProject project : client.getProjectClient().getAllProjects().claim()) {
System.out.println(project.getKey() + ": " + project.getName());
}
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());
}
// Print the result
System.out.println(String.format("Your admin user's email address is: %s\r\n", user.getEmailAddress()));
// Done
System.out.println("Example complete. Now exiting.");
System.exit(0);
}
}
我正在尝试获取项目的所有问题,然后查找已完成的问题,但我不知道如何做。
我将用户连接到 Jira,然后想要获得他的所有项目和所有问题。然后我想找到,哪些问题已经完成。有人可以帮我吗?
我知道了:
Iterable <BasicProject> allProj;
this.yourUsername = userName;
this.yourPassword = password;
this.jiraServerUri = new URI("https://applifting.atlassian.net");
this.factory = new JerseyJiraRestClientFactory();;
this.restClient = factory.createWithBasicHttpAuthentication(jiraServerUri, yourUsername, yourPassword);
final NullProgressMonitor pm = new NullProgressMonitor();
allProj = this.restClient.getProjectClient().getAllProjects(pm);
for(Iterator<BasicProject> i = allProj.iterator(); i.hasNext(); ) {
BasicProject proj = i.next();
Project ActualProject = this.restClient.getProjectClient().getProject(proj.getKey(), pm);
ComponentRestClient cm =
}
我想在这个 for
周期中,当我拥有所有项目时,我应该解决所有问题。
如果您有指定搜索条件的 JQL,您可以调用它:https://docs.atlassian.com/jira/REST/latest/#d2e2716
代码示例,请看这里:https://answers.atlassian.com/questions/192961/answers/4049301
一个工作示例:(也在这里:http://pastebin.com/WUMZ0vZa)
package com.example.jirasandbox;
import com.atlassian.jira.rest.client.api.JiraRestClient;
import com.atlassian.jira.rest.client.api.JiraRestClientFactory;
import com.atlassian.jira.rest.client.api.domain.BasicProject;
import com.atlassian.jira.rest.client.api.domain.Issue;
import com.atlassian.jira.rest.client.api.domain.SearchResult;
import com.atlassian.jira.rest.client.api.domain.User;
import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;
import com.atlassian.util.concurrent.Promise;
import java.net.URI;
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();
for (BasicProject project : client.getProjectClient().getAllProjects().claim()) {
System.out.println(project.getKey() + ": " + project.getName());
}
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());
}
// Print the result
System.out.println(String.format("Your admin user's email address is: %s\r\n", user.getEmailAddress()));
// Done
System.out.println("Example complete. Now exiting.");
System.exit(0);
}
}