Module: GitlabQuality::TestTooling::FeatureReadiness::Concerns::IssueConcern

Included in:
OperationalReadinessCheck
Defined in:
lib/gitlab_quality/test_tooling/feature_readiness/concerns/issue_concern.rb

Constant Summary collapse

OPERATIONAL_READINESS_CHECKLIST_LABEL =
'operational-readiness-checklist'

Instance Method Summary collapse

Instance Method Details

#create_operation_readiness_issue(work_item_title, assignee_id, issue_client, repository_files_client) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/gitlab_quality/test_tooling/feature_readiness/concerns/issue_concern.rb', line 10

def create_operation_readiness_issue(work_item_title, assignee_id, issue_client, repository_files_client)
  operational_readiness_issue = issue_client.create_issue(
    title: "Operational Readiness Checklist for: '#{work_item_title}'",
    description: repository_files_client.file_contents,
    labels: [OPERATIONAL_READINESS_CHECKLIST_LABEL],
    assignee_id: assignee_id
  )

  puts "\nCreated operational readiness issue: #{operational_readiness_issue.web_url}\n"

  operational_readiness_issue
end

#has_operational_readiness_issue_linked?(linked_issue_iids, issue_client) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/gitlab_quality/test_tooling/feature_readiness/concerns/issue_concern.rb', line 23

def has_operational_readiness_issue_linked?(linked_issue_iids, issue_client)
  linked_issues(linked_issue_iids, issue_client).any? { |issue| issue.labels.intersect?([OPERATIONAL_READINESS_CHECKLIST_LABEL]) }
end

#linked_issues(linked_issue_iids, issue_client) ⇒ Object



27
28
29
# File 'lib/gitlab_quality/test_tooling/feature_readiness/concerns/issue_concern.rb', line 27

def linked_issues(linked_issue_iids, issue_client)
  linked_issue_iids.flat_map { |iid| issue_client.find_issues(iid: iid) }
end