Groovy Template is a templating engine for JavaScript. It lets you insert dynamic content into any text through the use of templates. A template contains variables and/or expressions, which get replaced with values when a template is rendered. This is very similar to JSP markup.
On this page:
Groovy templates in JMWE are used in:
Groovy template
as the Comment type
Groovy template
as the Value type
Groovy template
as the Comment type
Groovy template
as the Value type
Subject, HTML body and Text body
JQL search expression
To output the result of a simple Groovy expression, write your Groovy code as <%= some Groovy code %>.
For example:
<%= issue.getKey() %> |
For single-statement expressions, you can also use the following shortcut:
${issue.getKey()} |
To simply execute a Groovy code and not output the result, write your Groovy code as <% some Groovy code %
>. For example:
<% log.debug("I was here") %> |
You can also output the value of a variable or its properties using $variable
or $variable.someProperty
. For example:
$currentUser
returns an ApplicationUser
$currentUser.name
returns the username of the current user
To call a method on the variable, use ${variable.method()}
:
${currentUser.getName()}
also returns the username of the current user
Write the issue key as a comment to the issue:
Issue key: ${issue.get("issuekey")} |
Comment an issue based on the priority of the issue:
<% if (issue.get("priority").name == "Critical") { %> The priority of the issue is <%=issue.get("priority").name %>. So Look out! <% } %> |
To send an Email to the Voters and Watchers of the issue when the issue is resolved, write this as the Subject of the Email (note that we mixed <%= %>
and ${}
expressions only to show how both are valid):
Hi All, <% if (issue.assignee) {%> The issue <%= issue.key%> has been resolved by <%=issue.assignee.displayName%> <%} else {%> The issue ${issue.key} has been resolved <%}%> Regards, <%=issue.get("project")?.getLead()?.getDisplayName()%> |
Note that you can also "print" to the text: If you would like to print the components of the project:
<% issue.getAvailableOptions("components").each() { print "Component: "+ it.name + "\n" } %> |