Class: GitlabQuality::TestTooling::Report::GroupIssues::IssueManager

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

Constant Summary collapse

DEFAULT_MAX_AGE_HOURS =
24
ISSUES_PER_PAGE =
50
GROUPED_ISSUE_LABELS =
Set.new(%w[test failure::test-environment automation:bot-authored type::maintenance]).freeze

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ IssueManager

Returns a new instance of IssueManager.



12
13
14
15
16
17
18
# File 'lib/gitlab_quality/test_tooling/report/group_issues/issue_manager.rb', line 12

def initialize(options = {})
  @options = options
  @client = options[:gitlab]
  @issue_finder = IssueFinder.new(@client, @options)
  @issue_updater = IssueUpdater.new(@client, @options)
  @issue_creator = IssueCreator.new(@client, @options)
end

Instance Method Details

#create_or_update_issue(grouped_failure) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/gitlab_quality/test_tooling/report/group_issues/issue_manager.rb', line 20

def create_or_update_issue(grouped_failure)
  existing_issue = @issue_finder.find_existing_issue(grouped_failure)

  if existing_issue
    @issue_updater.update_existing_issue(existing_issue, grouped_failure)
  else
    @issue_creator.create_new_issue(grouped_failure)
  end
end