Migrate `ApprovalMergeRequestFallback` to an actual approval rule.
Right now when we want to specify a minimum number of approvals but do not specify which users/groups can approve, we store that number in Project#approvals_before_merge
and allow overriding that in MergeRequest#approvals_before_merge
.
To deal with those values in the same way we do for all other approval rules, we wrap this up in an ApprovalMergeRequestFallback
object. We did it like this to not have to migrate the existing data and keep them in sync while we were working on the new approval rules feature.
I think the implementation for this would be much simpler if we migrated these values to into actual Approval(Project|MergeRequest)Rule
s that don't have any linked users
or groups
. Then all approval information is stored in the same 2 rule tables, instead of spread over 4 tables.