lib/release_tools/patch_release/issue.rb (58 lines of code) (raw):

# frozen_string_literal: true module ReleaseTools module PatchRelease class Issue < ReleaseTools::Issue BLOG_MR_STRING_IN_DESCRIPTION = 'BLOG_POST_MR' def title "Release #{version.to_ce}" end def labels 'Monthly Release' end def project ReleaseTools::Project::Release::Tasks end def monthly_issue @monthly_issue ||= ReleaseTools::MonthlyIssue.new(version: version) end def link! return if version.nil? || version.monthly? ReleaseTools::GitlabClient.link_issues(self, monthly_issue) end def assignees ReleaseManagers::Schedule.new.active_release_managers.collect(&:id) rescue ReleaseManagers::Schedule::VersionNotFoundError nil end def blog_post_merge_request @blog_post_merge_request ||= BlogPost::MergeRequestFactory.create(patch_coordinator:) end def add_blog_mr_to_description(blog_mr_url) return if dry_run? Retriable.with_context(:api) do current_description = remote_issuable.description GitlabClient.edit_issue( project.path, iid, description: current_description.sub(BLOG_MR_STRING_IN_DESCRIPTION, blog_mr_url) ) end end def projects ReleaseTools::ManagedVersioning::PROJECTS - [ReleaseTools::Project::GitlabEe] end def omnibus_package(ee: true) version.to_omnibus(ee: ee) end def omnibus_package_for_the_current_version version.to_omnibus(ee: true).tr('+', '-') end protected def template_path File.expand_path('../../../templates/single_version_patch.md.erb', __dir__) end def patch_coordinator ReleaseTools::PatchRelease::Coordinator.new(version: version) end end end end