sonar-breaker-info 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d905ed534d7304b066c57a69f8ed4898e1316279
4
+ data.tar.gz: 6a50f0ca36ffe525aa45b9ba0ffd9b185cbbf52d
5
+ SHA512:
6
+ metadata.gz: 0e2e50a6540363e2ffdb661d952f583aa27bd15b0be69ba898514587861f227a5bf0d6f08197c4d88bae469166618252d36f76b4facfe80e4b223d3934ce8901
7
+ data.tar.gz: 0b2ca1d8c8b970e84e3a8b5188142c5c2803949c4e8c5b6fb1b527e33459d5b2d8b87dd022fbdce9a4dc9882fb878d0e4b5edd6071ad1652236db46bd4db3b52
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'SonarBreakerInfo'
4
+
5
+ server = ARGV[0]
6
+ project = ARGV[1]
7
+ severities = ARGV[2]
8
+ puts "Retrieving issues from #{project} [#{server}]"
9
+ File.open("sonar.html", 'w') { |file|
10
+ file.write(SonarBreakerInfo.formatHtml(SonarBreakerInfo.retrieve(server, project, severities)));
11
+ }
@@ -0,0 +1,46 @@
1
+ require 'net/http'
2
+ require 'net/https'
3
+ require 'json'
4
+
5
+ class SonarBreakerInfo
6
+ def self.retrieve(server, project, severities = "MAJOR", statuses = "OPEN")
7
+ url = "https://#{server}/api/issues/search?componentRoots=#{project}&severities=#{severities}&statuses=#{statuses}"
8
+ uri = URI.parse(url);
9
+
10
+ req = Net::HTTP::Get.new("#{uri.path}?#{uri.query}")
11
+ components = Hash.new
12
+
13
+ res = Net::HTTP.start(
14
+ uri.host, uri.port,
15
+ :use_ssl => uri.scheme == 'https',
16
+ :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |https|
17
+ resp = https.request(req)
18
+ jsonResponse = JSON.parse(resp.body)
19
+ jsonResponse['issues'].each do |issue|
20
+ component = issue['component'];
21
+ if not components.has_key?(component) then
22
+ components[component] = Hash.new
23
+ end
24
+
25
+ components[component][issue["line"]] = [ issue['message'], "https://#{server}/component/index#component=#{component}&currentIssue=#{issue['key']}" ]
26
+ end
27
+ return components;
28
+ end
29
+ end
30
+
31
+ def self.formatHtml(components)
32
+ output = "<html><head></head><body>"
33
+ components.keys.each do |key|
34
+ output += "<div>"
35
+ output += "<h1>#{key}</h1><table><tr><th>Line</th><th>Message</th></tr>"
36
+ components[key].keys.each do |line|
37
+ error = components[key][line][0]
38
+ link = components[key][line][1]
39
+ output += "<tr><td>#{line}</td><td><a href='#{link}'>#{error}</a></td></tr>"
40
+ end
41
+ output +="</table></div>"
42
+ end
43
+ output +="</body>"
44
+ return output;
45
+ end
46
+ end
metadata ADDED
@@ -0,0 +1,61 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sonar-breaker-info
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Rafał Nowosielski
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: webmock/rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.24'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.24'
27
+ description: This simple gem retireves the information from SonarQube instance and
28
+ prints it to stdout in human readable form.
29
+ email: rafal@nowosielski.email
30
+ executables:
31
+ - SonarBreakerInfo
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - bin/SonarBreakerInfo
36
+ - lib/SonarBreakerInfo.rb
37
+ homepage: http://rubygems.org/gems/sonar-breaker-info
38
+ licenses:
39
+ - MIT
40
+ metadata: {}
41
+ post_install_message:
42
+ rdoc_options: []
43
+ require_paths:
44
+ - lib
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ requirements: []
56
+ rubyforge_project:
57
+ rubygems_version: 2.4.5
58
+ signing_key:
59
+ specification_version: 4
60
+ summary: Provides information about sonar issues
61
+ test_files: []