Class: GitlabQuality::TestTooling::FeatureReadiness::OperationalReadinessCheck

Inherits:
Object
  • Object
show all
Includes:
Concerns::IssueConcern, Concerns::WorkItemConcern
Defined in:
lib/gitlab_quality/test_tooling/feature_readiness/operational_readiness_check.rb

Constant Summary collapse

BASE_LABELS_FOR_SEARCH =
["feature::addition"].freeze
OPERATIONAL_READINESS_ISSUE_TEMPLATE_PATH =
'.gitlab/issue_templates/Operational Readiness.md'

Constants included from Concerns::WorkItemConcern

Concerns::WorkItemConcern::OPERATIONAL_READINESS_NOTE_ID, Concerns::WorkItemConcern::OPERATIONAL_READINESS_TRACKING_LABEL

Constants included from Concerns::IssueConcern

Concerns::IssueConcern::OPERATIONAL_READINESS_CHECKLIST_LABEL

Instance Method Summary collapse

Methods included from Concerns::WorkItemConcern

#add_labels, #add_operational_readiness_precheck_comment, #existing_note_containing_text, #extract_id_from_gid, #fetch_work_item, #get_id_for_group_label, #get_id_for_label, #get_issue_iids, #get_labels, #has_a_child_epic?, #has_label?, #ids_for_group_labels, #ids_for_labels, #label_gids, #link_operation_readiness_issue, #linked_issue_iids, #note_has_emoji?, #post_comment_about_operation_readiness_issue_created, #work_item_author_id

Methods included from Concerns::IssueConcern

#create_operation_readiness_issue, #has_operational_readiness_issue_linked?, #linked_issues

Constructor Details

#initialize(token:, project: nil, group: nil, limit_to_minutes: nil, search_labels: [], issue_is_blocking: false, dry_run: false) ⇒ OperationalReadinessCheck

Returns a new instance of OperationalReadinessCheck.



15
16
17
18
19
20
21
22
23
# File 'lib/gitlab_quality/test_tooling/feature_readiness/operational_readiness_check.rb', line 15

def initialize(token:, project: nil, group: nil, limit_to_minutes: nil, search_labels: [], issue_is_blocking: false, dry_run: false)
  @token = token
  @project = "#{group}/#{project}"
  @group = group
  @limit_to_minutes = limit_to_minutes
  @search_labels = search_labels
  @issue_is_blocking = issue_is_blocking
  @dry_run = dry_run
end

Instance Method Details

#invoke!Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/gitlab_quality/test_tooling/feature_readiness/operational_readiness_check.rb', line 25

def invoke!
  created_after = utc_time_minus_mins(limit_to_minutes)

  epics = work_items_client.paginated_call(:group_work_items,
    labels: search_labels.concat(BASE_LABELS_FOR_SEARCH).uniq, state: 'opened', created_after: created_after, extras: [:work_item_fields])

  epics.each do |epic|
    process_epic(epic)
  end
end