Archive Issues in an Epic

issueproject

Overview

This sample code enables a user to archive the issues that are currently in an Epic if the Epic itself has been archived.

Example

As a Jira user, I want to automatically archive issues in Epic if the Epic itself has been archived.

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 import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.archiving.ArchivedIssueService import com.atlassian.greenhopper.manager.issuelink.EpicLinkManager import com.onresolve.scriptrunner.runner.customisers.WithPlugin import com.onresolve.scriptrunner.runner.customisers.JiraAgileBean @WithPlugin("com.pyxis.greenhopper.jira") @JiraAgileBean EpicLinkManager epicLinkManager def archivedIssueService = ComponentAccessor.getComponent(ArchivedIssueService) def user = ComponentAccessor.jiraAuthenticationContext.loggedInUser def epicIssue = event.issue // the epic issue def epicType = epicIssue.issueType.name.toString() if (epicType != 'Epic') { return } def issuesInEpic = epicLinkManager.getIssuesInEpic(epicIssue) issuesInEpic.each { def validationArchive = archivedIssueService.validateArchiveIssue(user, it.key, false) if (validationArchive.valid) { archivedIssueService.archiveIssue(validationArchive) } }