提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
使用java client 去调用api创建epic、story、sub-Task 等
1.引入pom依赖
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-rest-java-client-core</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-rest-java-client-api</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>io.atlassian.fugue</groupId>
<artifactId>fugue</artifactId>
<version>4.7.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
<version>2.12.3</version>
</dependency>
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.3</version>
</dependency>
2.获取JiraRestClient
使用jira地址、账号和密码去获取Client
private String JIRA_URL = "http://www.com"
private JiraRestClient jiraRestClient;
public void login(String userName, String passWord) {
URI jiraServerUri = URI.create(JIRA_URL);
JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
AuthenticationHandler authHandler = new BasicHttpAuthenticationHandler(userName, passWord);
jiraRestClient = factory.createWithAuthenticationHandler(jiraServerUri,authHandler);
}
3.client里面有操作jira的各种客户端
//创建jira
jiraRestClient.getIssueClient().createIssue()
//获取jira
jiraRestClient.getIssueClient().getIssue()
//修改jira
jiraRestClient.getIssueClient().transition()
4.代码演示创建
@Override
public BasicIssue createEpic(CreateInput createInput) throws ExecutionException, InterruptedException {
login(createInput.getUserName(),createInput.getPassWord());
IssueInputBuilder issueInputBuilder = new IssueInputBuilder();
issueInputBuilder.setProjectKey(createInput.getProjectKey());
issueInputBuilder.setFieldValue("summary", createInput.getSummary());
if (StringUtils.isNotEmpty(createInput.getDescription())){
issueInputBuilder.setFieldValue("description", createInput.getDescription());
}
issueInputBuilder.setFieldValue("customfield_10005", createInput.getEpicName());
if (StringUtils.isNotEmpty(createInput.getTeam())){
issueInputBuilder.setFieldValue("customfield_10501", createInput.getTeam());
}
if (ObjectUtils.isNotEmpty(createInput.getSprintId())){
issueInputBuilder.setFieldValue("customfield_10004", createInput.getSprintId());
}
issueInputBuilder.setFieldInput(new FieldInput(IssueFieldId.ISSUE_TYPE_FIELD, ComplexIssueInputFieldValue.with("name", createInput.getIssueType())));
if (StringUtils.isNotEmpty(createInput.getAssignee())){
issueInputBuilder.setFieldInput(new FieldInput(IssueFieldId.ASSIGNEE_FIELD,ComplexIssueInputFieldValue.with("name", createInput.getAssignee())));
}
if (StringUtils.isNotEmpty(createInput.getPriority())){
issueInputBuilder.setFieldInput(new FieldInput(IssueFieldId.PRIORITY_FIELD,ComplexIssueInputFieldValue.with("name", createInput.getPriority())));
}
IssueInput issueInput = issueInputBuilder.build();
return jiraRestClient.getIssueClient().createIssue(issueInput).get();
}
注:参数很多可以按需去补充
5.获取代码演示
@Override
public Issue getIssue(String issueKey,String userName,String passWord) throws ExecutionException, InterruptedException {
login(userName,passWord);
Promise<Issue> issue = jiraRestClient.getIssueClient().getIssue(issueKey);
Issue claim = issue.claim();
return claim;
}
总结
以上就是今天要讲的内容,本文仅仅简单介绍了使用client方式调用api操作jira