Support running different sets of mergeability checks
What does this MR do and why?
We need to add more mergeability checks to the mergeability
framework. But they are called in a different order in
MergeRequest#mergeable?
.
To be able to do that, we define 2 different sets of mergeability
checks: mergeable_state_checks
and mergeable_git_state_checks
.
The mergeable_state_checks
contains the existing checks while the
new mergeable_git_state_checks
contains 2 new checks:
CheckConflictStatusService
CheckRebaseStatusService
They replace old check in #mergeable?
that checks:
can_be_merged? && (!should_be_rebased? || skip_rebase_check)
This is all needed in preparation to expose all merge check statuses in GraphQL API: !132349 (merged).
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Related to #423110 (closed)
Edited by Patrick Bajao