Default Merge request approvals settings not properly reflected in UI
Summary
Newly created projects default settings for Merge request approvals
do not show 'enabled' in UI
Specifically looking at merge_requests_author_approval
which is set to nil
, this still enforces the setting but is confusing as it shows unchecked in the UI.
Steps to reproduce
-
Create a new Project
-
Review
Prevent MR approvals by the author
check box in Settings > General > Merge request approvals. -
Confirm Settings (Get Approvers via API / Rails Console )
# Gitlab.com Reproduced: https://gitlab.com/davinwalker/default-public
curl -H "Private-Token: $TOKEN" https://gitlab.com/api/v4/projects/23970430/approvals
{
"approvers": [],
"approver_groups": [],
"approvals_before_merge": 0,
"reset_approvals_on_push": true,
"disable_overriding_approvers_per_merge_request": null,
"merge_requests_author_approval": null,
"merge_requests_disable_committers_approval": null,
"require_password_to_approve": null
}
# Rails Console
default = Project.find(5)
default.merge_requests_author_approval
#=> nil
What is the current bug behavior?
Default values are nil
which enables the default behavior but also causes the UI to be misleading.
What is the expected correct behavior?
UI should correctly reflect the behavior
Relevant logs and/or screenshots
Workaround
Toggling the setting in the UI will cause it to be explicitly set to true
/false
both enabling functionality and correctly displaying the setting.
Possible fixes
Rather than set to nil
set to true/false by default.