I am writing a plugin that needs to copy the existing subtasks of an issue to a new parent issue.
I can easily get the original subtasks using:
for(Issue subtask : subtaskManager.getSubTaskObjects(originalIssue)) { // Iterating through subtasks }
How can I create copies of these subtasks and attach each of them to a new parent Issue object?
Community moderators have prevented the ability to post new answers.
And if you want to do it in a groovy way that's non-deprecated:
for (def subtask : subtaskManager.getSubTaskObjects(templateIssue)){ def parameters = issueService.newIssueInputParameters() parameters.setSummary(subtask.getSummary()) parameters.setDescription(subtask.getDescription()) parameters.setAssigneeId(templateIssue.getAssigneeId()) parameters.setReporterId(templateIssue.getReporterId()) parameters.setProjectId(templateIssue.getProjectObject().getId()) parameters.setIssueTypeId(subtask.getIssueTypeObject().getId()) def result = issueService.validateSubTaskCreate(user, issue.getId(), parameters) result = issueService.create(user, result) subtaskManager.createSubTaskIssueLink(parent, result.getIssue(), user) }
For anyone else having the same question, here is my solution:
for(Issue i : subtaskManager.getSubTaskObjects(templateIssue)) { MutableIssue subtask = issueFactory.getIssue(); subtask.setSummary(i.getSummary()); subtask.setDescription(i.getDescription()); subtask.setAssignee(i.getAssignee()); subtask.setReporter(i.getReporter()); subtask.setProject(myIssue.getProject()); subtask.setIssueType(myIssue.getIssueType()); try{ issueManager.createIssueObject(issueEvent.getUser(), subtask); subtaskManager.createSubTaskIssueLink(myIssue, subtask, issueEvent.getUser()); } catch(CreateException e) { log.error(e.getMessage()); } }
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.