danger-findbugs 0.0.5 → 0.0.8

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
- SHA1:
3
- metadata.gz: 4fd9cdf85075df5d0512d7b25458c312d5c09eaa
4
- data.tar.gz: 4badc2cc6b36e3991cee9ddf416e2a3947ebfc9b
2
+ SHA256:
3
+ metadata.gz: 9891d47f214dd933c5a60de3095fd3eafcb1a5fb0ebc2748d98f8a93869e6830
4
+ data.tar.gz: d35d97912c840bb79e986ee4a9032a27289004427a4d7f64caacd54cb5dbf7ad
5
5
  SHA512:
6
- metadata.gz: e2975f853dd91f46a05871ae0a2359e3966a9098f9d0ce878842e0299ba8d9096ce4dfb4f3b47384fc2b59ce860c65bca1be34799517aa902b68e3b4d81a7aae
7
- data.tar.gz: 1fb70c82cf6f3750e0f49f9c4e529bcf5807df271ec40a3ec91826ded22c7794b28e9da02bd9916b3cc11f9752ff3d968dd1d0109b8c62931b5b6e130fe9cf7c
6
+ metadata.gz: 212ddb9742a080d5948e83fdc54cbdc3f5f442f0ccf6928d7b6444ee4f6cdaa1486fd3e154ee70b39ff129a53c5ef62f6dded618702305b3f34179d0859e5e03
7
+ data.tar.gz: 7ca717bafe4b0b19cf4a4b4320674fcb213377d52003e82044a1c444209974d8372b0e572d44b9a0d7628ebde19eb1402ee4aeed543165842da0aa0de47add8f
@@ -1,51 +1,53 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- danger-findbugs (0.0.5)
4
+ danger-findbugs (0.0.8)
5
5
  danger-plugin-api (~> 1.0)
6
6
  oga (~> 2.10)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- addressable (2.5.1)
12
- public_suffix (~> 2.0, >= 2.0.2)
11
+ addressable (2.7.0)
12
+ public_suffix (>= 2.0.2, < 5.0)
13
13
  ansi (1.5.0)
14
- ast (2.3.0)
15
- claide (1.0.1)
14
+ ast (2.4.0)
15
+ claide (1.0.3)
16
16
  claide-plugins (0.9.2)
17
17
  cork
18
18
  nap
19
19
  open4 (~> 1.3)
20
- coderay (1.1.1)
20
+ coderay (1.1.2)
21
21
  colored2 (3.1.2)
22
22
  cork (0.3.0)
23
23
  colored2 (~> 3.1)
24
- danger (5.2.1)
24
+ danger (6.1.0)
25
25
  claide (~> 1.0)
26
26
  claide-plugins (>= 0.9.2)
27
27
  colored2 (~> 3.1)
28
28
  cork (~> 0.1)
29
29
  faraday (~> 0.9)
30
- faraday-http-cache (~> 1.0)
31
- git (~> 1)
32
- kramdown (~> 1.5)
33
- octokit (~> 4.2)
30
+ faraday-http-cache (~> 2.0)
31
+ git (~> 1.5)
32
+ kramdown (~> 2.0)
33
+ kramdown-parser-gfm (~> 1.0)
34
+ no_proxy_fix
35
+ octokit (~> 4.7)
34
36
  terminal-table (~> 1)
35
37
  danger-plugin-api (1.0.0)
36
38
  danger (> 2.0)
37
39
  diff-lcs (1.3)
38
- faraday (0.12.1)
40
+ faraday (0.17.3)
39
41
  multipart-post (>= 1.2, < 3)
40
- faraday-http-cache (1.3.1)
42
+ faraday-http-cache (2.0.0)
41
43
  faraday (~> 0.8)
42
- ffi (1.9.18)
44
+ ffi (1.12.1)
43
45
  formatador (0.2.5)
44
- git (1.3.0)
45
- guard (2.14.1)
46
+ git (1.5.0)
47
+ guard (2.16.1)
46
48
  formatador (>= 0.2.4)
