-
Notifications
You must be signed in to change notification settings - Fork 5
/
subtask-copier.groovy
executable file
·38 lines (28 loc) · 2.02 KB
/
subtask-copier.groovy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
ComponentManager componentManager = ComponentManager.getInstance()
IssueManager issueManager = componentManager.getIssueManager()
SubTaskManager subTaskManager = componentManager.getSubTaskManager()
JiraAuthenticationContext authenticationContext = componentManager.getJiraAuthenticationContext()
IssueFactory issueFactory = componentManager.getIssueFactory();
ProjectRoleManager projectRoleManager = componentManager.getComponentInstanceOfType(com.atlassian.jira.security.roles.ProjectRoleManager.class)
CustomFieldManager customFieldManager = componentManager.getCustomFieldManager()
ProjectManager projectManager = componentManager.getProjectManager()
GenericValue testCaseIssueType = subTaskManager.getSubTasksIssueTypes().find { it.name == 'Sub-task'}
MutableIssue subtaskIssueObject = issueFactory.getIssue()
subtaskIssueObject.setProject(projectManager.getProject(issue.getProjectObject().getId()))
subtaskIssueObject.setIssueType(subTaskManager.getSubTasksIssueTypes().find {it.name == 'Sub-task'})
subtaskIssueObject.setSummary(issue.getSummary() + "-" + componentName)
CustomFieldManager cfManager = ComponentManager.getInstance().getCustomFieldManager()
CustomField customField = cfManager.getCustomFieldObject(10000)
Object customFieldValue = issue.getCustomFieldValue(customField)
CustomFieldManager cfm = ComponentManager.getInstance().getCustomFieldManager();
subtaskIssueObject.setCustomFieldValue(cfm.getCustomFieldObject(10000),customFieldValue)
subtaskIssueObject.setDueDate(issue.getDueDate())
subtaskIssueObject.setAssignee(authenticationContext.getUser())
subtaskIssueObject.setReporter(authenticationContext.getUser())
Map params = new HashMap();
params.put("issue", subtaskIssueObject);
def wasIndexing = ImportUtils.indexIssues
ImportUtils.indexIssues = true
GenericValue subTask = issueManager.createIssue(authenticationContext.getUser(), params);
subTaskManager.createSubTaskIssueLink(issue.getGenericValue(), subTask, authenticationContext.getUser());
ImportUtils.indexIssues = wasIndexing