Information on custom field from history manager does not reflect the current state

Marco Hödtke March 2, 2018

I want to write the last editor of a custom field into a scripted field. I do it with the following code:

import com.atlassian.jira.component.ComponentAccessor

return ComponentAccessor.getChangeHistoryManager().getAllChangeItems(issue).find {
it.field == "Target Release"
}.getUser()

The editor that is written into the scripted field is first editor, not the last one. How can I retrieve the last / the current one?

Jira version 6.4.9

ScriptRunner version  3.0.6

1 answer

Suggest an answer

Log in or Sign up to answer
0 votes
Marco Hödtke March 5, 2018

I have found the solution: Obviously the default order of accessing the changed Items is from oldest to most recent. In order to start with the most recent the code should be:

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.changehistory.ChangeHistoryManager

ChangeHistoryManager changeHistoryManager = ComponentAccessor.getChangeHistoryManager()

String lastEditor

for(i = changeHistoryManager.getAllChangeItems(issue).size()-1; i >=0; i--){
  if (changeHistoryManager.getAllChangeItems(issue).getAt(i).find {it.field == "Target Release"}{
    lastEditor = changeHistoryManager.getAllChangeItems(issue).getAt(i).find {it.field == "TargetRelease"}.getUser()
    break;
   }
}

return lastEditor
TAGS
AUG Leaders

Atlassian Community Events