brakeman 4.7.1 → 4.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +8 -0
  3. data/README.md +1 -1
  4. data/bundle/load.rb +1 -1
  5. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/History.rdoc +12 -0
  6. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/Manifest.txt +0 -0
  7. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/README.rdoc +0 -0
  8. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/compare/normalize.rb +0 -0
  9. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/debugging.md +0 -0
  10. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/rp_extensions.rb +0 -0
  11. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/rp_stringscanner.rb +0 -0
  12. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby20_parser.rb +0 -0
  13. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby20_parser.y +0 -0
  14. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby21_parser.rb +0 -0
  15. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby21_parser.y +0 -0
  16. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby22_parser.rb +0 -0
  17. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby22_parser.y +0 -0
  18. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby23_parser.rb +0 -0
  19. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby23_parser.y +0 -0
  20. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby24_parser.rb +0 -0
  21. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby24_parser.y +0 -0
  22. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby25_parser.rb +0 -0
  23. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby25_parser.y +0 -0
  24. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby26_parser.rb +0 -0
  25. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby26_parser.y +0 -0
  26. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby_lexer.rb +4 -4
  27. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby_lexer.rex +0 -0
  28. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby_lexer.rex.rb +0 -0
  29. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby_parser.rb +0 -0
  30. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby_parser.yy +0 -0
  31. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/lib/ruby_parser_extras.rb +4 -2
  32. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/tools/munge.rb +0 -0
  33. data/bundle/ruby/2.6.0/gems/{ruby_parser-3.14.0 → ruby_parser-3.14.1}/tools/ripper.rb +0 -0
  34. data/lib/brakeman/checks/check_mass_assignment.rb +1 -1
  35. data/lib/brakeman/checks/check_sql.rb +24 -22
  36. data/lib/brakeman/processor.rb +1 -1
  37. data/lib/brakeman/util.rb +5 -3
  38. data/lib/brakeman/version.rb +1 -1
  39. metadata +39 -32
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cb1a6279fa089c035c1e284d078ba0af21b8a19de58e489dcdc7c3a167d52e43
4
- data.tar.gz: 4d163ff4a319363126e9626f8d0d841b1b55abf48fca01f1b5e0581bbda8f69f
3
+ metadata.gz: 411fde4f85ce3e35551ea8e0e289bad38213583166118db0740ac4677076e55f
4
+ data.tar.gz: 99a14d0668d883d1def0280df61ec2f40ad669505f7d70d1fc7b9350de5b9176
5
5
  SHA512:
6
- metadata.gz: 7decb5b6745e654b6e2d7b06503fedad0e9a1c1b89d40ee380e37c23092420e34425357091f47a623508b1cf7e91a114a786f25d5441efe1cd7db80d7d15cc72
7
- data.tar.gz: 81651d8ba5958201234b84576a691e5281b3f3af3cbb66500fb847e1873406c8956f8746c062de965b95c76e5c3c9f6810b81ebe73abbfc454cafbd2e93b9c31
6
+ metadata.gz: 78243e7cec614d4e75530fb1a09c6057773fe0955759e60f7117a40fbfd56282ab0a4c89a3d5349063ba2786562722598b1e6206ecacabcba5ed1619c5e789a0
7
+ data.tar.gz: fd2ea9beed747478786d9f33ff5fe0f4fc6d2f4b9c7bffad1081cac802d2bbb31ef8bfe99974fd81d8cb8b81ee65ec933f62d13fdc346bd0d03b3b1078843f57
data/CHANGES.md CHANGED
@@ -1,3 +1,11 @@
1
+ # 4.7.2 - 2019-11-25
2
+
3
+ * Remove version guard for `named_scope` vs. `scope`
4
+ * Find SQL injection in `String#strip_heredoc` target
5
+ * Handle more `permit!` cases
6
+ * Ensure file name is set when processing model
7
+ * Add `request.params` as query parameters
8
+
1
9
  # 4.7.1 - 2019-10-29
2
10
 
3
11
  * Check string length against limit before joining
