Class: GitlabQuality::TestTooling::Report::ReportAsIssue

Inherits:
Object
  • Object
show all
Includes:
Concerns::Utils
Defined in:
lib/gitlab_quality/test_tooling/report/report_as_issue.rb

Constant Summary

Constants included from Concerns::Utils

Concerns::Utils::MAX_TITLE_LENGTH

Instance Method Summary collapse

Methods included from Concerns::Utils

#label_names_to_label_quick_action, #new_issue_title, #partial_file_path, #pipeline, #readable_duration, #search_safe, #title_from_test

Constructor Details

#initialize(token:, input_files:, related_issues_file: nil, project: nil, confidential: false, dry_run: false, **_kwargs) ⇒ ReportAsIssue

Returns a new instance of ReportAsIssue.



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

def initialize(token:, input_files:, related_issues_file: nil, project: nil, confidential: false, dry_run: false, **_kwargs)
  @token = token
  @project = project
  @gitlab = (dry_run ? GitlabClient::IssuesDryClient : GitlabClient::IssuesClient).new(token: token, project: project)
  @files = Array(input_files)
  @confidential = confidential
  @issue_logger = IssueLogger.new(file_path: related_issues_file) unless related_issues_file.nil?
end

Instance Method Details

#invoke!Object



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

def invoke!
  validate_input!

  issue_url = run!

  write_issues_log_file

  issue_url
end