Forums

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

How email handler work from Sciptrunner

Shah Baloch
Contributor
May 8, 2020

I noticed there is an email handler option in script runner, but don't have any clue how it works, there isn't any clear documentation. Currently, we are using Jira email handler, whenever to receive an email it creates a ticket. We are using the email handler for Nagios alert, so Jira email creates a ticket with each alert. We would like to create a new ticket only if there will be a problem, but once you get a resolve email it should close the ticket and not create a new ticket or if the issue continues it should post an email in the comment of an existing ticket. 
I thought script runner might solve the problem but I didn't find the proper user guide, I might don't use the right keyword to search it. Can someone walk me through all process that how to use scriptrunner's email handler option? I really appreciate it.

2 answers

Suggest an answer

Log in or Sign up to answer
0 votes
Jia Jie
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 Champions.
February 2, 2021

Hi Howard, 

You can use a custom script validator to throw an InvalidInputException and block the parent issue's transition if conditions aren't meet. 

Here's the sample custom script validator when not all sub-tasks (except QA Task) of that parent issue are closed as "Done", then it will throw an exception and block the transition for that parent issue:

import com.opensymphony.workflow.InvalidInputException

def passesCondition = true
def subTasks = issue.getSubTaskObjects()
def subBoolean = issue.subTask

//If the issue is not a subtask and contains subtasks
if(!subBoolean && subTasks){
subTasks.each { //Loop each subtask of parent issue
//If the subtask is "QA Task"
if (it.issueType.name == "QA Task") {
passesCondition = true
}else{ //Else if the subtask is not "QA Task"
//If the subtask has null resolution or not a resolution "Done"
if(!it.getResolution() || it.getResolution().name != "Done"){
passesCondition = false
//Block the transition
throw new InvalidInputException("subTask","Not all substasks ($it) are closed as 'Done'!")
}else{
passesCondition = true
}
}
}
}else{
return true
}

Hope this helps!

0 votes
Jia Jie
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 Champions.
February 2, 2021

--

TAGS
AUG Leaders

Atlassian Community Events