47
49
  listen (>= 2.7, < 4.0)
48
- lumberjack (~> 1.0)
50
+ lumberjack (>= 1.0.12, < 2.0)
49
51
  nenv (~> 0.1)
50
52
  notiffany (~> 0.0)
51
53
  pry (>= 0.9.12)
@@ -56,71 +58,74 @@ GEM
56
58
  guard (~> 2.1)
57
59
  guard-compat (~> 1.1)
58
60
  rspec (>= 2.99.0, < 4.0)
59
- kramdown (1.13.2)
61
+ jaro_winkler (1.5.4)
62
+ kramdown (2.1.0)
63
+ kramdown-parser-gfm (1.1.0)
64
+ kramdown (~> 2.0)
60
65
  listen (3.0.7)
61
66
  rb-fsevent (>= 0.9.3)
62
67
  rb-inotify (>= 0.9.7)
63
- lumberjack (1.0.11)
64
- method_source (0.8.2)
65
- multipart-post (2.0.0)
68
+ lumberjack (1.1.1)
69
+ method_source (0.9.2)
70
+ multipart-post (2.1.1)
66
71
  nap (1.1.0)
67
72
  nenv (0.3.0)
68
- notiffany (0.1.1)
73
+ no_proxy_fix (0.1.2)
74
+ notiffany (0.1.3)
69
75
  nenv (~> 0.1)
70
76
  shellany (~> 0.0)
71
- octokit (4.7.0)
77
+ octokit (4.15.0)
78
+ faraday (>= 0.9)
72
79
  sawyer (~> 0.8.0, >= 0.5.3)
73
- oga (2.10)
80
+ oga (2.15)
74
81
  ast
75
82
  ruby-ll (~> 2.1)
76
83
  open4 (1.3.4)
77
- parser (2.4.0.0)
78
- ast (~> 2.2)
79
- powerpack (0.1.1)
80
- pry (0.10.4)
84
+ parallel (1.19.1)
85
+ parser (2.7.0.2)
86
+ ast (~> 2.4.0)
87
+ pry (0.12.2)
81
88
  coderay (~> 1.1.0)
82
- method_source (~> 0.8.1)
83
- slop (~> 3.4)
84
- public_suffix (2.0.5)
85
- rainbow (2.2.2)
86
- rake
89
+ method_source (~> 0.9.0)
90
+ public_suffix (4.0.3)
91
+ rainbow (3.0.0)
87
92
  rake (10.5.0)
88
- rb-fsevent (0.9.8)
89
- rb-inotify (0.9.8)
90
- ffi (>= 0.5.0)
91
- rspec (3.6.0)
92
- rspec-core (~> 3.6.0)
93
- rspec-expectations (~> 3.6.0)
94
- rspec-mocks (~> 3.6.0)
95
- rspec-core (3.6.0)
96
- rspec-support (~> 3.6.0)
97
- rspec-expectations (3.6.0)
93
+ rb-fsevent (0.10.3)
94
+ rb-inotify (0.10.1)
95
+ ffi (~> 1.0)
96
+ rspec (3.9.0)
97
+ rspec-core (~> 3.9.0)
98
+ rspec-expectations (~> 3.9.0)
99
+ rspec-mocks (~> 3.9.0)
100
+ rspec-core (3.9.1)
101
+ rspec-support (~> 3.9.1)
102
+ rspec-expectations (3.9.0)
98
103
  diff-lcs (>= 1.2.0, < 2.0)
99
- rspec-support (~> 3.6.0)
100
- rspec-mocks (3.6.0)
104
+ rspec-support (~> 3.9.0)
105
+ rspec-mocks (3.9.1)
101
106
  diff-lcs (>= 1.2.0, < 2.0)
