infernalsirius
3/28/2020 - 12:43 AM

https://jamieechlin.atlassian.net/wiki/display/GRV/Working+With+JIRA+Agile

package examples.docs

import com.atlassian.greenhopper.service.rapid.view.RapidViewService
import com.atlassian.greenhopper.service.sprint.SprintIssueService
import com.atlassian.greenhopper.service.sprint.SprintManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.onresolve.scriptrunner.runner.customisers.JiraAgileBean
import com.onresolve.scriptrunner.runner.customisers.WithPlugin

/**
 * Configurable section
 */
// Enter the name of the board to which you want to add the issue to the first active sprint
def rapidBoardId = 2L

@WithPlugin("com.pyxis.greenhopper.jira")

@JiraAgileBean
RapidViewService rapidViewService

@JiraAgileBean
SprintIssueService sprintIssueService

@JiraAgileBean
SprintManager sprintManager

Issue issue = issue // provided in binding

def loggedInUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def view = rapidViewService.getRapidView(loggedInUser, rapidBoardId).getValue()

if (! view) {
    log.warn("No view with this ID found")
    return
}

def sprints = sprintManager.getSprintsForView(view).getValue()
def activeSprint = sprints.find { it.active }
log.debug activeSprint

if (activeSprint) {
    log.info "Adding issue $issue to ${activeSprint.name}"
    sprintIssueService.moveIssuesToSprint(loggedInUser, activeSprint, [issue] as Collection)
}
else {
    log.info ("No active sprints were found for board: ${view.name}")
}