Excerpt |
---|
Post functions are provided with an option to control their execution. You need to input a Nunjucks template in the Condition Condition field, and based on the result of that expression, the post-function will either be executed or skipped. |
...
Select the check box Run this post-function only if a condition is verified
.
Type a Nunjucks template that returns either true
or false
.
Note that any non-empty string that is not false
will be considered as true
and will thus let the post-function run.
...
Expected value in the Nunjucks template
The value should be either a boolean value (true
or false
) or more generally any text that will be interpreted as either "truthy" or "falsy".
Text: Any text will be interpreted as "truthy" (the equivalent of true
) except false
, an empty string, a string consisting only of whitespaces. For example, the following text will be considered as "truthy":
true
1
A string
[Object object]
[]
Boolean logic operators: You can use traditional boolean logic operators, such as or
, and
and not
, to combine conditions. You can also use parentheses to group expressions. For example:
{{ 1 == 1 or 1==2 }}
{{ issue.key == 'TEST-1' and issue.fields.subject == 'Do it' }}
{{ true and (false or true) }}
{{ not 1==1 }}
{{ issue.fields.description is null }}
returns true
if the issue has no description
{{ issue.fields.assignee is not null }}
returns true
if the issue has an Assignee
Examples of Nunjucks expressions returning a "truthy" value:
{{issue.fields.assignee}}
if the issue is assigned
{{issue.fields.assignee.accountId == "accountId:557058:8952dfd1-85c4-493f-87d8-d383b987e05c"}}
if the issue is assigned to the user whose accountId is "557058:8952dfd1-85c4-493f-87d8-d383b987e05c"
{{issue.fields.description is not null}}
if the issue's description is not empty
{{issue.fields.assignee and issue.fields.status.name == "In Progress"}}
if the issue is assigned and in the “In Progress” status
Sample use cases for Conditional execution
A tester creates an issue. The created issue should be automatically assigned to the Product Owner, only if the issue is a BUG.
Expand |
---|
|
Create a Product Owner project role, with the product owner as the only member. Add the Assign to role member post-function to the Create transition of the issue workflow. Select Product Owner as the project role. Select the check box Run this post-function only if a condition is verified . Type the following code in Condition . Code Block |
---|
{{ issue.fields.issuetype.name == "Bug" }} |
|
Automatically escalate an issue if it is being raised with a "Blocker" priority.
Expand |
---|
|
Add the Transition issue post-function to the Create transition of the issue's workflow. Input the transition name or ID of the transition that escalates the issue. Select the check box Run this post-function only if a condition is verified . Write the following content in the Condition section.
Code Block |
---|
{{ issue.fields.priority == "Blocker" }} |
Place this post-function at the end in the list of post-functions.
|
Automatically transition the Epic when all Stories are resolved.
Expand |
---|
|
Add the Transition current issue post-function to the Resolve transition of the Story workflow. Input the transition name or ID of the Resolve transition. Select the check box Run this post-function only if a condition is verified . Write the following content in the Condition section. Code Block |
---|
{% set stories = issue | epic | stories %}
{% set trigger = true %}
{% for story in stories %}
{% if story.fields.status.name != "Resolved" %}
{% set trigger = false %}
{% endif %}
{% endfor %}
{{ trigger }} |
Place this post-function at the end in the list of post-functions.
|
Copy value from a Single Version Picker select list to the Fix Version(s) field if the resolution provided while closing the issue is "Fixed".
Expand |
---|
|
Add the Copy value from field to field post-function to the Close transition of the issue's workflow. Select the Single version picker in the From field. Select the Fix Version/s in the To field. Select the check box Run this post-function only if a condition is verified . Write the following content in the Condition section. Code Block |
---|
{{ issue.fields.resolution.name == "Fixed" }} |
|
Assign a Bug to a Product Manager only when its priority is Critical
Expand |
---|
|
Add the Assign to role member post-function to the transition of the issue's workflow. Select Product Managers as the Project Role. Select Conditional execution and write the following condition: Code Block |
---|
{{ issue.fields.issuetype.name == "Bug" and issue.fields.priority.name == "Critical" }} |
|
Transition an issue to In Progress status when the issue is either of High priority or the reporter of the issue belongs to Service Desk Customers Project role
Expand |
---|
|
Add the Transition issue post-function to the Create transition of the issue's workflow. Select Start Progress as the transition to be triggered. Select Conditional execution and write the following condition: Code Block |
---|
{{ issue.fields.priority.name == "High" or issue.fields.priority.name == "Highest" or issue.fields.reporter | isInRole("Service Desk Customers")}} |
|
Link issues that belong to the project with key “BACKEND” and created before 5 days
Expand |
---|
|
Add the Link issues to current issue post-function to the transition of the issue's workflow. Input the JQL expression as: Code Block |
---|
project = "BACKEND" |
Select the “Filter Expression” and input the following condition Code Block |
---|
{{ now | date("diff", targetIssue.fields.created, "days") <=5 }} |
|