data/README.md CHANGED
@@ -62,7 +62,7 @@ Outside of Rails root (note that the output file is relative to path/to/rails/ap
62
62
 
63
63
  # Compatibility
64
64
 
65
- Brakeman should work with any version of Rails from 2.3.x to 5.x.
65
+ Brakeman should work with any version of Rails from 2.3.x to 6.x.
66
66
 
67
67
  Brakeman can analyze code written with Ruby 1.8 syntax and newer, but requires at least Ruby 2.3.0 to run.
68
68
 
@@ -7,8 +7,8 @@ $:.unshift "#{path}/bundle/ruby/2.6.0/gems/ruby2ruby-2.4.4/lib"
7
7
  $:.unshift "#{path}/bundle/ruby/2.6.0/gems/terminal-table-1.8.0/lib"
8
8
  $:.unshift "#{path}/bundle/ruby/2.6.0/gems/sexp_processor-4.13.0/lib"
9
9
  $:.unshift "#{path}/bundle/ruby/2.6.0/gems/haml-5.1.2/lib"
10
+ $:.unshift "#{path}/bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib"
10
11
  $:.unshift "#{path}/bundle/ruby/2.6.0/gems/ruby_parser-legacy-1.0.0/lib"
11
12
  $:.unshift "#{path}/bundle/ruby/2.6.0/gems/unicode-display_width-1.6.0/lib"
12
13
  $:.unshift "#{path}/bundle/ruby/2.6.0/gems/erubis-2.7.0/lib"
13
14
  $:.unshift "#{path}/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib"
14
- $:.unshift "#{path}/bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib"
@@ -1,3 +1,15 @@
1
+ === 3.14.1 / 2019-10-29
2
+
3
+ * 1 minor enhancement:
4
+
5
+ * Declared that ruby_parser supports ruby 2.2 and up.
6
+
7
+ * 3 bug fixes:
8
+
9
+ * Fixed a problem with %W with a null-byte terminator. (wtf?) (spohlenz)
10
+ * Fixed line numbering for command (eg methods without parentheses) arguments. (mvz)
11
+ * Fixed lineno on new dxstrs. (presidentbeef)
12
+
1
13
  === 3.14.0 / 2019-09-24
2
14
 
3
15
  * 8 minor enhancements:
@@ -1177,8 +1177,6 @@ class RubyLexer
1177
1177
  handled = true
1178
1178
 
1179
1179
  case
1180
- when paren_re && scan(paren_re) then
1181
- self.string_nest += 1
1182
1180
  when scan(term_re) then
1183
1181
  if self.string_nest == 0 then
1184
1182
  ss.pos -= 1
@@ -1186,6 +1184,8 @@ class RubyLexer
1186
1184
  else
1187
1185
  self.string_nest -= 1
1188
1186
  end
1187
+ when paren_re && scan(paren_re) then
1188
+ self.string_nest += 1
1189
1189
  when expand && scan(/#(?=[\$\@\{])/) then # TODO: this seems wrong
1190
1190
  ss.pos -= 1
1191
1191
  break
@@ -1232,9 +1232,9 @@ class RubyLexer
1232
1232
  end
1233
1233
  x = Regexp.escape paren if paren && paren != "\000"
1234
1234
  re = if qwords then
1235
- /[^#{t}#{x}\#\0\\\s]+|./ # |. to pick up whatever
1235
+ /[^#{t}#{x}\#\\\s]+|./ # |. to pick up whatever
1236
1236
  else
1237
- /[^#{t}#{x}\#\0\\]+|./
1237
+ /[^#{t}#{x}\#\\]+|./
1238
1238
  end
1239
1239
 
1240
1240
  scan re
@@ -28,7 +28,7 @@ class Sexp
28
28
  end
29
29
 
30
30
  module RubyParserStuff
31
- VERSION = "3.14.0"
31
+ VERSION = "3.14.1"
32
32
 
33
33
  attr_accessor :lexer, :in_def, :in_single, :file
34
34
  attr_accessor :in_kwarg
@@ -831,6 +831,8 @@ module RubyParserStuff
831
831
  (_, line), name, _, args, body, nil_body_line, * = val
832
832
  body ||= s(:nil).line nil_body_line
833
833
 
834
+ args.line line
835
+
834
836
  result = s(:defn, name.to_sym, args).line line
835
837
 
836
838
  if body then
@@ -1240,7 +1242,7 @@ module RubyParserStuff
1240
1242
  when :dstr
1241
1243
  str.sexp_type = :dxstr
1242
1244
  else
1243
- str = s(:dxstr, "", str)
1245
+ str = s(:dxstr, "", str).line str.line
1244
1246
  end
1245
1247
  str
1246
1248
  else
@@ -158,7 +158,7 @@ class Brakeman::CheckMassAssignment < Brakeman::BaseCheck
158
158
 
159
159
  # Look for and warn about uses of Parameters#permit! for mass assignment
160
160
  def check_permit!
161
- tracker.find_call(:method => :permit!).each do |result|
161
+ tracker.find_call(:method => :permit!, :nested => true).each do |result|
162
162
  if params? result[:call].target and not result[:chain].include? :slice
163
163
  warn_on_permit! result
164
164
  end
@@ -71,32 +71,32 @@ class Brakeman::CheckSQL < Brakeman::BaseCheck
71
71
  def find_scope_calls
72
72
  scope_calls = []
73
73
 
74
- if version_between?("2.1.0", "3.0.9")
75
- ar_scope_calls(:named_scope) do |model, args|
76
- call = make_call(nil, :named_scope, args).line(args.line)
77
- scope_calls << scope_call_hash(call, model, :named_scope)
78
- end
79
- elsif version_between?("3.1.0", "9.9.9")
80
- ar_scope_calls(:scope) do |model, args|
81
- second_arg = args[2]
82
- next unless sexp? second_arg
83
-
84
- if second_arg.node_type == :iter and node_type? second_arg.block, :block, :call, :safe_call
85
- process_scope_with_block(model, args)
86
- elsif call? second_arg
87
- call = second_arg
88
- scope_calls << scope_call_hash(call, model, call.method)
89
- else
90
- call = make_call(nil, :scope, args).line(args.line)
91
- scope_calls << scope_call_hash(call, model, :scope)
92
- end
74
+ # Used in pre-3.1.0 versions of Rails
75
+ ar_scope_calls(:named_scope) do |model, args|
76
+ call = make_call(nil, :named_scope, args).line(args.line)
77
+ scope_calls << scope_call_hash(call, model, :named_scope)
78
+ end
79
+
80
+ # Use in 3.1.0 and later
81
+ ar_scope_calls(:scope) do |model, args|
82
+ second_arg = args[2]
83
+ next unless sexp? second_arg
84
+
85
+ if second_arg.node_type == :iter and node_type? second_arg.block, :block, :call, :safe_call
86
+ process_scope_with_block(model, args)
87
+ elsif call? second_arg
88
+ call = second_arg
89
+ scope_calls << scope_call_hash(call, model, call.method)
90
+ else
91
+ call = make_call(nil, :scope, args).line(args.line)
92
+ scope_calls << scope_call_hash(call, model, :scope)
93
93
  end
94
94
  end
95
95
 
96
96
  scope_calls
97
97
  end
98
98
 
99
- def ar_scope_calls(symbol_name = :named_scope, &block)
99
+ def ar_scope_calls(symbol_name, &block)
100
100
  active_record_models.each do |name, model|
101
101
  model_args = model.options[symbol_name]
102
102
  if model_args
@@ -393,6 +393,8 @@ class Brakeman::CheckSQL < Brakeman::BaseCheck
393
393
  nil
394
394
  end
395
395
 
396
+ TO_STRING_METHODS = [:to_s, :strip_heredoc]
397
+
396
398
  #Returns value if interpolated value is not something safe
397
399
  def unsafe_string_interp? exp
398
400
  if node_type? exp, :evstr
@@ -403,7 +405,7 @@ class Brakeman::CheckSQL < Brakeman::BaseCheck
403
405
 
404
406
  if not sexp? value
405
407
  nil
406
- elsif call? value and value.method == :to_s
408
+ elsif call? value and TO_STRING_METHODS.include? value.method
407
409
  unsafe_string_interp? value.target
408
410
  elsif call? value and safe_literal_target? value
409
411
  nil
@@ -466,7 +468,7 @@ class Brakeman::CheckSQL < Brakeman::BaseCheck
466
468
  unless IGNORE_METHODS_IN_SQL.include? exp.method
467
469
  if has_immediate_user_input? exp
468
470
  exp
469
- elsif exp.method == :to_s
471
+ elsif TO_STRING_METHODS.include? exp.method
470
472
  find_dangerous_value exp.target, ignore_hash
471
473
  else
472
474
  check_call exp
@@ -53,7 +53,7 @@ module Brakeman
53
53
  #Process a model source
54
54
  def process_model src, file_name
55
55
  result = ModelProcessor.new(@tracker).process_model src, file_name
56
- AliasProcessor.new(@tracker).process result if result
56
+ AliasProcessor.new(@tracker, file_name).process result if result
57
57
  end
58
58
 
59
59
  #Process either an ERB or HAML template
@@ -8,9 +8,11 @@ module Brakeman::Util
8
8
 
9
9
  PATH_PARAMETERS = Sexp.new(:call, Sexp.new(:call, nil, :request), :path_parameters)
10
10
 
11
- REQUEST_PARAMETERS = Sexp.new(:call, Sexp.new(:call, nil, :request), :request_parameters)
11
+ REQUEST_REQUEST_PARAMETERS = Sexp.new(:call, Sexp.new(:call, nil, :request), :request_parameters)
12
12
 
13
- REQUEST_PARAMS = Sexp.new(:call, Sexp.new(:call, nil, :request), :parameters)
13
+ REQUEST_PARAMETERS = Sexp.new(:call, Sexp.new(:call, nil, :request), :parameters)
14
+
15
+ REQUEST_PARAMS = Sexp.new(:call, Sexp.new(:call, nil, :request), :params)
14
16
 
15
17
  REQUEST_ENV = Sexp.new(:call, Sexp.new(:call, nil, :request), :env)
16
18
 
@@ -22,7 +24,7 @@ module Brakeman::Util
22
24
 
23
25
  SESSION = Sexp.new(:call, nil, :session)
24
26
 
25
- ALL_PARAMETERS = Set[PARAMETERS, QUERY_PARAMETERS, PATH_PARAMETERS, REQUEST_PARAMETERS, REQUEST_PARAMS]
27
+ ALL_PARAMETERS = Set[PARAMETERS, QUERY_PARAMETERS, PATH_PARAMETERS, REQUEST_REQUEST_PARAMETERS, REQUEST_PARAMETERS, REQUEST_PARAMS]
26
28
 
27
29
  ALL_COOKIES = Set[COOKIES, REQUEST_COOKIES]
28
30
 
@@ -1,3 +1,3 @@
1
1
  module Brakeman
2
- Version = "4.7.1"
2
+ Version = "4.7.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brakeman
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.7.1
4
+ version: 4.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Collins
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-29 00:00:00.000000000 Z
11
+ date: 2019-11-25 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Brakeman detects security vulnerabilities in Ruby on Rails applications
14
14
  via static analysis.
@@ -136,35 +136,35 @@ files:
136
136
  - bundle/ruby/2.6.0/gems/ruby2ruby-2.4.4/Manifest.txt
137
137
  - bundle/ruby/2.6.0/gems/ruby2ruby-2.4.4/README.rdoc
138
138
  - bundle/ruby/2.6.0/gems/ruby2ruby-2.4.4/lib/ruby2ruby.rb
139
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/History.rdoc
140
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/Manifest.txt
141
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/README.rdoc
142
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/compare/normalize.rb
143
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/debugging.md
144
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/rp_extensions.rb
145
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/rp_stringscanner.rb
146
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby20_parser.rb
147
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby20_parser.y
148
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby21_parser.rb
149
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby21_parser.y
150
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby22_parser.rb
151
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby22_parser.y
152
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby23_parser.rb
153
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby23_parser.y
154
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby24_parser.rb
155
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby24_parser.y
156
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby25_parser.rb
157
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby25_parser.y
158
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby26_parser.rb
159
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby26_parser.y
160
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby_lexer.rb
161
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby_lexer.rex
162
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby_lexer.rex.rb
163
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby_parser.rb
164
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby_parser.yy
165
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/lib/ruby_parser_extras.rb
166
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/tools/munge.rb
167
- - bundle/ruby/2.6.0/gems/ruby_parser-3.14.0/tools/ripper.rb
139
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/History.rdoc
140
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/Manifest.txt
141
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/README.rdoc
142
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/compare/normalize.rb
143
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/debugging.md
144
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/rp_extensions.rb
145
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/rp_stringscanner.rb
146
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby20_parser.rb
147
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby20_parser.y
148
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby21_parser.rb
149
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby21_parser.y
150
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby22_parser.rb
151
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby22_parser.y
152
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby23_parser.rb
153
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby23_parser.y
154
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby24_parser.rb
155
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby24_parser.y
156
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby25_parser.rb
157
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby25_parser.y
158
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby26_parser.rb
159
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby26_parser.y
160
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby_lexer.rb
161
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby_lexer.rex
162
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby_lexer.rex.rb
163
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby_parser.rb
164
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby_parser.yy
165
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/lib/ruby_parser_extras.rb
166
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/tools/munge.rb
167
+ - bundle/ruby/2.6.0/gems/ruby_parser-3.14.1/tools/ripper.rb
168
168
  - bundle/ruby/2.6.0/gems/ruby_parser-legacy-1.0.0/History.rdoc
169
169
  - bundle/ruby/2.6.0/gems/ruby_parser-legacy-1.0.0/Manifest.txt
170
170
  - bundle/ruby/2.6.0/gems/ruby_parser-legacy-1.0.0/README.rdoc
@@ -541,7 +541,14 @@ files:
541
541
  homepage: https://brakemanscanner.org
542
542
  licenses:
543
543
  - Brakeman Public Use License
544
- metadata: {}
544
+ metadata:
545
+ bug_tracker_uri: https://github.com/presidentbeef/brakeman/issues
546
+ changelog_uri: https://github.com/presidentbeef/brakeman/releases
547
+ documentation_uri: https://brakemanscanner.org/docs/
548
+ homepage_uri: https://brakemanscanner.org/
549
+ mailing_list_uri: https://gitter.im/presidentbeef/brakeman
550
+ source_code_uri: https://github.com/presidentbeef/brakeman
551
+ wiki_uri: https://github.com/presidentbeef/brakeman/wiki
545
552
  post_install_message:
546
553
  rdoc_options: []
547
554
  require_paths: