Atlassian JIRA MyGroovy templates / examples
Template of quick writing groovy scripts for the plugin [Groovy Amigo] (https://marketplace.atlassian.com/1218755). The template uses the usual java-api in easy-to-use wrappers. You can just to copy the code and apply it in the right order.
[Groovy language docs is here] (http://groovy-lang.org/documentation.html)
[MyGroovy source code] (https://github.com/atlascommunity/jira-plugins-groovy)
[MyGroovy documentation] (https://github.com/atlascommunity/jira-plugins-groovy/wiki)
Additions and wishes are welcome.
Example 1
Receiving issue
ComponentAccessor.issueManager.getIssueObject(key)
The template is represented by a method that is copied with the import.
def getIssue(String key){
ComponentAccessor.issueManager.getIssueObject(key)
}
Example 2
Calling a transition at issue. The transition.groovy file contains the doTransition (issue, actionId, user) method. It passes the issue with which you want to call the transition, the transition id, user - the user on whose behalf the transition is made
def doTransition(issue, int actionId, user){
def issueService = ComponentAccessor.getIssueService()
def issueInputParameters = issueService.newIssueInputParameters();
def transitionValidationResult = issueService.validateTransition(user, issue.id, actionId, issueInputParameters);
if (transitionValidationResult.isValid()){
issueService.transition(user, transitionValidationResult);
return true
} else {
return false
}
}
Example 3
To execute a query in the database, call the select ("select * from ...") method from the sql.groovy file
select("select ...")
def select(String query){
OfBizDelegator delegator = ComponentAccessor.getOfBizDelegator();
DelegatorInterface delegatorInterface = delegator.getDelegatorInterface();
String helperName = delegatorInterface.getGroupHelperName("default");
Connection connection = ConnectionFactory.getConnection(helperName);
Sql sql = new Sql(connection);
List<GroovyRowResult> resultRows = []
try{
resultRows.addAll(sql.rows(query));
} finally {
connection.close()
}
return resultRows
}