Class: GitlabQuality::TestTooling::FeatureReadiness::AnalyzedItems::AnalyzedIssue

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab_quality/test_tooling/feature_readiness/analyzed_items/analyzed_issue.rb

Instance Method Summary collapse

Constructor Details

#initialize(issue:, token:, project:, group:, dry_run:) ⇒ AnalyzedIssue

Returns a new instance of AnalyzedIssue.



8
9
10
11
12
13
14
15
# File 'lib/gitlab_quality/test_tooling/feature_readiness/analyzed_items/analyzed_issue.rb', line 8

def initialize(issue:, token:, project:, group:, dry_run:)
  @issue = issue
  @token = token
  @project = project
  @group = group
  @dry_run = dry_run
  @analyzed_merge_requests = []
end

Instance Method Details

#analyzeObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/gitlab_quality/test_tooling/feature_readiness/analyzed_items/analyzed_issue.rb', line 17

def analyze
  contributing_mrs = contributing_mrs_for_issue(issue)
  return if contributing_mrs.empty?

  @analyzed_merge_requests.concat(
    contributing_mrs
      .reject { |mr| skip_merge_request?(mr, issue) }
      .map do |merge_request|
      AnalyzedMergeRequest.new(merge_request: merge_request, token: token, project: project, group: group, dry_run: dry_run)
                          .tap(&:analyze)
                          .result
    end
  )
end

#resultObject



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/gitlab_quality/test_tooling/feature_readiness/analyzed_items/analyzed_issue.rb', line 32

def result
  {
    issue_iid: issue.iid,
    issue_web_url: issue.web_url,
    merge_requests: analyzed_merge_requests,
    doc_mrs: doc_mrs,
    feature_spec_mrs: feature_spec_mrs,
    e2e_spec_mrs: e2e_spec_mrs,
    feature_flag_mrs: feature_flag_mrs
  }
end