我们在执行当前问题的一个动作的时候,期望通过当前问题字段信息,来创建另外一个问题(来自于不没的项目或者不同的问题类型);
一个功能开发,产生了缺陷,那么功能开发执行一个动作的时候,能够自动根据当前功能开发的这个问题创建一个缺陷,并与此功能开发关联。
import com.atlassian.jira.bc.issue.IssueService;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.exception.CreateException;
import com.atlassian.jira.issue.*;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.link.IssueLink;
import com.atlassian.jira.issue.link.IssueLinkManager;
import com.atlassian.jira.issue.link.IssueLinkType;
import com.atlassian.jira.issue.link.IssueLinkTypeManager;
import com.atlassian.jira.user.ApplicationUser;
MutableIssue currIssue = issue;
ApplicationUser currUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
IssueLinkManager issueLinkManager = ComponentAccessor.getIssueLinkManager();
//自定义人员信息
CustomField devUserCf = customFieldManager.getCustomFieldObject(1234456L);
ApplicationUser applicationUser = (ApplicationUser)currIssue.getCustomFieldValue(devUserCf);
CustomField testUserCf = customFieldManager.getCustomFieldObject(1234456L);
//创建一个问题 ,这里要填写的信息从 currIssue 获得
IssueService issueService = ComponentAccessor.getIssueService();
IssueInputParameters issueInputParameters =issueService.newIssueInputParameters();
issueInputParameters.setProjectId(currIssue.getParentObject().getId());
issueInputParameters.setIssueTypeId("123456");// 缺陷的issuetypeid
issueInputParameters.setSummary("summary");
issueInputParameters.setDescription("setDescription");
issueInputParameters.setPriorityId("priorityid");
issueInputParameters.setAssigneeId("username");
issueInputParameters.setReporterId(applicationUser.getUsername());
//各类自定义字段,可参见页面html源做代码,第一个参数customffield_123456 ,第二个是页面字段value
issueInputParameters.addCustomFieldValue(testUserCf.getId(),"username");
IssueService.CreateValidationResult createValidationResult
= issueService.validateCreate(currUser, issueInputParameters);
MutableIssue bugIssue = null;
if (createValidationResult.isValid()) {
IssueService.IssueResult createResult =
issueService.create(currUser, createValidationResult);
bugIssue = createResult.getIssue();
}
//没有正确的创建问题
if(bugIssue==null){
return;
}
Long issueLinkTypeId = 123456L; //可以查一下关联问题的issuelink 的ID值。
//创建完成后,开始关联两者
try {
issueLinkManager.createIssueLink(
currIssue.getId(),
bugIssue.getId(),
issueLinkTypeId, null, currUser);
} catch (CreateException e) {
e.printStackTrace();
}
|