The validator Validation of linked issues is not yet available in JWT Cloud, but can be implemented easily using a Jira expression validator.
Migration steps
Add a Jira expression validator.
Build a matching Jira expression by migrating the parameters of the Validation of linked issues using this template:
let LT = []; let ITI = []; let SI = []; let RI = []; let P=[]; let FVE = (issueLink => issueLink); let MI = 0; let MA = 1000; let LTA = false; let ITA = false; let SA = false; let RA = false; let FVEA = false; let CON = (issueLink => (LT.length == 0 || LT.includes(issueLink.direction == "outward" ? issueLink.type.outward : issueLink.type.inward)) && (ITI.length == 0 || ITI.includes(issueLink?.linkedIssue?.issueType?.name)) && (SI.length == 0 || SI.includes(issueLink?.linkedIssue?.status?.name)) && (RI.length == 0 || RI.includes(issueLink?.linkedIssue?.resolution?.name)) && (P.length == 0 || P.includes(issueLink?.linkedIssue?.project?.key)) && FVE(issueLink) ); issue.links.filter(CON).length >= MI && issue.links.filter(CON).length <= MA && issue.links.every(issueLink => ( CON(issueLink) || (LTA && !(LT.includes(issueLink.direction == "outward" ? issueLink.type.outward : issueLink.type.inward)) || (ITA && !ITI.includes(issueLink.linkedIssue?.issueType?.name)) || (SA && !SI.includes(issueLink?.linkedIssue?.status?.name)) || (RA && !RI.includes(issueLink?.linkedIssue?.resolution?.name))|| (FVEA && !FVE(issueLink)) )))
The following table shows how to obtain the individual components of the resulting Jira expression.
Migration details
JWT DC | JWT DC option | JWT Cloud | Notes |
---|---|---|---|
Filter by link type | In line 1, add the issue link type names to be filtered to the list. | Example: let LT = ["blocks"]; | |
Filter by issue type | In line 2, add the issue type names to be filtered to the list. | Example: let ITI = ["Submission", "Mail"]; | |
Filter by status | In line 3, add the status names to be filtered to the list. | Example: let SI = ["In Progress", "To Do"]; | |
Filter by resolution | In line 4, add the resolution names to be filtered to the list. | Example: let RI = ["Won't do", "Duplicates"]; | |
Filter by project | Any project | Nothing to do! | |
Current project | In line 5, add issue.project.key to the list | Example: let P = [issue.project.key]; | |
Any but current project | In line 5, add (P.length == 0 || !P.includes(issueLink?.linkedIssue?.project?.key)) && | ||
Set projects manually (parser expression) | In line 5, add project keys to be filtered to the list | Example: let P = ["CRM", "PRJ"]; | |
Filter by field value | In line 6, adopt the function according to your needs by adding the respective Jira expression. It has to return a logical value. A list of field codes can be found in Field codes. For more information about Jira expression, please have a look at Atlassian's documentation, the fields available for an issue links can be found in IssueLink. | Examples: let FVE = (issueLink => issueLink?.linkedIssue?.attachments?.length >0 ) let FVE = (issueLink => issueLink?.linkedIssue?.project.key == 'PRJ' ) | |
Minimum number of linked issues | In line 7, change the minimum number of sub-tasks if necessary (the default is set to 0) | Example: let MI = 3 | |
Maximum number of linked issues | In line 8, change the maximum number of sub-tasks if necessary (the default is set to1000) | Example: let MA = 5 | |
Additional options | Allow unselected issue link types | In line 9, change the value to true, if you want to allow unselected link types. | Example: let ITA = true; |
Allow unselected issue types | In line 10, change the value to true, if you want to allow unselected issue types. | ||
Allow unselected statuses | In line 11, change the value to true, if you want to allow unselected statuses. | Example: let SA = true; | |
Allow unselected resolutions | In line 12, change the value to true, if you want to allow unselected resolutions. | Example: let RA = true; | |
Allow unsatisfied field value filter | In line 13, change the value to true, if you want to allow an unsatisfied field value filter. | Example: let FVEA = true; |
Validation options
This parameter is not available in JWT Cloud.
Error message
In JWT Cloud, only a fixed text without field codes or translations is supported.
Examples
JWT DC parameter values | Jira expression | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Use case There must be at least one related Service Management request
| let LT = []; let ITI = []; let SI = ["Closed"]; let RI = ["Done"]; let P =[]; let FVE = (issueLink => issueLink?.linkedIssue?.project?.projectCategory?.name == "Service Management" ) let MI = 1; let MA = 1000; let LTA = false; let ITA = true; let SA = true; let RA = false; let FVEA = false; .... | ||||||||||||||||||||
Use case Prevent transitioning when there is a blocking issue
| let LT = ["is blocked by"]; let ITI = []; let SI = ["Resolved","Closed"]; let RI = []; let P =["CRM"]; let FVE = (issueLink => issueLink) let MI = 0; let MA = 1000; let LTA = false; let ITA = true; let SA = false; let RA = true; let FVEA = false; .... | ||||||||||||||||||||
Use case All blocking issues must be resolved
| let LT = ["is blocked by"]; let ITI = []; let SI = []; let RI = ["Fixed","Done"]; let P =["CRM"]; let FVE = (issueLink => issueLink) let MI = 0; let MA = 1000; let LTA = true; let ITA = true; let SA = true; let RA = false; let FVEA = false; .... |
If you still have questions, feel free to refer to our support team.