lib/release_tools/update_kas_merge_request.rb (45 lines of code) (raw):

# frozen_string_literal: true module ReleaseTools class UpdateKasMergeRequest < MergeRequest STALE_AFTER = 1.day.ago NOTIFIED_LABEL = 'auto updated' def title "Update KAS version" end def labels %w[ automation:bot-authored KAS type::maintenance maintenance::dependency group::environments ] end def target_branch Project::Kas.default_branch end def fresh? return false unless exists? Time.parse(remote_issuable.created_at) >= STALE_AFTER end def notifiable? return false unless exists? return false if fresh? # When we first consider the merge request stale, a specific label is # applied. Checking for the label prevents us from sending multiple # notifications for the same merge request. remote_issuable.labels.exclude?(NOTIFIED_LABEL) end def mark_as_stale comment = <<~BODY This merge request has been open for too long and will need manual intervention. /label ~"#{NOTIFIED_LABEL}" /cc @gitlab-org/ci-cd/deploy-stage/environments-group BODY Retriable.with_context(:api) do GitlabClient.create_merge_request_comment(project_id, iid, comment) end end protected def template_path File.expand_path('../../templates/update_kas_merge_request.md.erb', __dir__) end end end