lib/gitlab/ci/parsers/sbom/license/common.rb (34 lines of code) (raw):
# frozen_string_literal: true
module Gitlab
module Ci
module Parsers
module Sbom
module License
class Common
def self.parse(data, is_container_scanning)
license = is_container_scanning ? ContainerScanning.new(data) : new(data)
license.parse
end
def initialize(data)
@data = data
end
def parse
license = data['license']
return unless license
# A license must have either id or name
return unless license['id'].present? || license['name'].present?
parsed_license(license)
end
private
attr_reader :data
def parsed_license(license)
::Gitlab::Ci::Reports::Sbom::License.new(
spdx_identifier: license['id'],
name: license['name'],
url: license['url']
)
end
end
end
end
end
end
end