This sample code enables a user to archive the issues that are currently in an Epic if the Epic itself has been archived.
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)
}
}