JIRA validator based upon development tools

Robert G. Nadon
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.
October 17, 2016

Hi all,

Is there anything in groovy scripting or other ways to create a validator (or condition) based upon whether or not there is the development tools link?

I know through triggers I can transition issues based upon an event from fisheye.

What I am looking to do is if there is any commits tied to an issue block it from being closed by any other resolution than fixed.   So  < there is a code commit tied to the project > &&  cfValues['Dev Resolution'].toString() != 'Fixed'  then kick off the validator. 

Thanks,

Robert

 

2 answers

1 vote
David Weidinger August 23, 2018

Was looking for an similar requirement - having open pull requests.
I Have not found anything on how to access the Development tools in Scriptrunner, but 
I ended up executing JQL from within the Scriptrunner Script. 

With this you can filter on the following depending on which software you use:

  • development[commits].all
  • development[pullrequests].all
  • development[pullrequests].open
  • development[reviews].all
  • development[reviews].open
  • development[builds].failing
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.search.SearchProvider
import com.atlassian.jira.jql.parser.JqlQueryParser
import com.atlassian.jira.web.bean.PagerFilter

def jqlQueryParser = ComponentAccessor.getComponent(JqlQueryParser)
def searchProvider = ComponentAccessor.getComponent(SearchProvider)

// edit this query to suit#
def query = jqlQueryParser.parseQuery("issuekey = " + issue.key + " AND development[commits].all > 0")
def results = searchProvider.search(query, currentUser, PagerFilter.getUnlimitedFilter())
return results.total == 1

@Robert G. Nadon @Teja

Robert G. Nadon
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.
October 17, 2016

Thanks for the answer, but I can check the resolution value no problem (I have that exact code above cfValues['Dev Resolution'].toString() != 'Fixed' ) .   The problem is I need to check if there are any code commits.

And yes we have script runner.   

saravanan subramanian October 17, 2016

i know in JQL the below works - try you can make use of the same

 

issue.property[development].commits > 0

Robert G. Nadon
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.
October 17, 2016

With that code I keep getting:

groovy.lang.MissingPropertyException: No such property: property for class: com.atlassian.jira.issue.IssueImpl

Teja August 6, 2018

@Robert G. Nadon

I have got same requirement, did you get the answer? or any workaround?

Robert G. Nadon
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.
August 7, 2018

Nope.

Suggest an answer

Log in or Sign up to answer