diff --git a/doc/user/project/repository/branches/index.md b/doc/user/project/repository/branches/index.md index 3640beebdfb2515a68c84d4d21b883cba55d8b60..c048ae0081794000ad6c8e1734a592292ef9776d 100644 --- a/doc/user/project/repository/branches/index.md +++ b/doc/user/project/repository/branches/index.md @@ -289,7 +289,8 @@ To do this: ## Configure rules for target branches **(PREMIUM ALL)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127115) in GitLab 16.4 [with a flag](../../../../administration/feature_flags.md) named `target_branch_rules_flag`. Enabled by default. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127115) in GitLab 16.4 [with a flag](../../../../administration/feature_flags.md) named `target_branch_rules_flag`. Enabled by default. +> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136431) in GitLab 16.7. Some projects use multiple long-term branches for development, like `develop` and `qa`. In these projects, you might want to keep `main` as the default branch, but expect diff --git a/ee/app/policies/ee/project_policy.rb b/ee/app/policies/ee/project_policy.rb index c84f722fcd0bbdff35ada7c2510d5a8651f16693..affaa2cd866ac7eab3cdd6b489bb5f5fafe54958 100644 --- a/ee/app/policies/ee/project_policy.rb +++ b/ee/app/policies/ee/project_policy.rb @@ -302,11 +302,6 @@ module ProjectPolicy with_scope :subject condition(:target_branch_rules_available) { subject.licensed_feature_available?(:target_branch_rules) } - with_scope :subject - condition(:target_branch_rules_enabled) do - ::Feature.enabled?(:target_branch_rules_flag, subject) - end - condition(:pages_multiple_versions_available) do ::Feature.enabled?(:pages_multiple_versions_setting, @subject) && @subject.licensed_feature_available?(:pages_multiple_versions) @@ -763,13 +758,13 @@ module ProjectPolicy ai_features_enabled & generate_description_enabled & can?(:create_issue) end.enable :generate_description - rule { target_branch_rules_enabled & target_branch_rules_available & maintainer }.policy do + rule { target_branch_rules_available & maintainer }.policy do enable :admin_target_branch_rule end - rule do - target_branch_rules_enabled & target_branch_rules_available - end.enable :read_target_branch_rule + rule { target_branch_rules_available }.policy do + enable :read_target_branch_rule + end rule do (maintainer | owner | admin) & pages_multiple_versions_available diff --git a/ee/config/feature_flags/development/target_branch_rules_flag.yml b/ee/config/feature_flags/development/target_branch_rules_flag.yml deleted file mode 100644 index bee503a70bc6d8f78df9489e1ded6901cfcf8693..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/development/target_branch_rules_flag.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: target_branch_rules_flag -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127115 -rollout_issue_url: -milestone: '16.3' -type: development -group: group::code review -default_enabled: true diff --git a/ee/spec/helpers/merge_requests_helper_spec.rb b/ee/spec/helpers/merge_requests_helper_spec.rb index 3944eeffeedcd782b38e40ad97c94789a820c96b..fa7f1d010c160e467ad327932031382f729d2dd6 100644 --- a/ee/spec/helpers/merge_requests_helper_spec.rb +++ b/ee/spec/helpers/merge_requests_helper_spec.rb @@ -169,16 +169,6 @@ subject(:mr_compare_form_data) { helper.mr_compare_form_data(user, merge_request) } - describe 'when the target_branch_rules_flag flag is disabled' do - before do - stub_feature_flags(target_branch_rules_flag: false) - end - - it 'returns target_branch_finder_path as nil' do - expect(subject[:target_branch_finder_path]).to eq(nil) - end - end - describe 'when the project does not have the correct license' do before do stub_licensed_features(target_branch_rules: false) diff --git a/ee/spec/policies/project_policy_spec.rb b/ee/spec/policies/project_policy_spec.rb index b2ce51ac62dc2062f1fbf9d7bf0570c28a73e6c8..34381b26444061dcea1471b21f597d5c386c9a7c 100644 --- a/ee/spec/policies/project_policy_spec.rb +++ b/ee/spec/policies/project_policy_spec.rb @@ -3073,14 +3073,6 @@ def create_member_role(member, abilities = member_role_abilities) describe 'admin_target_branch_rule policy' do let(:current_user) { owner } - describe 'when the target_branch_rules_flag flag is disabled' do - before do - stub_feature_flags(target_branch_rules_flag: false) - end - - it { is_expected.to be_disallowed(:admin_target_branch_rule) } - end - describe 'when the project does not have the correct license' do before do stub_licensed_features(target_branch_rules: false) @@ -3107,22 +3099,6 @@ def create_member_role(member, abilities = member_role_abilities) describe 'read_target_branch_rule policy' do let(:current_user) { owner } - describe 'when the target_branch_rules_flag flag is disabled' do - before do - stub_feature_flags(target_branch_rules_flag: false) - end - - it { is_expected.to be_disallowed(:read_target_branch_rule) } - end - - describe 'when the project does not have the correct license' do - before do - stub_licensed_features(target_branch_rules: false) - end - - it { is_expected.to be_disallowed(:read_target_branch_rule) } - end - describe 'when the user has permission' do before do stub_licensed_features(target_branch_rules: true) diff --git a/ee/spec/requests/projects/target_branch_rules_controller_spec.rb b/ee/spec/requests/projects/target_branch_rules_controller_spec.rb index b5e7e993580eea42633952c44c6ef059a3832917..5e1d02c408467eba31f1d32c15fd62f3e797bcb1 100644 --- a/ee/spec/requests/projects/target_branch_rules_controller_spec.rb +++ b/ee/spec/requests/projects/target_branch_rules_controller_spec.rb @@ -11,18 +11,6 @@ end describe 'GET #index' do - describe 'when the target_branch_rules_flag flag is disabled' do - before do - stub_feature_flags(target_branch_rules_flag: false) - end - - it 'returns 404' do - get project_target_branch_rules_path(project) - - expect(response).to have_gitlab_http_status(:not_found) - end - end - describe 'when the project does not have the correct license' do before do stub_licensed_features(target_branch_rules: false) @@ -35,10 +23,10 @@ end end - describe 'when target_branch_rules_flag is enabled and project has the correct license' do + describe 'when the project has the correct license' do before do - stub_licensed_features(target_branch_rules: true) create(:target_branch_rule, project: project, name: 'feature', target_branch: 'other-branch') + stub_licensed_features(target_branch_rules: true) end it 'calls TargetBranchRules::FindService' do @@ -60,18 +48,6 @@ describe 'POST #create' do let(:params) { { name: 'dev/*', target_branch: 'develop' } } - describe 'when the target_branch_rules_flag flag is disabled' do - before do - stub_feature_flags(target_branch_rules_flag: false) - end - - it 'returns 404' do - post project_target_branch_rules_path(project), params: { projects_target_branch_rule: params } - - expect(response).to have_gitlab_http_status(:not_found) - end - end - describe 'when the project does not have the correct license' do before do stub_licensed_features(target_branch_rules: false) @@ -116,18 +92,6 @@ describe 'POST #destroy' do let(:params) { { name: 'dev/*', target_branch: 'develop' } } - describe 'when the target_branch_rules_flag flag is disabled' do - before do - stub_feature_flags(target_branch_rules_flag: false) - end - - it 'returns 404' do - delete project_target_branch_rule_path(project, non_existing_record_id) - - expect(response).to have_gitlab_http_status(:not_found) - end - end - describe 'when the project does not have the correct license' do before do stub_licensed_features(target_branch_rules: false) diff --git a/ee/spec/services/target_branch_rules/create_service_spec.rb b/ee/spec/services/target_branch_rules/create_service_spec.rb index 0729732bf6465b23dae9068598e9e3a19f65869c..317706072b1e1c830a0a798b4ca702024a4ead0d 100644 --- a/ee/spec/services/target_branch_rules/create_service_spec.rb +++ b/ee/spec/services/target_branch_rules/create_service_spec.rb @@ -9,19 +9,6 @@ subject(:service) { described_class.new(project, user, params) } - describe 'when the target_branch_rules_flag flag is disabled' do - before do - stub_feature_flags(target_branch_rules_flag: false) - end - - it 'returns an error' do - response = service.execute - - expect(response[:status]).to eq(:error) - expect(response[:message]).to eq(_('You have insufficient permissions to create a target branch rule')) - end - end - describe 'when the project does not have the correct license' do before do stub_licensed_features(target_branch_rules: false) diff --git a/ee/spec/services/target_branch_rules/destroy_service_spec.rb b/ee/spec/services/target_branch_rules/destroy_service_spec.rb index 21d62f6770c7357ebdf033daab19485e8b26bc59..f295624bae2f7b3d6e21cfdf2625cbe2d182364a 100644 --- a/ee/spec/services/target_branch_rules/destroy_service_spec.rb +++ b/ee/spec/services/target_branch_rules/destroy_service_spec.rb @@ -10,19 +10,6 @@ subject(:service) { described_class.new(project, user, params) } - describe 'when the target_branch_rules_flag flag is disabled' do - before do - stub_feature_flags(target_branch_rules_flag: false) - end - - it 'returns an error' do - response = service.execute - - expect(response[:status]).to eq(:error) - expect(response[:message]).to eq(_('You have insufficient permissions to delete a target branch rule')) - end - end - describe 'when the project does not have the correct license' do before do stub_licensed_features(target_branch_rules: false) diff --git a/ee/spec/services/target_branch_rules/find_service_spec.rb b/ee/spec/services/target_branch_rules/find_service_spec.rb index c3566ba1b6e085e65b1417f8bae735c62a8d0b99..2d611062688bca761241bb95fbfea8e62403adec 100644 --- a/ee/spec/services/target_branch_rules/find_service_spec.rb +++ b/ee/spec/services/target_branch_rules/find_service_spec.rb @@ -12,16 +12,6 @@ create(:target_branch_rule, project: project, name: 'dev/*', target_branch: 'dev-target') end - describe 'when the target_branch_rules_flag flag is disabled' do - before do - stub_feature_flags(target_branch_rules_flag: false) - end - - it 'returns default branch' do - expect(finder.execute('dev/testing')).to eq('master') - end - end - describe 'when the project does not have the correct license' do before do stub_licensed_features(target_branch_rules: false)