danger-static_analyzer_comments 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7ce7ad11872af2cc93486068c15ec7b9f4cde3d5
4
- data.tar.gz: 45c3abedd75501ab6ca3a07ec8f2875b25f5032d
3
+ metadata.gz: 9ca60892fd8da20ab1a3ffa4488c95f7b85b4e51
4
+ data.tar.gz: ff433712c0ec41d165baae60bebc07c37f05e465
5
5
  SHA512:
6
- metadata.gz: a603b0877bfe0a5f0e018edf7720f410d600e0ce262049da373408875eb44b9caedd205a2ac623569dc5f82c2e2358fa385f1427023b53078d6ac98b66342531
7
- data.tar.gz: edb94a98543bc9d4e41207acda0dc8689a53035ac3d3dff14597bd6b8fd33a8f7c44a64c2da2db0be9a49086e95f59de5489daaf8da93067f09002a29e30001a
6
+ metadata.gz: 603d9b7a049624d9dfce083875ce5ca62173253546e924dc47dc6eb1a9fce761a93dc179039b10b1574a3abeca6d6f70b6d70681870618169e317b535d1575dc
7
+ data.tar.gz: 964aee52512b13fb046d191f49db060db9588a11f102de742db8cd691004b35ac46fdb5cf6d6a41c9ef04e94472cd74c0f03bfbfe2ea72d0a25c255d548de18e
data/.gitignore ADDED
@@ -0,0 +1,80 @@
1
+ # read http://stackoverflow.com/a/8527650/1852422
2
+ # https://stackoverflow.com/questions/11968531/what-to-gitignore-from-the-idea-folder
3
+
4
+ # generated files
5
+ bin/
6
+ build/
7
+ *.ap_
8
+
9
+ # Local configuration file (sdk path, etc.)
10
+ local.properties
11
+
12
+ # Java class files
13
+ *.class
14
+
15
+ # User-specific (aka high-churn) files
16
+ **/.idea/workspace.xml
17
+ **/.idea/tasks.xml
18
+ **/.idea/dictionaries
19
+ **/.idea/vcs.xml
20
+ **/.idea/shelf
21
+ **/.idea/runConfigurations/
22
+ **/.idea/runConfigurations.xml
23
+ **/.idea/jsLibraryMappings.xml
24
+ **/.idea/caches/
25
+ *.iml
26
+ .navigation
27
+ **/.idea/assetWizardSettings.xml
28
+ **/.idea/misc.xml
29
+
30
+ # Statistic plugin
31
+ **/.idea/statistic.xml
32
+
33
+ # Gradle:
34
+ **/.idea/gradle.xml
35
+ **/.idea/libraries
36
+ .gradle
37
+
38
+ # Sensitive or high-churn files
39
+ **/.idea/dataSources.ids
40
+ **/.idea/dataSources.xml
41
+ **/.idea/dataSources.local.xml
42
+ **/.idea/sqlDataSources.xml
43
+ **/.idea/dynamic.xml
44
+ **/.idea/uiDesigner.xml
45
+
46
+ # File-based project format
47
+ *.iws
48
+
49
+ # IntelliJ
50
+ /out/
51
+
52
+ .externalNativeBuild
53
+
54
+ # AS' Layout Inspector files
55
+ */captures
56
+
57
+ # OS X junk
58
+ .DS_Store
59
+
60
+ # files for the dex VM
61
+ *.dex
62
+
63
+ # woof woof!
64
+ doge.jp[e]g
65
+
66
+ ## Ruby environment normalization
67
+ /.bundle/
68
+ /vendor/bundle
69
+ /lib/bundler/man/
70
+
71
+ ## Documentation cache and generated files:
72
+ /.yardoc/
73
+ /_yardoc/
74
+ /doc/
75
+ /rdoc/
76
+
77
+ ## Environment normalization:
78
+ /.bundle/
79
+ /vendor/bundle
80
+ /lib/bundler/man/
@@ -0,0 +1,6 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="Rubocop" enabled="false" level="WARNING" enabled_by_default="false" />
5
+ </profile>
6
+ </component>
data/lib/danger_plugin.rb CHANGED
@@ -2,46 +2,72 @@ require 'oga'
2
2
 
