...
Code Block |
---|
//create regexp pattern to extract external id var pattern = Java.type("java.util.regex.Pattern").compile("Case\\s#:\\s([0-9]+)"); var matcher = pattern.matcher(body); var foundExternalId = ""; //if able to extract issue key, set variable if (matcher.find()) { var group = matcher.group(1); if (group) { foundExternalId = group; } } var issueWithExternalId = ""; if (foundExternalId) { print("external ID extracted: "+foundExternalId); //get the user to run the JQL query as var user = userManager.getUserByKey("admin"); //note the use of "static" on the below 2 lines, see the additional information to the right var filter = PagerFilter.staticJava.type("com.atlassian.jira.web.bean.PagerFilter").getUnlimitedFilter(); var builder = JqlQueryBuilder.staticJava.type("com.atlassian.jira.jql.builder.JqlQueryBuilder").newBuilder(); //construct the JQL query var query = builder.where().field("External ID").like(foundExternalId).buildQuery(); //get list of issues (could be empty) var results = searchService.search(user, query, filter).getResults(); //get first issue if exists and add via issueKey directive if (results.size()>0) { var issue = results[0]; issueWithExternalId = issue.getKey(); print("Found issue using JQL "+query+" : "+issueWithExternalId); } else { print("No issues match using JQL: "+query); } } if (!issueWithExternalId.isEmpty()) { resultMap.put("issueKey",issueWithExternalId) } else if (!foundExternalId.isEmpty()) { resultMap.put("External ID",foundExternalId); } |
...