How to exclude partial matches in TISSUE reports
It is possible to achieve this feature directly by setting the “Hide Incomplete Rows“ preference in the gadget.
For details, please refer to Release Notes for 3.5.0.
Introduction
The Tissue Gadget use the issues from the primary set of issues to join up with linked issues from the secondary set of issues.
It will display blank values when there is no linked issues. This is similar to a Left Join in database terminology.
In some cases, the users may only want to display rows which have matching linked issues.
The Inner Join will skip those issues in the primary set of issues which does not have linked issues
Example
Primary Set of Issues (Epics)
Key | Epic Name | Linked Issue |
---|---|---|
TIS-100 | TIS bug fix | CS-18 |
TIS-99 | TIS feature improvement | CS-10 |
TIS-98 | TIS UI improvement | CS-15 |
TIS-20 | TIS performance fix |
|
Secondary Set of Issues (Feature request to be linked to epics)
Key | Summary | Status |
---|---|---|
CS-18 | TypeError when the issue data does not contain issuelinks field | Pending Dev |
CS-15 | To allow multiple link types for each level | Pending Dev |
CS-10 | To unescape the title which contains special characters | Pending Dev |
How the different join looks like
Left Join (Default)
Key | Summary | Linked Issue | Status |
---|---|---|---|
TIS-100 | TIS bug fix | CS-18 | Pending Dev |
TIS-99 | TIS feature improvement | CS-10 | Pending Dev |
TIS-98 | TIS UI improvement | CS-15 | Pending Dev |
TIS-20 | TIS performance fix |
|
|
Inner Join
Key | Summary | Linked Issue | Status |
---|---|---|---|
TIS-100 | TIS bug fix | CS-18 | Pending Dev |
TIS-99 | TIS feature improvement | CS-10 | Pending Dev |
TIS-98 | TIS UI improvement | CS-15 | Pending Dev |
The row containing TIS-20 is omitted because no issues are linked to it
How to achieve Inner Join
The trick is use the LinkedIssuesOf JQL function (from ScriptRunner Enhanced Search) on the primary set of issues.
It is possible to apply filtering to exclude issues with no matching linked issues.
There are 2 parts
1. Create a JQL filter for the primary set of issues
Head to ScriptRunner Enhanced Search from the Apps menu
Specify the JQL to fetch the linked issues as the parameter for the linkedIssuesOf function
E.g. Fetching linked issues with the status Awaiting Dev and Link Issue Type = is related to
issueFunction in linkedIssuesOf(status in ("Awaiting Dev"), "is related to")
It should display only those issues that have links. You may also add more conditions to do filtering on the primary set of issues.
Click Save as Filter button to save the JQL as a filter to use it in TISSUE
Update the filter options as required
You can choose another meaningful name for your Filter.
2. Use the Filter in Tissue Gadget
Use the created filter in TISSUE by using the JQL command below
filter = <"YourCreatedFilterName">
Now, the Tissue gadget will only display issues with linked issues