Display author name who moved issued to Resolved State

Bhargavi Nannapaneni May 19, 2015

Hi,

 I'm trying to create a scripted field which displays the user name of the author who moved the issue to Resolved state. This is the code i'm trying to use.

import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.history.ChangeItemBean;

def historyManager = ComponentAccessor.getChangeHistoryManager()
def uselist = historyManager.getChangeHistories(issue);
if (uselist)
uselist.authorUser
def result = historyManager.getChangeItemsForField ( issue, "status")
if (result)
{
result.toString
}

 

Above snippet displays the below output.

[In Progress, Resolved, In Progress, Resolved, QA Validation, QA Validation, Reopened, In Progress, Resolved, QA Validation, QA Validation, QA Validation, Closed, Reopened, In Progress, Resolved, In Progress, Resolved, In Progress, Resolved, Reopened, In Progress, Resolved, QA Validation, QA Validation, Reopened, Closed, Closed, Reopened, Resolved

It doesnot provide any output when i enter if(result == Resolved) and at the same time doesnot throw any erorr as well. I'm a newbie in Groovy. Please let me know what needs to be modified here.

Regards,

Bhargavi.

 


 

1 answer

3 votes
Alejo Villarrubia [Adaptavist]
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.
May 20, 2015

Hi @Bhargavi Nannapaneni,

This solution should solve your problem, assuming you are using a User Picker template:

import com.atlassian.jira.component.ComponentAccessor;

def historyManager = ComponentAccessor.getChangeHistoryManager()
def userUtil = ComponentAccessor.getUserUtil()

def changeItems = historyManager.getAllChangeItems(issue).findAll { changeItem ->
    changeItem.field == "status" && changeItem.toValues.find{ it.value == "In Progress"}
}

changeItems.collect { userUtil.getUserByKey(it.userKey) }

Hope it helps

Bhargavi Nannapaneni May 20, 2015

Thank you so much @Alejo Villarrubia [Adaptavist] . With few modification I was able to get the required output.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events