Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

How do I automatically update the End Date of the parent issue?

Sandeep Dhindsa July 12, 2018

I have downloaded both ScriptRunner and Automation for Jira as I am trying to automatically update the end date of a story, if its subtask has an end date exceeding its own. 

For example, I have created a story which will run from 1st January to 20th January. Within this story, I have created a subtask which runs from 10th January to 18th January. Now if the subtask overruns and I increase the end date to 24th January, I want the story to automatically update to have an end date of 24th January, as opposed to its original end date of 20th January. 

Does anyone know how to do this?

1 answer

Suggest an answer

Log in or Sign up to answer
0 votes
Joshua Yamdogo @ 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.
July 13, 2018

If you set up a Custom Script Listener that fires on the Issue Updated event, you can write a script like this that will monitor the Due Date field for the Sub-tasks. If the Due Date of the sub-task gets updated and is greater than the Due Date of the parent Story, it will update the Story's Due Date to match the sub-task.

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.event.type.EventDispatchOption

def issue = event.issue
def changeHistoryManager = ComponentAccessor.getChangeHistoryManager()
def issueManager = ComponentAccessor.issueManager

//Get last changed item
def lastChangedItem = changeHistoryManager.getAllChangeItems(issue)[-1] // looks at end of list

if (issue.getIssueType().name == "Sub-task") {
def parentIssue = issue.parentObject as MutableIssue
if(lastChangedItem.field == "duedate") {
log.debug("Sub-task due date was updated!")
if (issue.dueDate > issue.parentObject.dueDate) {
parentIssue.setDueDate(issue.dueDate)
issueManager.updateIssue(event.user, parentIssue, EventDispatchOption.ISSUE_UPDATED, false)
}
}
}

Regards,

Josh

TAGS
AUG Leaders

Atlassian Community Events