lib/release_tools/internal_release/finalize/release_managers_notifier.rb (51 lines of code) (raw):
# frozen_string_literal: true
module ReleaseTools
module InternalRelease
module Finalize
class ReleaseManagersNotifier < PackageAvailabilityBaseNotifier
def initialize(versions)
@versions = versions
end
private
attr_reader :versions
def project
ReleaseTools::Project::Release::Tasks
end
def regular_versions
versions.map(&:to_minor).join(' and ')
end
def internal_task_issue
@internal_task_issue ||=
Retriable.with_context(:api) do
client.issues(project, options).first
end
end
def release_managers
@release_managers ||= ReleaseTools::ReleaseManagers::Schedule.new
end
def usernames(users)
users.map do |user|
"@#{user.username}"
end.join(' ')
end
def template
File.read(
File.expand_path('../../../../templates/internal_release_issue_note.md.erb', __dir__)
)
end
def perform_notification
notify_slack_package_availability
notify_issue(internal_task_issue, body)
end
def notify_slack_package_availability
ReleaseTools::Slack::InternalRelease::PackageAvailabilityNotifier.new(versions).execute
end
def job_type
'Notifying internal release about package availability'
end
def target_group
'release managers'
end
end
end
end
end