Add a project setting to block merge requests from being merged if status checks are not passing
Problem description
As described in the parent epic &8516 (closed) merge requests can be merged even if the status checks are pending or failed.
Proposal
Add a new project-level setting to block merge requests from being merged unless status checks all passed.
If enabled and status checks are failing / pending then merge requests should be blocked from merging.
Implementation plan
- Add a feature flag for the new setting and link the issue to the epic.
- Add a new project-level setting.
- Make change to GET and PUT API
/api/v4/projects/:id
to set setting value - Block merge requests from being merged if the setting is enabled and status checks are not passing use mergeability framework for this.
- Add the value of the attribute in the merge request poll cached widget entity. The attribute will be
true
when the setting is enabled and not all status checks are passing andfalse
if setting is disabled or all the status checks have passed when setting enabled. - Update specs.
- Update documentation.
The frontend setting will be added in Add a checkbox for the new project setting to b... (#369860 - closed).
The frontend merge button will be done in Disable merge button when status checks are req... (#369861 - closed).
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.