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}&currentIssue=#{issue['key']}" ]
    end
    return components;
  end
end