Script Runner Transition linked parent issue based on status

We need to be able to transition a linked parent issue based on the status of the child. We are not using a sub-task.

How can I incorporate the transition to review link type? I've created a combination of a condition script we use for links and then a transition script we use. I know this won't work in it's current state but am I even close? @Jamie Echlin [Adaptavist]

Summary of what we're trying to do:

If linked issue (child link) is transitioned to Defect status, transition parent linked issue to Triage status.

// Required Imports
import com.opensymphony.workflow.WorkflowContext;
import com.atlassian.jira.config.SubTaskManager;
import com.atlassian.jira.workflow.WorkflowTransitionUtil;
import com.atlassian.jira.workflow.WorkflowTransitionUtilImpl;
import com.atlassian.jira.util.JiraUtils;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.link.IssueLink

def linkType = ["Dependency"]
def passesCondition = true
def linkMgr = ComponentAccessor.getIssueLinkManager()
for (IssueLink link in linkMgr.getOutwardLinks(issue.id)) {
   if (linkType.contains(link.issueLinkType.name)) {
       if (! link.destinationObject.resolutionId) {
           passesCondition = false 

       }
   }
}
return passesCondition

    // Get the details of the user executing the workflow transition for the issue change history
String currentUser = ((WorkflowContext) transientVars.get("context")).getCaller()
WorkflowTransitionUtil workflowTransitionUtil = (WorkflowTransitionUtil) JiraUtils.loadComponent(WorkflowTransitionUtilImpl.class)

MutableIssue parent = issue.getIssueLink("Dependency") as MutableIssue

    // Get the status name of the parent issue  
String originalParentStatus = parent.status?.name

def isParentTesting = originalParentStatus in ['Testing']

    // Update the issue by validating the transition can be completed first before executing it.
if (isParentTesting) {
    workflowTransitionUtil.setIssue(parent)
    workflowTransitionUtil.setUserkey(currentUser)
    workflowTransitionUtil.setAction(71) // 71 is the ID of the Triage transition on the Story workflow
    if (workflowTransitionUtil.validate()) {
        workflowTransitionUtil.progress()
    }       
}

6 answers

I asked the same question couple of weeks ago https://answers.atlassian.com/questions/38380360

 

  • Still waiting on that

 

Regards

Chander

 

0 votes

@Chander Inguva - you're not waiting, we answered it.

@Josh Costella - when do you want this to happen? As we said to Chander, it's not possible to trigger it based on a link being added, but you could trigger it on state change or something.

@Jamie Echlin [Adaptavist] - When = The linked issue (child) is transitioned to a certain point in its workflow. This would then transition the linked parent issue to a certain point it its workflow.

0 votes

So you just need to follow the link from child to parent - I'm not sure which bit you're stuck with, you seem to have most of the relevant code.

@Jamie Echlin [Adaptavist], I'm concerned because this is technically a combination of a condition script and post-function. This will be used as a post-function so I want to make sure the condition portion won't cause this to fail.

0 votes

It will be fine if you write the condition safely. It should not cause other post-functions to fail anyway IIRC. You can always put it in try/catch...

Suggest an answer

Log in or Join to answer
Community showcase
Sarah Schuster
Posted Jan 29, 2018 in Jira

What are common themes you've seen across successful & failed Jira Software implementations?

Hey everyone! My name is Sarah Schuster, and I'm a Customer Success Manager in Atlassian specializing in Jira Software Cloud. Over the next few weeks I will be posting discussion topics (8 total) to ...

3,042 views 13 18
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot