Commit f2ced743 authored by Michał Zając's avatar Michał Zając

Cleanup show_report_validation_warnings flag

Changelog: other
parent 964c59c0
---
name: show_report_validation_warnings
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80930
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/353125
milestone: '14.9'
type: development
group: group::threat insights
default_enabled: true
...@@ -43,8 +43,14 @@ module Gitlab ...@@ -43,8 +43,14 @@ module Gitlab
attr_reader :json_data, :report, :validate attr_reader :json_data, :report, :validate
def valid? def valid?
if Feature.enabled?(:show_report_validation_warnings, default_enabled: :yaml) # We want validation to happen regardless of VALIDATE_SCHEMA
# We want validation to happen regardless of VALIDATE_SCHEMA CI variable # CI variable.
#
# Previously it controlled BOTH validation and enforcement of
# schema validation result.
#
# After 15.0 we will enforce schema validation by default
# See: https://gitlab.com/groups/gitlab-org/-/epics/6968
schema_validation_passed = schema_validator.valid? schema_validation_passed = schema_validator.valid?
if validate if validate
...@@ -57,13 +63,6 @@ module Gitlab ...@@ -57,13 +63,6 @@ module Gitlab
true true
end end
else
return true if !validate || schema_validator.valid?
schema_validator.errors.each { |error| report.add_error('Schema', error) }
false
end
end end
def schema_validator def schema_validator
......
...@@ -38,11 +38,6 @@ RSpec.describe Gitlab::Ci::Parsers::Security::Common do ...@@ -38,11 +38,6 @@ RSpec.describe Gitlab::Ci::Parsers::Security::Common do
allow(validator_class).to receive(:new).and_call_original allow(validator_class).to receive(:new).and_call_original
end end
context 'when show_report_validation_warnings is enabled' do
before do
stub_feature_flags(show_report_validation_warnings: true)
end
context 'when the validate flag is set to `false`' do context 'when the validate flag is set to `false`' do
let(:validate) { false } let(:validate) { false }
let(:valid?) { false } let(:valid?) { false }
...@@ -144,71 +139,6 @@ RSpec.describe Gitlab::Ci::Parsers::Security::Common do ...@@ -144,71 +139,6 @@ RSpec.describe Gitlab::Ci::Parsers::Security::Common do
end end
end end
context 'when show_report_validation_warnings is disabled' do
before do
stub_feature_flags(show_report_validation_warnings: false)
end
context 'when the validate flag is set as `false`' do
let(:validate) { false }
it 'does not run the validation logic' do
parse_report
expect(validator_class).not_to have_received(:new)
end
end
context 'when the validate flag is set as `true`' do
let(:validate) { true }
let(:valid?) { false }
before do
allow_next_instance_of(validator_class) do |instance|
allow(instance).to receive(:valid?).and_return(valid?)
allow(instance).to receive(:errors).and_return(['foo'])
end
allow(parser).to receive_messages(create_scanner: true, create_scan: true)
end
it 'instantiates the validator with correct params' do
parse_report
expect(validator_class).to have_received(:new).with(report.type, {}, report.version)
end
context 'when the report data is not valid according to the schema' do
it 'adds errors to the report' do
expect { parse_report }.to change { report.errors }.from([]).to([{ message: 'foo', type: 'Schema' }])
end
it 'does not try to create report entities' do
parse_report
expect(parser).not_to have_received(:create_scanner)
expect(parser).not_to have_received(:create_scan)
end
end
context 'when the report data is valid according to the schema' do
let(:valid?) { true }
it 'does not add errors to the report' do
expect { parse_report }.not_to change { report.errors }.from([])
end
it 'keeps the execution flow as normal' do
parse_report
expect(parser).to have_received(:create_scanner)
expect(parser).to have_received(:create_scan)
end
end
end
end
end
context 'report parsing' do context 'report parsing' do
before do before do
artifact.each_blob { |blob| described_class.parse!(blob, report, vulnerability_finding_signatures_enabled) } artifact.each_blob { |blob| described_class.parse!(blob, report, vulnerability_finding_signatures_enabled) }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment