9
9
# frozen_string_literal: true
10
10
11
11
require 'json'
12
+ require 'csv'
12
13
require_relative '../database_loader'
13
14
14
15
module Reports
@@ -57,6 +58,8 @@ def save_rerun_info(result, output, filename)
57
58
case output
58
59
when 'json'
59
60
File . write ( filename , result . to_json )
61
+ when 'csv'
62
+ create_csv ( filename )
60
63
when 'file'
61
64
File . open ( filename , 'a' ) do |f |
62
65
raw_output ( result , file_descriptor : f )
@@ -66,6 +69,19 @@ def save_rerun_info(result, output, filename)
66
69
end
67
70
end
68
71
72
+ def create_csv ( filename )
73
+ CSV . open ( filename , 'wb' ) do |csv_input |
74
+ csv_input << %w[ PullRequest CheckSuiteId BambooJob GithubUsername RequestedAt Type TestsOrBuilds ]
75
+ @result . each_pair do |pull_requst , info |
76
+ info [ :check_suites ] . each do |cs |
77
+ csv_input << [ pull_requst ,
78
+ cs [ :check_suite_id ] , cs [ :bamboo_job ] , cs [ :requested_at ] ,
79
+ cs [ :github_username ] , cs [ :type ] , cs [ :tests_or_builds ] . join ( ',' ) ]
80
+ end
81
+ end
82
+ end
83
+ end
84
+
69
85
def raw_output ( result , file_descriptor : nil )
70
86
result . each_pair do |pull_request , info |
71
87
print ( "\n Pull Request: ##{ pull_request } - Reruns: #{ info [ :total ] } " , file_descriptor )
0 commit comments