Status change history using script field

Holtzman Ju Won Kim February 23, 2021

Hello, I want to extract the status change history of a specific issue into a script field. I used the code below to extract the change time and status changes, but I cannot get the user information of the person who executed this change. How can I get the information of the user who changed the status?

 

import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.issue.link.IssueLink
import com.atlassian.jira.component.ComponentAccessor;
IssueManager im = ComponentAccessor.getIssueManager()
def changeHistoryManager = ComponentAccessor.getChangeHistoryManager()
def created
def field
def author
def from
def to
def output = ""
def output2 = ""
for (change in changeHistoryManager.getChangeItemsForField(issue,"status"))
{
created = change.created
from = change.fromString
to = change.toString

output = output + from + ' > ' + to + ''' ''' +created + author + '''</br>'''
}
return output.replace('.0','')

1 answer

0 votes
Fabio Racobaldo _Herzum_
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 11, 2022

Hi @Holtzman Ju Won Kim ,

that information is stored at ChangeHistory level and not at ChangeItemBean level.
Please take a look to the following code :

import java.util.Arrays;
import java.util.List;

import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.changehistory.ChangeHistory;
import com.atlassian.jira.issue.changehistory.ChangeHistoryManager;
import com.atlassian.jira.issue.history.ChangeItemBean;
...
...

List<ChangeHistory> list = changeHistoryManager.getChangeHistories(issue);
for(ChangeHistory ch : list){
List<ChangeItemBean> listItems = ch.getChangeItemBeans();
for(ChangeItemBean ci : listItems){
if("status".equalsIgnoreCase(ci.getField())){
created = ci.getCreated();
from = ci.getFrom();
to = ci.getTo();
}
author = ch.getAuthorDisplayName();
}

}

 

Hope this helps,

Fabio

thank you! I'll give it a try.

Suggest an answer

Log in or Sign up to answer