...
Since JEMH 3.3.21 we lock down access to arbitrary classes in the script context, they cannot be accessed using historic methods:
Code Block |
---|
var pageFilterfilter = PagerFilter.static.getUnlimitedFilter(); var jqlQueryBuilderbuilder = JqlQueryBuilder.static.newBuilder(); |
but need to be gained through fully specified class names:
Code Block |
---|
var pageFilterfilter = Java.type("com.atlassian.jira.web.bean.PagerFilter").getUnlimitedFilter(); var jqlQueryBuilderbuilder = Java.type("com.atlassian.jira.jql.builder.JqlQueryBuilder").newBuilder() ; |
These specific classes were not initially added, are available since JEMH 3.3.38
Code Block |
---|
var pattern = Java.type("java.util.regex.Pattern").compile("#IR-([0-9]+)"); var matcher = pattern.matcher(subject); var itsmReference = ""; if (matcher.find()) { var group = matcher.group(1); if (group) { itsmReference = group; var issueKey = ""; if (itsmReference.length()>0) { var user = userManager.getUserByKey("admin"); var filter = Java.type("com.atlassian.jira.web.bean.PagerFilter").getUnlimitedFilter(); var builder = Java.type("com.atlassian.jira.jql.builder.JqlQueryBuilder").newBuilder(); var query = builder.where().field("ITSM Reference").like(itsmReference).buildQuery(); var results = searchService.search(user, query, filter).getResults(); if (results.size()>0) { //Issue found var issue = results[0]; issueKey = issue.getKey(); resultMap.put("issueKey", issueKey); if (subject.toLowerCase().indexOf("resolved") > 0) { resultMap.put("workflow", "done"); }else { resultMap.put("comment", body); } } else { //Issue not found print("No issues match using JQL: "+query); resultMap.put("ITSM Reference", itsmReference); } } } } |
...