lib/release_tools/patch_release/blog_post/metadata.rb (50 lines of code) (raw):
# frozen_string_literal: true
module ReleaseTools
module PatchRelease
module BlogPost
class Metadata
include Utils
CRITICAL_TITLE_HEADER = 'Critical'
SECURITY_TAG = 'security'
SINGLE_VERSION_TEMPLATE_FILENAME = 'patch_release_single_version_template'
MULTIPLE_VERSIONS_TEMPLATE_FILENAME = 'new_patch_release_template'
attr_reader :patch_coordinator, :versions
def initialize(patch_coordinator:, versions:)
@patch_coordinator = patch_coordinator
@versions = versions
end
def blog_title
"GitLab #{title_header} Patch Release: #{versions_str}".squish
end
def blog_description
"Learn more about GitLab #{title_header} Patch Release: #{versions_str} for GitLab Community Edition (CE) and Enterprise Edition (EE).".squish
end
def blog_tags
SECURITY_TAG unless patch_coordinator.single_version?
end
def canonical_path
return if patch_coordinator.single_version?
date = Time.now.utc + 1.day
"/releases/#{date.strftime('%Y/%m/%d')}/patch-release-gitlab-#{hyphenated_version}-released/"
end
def title_header
critical_patch_release? ? CRITICAL_TITLE_HEADER : ''
end
def author_gitlab
ENV.fetch('USER', 'GITLAB_USERNAME')
end
def template_path
file_name = if patch_coordinator.single_version?
SINGLE_VERSION_TEMPLATE_FILENAME
else
MULTIPLE_VERSIONS_TEMPLATE_FILENAME
end
"templates/blog_posts/#{file_name}.html.md.erb"
end
private
def critical_patch_release?
ReleaseTools::SharedStatus.critical_patch_release?
end
end
end
end
end