Use detailed information provided for each failed merge check in the Merge Widget summary
The backend is going to be adding a new GraphQL resource that returns all the failed merge checks: #423110 (closed)
This issue is to use that new information on the merge widget
See &11236 (comment 1517269452) for more details
Target layout
UI Documentation
Pajamas specifies the Merge request reports parameters.
Seems like we should at least attempt to conform, however being the Merge widget we might be allowed to step somewhat outside the lines for usability purposes:
Response
Backend will provide in #423110 (closed) a list of details for each check.
Something along the lines of:
[
{
checkName: 'drafts',
resultMessage: 'Select Mark as ready to remove it from Draft status.',
result: 'failed', // failed | passed | allowed_to_fail
},
...
]
Implementation details
Each check needs to have its own possible configuration of actions/options.
ie, these ones don't have any further actions apart from the message provided by the server:
- Pipeline
- Approval
- Blocking merge requests
- External status checks
- License policy violation
- Jira association missing (is this a merge check? I guess so)
These have (at least one) actions:
- Conflicts
- Rebase
- Draft
- Unresolved discussions
Checks and "checks"
Not all checks shown to the user come via the same unified detailedMergeStatus
. Some come through separate properties, for example:
- Conflicts
-
detailedMergeStatus
:BROKEN_STATUS
-
conflicts
:true
-
![](/-/project/278964/uploads/fb737b6a91671f01f50e47f21890dfe3/Screenshot_2023-09-15_at_19.21.43.png)
For this purpose, if the backend doesn't provide all the checks in the same place, we'll need to temporarily merge it from other parts of the query response until the BE is updated.
Availability and Testing
Add additional spec/requests/api/graphql
specs for new endpoint.