danger-findbugs 0.0.5 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.