lib/release_tools/patch_release/security_issue.rb (83 lines of code) (raw):

# frozen_string_literal: true module ReleaseTools module PatchRelease class SecurityIssue < Issue include ::ReleaseTools::Security::ComponentBranchHelper include ::ReleaseTools::Security::IssueHelper include ::SemanticLogger::Loggable RELEASE_TYPE = 'patch' def create release_pipeline super end def title if regular? "Patch release: #{versions_title}" else "Critical patch release: #{versions_title}" end end def confidential? true end def labels "#{super},security" end def critical? ReleaseTools::SharedStatus.critical_patch_release? end def regular? !critical? end def version ReleaseTools::Versions.latest(versions, 1).first end def versions patch_release_coordinator.versions end def helm_tag(version) "v#{helm_version(version)}" end def blog_post_merge_request # This overrides the method defined in PatchRelease::Issue # to do nothing since we do not have a blog merge request class for security issues. end def add_blog_mr_to_description # This overrides the method defined in PatchRelease::Issue # to do nothing since we have not automated the blog merge request for security issues. end # Returns lists of projects that are not automatically processed by release tooling def unsupported_projects_list ReleaseTools::ManagedVersioning::PROJECTS_NEEDING_MANUAL_RELEASES .map(&:metadata_project_name) .join(', ') end def due_date security_tracking_issue.due_date end def security_release_tracking_issue security_tracking_issue end def version_type if critical? 'Critical' else 'Non Critical' end end protected def template_path File.expand_path('../../../templates/patch.md.erb', __dir__) end def patch_release_coordinator ReleaseTools::PatchRelease::Coordinator.new end def versions_title versions.join(', ') end def helm_version(version) ReleaseTools::Helm::HelmVersionFinder.new.execute(version) end def pipeline_variables { SECURITY_RELEASE_PIPELINE: 'true', SECURITY: ENV.fetch('SECURITY', nil) } end end end end