102
- rspec-support (~> 3.6.0)
103
- rspec-support (3.6.0)
104
- rubocop (0.48.1)
105
- parser (>= 2.3.3.1, < 3.0)
106
- powerpack (~> 0.1)
107
- rainbow (>= 1.99.1, < 3.0)
107
+ rspec-support (~> 3.9.0)
108
+ rspec-support (3.9.2)
109
+ rubocop (0.79.0)
110
+ jaro_winkler (~> 1.5.1)
111
+ parallel (~> 1.10)
112
+ parser (>= 2.7.0.1)
113
+ rainbow (>= 2.2.2, < 4.0)
108
114
  ruby-progressbar (~> 1.7)
109
- unicode-display_width (~> 1.0, >= 1.0.1)
115
+ unicode-display_width (>= 1.4.0, < 1.7)
110
116
  ruby-ll (2.1.2)
111
117
  ansi
112
118
  ast
113
- ruby-progressbar (1.8.1)
114
- sawyer (0.8.1)
115
- addressable (>= 2.3.5, < 2.6)
116
- faraday (~> 0.8, < 1.0)
119
+ ruby-progressbar (1.10.1)
120
+ sawyer (0.8.2)
121
+ addressable (>= 2.3.5)
122
+ faraday (> 0.8, < 2.0)
117
123
  shellany (0.0.1)
118
- slop (3.6.0)
119
- terminal-table (1.7.3)
120
- unicode-display_width (~> 1.1.1)
121
- thor (0.19.4)
122
- unicode-display_width (1.1.3)
123
- yard (0.9.9)
124
+ terminal-table (1.8.0)
125
+ unicode-display_width (~> 1.1, >= 1.1.1)
126
+ thor (1.0.1)
127
+ unicode-display_width (1.6.1)
128
+ yard (0.9.24)
124
129
 
125
130
  PLATFORMS
126
131
  ruby
@@ -134,8 +139,8 @@ DEPENDENCIES
134
139
  pry
135
140
  rake (~> 10.0)
136
141
  rspec (~> 3.4)
137
- rubocop (~> 0.41)
138
- yard (~> 0.8)
142
+ rubocop (>= 0.49.0)
143
+ yard (>= 0.9.11)
139
144
 
140
145
  BUNDLED WITH
