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 +5 -5
- data/Gemfile.lock +70 -65
- data/README.md +13 -10
- data/danger-findbugs.gemspec +2 -2
- data/lib/findbugs/gem_version.rb +1 -1
- data/lib/findbugs/plugin.rb +77 -7
- metadata +11 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9891d47f214dd933c5a60de3095fd3eafcb1a5fb0ebc2748d98f8a93869e6830
|
4
|
+
data.tar.gz: d35d97912c840bb79e986ee4a9032a27289004427a4d7f64caacd54cb5dbf7ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 212ddb9742a080d5948e83fdc54cbdc3f5f442f0ccf6928d7b6444ee4f6cdaa1486fd3e154ee70b39ff129a53c5ef62f6dded618702305b3f34179d0859e5e03
|
7
|
+
data.tar.gz: 7ca717bafe4b0b19cf4a4b4320674fcb213377d52003e82044a1c444209974d8372b0e572d44b9a0d7628ebde19eb1402ee4aeed543165842da0aa0de47add8f
|
data/Gemfile.lock
CHANGED
@@ -1,51 +1,53 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
danger-findbugs (0.0.
|
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.
|
12
|
-
public_suffix (
|
11
|
+
addressable (2.7.0)
|
12
|
+
public_suffix (>= 2.0.2, < 5.0)
|
13
13
|
ansi (1.5.0)
|
14
|
-
ast (2.
|
15
|
-
claide (1.0.
|
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.
|
20
|
+
coderay (1.1.2)
|
21
21
|
colored2 (3.1.2)
|
22
22
|
cork (0.3.0)
|
23
23
|
colored2 (~> 3.1)
|
24
|
-
danger (
|
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 (~>
|
31
|
-
git (~> 1)
|
32
|
-
kramdown (~>
|
33
|
-
|
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.
|
40
|
+
faraday (0.17.3)
|
39
41
|
multipart-post (>= 1.2, < 3)
|
40
|
-
faraday-http-cache (
|
42
|
+
faraday-http-cache (2.0.0)
|
41
43
|
faraday (~> 0.8)
|
42
|
-
ffi (1.
|
44
|
+
ffi (1.12.1)
|
43
45
|
formatador (0.2.5)
|
44
|
-
git (1.
|
45
|
-
guard (2.
|
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 (
|
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
|
-
|
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.
|
64
|
-
method_source (0.
|
65
|
-
multipart-post (2.
|
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
|
-
|
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.
|
77
|
+
octokit (4.15.0)
|
78
|
+
faraday (>= 0.9)
|
72
79
|
sawyer (~> 0.8.0, >= 0.5.3)
|
73
|
-
oga (2.
|
80
|
+
oga (2.15)
|
74
81
|
ast
|
75
82
|
ruby-ll (~> 2.1)
|
76
83
|
open4 (1.3.4)
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
pry (0.
|
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.
|
83
|
-
|
84
|
-
|
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.
|
89
|
-
rb-inotify (0.
|
90
|
-
ffi (
|
91
|
-
rspec (3.
|
92
|
-
rspec-core (~> 3.
|
93
|
-
rspec-expectations (~> 3.
|
94
|
-
rspec-mocks (~> 3.
|
95
|
-
rspec-core (3.
|
96
|
-
rspec-support (~> 3.
|
97
|
-
rspec-expectations (3.
|
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.
|
100
|
-
rspec-mocks (3.
|
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.
|
103
|
-
rspec-support (3.
|
104
|
-
rubocop (0.
|
105
|
-
|
106
|
-
|
107
|
-
|
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 (
|
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.
|
114
|
-
sawyer (0.8.
|
115
|
-
addressable (>= 2.3.5
|
116
|
-
faraday (
|
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
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
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 (
|
138
|
-
yard (
|
142
|
+
rubocop (>= 0.49.0)
|
143
|
+
yard (>= 0.9.11)
|
139
144
|
|
140
145
|
BUNDLED WITH
|
141
|
-
1.
|
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
|
-
|
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
|
-
|
data/danger-findbugs.gemspec
CHANGED
@@ -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", "
|
33
|
-
spec.add_development_dependency "yard", "
|
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'
|
data/lib/findbugs/gem_version.rb
CHANGED
data/lib/findbugs/plugin.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
-
|
124
|
-
|
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.
|
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:
|
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:
|
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:
|
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:
|
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:
|
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
|
-
|
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.
|