gitlab-org--gitlab-foss/app/models/concerns/security/latest_pipeline_information.rb

37 lines
1.0 KiB
Ruby

# frozen_string_literal: true
module Security
module LatestPipelineInformation
private
def scanner_enabled?(scan_type)
latest_builds_reports.include?(scan_type)
end
def latest_builds_reports(only_successful_builds: false)
strong_memoize("latest_builds_reports_#{only_successful_builds}") do
builds = latest_security_builds
builds = builds.select { |build| build.status == 'success' } if only_successful_builds
builds.flat_map do |build|
build.options[:artifacts][:reports].keys
end
end
end
def latest_security_builds
return [] unless latest_default_branch_pipeline
::Security::SecurityJobsFinder.new(pipeline: latest_default_branch_pipeline).execute +
::Security::LicenseComplianceJobsFinder.new(pipeline: latest_default_branch_pipeline).execute
end
def latest_default_branch_pipeline
strong_memoize(:pipeline) { latest_pipeline }
end
def auto_devops_source?
latest_default_branch_pipeline&.auto_devops_source?
end
end
end