From 43f385c185b094b8ec874d5c7123dcf9e78db63c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thiago=20Figueir=C3=B3?= <tfigueiro@gitlab.com> Date: Thu, 15 Feb 2024 10:15:53 +0000 Subject: [PATCH] Remove FF dependency_scanning_on_advisory_ingestion Changelog: other EE: true --- .../index.md | 5 +-- ee/app/policies/ee/project_policy.rb | 9 +--- .../ingestion/advisory/ingestion_service.rb | 5 --- ...endency_scanning_on_advisory_ingestion.yml | 8 ---- ..._continuous_vulnerability_scanning_spec.rb | 41 +++++-------------- .../advisory/ingestion_service_spec.rb | 17 ++++---- 6 files changed, 21 insertions(+), 64 deletions(-) delete mode 100644 ee/config/feature_flags/development/dependency_scanning_on_advisory_ingestion.yml diff --git a/doc/user/application_security/continuous_vulnerability_scanning/index.md b/doc/user/application_security/continuous_vulnerability_scanning/index.md index c5659cae6107b..3dc40244a0646 100644 --- a/doc/user/application_security/continuous_vulnerability_scanning/index.md +++ b/doc/user/application_security/continuous_vulnerability_scanning/index.md @@ -12,10 +12,7 @@ DETAILS: > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/371063) in GitLab 16.4 as an [Experiment](../../../policy/experiment-beta-support.md#experiment) with two [features flags](../../../administration/feature_flags.md) named `dependency_scanning_on_advisory_ingestion` and `package_metadata_advisory_sync`. Enabled by default. > - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/427424) in GitLab 16.7 with an additional feature flag named `global_dependency_scanning_on_advisory_ingestion`. Enabled by default. - -FLAG: -On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable the feature flags](../../feature_flags.md) named `dependency_scanning_on_advisory_ingestion`. -On GitLab.com, this feature is available. +> - [Feature flag `dependency_scanning_on_advisory_ingestion` removed](https://gitlab.com/gitlab-org/gitlab/-/issues/425753) in GitLab 16.10. Continuous Vulnerability Scanning detects new vulnerabilities outside a pipeline. Your projects are automatically scanned whenever advisories are added to the [`GitLab Advisory Database`](https://advisories.gitlab.com/). diff --git a/ee/app/policies/ee/project_policy.rb b/ee/app/policies/ee/project_policy.rb index 98dc2ac6fa601..a76cafec400ed 100644 --- a/ee/app/policies/ee/project_policy.rb +++ b/ee/app/policies/ee/project_policy.rb @@ -447,6 +447,7 @@ module ProjectPolicy enable :read_project_audit_events enable :read_product_analytics enable :create_workspace + enable :enable_continuous_vulnerability_scans end rule { can?(:reporter_access) & iterations_available }.policy do @@ -694,10 +695,6 @@ module ProjectPolicy .default_project_deletion_protection end - condition(:continuous_vulnerability_scanning_available) do - ::Feature.enabled?(:dependency_scanning_on_advisory_ingestion) - end - desc "Custom role on project that enables manage project access tokens" condition(:role_enables_manage_project_access_tokens) do ::Auth::MemberRoleAbilityLoader.new( @@ -883,10 +880,6 @@ module ProjectPolicy (maintainer | owner | admin) & pages_multiple_versions_available end.enable :pages_multiple_versions - rule { continuous_vulnerability_scanning_available & can?(:developer_access) }.policy do - enable :enable_continuous_vulnerability_scans - end - rule { can?(:reporter_access) & tracing_enabled }.policy do enable :read_tracing end diff --git a/ee/app/services/package_metadata/ingestion/advisory/ingestion_service.rb b/ee/app/services/package_metadata/ingestion/advisory/ingestion_service.rb index 5e1e9f78be972..f11c082ac0e12 100644 --- a/ee/app/services/package_metadata/ingestion/advisory/ingestion_service.rb +++ b/ee/app/services/package_metadata/ingestion/advisory/ingestion_service.rb @@ -38,11 +38,6 @@ def publish! source_xid = data_object.source_xid advisory_xid = data_object.advisory_xid - if source_xid == 'glad' && Feature.disabled?(:dependency_scanning_on_advisory_ingestion) - log_skipped_advisory(source_xid, advisory_xid) - next - end - if source_xid == 'trivy-db' && Feature.disabled?(:container_scanning_continuous_vulnerability_scans, Feature.current_request, type: :beta) log_skipped_advisory(source_xid, advisory_xid) diff --git a/ee/config/feature_flags/development/dependency_scanning_on_advisory_ingestion.yml b/ee/config/feature_flags/development/dependency_scanning_on_advisory_ingestion.yml deleted file mode 100644 index 6f913b849434e..0000000000000 --- a/ee/config/feature_flags/development/dependency_scanning_on_advisory_ingestion.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: dependency_scanning_on_advisory_ingestion -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127805 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/419550 -milestone: '16.3' -type: development -group: group::composition analysis -default_enabled: true diff --git a/ee/spec/requests/api/graphql/mutations/security/configuration/project_set_continuous_vulnerability_scanning_spec.rb b/ee/spec/requests/api/graphql/mutations/security/configuration/project_set_continuous_vulnerability_scanning_spec.rb index f506b651045f0..c1101d32f6202 100644 --- a/ee/spec/requests/api/graphql/mutations/security/configuration/project_set_continuous_vulnerability_scanning_spec.rb +++ b/ee/spec/requests/api/graphql/mutations/security/configuration/project_set_continuous_vulnerability_scanning_spec.rb @@ -35,40 +35,21 @@ project.add_developer(current_user) end - context 'and feature is enabled' do - before do - stub_feature_flags(dependency_scanning_on_advisory_ingestion: true) - end - - where(:value_before, :enable, :value_after) do - true | false | false - true | true | true - false | true | true - false | false | false - end - - with_them do - it 'updates the project setting and returns the new value' do - post_graphql_mutation(mutation, current_user: current_user) - - response = graphql_mutation_response(mutation_name) - expect(response).to include({ 'continuousVulnerabilityScanningEnabled' => value_after, 'errors' => [] }) - - expect(security_setting.reload.continuous_vulnerability_scans_enabled).to eq(value_after) - end - end + where(:value_before, :enable, :value_after) do + true | false | false + true | true | true + false | true | true + false | false | false end - context 'and feature is disabled' do - before do - stub_feature_flags(dependency_scanning_on_advisory_ingestion: false) - end + with_them do + it 'updates the project setting and returns the new value' do + post_graphql_mutation(mutation, current_user: current_user) - it_behaves_like 'a mutation that returns a top-level access error' + response = graphql_mutation_response(mutation_name) + expect(response).to include({ 'continuousVulnerabilityScanningEnabled' => value_after, 'errors' => [] }) - it 'does not enable cvs' do - expect { post_graphql_mutation(mutation, current_user: current_user) } - .not_to change { security_setting.reload.continuous_vulnerability_scans_enabled } + expect(security_setting.reload.continuous_vulnerability_scans_enabled).to eq(value_after) end end end diff --git a/ee/spec/services/package_metadata/ingestion/advisory/ingestion_service_spec.rb b/ee/spec/services/package_metadata/ingestion/advisory/ingestion_service_spec.rb index 2c4558fb25106..54d4d7efab907 100644 --- a/ee/spec/services/package_metadata/ingestion/advisory/ingestion_service_spec.rb +++ b/ee/spec/services/package_metadata/ingestion/advisory/ingestion_service_spec.rb @@ -12,11 +12,11 @@ let(:old_advisories) { build_list(:pm_advisory_data_object, 5, published_date: Time.zone.now - 14.days - 1.second) } let(:import_data) { recent_advisories + old_advisories } - where(:ds_ff_enabled, :cs_ff_enabled) do - true | true - true | false - false | true - false | false + where(:cs_ff_enabled) do + [ + true, + false + ] end with_them do @@ -31,7 +31,6 @@ end before do - stub_feature_flags(dependency_scanning_on_advisory_ingestion: ds_ff_enabled) value = cs_ff_enabled ? 100 : 0 Feature.enable_percentage_of_actors(:container_scanning_continuous_vulnerability_scans, value) allow(Gitlab::AppJsonLogger).to receive(:warn).and_call_original @@ -51,20 +50,20 @@ .pluck(:source_xid, :advisory_xid) expected = recent_advisories.filter_map do |obj| - if (obj.source_xid == 'glad' && ds_ff_enabled) || (obj.source_xid == 'trivy-db' && cs_ff_enabled) + if (obj.source_xid == 'glad') || (obj.source_xid == 'trivy-db' && cs_ff_enabled) [obj.source_xid, obj.advisory_xid] end end expect(received_advisories).to match_array(expected) - if ds_ff_enabled || cs_ff_enabled + if cs_ff_enabled expect(Gitlab::AppJsonLogger).to have_received(:info) .with(message: 'Queued scan for advisory', source_xid: anything, advisory_xid: anything) .at_least(:once) end - if !ds_ff_enabled || !cs_ff_enabled + unless cs_ff_enabled expect(Gitlab::AppJsonLogger).to have_received(:warn) .with(message: 'Skipped scan for advisory', source_xid: anything, advisory_xid: anything) .at_least(:once) -- GitLab