141
- 1.14.6
146
+ 1.17.3
data/README.md CHANGED
@@ -1,7 +1,13 @@
1
+ # danger-findbugs
2
+ [![Gem Version](https://badge.fury.io/rb/danger-findbugs.svg)](https://badge.fury.io/rb/danger-findbugs)
1
3
 
4
+ Danger plugin for findbugs formatted xml file.
2
5
 
3
- ### findbugs
6
+ ## Installation
4
7
 
8
+ $ gem install danger-findbugs
9
+
10
+ ## Usage
5
11
  Checks on your gradle project's Java source files.
6
12
  This is done using [finbugs](http://findbugs.sourceforge.net/)
7
13
  Results are passed out as tables in markdown.
@@ -18,25 +24,26 @@ findbugs.report_file = "app/build/reports/findbugs/findbugs.xml"
18
24
  findbugs.report</pre>
19
25
  </blockquote>
20
26
 
21
-
22
-
23
27
  #### Attributes
24
28
 
25
29
  `gradle_module` - Custom gradle module to run.
26
30
  This is useful when your project has different flavors.
27
31
  Defaults to "app".
28
32
 
33
+ `gradle_modules` - Custom multiple gradle module to run.
34
+ Defaults to "[`gradle_module`]".
35
+
29
36
  `gradle_task` - Custom gradle task to run.
30
37
  This is useful when your project has different flavors.
31
38
  Defaults to "findbugs".
32
39
 
40
+ `gradle_project` - Custom gradle project directory.
41
+ Defaults is repository's root directory.
42
+
33
43
  `report_file` - Location of report file
34
44
  If your findbugs task outputs to a different location, you can specify it here.
35
45
  Defaults to "build/reports/findbugs_report.xml".
36
46
 
37
-
38
-
39
-
40
47
  #### Methods
41
48
 
42
49
  `report` - Calls findbugs task of your gradle project.
@@ -56,7 +63,3 @@ It fails if `report_file` cannot be found inside current directory.
56
63
  `bug_issues` - A getter for `gradle_task`, returning "findbugs" if value is nil.
57
64
 
58
65
  `send_inline_comment` - Send inline comment with danger's warn or fail method
59
-
60
-
61
-
62
-
@@ -29,8 +29,8 @@ Gem::Specification.new do |spec|
29
29
  spec.add_development_dependency 'rspec', '~> 3.4'
30
30
 
31
31
  # Linting code and docs
32
- spec.add_development_dependency "rubocop", "~> 0.41"
33
- spec.add_development_dependency "yard", "~> 0.8"
32
+ spec.add_development_dependency "rubocop", ">= 0.49.0"
33
+ spec.add_development_dependency "yard", ">= 0.9.11"
34
34
 
35
35
  # Makes testing easy via `bundle exec guard`
36
36
  spec.add_development_dependency 'guard', '~> 2.14'
@@ -1,3 +1,3 @@
1
1
  module Findbugs
2
- VERSION = "0.0.5".freeze
2
+ VERSION = "0.0.8".freeze
3
3
  end
@@ -24,6 +24,10 @@ module Danger
24
24
  # Defaults to "app".
25
25
  # @return [String]
26
26
  attr_writer :gradle_module
27
+ # Custom multiple gradle module to run.
28
+ # Defaults to "[gradle_module]".
29
+ # @return [Array]
30
+ attr_writer :gradle_modules
27
31
  # Custom gradle task to run.
28
32
  # This is useful when your project has different flavors.
29
33
  # Defaults to "findbugs".
@@ -34,6 +38,15 @@ module Danger
34
38
  # Defaults to "build/reports/findbugs_report.xml".
35
39
  # @return [String]
36
40
  attr_writer :report_file
41
+ # Custom gradle project directory.
42
+ # Defaults is repository's root directory.
43
+ # @return [String]
44
+ attr_accessor :gradle_project
45
+ # Skip gradle task
46
+ # If you skip gradle task, for example project does not manage gradle.
47
+ # @return [Bool]
48
+ attr_writer :skip_gradle_task
49
+
37
50
 
38
51
  GRADLEW_NOT_FOUND = "Could not find `gradlew` inside current directory"
39
52
  REPORT_FILE_NOT_FOUND = "Findbugs report not found"
@@ -46,22 +59,60 @@ module Danger
46
59
 
47
60
  def report(inline_mode = true)
48
61
  return fail(GRADLEW_NOT_FOUND) unless gradlew_exists?
49
- exec_gradle_task
62
+ if gradle_modules.empty?
63
+ execute_reporting(inline_mode)
64
+ end
65
+ unless skip_gradle_task
66
+ return fail(GRADLEW_NOT_FOUND) unless gradlew_exists?
67
+ exec_gradle_task
68
+ end
50
69
  return fail(REPORT_FILE_NOT_FOUND) unless report_file_exist?
51
70
 
52
71
  if inline_mode
53
72
  send_inline_comment
73
+
54
74
  else
55
- # TODO not implemented
75
+ gradle_modules.each_with_index { |gradleModule, index|
76
+ task = gradle_task
77
+ file = report_file
78
+ @gradle_module = gradleModule
79
+ @gradle_task = gradleModule + ":" + task
80
+ @report_file = gradleModule + "/" + file
81
+
82
+ execute_reporting(inline_mode)
83
+
84
+ @gradle_task = task
85
+ @report_file = file
86
+ @bug_issues = nil
87
+ @findbugs_report = nil
88
+ }
56
89
  end
57
90
  end
58
91
 
92
+ # @return [void]
93
+ def execute_reporting(inline_mode)
94
+ exec_gradle_task
95
+ return fail(REPORT_FILE_NOT_FOUND) unless report_file_exist?
96
+
97
+ if inline_mode
98
+ send_inline_comment
99
+ else
100
+ # TODO not implemented
101
+ end
102
+ end
103
+
59
104
  # A getter for `gradle_module`, returning "app" if value is nil.
60
105
  # @return [String]
61
106
  def gradle_module
62
107
  @gradle_module ||= 'app'
63
108
  end
64
109
 
110
+ # A getter for `gradle_modules`, returning "[gradle_module]" if value is nil.
111
+ # @return [Array]
112
+ def gradle_modules
113
+ @gradle_modules ||= Array.new
114
+ end
115
+
65
116
  # A getter for `gradle_task`, returning "findbugs" if value is nil.
66
117
  # @return [String]
67
118
  def gradle_task
@@ -74,6 +125,11 @@ module Danger
74
125
  @report_file ||= 'build/reports/findbugs_report.xml'
75
126
  end
76
127
 
128
+ # A getter for `gradle_project`, returning "build/reports/findbugs_report.xml" if value is nil.
129
+ # @return [String]
130
+ def gradle_project
131
+ return @gradle_project ||= ''
132
+ end
77
133
  private
78
134
 
79
135
  # A getter for current updated files
@@ -82,29 +138,42 @@ module Danger
82
138
  @target_files ||= (git.modified_files - git.deleted_files) + git.added_files
83
139
  end
84
140
 
141
+ # A getter for `skip_gradle_task`, returning false if value is nil.
142
+ # @return [Bool]
143
+ def skip_gradle_task
144
+ @skip_gradle_task ||= false
145
+ end
146
+
85
147
  # Run gradle task
86
148
  # @return [void]
87
149
  def exec_gradle_task
150
+ if gradle_project != ''
151
+ "export DANGER_TMP=$PWD"
152
+ "cd #{gradle_project}"
153
+ end
88
154
  system "./gradlew #{gradle_task}"
155
+ if gradle_project != ''
156
+ "cd DANGER_TMP"
157
+ end
89
158
  end
90
159
 
91
160
  # Check gradlew file exists in current directory
92
161
  # @return [Bool]
93
162
  def gradlew_exists?
94
- `ls gradlew`.strip.empty? == false
163
+ `ls #{gradle_project}gradlew`.strip.empty? == false
95
164
  end
96
165
 
97
166
  # Check report_file exists in current directory
98
167
  # @return [Bool]
99
168
  def report_file_exist?
100
- File.exists?(report_file)
169
+ File.exists?("#{gradle_project}#{report_file}")
101
170
  end
102
171
 
103
172
  # A getter for `gradle_task`, returning "findbugs" if value is nil.
104
173
  # @return [Oga::XML::Document]
105
174
  def findbugs_report
106
175
  require 'oga'
107
- @findbugs_report ||= Oga.parse_xml(File.open(report_file))
176
+ @findbugs_report ||= Oga.parse_xml(File.open("#{gradle_project}#{report_file}"))
108
177
  end
109
178
 
110
179
  # A getter for `gradle_task`, returning "findbugs" if value is nil.
@@ -120,8 +189,9 @@ module Danger
120
189
  # @return [void]
121
190
  def send_inline_comment
122
191
  bug_issues.each do |issue|
123
- next unless target_files.include? issue.absolute_path
124
- send(issue.type, issue.description, file: issue.absolute_path, line: issue.line)
192
+ filename = "#{gradle_project}#{issue.absolute_path}"
193
+ next unless target_files.include? filename
194
+ send(issue.type, issue.description, file: filename, line: issue.line)
125
195
  end
126
196
  end
127
197
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-findbugs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - kazuki-yoshida
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-29 00:00:00.000000000 Z
11
+ date: 2020-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger-plugin-api
@@ -84,30 +84,30 @@ dependencies:
84
84
  name: rubocop
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '0.41'
89
+ version: 0.49.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '0.41'
96
+ version: 0.49.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: yard
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '0.8'
103
+ version: 0.9.11
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: '0.8'
110
+ version: 0.9.11
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: guard
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -213,8 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
213
213
  - !ruby/object:Gem::Version
214
214
  version: '0'
215
215
  requirements: []
216
- rubyforge_project:
217
- rubygems_version: 2.6.8
216
+ rubygems_version: 3.0.3
218
217
  signing_key:
219
218
  specification_version: 4
220
219
  summary: A longer description of danger-findbugs.