Class: GitlabQuality::TestTooling::Report::IssueLogger

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

Instance Method Summary collapse

Constructor Details

#initialize(file_path:) ⇒ IssueLogger

Returns a new instance of IssueLogger.



9
10
11
12
# File 'lib/gitlab_quality/test_tooling/report/issue_logger.rb', line 9

def initialize(file_path:)
  @file_path = file_path
  @data = File.exist?(file_path) ? JSON.parse(File.read(file_path)) : Hash.new { |h, k| h[k] = [] }
end

Instance Method Details

#collect(test, issues) ⇒ Object



14
15
16
17
# File 'lib/gitlab_quality/test_tooling/report/issue_logger.rb', line 14

def collect(test, issues)
  data[test.ci_job_url] += Array(issues).map(&:web_url)
  data[test.ci_job_url].uniq!
end

#writeObject



19
20
21
22
23
24
25
# File 'lib/gitlab_quality/test_tooling/report/issue_logger.rb', line 19

def write
  dirname = File.dirname(file_path)

  FileUtils.mkdir_p(dirname) unless File.directory?(dirname)

  File.write(file_path, JSON.pretty_generate(data))
end