Automatically set next unreleased fixVersion for new issues or during a transition?

Oded Priva July 23, 2014

Hi,

I would like to automatically set next unreleased fixVersion for new issues or during a transition.

I belive "script runner" is my only option?

If so, does anyone have written somthing like that?

How can I get the "next unreleased fixVersion" using jira API?

Any help would be appriciated

2 answers

1 accepted

0 votes
Answer accepted
JamieA
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 24, 2014

Something like this, not tested:

import com.atlassian.jira.component.ComponentAccessor

def versionManager = ComponentAccessor.getVersionManager()
def projectManager = ComponentAccessor.getProjectManager()
def project = projectManager.getProjectObjByKey("JRA")

def versions = versionManager.getVersions(project)

versions.sort {it.releaseDate}.reverse().find{! it.released}

Oded Priva August 9, 2014

works like a charm

As I'm sharing the WL, Can I use somthing like that ?:

import com.atlassian.jira.component.ComponentAccessor;

def versionManager = ComponentAccessor.getVersionManager()
def projectManager = ComponentAccessor.getProjectManager()
def project = projectManager.getProjectObjByKey(issue.projectObject.key)
 
def versions = versionManager.getVersions(project)
 
versions.sort {it.releaseDate}.reverse().find{! it.released}

Roy Chapman June 2, 2017

The above code didn't work (version 7 maybe?) as it reported UnmodifiableListIterator, so I have managed to find another way.

import com.atlassian.jira.component.ComponentAccessor
import org.apache.log4j.Logger
import org.apache.log4j.Level

def versionManager = ComponentAccessor.getVersionManager()
def projectManager = ComponentAccessor.getProjectManager()
def project = projectManager.getProjectObjByKey(issue.projectObject.key)

def versions = versionManager.getVersions(project)

def newversions = versions.collect()
  
def log = Logger.getLogger("com.acme.CreateSubtask")
log.setLevel(Level.DEBUG)
  
//log.debug newversions
//newversions.eachWithIndex { version, i ->
    //log.debug "${version.description} - ${version.name} - ${version.released}"
//}

//versions.sort {it.releaseDate}
newversions = newversions.sort({version1, version2 -> version1.releaseDate<=>version2.releaseDate}).findAll{version -> ! version.released }

log.debug("First element: " + newversions.first())
//newversions.eachWithIndex { version, i ->
    //log.debug "${version.description} - ${version.name} - ${version.released}"
//}

def versionToUse = newversions.first();
1 vote
Bob Swift OSS (Bob Swift Atlassian Apps)
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 24, 2014

You can use earliestUnreleasedVersion(projectKey) (see Substitution variables) as a substitution variable on a workflow transition to set the fix version. This is available for Create Issue, Create Subtask, and Update issues post functions.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events