Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

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 _Catworkx_
Community Champion
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