最近项目要操作jira的issue,比如获取issue,更改issue状态为Done等操作,Google了下,jira官网提供了sdk,废话不多说,直接看代码。
1 引入maven依赖
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-rest-java-client-core</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>io.atlassian.fugue</groupId>
<artifactId>fugue</artifactId>
<version>4.7.2</version>
</dependency>
复制代码
2 获取jira client
/**
* 获取 JiraRestClient
*
* @param url 你的jira系统网址
* @param user jira用户名
* @param password jira密码
* @return
*/
public JiraRestClient getJiraRestClient(String url, String user, String password) {
AsynchronousJiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
JiraRestClient jiraRestClient = factory.createWithBasicHttpAuthentication(
URI.create(url), user, password
);
return jiraRestClient;
}
复制代码
3 获取 jira issue
public Issue getIssue(String issueKey) {
IssueRestClient issueClient = getJiraRestClient().getIssueClient();
return issueClient.getIssue(issueKey).claim();
}
复制代码
4 更改 jira issue 状态
/**
* 更改jira issue状态
*
* @param issue jira issue,可以通过上面的 getIssue 方法得到
* @param status 需要改为的状态,如 Done 等
*/
public void updateIssueStatus(Issue issue, String status) {
IssueRestClient client = getJiraRestClient().getIssueClient();
Iterable<Transition> transitions = client.getTransitions(issue).claim();
for (Transition t : transitions) {
if (t.getName().equals(status) {
TransitionInput input = new TransitionInput(t.getId());
client.transition(issue, input).claim();
return;
}
}
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END