如何通过Jira REST Java客户端获取项目的所有问题?
我正在尝试获取项目的所有问题,然后找出哪些问题已完成,但我不知道如何完成。如何通过Jira REST Java客户端获取项目的所有问题?,jira,jira-rest-api,jira-rest-java-api,Jira,Jira Rest Api,Jira Rest Java Api,我正在尝试获取项目的所有问题,然后找出哪些问题已完成,但我不知道如何完成。 我将用户连接到Jira,然后想得到他的所有项目和所有问题。然后我想找出,哪些问题已经解决了。有人能帮我吗 我有这个: Iterable allProj; this.yourUsername=用户名; this.yourPassword=密码; this.jiraServerUri=新URI(“https://applifting.atlassian.net"); this.factory=new JerseyJiraRe
我将用户连接到Jira,然后想得到他的所有项目和所有问题。然后我想找出,哪些问题已经解决了。有人能帮我吗 我有这个:
Iterable allProj;
this.yourUsername=用户名;
this.yourPassword=密码;
this.jiraServerUri=新URI(“https://applifting.atlassian.net");
this.factory=new JerseyJiraRestClientFactory();;
this.restClient=factory.createWithBasicHttpAuthentication(jiraServerUri、用户名、密码);
最终的NullProgressMonitor pm=新的NullProgressMonitor();
allProj=this.restClient.getProjectClient().getAllProjects(pm);
for(迭代器i=allProj.Iterator();i.hasNext();){
基本项目项目=i.next();
Project ActualProject=this.restClient.getProjectClient().getProject(proj.getKey(),pm);
ComponentRestClient cm=
}
我认为在这个
循环中,当我拥有所有项目时,我应该得到所有问题。如果你有一个指定搜索条件的JQL,你可以调用:
有关代码示例,请查看以下内容:
一个有效的例子:(这里也有:)
package com.example.jirasandbox;
导入com.atlassian.jira.rest.client.api.JiraRestClient;
导入com.atlassian.jira.rest.client.api.JiraRestClientFactory;
导入com.atlassian.jira.rest.client.api.domain.BasicProject;
导入com.atlassian.jira.rest.client.api.domain.Issue;
导入com.atlassian.jira.rest.client.api.domain.SearchResult;
导入com.atlassian.jira.rest.client.api.domain.User;
导入com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;
导入com.atlassian.util.concurrent.Promise;
导入java.net.URI;
公共类CustomJiraRestClient{
私有静态最终字符串JIRA_URL=”http://jira-dev:8080";
私有静态最终字符串JIRA_ADMIN_USERNAME=“ADMIN”;
私有静态最终字符串JIRA_ADMIN_PASSWORD=“ADMIN”;
公共静态void main(字符串[]args)引发异常{
//构建JRJC客户端
System.out.println(String.format(“使用用户名“%s”和密码“%s”登录到%s,JIRA_URL,JIRA_ADMIN_用户名,JIRA_ADMIN_密码));
JiraRestClientFactory=new AsynchronousJiraRestClientFactory();
URI=新URI(JIRA_URL);
JiraRestClient client=factory.createWithBasichtpAuthentication(uri、JIRA_ADMIN_用户名、JIRA_ADMIN_密码);
//调用JRJC客户端
Promise Promise=client.getUserClient().getUser(“admin”);
User=promise.claim();
对于(基本项目:client.getProjectClient().getAllProjects().claim()){
System.out.println(project.getKey()+”:“+project.getName());
}
Promise searchJqlPromise=client.getSearchClient().searchJql(“项目=MyPurrJet,状态为受让人的(已完成、已完成、已解决的)订单,resolutiondate”);
针对(问题:searchJqlPromise.claim().getIssues()){
System.out.println(issue.getSummary());
}
//打印结果
System.out.println(String.format(“您的管理员用户的电子邮件地址是:%s\r\n”,user.getEmailAddress());
//完成
System.out.println(“示例完成。现在退出”);
系统出口(0);
}
}
非常感谢,在这个工作示例中,字符串URL是我的jira,对吗?和Promise searchjqlclomise=client.getSearchClient().searchJql(“project=mypurrjet,状态为受让人的(已完成、已完成、已解决的)订单,resolutiondate”);-您如何知道如何指定它?您与jira的连接位于这个.restClient
对象中。使用restClient.getSearchClient().searchJql(JQLquery)
函数和JQL查询来获取您想要的问题。要将JQL查询登录到Jira并在问题导航器中搜索您想要的问题,然后使用JQL切换到高级搜索,这就是您的JQL查询。是的,Jira_URL指向您的Jira。另外,@ThePavolC做对了,您可以在那里的站点上发出JQL查询。顶部的“问题”菜单,然后是“搜索问题”菜单项,然后单击“高级”链接。您的意思是要包括现在驻留在pastebin中的内容?Hi@Koshinae-我们确实需要REST api设置,还是我可以使用Jira REST java client jar来获取Jira问题?我们正在使用JIRA云。我是否只需要使用jira管理员凭据?请帮帮我。我不熟悉这个功能。
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);
}
}