Issue Summary
When Epics or features are canceled/deleted, and we fetch the item over API, the releaseId(s) field will be set to 'empty' (for Epic) and '-2' (for Features).
This makes it impossible to filter items that are deleted
When accessing the recycle bin on the UI, you can filter the Features/Epics by Program and/or PI (as there is the dropdown there)
Finally, the fact that Features uses '-2' and Epics uses an 'empty array' is confusing.
Steps to Reproduce
Epics
- Create an Epic and perform a GET operation on its ID
- Notice that the releaseIds field is populated with values.
{ "id": 7196, "title": "FXPAPIDelete", "createDate": "2023-09-18T09:08:21Z", "ownerId": "661802", "themeId": null, "strategicDriver": null, "description": "FXPAPIDelete", "primaryProgramId": 627, "tags": null, "state": 1, "processStepId": 982, "processStepName": "982 - Starting work", [...] "hypothesis": null, "designStage": null, "prototype": null, "leanUxCanvas": null, "workCodeId": null, "score": { "cost": "", "profitPotential": "", "timeToMarket": "", "developmentRisks": "", "score": 0.625 }, "releaseIds": [ 403, 712 ], "additionalProgramIds": [ 450 ], "additionalProcessStepIds": [ 979 ], "points": [ { "releaseId": 403, "estimationSystem": "Points", "estimationValue": "0" }, { "releaseId": 712, "estimationSystem": "Points", "estimationValue": "0" } ], "externalKey": null, [...] "links": [], "self": "https://<instance-name>.jiraalign.com/rest/align/api/2/epics/7196" }
- On the UI, click on Delete in the Epic grid slide-out.
- Perform a GET operation on its ID again, and notice the releaseIds field is set to an empty array.
{ "id": 7196, "title": "FXPAPIDelete", "createDate": "2023-09-18T09:08:21Z", "ownerId": "661802", "themeId": null, "strategicDriver": null, "description": "FXPAPIDelete", "primaryProgramId": null, "tags": null, "state": 1, "processStepId": 982, "processStepName": "982 - Starting work", [...] "hypothesis": null, "designStage": null, "prototype": null, "leanUxCanvas": null, "workCodeId": null, "score": { "cost": "", "profitPotential": "", "timeToMarket": "", "developmentRisks": "", "score": 0.625 }, "releaseIds": [], "additionalProgramIds": [ 450 ], "additionalProcessStepIds": [ 979 ], "points": [], "externalKey": null, [...] "links": [], "self": "https://<instance-name>.jiraalign.com/rest/align/api/2/epics/7196" }
Features
- Create a Feature and perform a GET operation on its ID
- Notice that the releaseId is populated with a value.
{ "id": 13740, "title": "FxTestAPIDelete", "description": "FxTestAPIDelete", "releaseId": 594, "ownerId": "661802", "state": 0, "createDate": "2023-04-17T04:14:15Z", "type": 1, "mmf": 0, "isBlocked": 0, "priority": null, "primaryProgramId": 627, [...] "vehicleId": null, "processStepId": 896, "processStepName": "896 - Analysing", "additionalProcessStepIds": [], "manWeeks": null, "isImport": null, "externalKey": null, "estimateTshirt": null, "parentSplitId": null, "externalId": null, "jiraProjectKey": "FXPONP2", "featureSummary": FxTestAPIDelete", "externalProject": null, [...] "releaseVehicleIds": [], "additionalProgramIds": [], "productObjectiveIds": [], "affectedCountryIds": [], "testCategoryIds": [], "customFields": null, "links": [], "self": "https://<instance-name>.jiraalign.com/rest/align/api/2/features/13740" }
- On the UI, click on Delete in the Feature grid slide-out.
- Perform a GET operation on its ID again, and notice the releaseId is set to -2.
{ "id": 13740, "title": "FxTestAPIDelete", "description": "FxTestAPIDelete", "releaseId": -2, "ownerId": "661802", "state": 0, "createDate": "2023-04-17T04:14:15Z", "type": 1, "mmf": 0, "isBlocked": 0, "priority": null, "primaryProgramId": 627, [...] "vehicleId": null, "processStepId": 896, "processStepName": "896 - Analysing", "additionalProcessStepIds": [], "manWeeks": null, "isImport": null, "externalKey": null, "estimateTshirt": null, "parentSplitId": null, "externalId": null, "jiraProjectKey": "FXPONP2", "featureSummary": FxTestAPIDelete", "externalProject": null, [...] "releaseVehicleIds": [], "additionalProgramIds": [], "productObjectiveIds": [], "affectedCountryIds": [], "testCategoryIds": [], "customFields": null, "links": [], "self": "https://<instance-name>.jiraalign.com/rest/align/api/2/features/13740" }
Expected Results
- Epics and Features exhibit the same behavior and the releaseId information is kept when performing a GET call on the deleted items
Actual Results
- Epics and Features don't have any more release information when performing a GET call on the deleted items
Workaround
Currently, there is no known workaround for this behavior. A workaround will be added here when available
- resolves
-
PS-138715 Loading...