guard-brakeman 0.3.2 → 0.4.0
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.
- data/README.md +3 -0
- data/lib/guard/brakeman.rb +31 -25
- metadata +9 -11
data/README.md
CHANGED
data/lib/guard/brakeman.rb
CHANGED
@@ -24,6 +24,9 @@ module Guard
|
|
24
24
|
|
25
25
|
# TODO mixing the use of this attr, good to match? Bad to couple?
|
26
26
|
@options = {
|
27
|
+
:notifications => true,
|
28
|
+
:run_on_start => false,
|
29
|
+
:chatty => false,
|
27
30
|
:min_confidence => 1
|
28
31
|
}.update(options)
|
29
32
|
end
|
@@ -75,19 +78,19 @@ module Guard
|
|
75
78
|
private
|
76
79
|
|
77
80
|
def print_failed report
|
78
|
-
|
81
|
+
UI.info "\n------ brakeman warnings --------\n"
|
79
82
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
83
|
+
icon = report.all_warnings.count > 0 ? :failed : :success
|
84
|
+
|
85
|
+
all_warnings = reject_below_threshold(report.all_warnings)
|
86
|
+
|
87
|
+
puts all_warnings.sort_by { |w| w.confidence }
|
84
88
|
|
85
|
-
icon = all_warnings.count > 0 ? :failed : :success
|
86
89
|
message = "#{all_warnings.count} brakeman findings"
|
87
90
|
|
88
|
-
if @options[:
|
91
|
+
if @options[:output_files]
|
89
92
|
write_report
|
90
|
-
message += "\nResults written to #{@options[:
|
93
|
+
message += "\nResults written to #{@options[:output_files]}"
|
91
94
|
end
|
92
95
|
|
93
96
|
if @options[:chatty] && all_warnings.any?
|
@@ -101,8 +104,7 @@ module Guard
|
|
101
104
|
message = ""
|
102
105
|
should_alert = false
|
103
106
|
|
104
|
-
fixed_warnings = report.fixed_warnings
|
105
|
-
|
107
|
+
fixed_warnings = reject_below_threshold(report.fixed_warnings)
|
106
108
|
if fixed_warnings.any?
|
107
109
|
icon = :success
|
108
110
|
results_notification = "#{fixed_warnings.length} fixed warning(s)\n"
|
@@ -111,13 +113,11 @@ module Guard
|
|
111
113
|
should_alert = true
|
112
114
|
message += results_notification
|
113
115
|
|
114
|
-
|
115
|
-
|
116
|
-
puts
|
117
|
-
end
|
116
|
+
puts fixed_warnings.sort_by { |w| w.confidence }
|
117
|
+
puts
|
118
118
|
end
|
119
119
|
|
120
|
-
new_warnings = report.new_warnings
|
120
|
+
new_warnings = reject_below_threshold(report.new_warnings)
|
121
121
|
if new_warnings.any?
|
122
122
|
new_warning_message = "#{new_warnings.length} new warning(s)\n"
|
123
123
|
UI.error new_warning_message
|
@@ -126,13 +126,11 @@ module Guard
|
|
126
126
|
should_alert = true
|
127
127
|
icon = :failed
|
128
128
|
|
129
|
-
|
130
|
-
|
131
|
-
puts
|
132
|
-
end
|
129
|
+
puts new_warnings.sort_by { |w| w.confidence }
|
130
|
+
puts
|
133
131
|
end
|
134
132
|
|
135
|
-
existing_warnings = report.existing_warnings
|
133
|
+
existing_warnings = reject_below_threshold(report.existing_warnings)
|
136
134
|
if existing_warnings.any?
|
137
135
|
should_alert = true if @options[:chatty]
|
138
136
|
icon ||= :pending
|
@@ -141,12 +139,14 @@ module Guard
|
|
141
139
|
UI.warning existing_warning_message
|
142
140
|
message += existing_warning_message
|
143
141
|
|
144
|
-
puts existing_warnings.sort_by { |w| w.confidence }
|
142
|
+
puts existing_warnings.sort_by { |w| w.confidence }
|
145
143
|
end
|
146
144
|
|
147
|
-
|
145
|
+
|
146
|
+
|
147
|
+
if @options[:output_files]
|
148
148
|
write_report
|
149
|
-
message += "\nResults written to #{@options[:
|
149
|
+
message += "\nResults written to #{@options[:output_files]}"
|
150
150
|
end
|
151
151
|
|
152
152
|
if @options[:notifications] && should_alert
|
@@ -154,9 +154,15 @@ module Guard
|
|
154
154
|
end
|
155
155
|
end
|
156
156
|
|
157
|
+
def reject_below_threshold(warnings)
|
158
|
+
warnings.reject {|w| w.confidence > (3 - @options[:min_confidence].to_i)}
|
159
|
+
end
|
160
|
+
|
157
161
|
def write_report
|
158
|
-
|
159
|
-
|
162
|
+
@options[:output_files].each_with_index do |output_file, i|
|
163
|
+
File.open output_file, "w" do |f|
|
164
|
+
f.puts @tracker.report.send(@options[:output_formats][i])
|
165
|
+
end
|
160
166
|
end
|
161
167
|
end
|
162
168
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: guard-brakeman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 4
|
9
|
+
- 0
|
10
|
+
version: 0.4.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Neil Matatall
|
@@ -16,8 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2012-
|
20
|
-
default_executable:
|
19
|
+
date: 2012-05-03 00:00:00 Z
|
21
20
|
dependencies:
|
22
21
|
- !ruby/object:Gem::Dependency
|
23
22
|
name: guard
|
@@ -43,12 +42,12 @@ dependencies:
|
|
43
42
|
requirements:
|
44
43
|
- - ">="
|
45
44
|
- !ruby/object:Gem::Version
|
46
|
-
hash:
|
45
|
+
hash: 5
|
47
46
|
segments:
|
48
47
|
- 1
|
49
48
|
- 5
|
50
|
-
-
|
51
|
-
version: 1.5.
|
49
|
+
- 3
|
50
|
+
version: 1.5.3
|
52
51
|
type: :runtime
|
53
52
|
version_requirements: *id002
|
54
53
|
description: Guard::Brakeman automatically scans your Rails app for vulnerabilities
|
@@ -64,7 +63,6 @@ files:
|
|
64
63
|
- lib/guard/brakeman.rb
|
65
64
|
- LICENSE
|
66
65
|
- README.md
|
67
|
-
has_rdoc: true
|
68
66
|
homepage: http://rubygems.org/gems/guard-brakeman
|
69
67
|
licenses: []
|
70
68
|
|
@@ -96,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
94
|
requirements: []
|
97
95
|
|
98
96
|
rubyforge_project: guard-brakeman
|
99
|
-
rubygems_version: 1.
|
97
|
+
rubygems_version: 1.8.15
|
100
98
|
signing_key:
|
101
99
|
specification_version: 3
|
102
100
|
summary: Guard gem for Brakeman
|