Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/ci/parsers/sbom/cyclonedx.rb')
-rw-r--r--lib/gitlab/ci/parsers/sbom/cyclonedx.rb16
1 files changed, 6 insertions, 10 deletions
diff --git a/lib/gitlab/ci/parsers/sbom/cyclonedx.rb b/lib/gitlab/ci/parsers/sbom/cyclonedx.rb
index aa594ca4049..bc62fbe55ec 100644
--- a/lib/gitlab/ci/parsers/sbom/cyclonedx.rb
+++ b/lib/gitlab/ci/parsers/sbom/cyclonedx.rb
@@ -61,23 +61,19 @@ module Gitlab
end
def parse_components
- data['components']&.each do |component_data|
- type = component_data['type']
- next unless supported_component_type?(type)
-
+ data['components']&.each_with_index do |component_data, index|
component = ::Gitlab::Ci::Reports::Sbom::Component.new(
- type: type,
+ type: component_data['type'],
name: component_data['name'],
+ purl: component_data['purl'],
version: component_data['version']
)
- report.add_component(component)
+ report.add_component(component) if component.ingestible?
+ rescue ::Sbom::PackageUrl::InvalidPackageUrl
+ report.add_error("/components/#{index}/purl is invalid")
end
end
-
- def supported_component_type?(type)
- ::Enums::Sbom.component_types.include?(type.to_sym)
- end
end
end
end