class SonarBreakerInfo
Public Class Methods
formatHtml(components)
click to toggle source
# File lib/SonarBreakerInfo.rb, line 31 def self.formatHtml(components) output = "<html><head></head><body>" components.keys.each do |key| output += "<div>" output += "<h1>#{key}</h1><table><tr><th>Line</th><th>Message</th></tr>" components[key].keys.each do |line| error = components[key][line][0] link = components[key][line][1] output += "<tr><td>#{line}</td><td><a href='#{link}'>#{error}</a></td></tr>" end output +="</table></div>" end output +="</body>" return output; end
retrieve(server, project, severities = "MAJOR", statuses = "OPEN")
click to toggle source
# File lib/SonarBreakerInfo.rb, line 6 def self.retrieve(server, project, severities = "MAJOR", statuses = "OPEN") url = "https://#{server}/api/issues/search?componentRoots=#{project}&severities=#{severities}&statuses=#{statuses}" uri = URI.parse(url); req = Net::HTTP::Get.new("#{uri.path}?#{uri.query}") components = Hash.new res = Net::HTTP.start( uri.host, uri.port, :use_ssl => uri.scheme == 'https', :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |https| resp = https.request(req) jsonResponse = JSON.parse(resp.body) jsonResponse['issues'].each do |issue| component = issue['component']; if not components.has_key?(component) then components[component] = Hash.new end components[component][issue["line"]] = [ issue['message'], "https://#{server}/component/index#component=#{component}¤tIssue=#{issue['key']}" ] end return components; end end