Cod sursa(job #3295130)

Utilizator NToniBoSSNicolae Tonitza NToniBoSS Data 2 mai 2025 15:11:52
Problema A+B Scor 0
Compilator py Status done
Runda Arhiva de probleme Marime 1.6 kb
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.greenhopper.manager.rapidview.RapidViewManager
import com.atlassian.greenhopper.service.sprint.Sprint
import com.atlassian.greenhopper.service.sprint.SprintManager
import com.atlassian.jira.bc.issue.search.SearchService
import com.atlassian.jira.web.bean.PagerFilter
import com.atlassian.jira.user.ApplicationUsers
import com.atlassian.query.Query
import com.atlassian.greenhopper.model.rapid.RapidView

// Get the current issue
Issue issue = issue // This assumes the script runs in a context where 'issue' is defined

def user = ComponentAccessor.jiraAuthenticationContext.loggedInUser
def project = issue.projectObject

// Get Rapid Views (Boards) associated with the current project
def rapidViewManager = ComponentAccessor.getOSGiComponentInstanceOfType(RapidViewManager)
def rapidViews = rapidViewManager.getRapidViews(user).value
def projectRapidViews = rapidViews.findAll { rv ->
    rv.projectKeys.contains(project.key)
}

if (!projectRapidViews) {
    return "No boards found for project ${project.key}"
}

// Get Sprints from those boards
def sprintManager = ComponentAccessor.getOSGiComponentInstanceOfType(SprintManager)
def sprints = [] as Set<Sprint>

projectRapidViews.each { RapidView rv ->
    def boardSprints = sprintManager.getSprintsForView(rv.id).value
    sprints.addAll(boardSprints)
}

// Return sprint names or IDs
if (sprints) {
    return "Sprints for project ${project.key}: " + sprints.collect { it.name }.sort().join(", ")
} else {
    return "No sprints found for project ${project.key}"
}