Class: GitlabQuality::TestTooling::Report::GroupIssues::GroupResultsInIssues

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab_quality/test_tooling/report/group_issues/group_results_in_issues.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ GroupResultsInIssues

Returns a new instance of GroupResultsInIssues.



16
17
18
19
20
21
# File 'lib/gitlab_quality/test_tooling/report/group_issues/group_results_in_issues.rb', line 16

def initialize(options = {})
  @options = options
  @failure_processor = FailureProcessor.new(options)
  @issue_manager = IssueManager.new(options)
  @grouped_failures = {}
end

Instance Attribute Details

#grouped_failuresObject (readonly)

Returns the value of attribute grouped_failures.



14
15
16
# File 'lib/gitlab_quality/test_tooling/report/group_issues/group_results_in_issues.rb', line 14

def grouped_failures
  @grouped_failures
end

Instance Method Details

#process_failures(failures) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/gitlab_quality/test_tooling/report/group_issues/group_results_in_issues.rb', line 23

def process_failures(failures)
  @failure_processor.process_failures(failures) do |grouped_failure|
    fingerprint = grouped_failure[:fingerprint]
    @grouped_failures[fingerprint] = grouped_failure
  end

  @failure_processor.filter_groups_by_threshold(@grouped_failures)
end

#process_issuesObject



32
33
34
35
36
# File 'lib/gitlab_quality/test_tooling/report/group_issues/group_results_in_issues.rb', line 32

def process_issues
  @grouped_failures.each_value do |grouped_failure|
    @issue_manager.create_or_update_issue(grouped_failure)
  end
end

#summaryObject



38
39
40
41
42
43
# File 'lib/gitlab_quality/test_tooling/report/group_issues/group_results_in_issues.rb', line 38

def summary
  {
    grouped_issues: @grouped_failures.size,
    total_grouped_failures: @grouped_failures.values.sum { |group| group[:failures].size }
  }
end