26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/pipeline/tasks/eslint.rb', line 26
def analyze
begin
parsed = JSON.parse(@result)
parsed.each do |result|
findings = {}
prints = []
messages = []
result['messages'].each do |msg|
message = msg['message']
findings[message] = {} if findings[message].nil?
findings[message][:detail] = msg['ruleId']
if messages.include?(message)
findings[message][:source] = "#{findings[message][:source]},#{msg['line']}" unless findings[message][:source].include?(",#{msg['line']}")
else
findings[message][:source] = "#{result['filePath']} Line: #{msg['line']}"
messages << message
end
findings[message][:severity] = severity(msg['severity'].to_s)
end
findings.each do |key, value|
print = fingerprint("#{key}#{value[:detail]}#{value[:source]}#{value[:sev]}")
unless prints.include?(print)
prints << print
report key, value[:detail], value[:source], value[:severity], print
end
end
end
rescue Exception => e
Pipeline.warn e.message
Pipeline.warn e.backtrace
end
end
|