Class: GitlabQuality::TestTooling::TestMeta::Processor::AddToBlockingProcessor

Inherits:
MetaProcessor
  • Object
show all
Defined in:
lib/gitlab_quality/test_tooling/test_meta/processor/add_to_blocking_processor.rb

Constant Summary collapse

BLOCKING_METADATA =
", :blocking%{suffix}"
BRANCH_PREFIX =
'blocking-promotion'
MAX_LINE_LENGTH =
120

Constants inherited from MetaProcessor

MetaProcessor::DESCRIPTION_REGEX

Class Method Summary collapse

Methods inherited from MetaProcessor

create_commit, end_of_description_index, existing_mrs, failure_issue_text, spec_details_from_commits

Class Method Details

.create_merge_requests(context) ⇒ Object

Creates the merge requests for promoting E2E tests to :blocking

Parameters:



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/gitlab_quality/test_tooling/test_meta/processor/add_to_blocking_processor.rb', line 16

def create_merge_requests(context)
  @context = context

  context.processed_commits.each_value do |record|
    branch, devops_stage, product_group, file, reviewer_id, assignee_handle = extract_data_from_record(record)

    mr_title = format("%{prefix} %{file}", prefix: '[E2E] PROMOTE TO BLOCKING:', file: file).truncate(72, omission: '')

    merge_request = context.create_merge_request(mr_title, branch, gitlab_bot_user_id, [reviewer_id]) do
      merge_request_description(record, devops_stage, product_group)
    end

    context.post_note_on_merge_request(maintainer_note_on_merge_request(assignee_handle), merge_request.iid)

    if merge_request
      Runtime::Logger.info("  Created MR for promotion to blocking: #{merge_request.web_url}")
      record[:merge_request] = merge_request
    end
  end
end

.post_process(context) ⇒ Object

Performs post processing. Posts a list of MRs in a note on report_issue

Parameters:



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/gitlab_quality/test_tooling/test_meta/processor/add_to_blocking_processor.rb', line 40

def post_process(context)
  web_urls = context.processed_commits.values.map { |value| "- #{value[:merge_request].web_url}\n" }.join

  return if web_urls.empty?

  context.post_note_on_issue(<<~ISSUE_NOTE, context.report_issue)
    The following merge requests have been created to promote stable specs to blocking:

    #{web_urls}
  ISSUE_NOTE
end