3
3
  module Danger
4
4
 
5
- # A Danger plugin which turns static analyzers' output into inline Github comments
6
5
  class DangerStaticAnalyzerComments < Plugin
7
6
  LINT_SEVERITY_LEVELS = ["Warning", "Error", "Fatal"]
7
+ CHECKSTYLE_SEVERITY_LEVELS = ["ignore", "info", "warning", "error"]
8
8
 
9
- attr_accessor :lint_report_file
9
+ attr_accessor :android_lint_report_file
10
+ attr_accessor :checkstyle_report_file
10
11
 
11
12
  def run
12
- lint()
13
+ android_lint
14
+ checkstyle
13
15
  end
14
16
 
15
- def lint
16
- unless File.exists?(@lint_report_file)
17
- fail("Lint report not found at `#{@lint_report_file}`.")
17
+ def android_lint
18
+ unless File.exists?(@android_lint_report_file)
19
+ fail("Lint report not found at `#{@android_lint_report_file}`.")
18
20
  end
19
21
 
20
- file = File.open(@lint_report_file)
22
+ file = File.open(@android_lint_report_file)
21
23
  report = Oga.parse_xml(file)
22
24
  issues = report.xpath('//issue')
23
- send_lint_inline_comment(issues)
25
+ send_android_lint_inline_comment(issues)
24
26
  end
25
27
 
28
+ def checkstyle
29
+ unless File.exists?(checkstyle_report_file)
30
+ fail("Checkstyle report not found at `#{checkstyle_report_file}`.")
31
+ end
32
+
33
+ file = File.open(checkstyle_report_file)
34
+ report = Oga.parse_xml(file)
35
+ files = report.xpath('/checkstyle/file')
36
+ send_checkstyle_inline_comment(files)
37
+ end
26
38
 
27
- # Send inline comment with danger's warn or fail method
28
- def send_lint_inline_comment(issues)
29
- target_files = (git.modified_files - git.deleted_files) + git.added_files
30
- print target_files.to_a
31
- dir = "#{Dir.pwd}/"
39
+ def send_checkstyle_inline_comment(files)
40
+ files.each do |file|
41
+ filename = file.get('name').gsub(current_dir, "")
42
+ errors = file.xpath('error')
43
+ errors.each do |error|
44
+ next unless (target_files.include? filename)
45
+ line = (error.get('line') || "0").to_i
46
+ warn(error.get('message'), file: filename, line: line)
47
+ end
48
+ end
49
+ end
50
+
51
+ def send_android_lint_inline_comment(issues)
32
52
  LINT_SEVERITY_LEVELS.reverse.each do |level|
33
53
  filtered = issues.select {|issue| issue.get("severity") == level}
34
54
  next if filtered.empty?
35
55
  filtered.each do |r|
36
56
  location = r.xpath('location').first
37
- filename = location.get('file').gsub(dir, "")
38
- print "location: #{location}, file: #{location.get('file')}, filename: #{filename}"
57
+ filename = location.get('file').gsub(current_dir, "")
39
58
  next unless (target_files.include? filename)
40
- print "target_files includes #{filename}"
41
59
  line = (location.get('line') || "0").to_i
42
60
  send(level === "Warning" ? "warn" : "fail", r.get('message'), file: filename, line: line)
43
61
  end
44
62
  end
45
63
  end
64
+
65
+ def target_files
66
+ (git.modified_files - git.deleted_files) + git.added_files
67
+ end
68
+
69
+ def current_dir
70
+ "#{Dir.pwd}/"
71
+ end
46
72
  end
47
73
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module DangerStaticAnalyzerComments
2
- VERSION = "0.0.1".freeze
2
+ VERSION = "0.0.2".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-static_analyzer_comments
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vibin Reddy
@@ -172,6 +172,8 @@ executables: []
172
172
  extensions: []
173
173
  extra_rdoc_files: []
174
174
  files:
175
+ - ".gitignore"
176
+ - ".idea/inspectionProfiles/Project_Default.xml"
175
177
  - ".idea/misc.xml"
176
178
  - ".idea/modules.xml"
177
179
  - Gemfile