veracode 1.0.0.alpha15 → 1.0.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.
- checksums.yaml +4 -4
- data/bin/veracode +10 -1
- data/lib/veracode.rb +201 -88
- data/lib/veracode/version.rb +2 -2
- metadata +12 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32f374241e790d16dcc804e4dd3dbbb754417e0b99afa9a3c2ab9fe80ef6466d
|
4
|
+
data.tar.gz: a10a06a8bb5b5d573808c3f2855e3b7ba9eecf2535f975f13966e755771b9dc0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66f1e39a03ef77a76bc33febbbe7e7778f3d653f2d76f5eba02c0e93a26e0eacf2e3fecfd14a3281281c6ebcf27330d219ffded199ad56db7c5791658bcb66ff
|
7
|
+
data.tar.gz: b9498b2e70b3b3c3b509937d5001067c9fe710388e7b86ab1a98c607810c41862f932b91d4112530473e412653bd861b687561af8339c662622f69e50efb4017
|
data/bin/veracode
CHANGED
@@ -23,8 +23,13 @@ require 'veracode/version'
|
|
23
23
|
$options = {
|
24
24
|
:archive_source => true,
|
25
25
|
:include_inherited => false,
|
26
|
-
:jruby => false,
|
27
26
|
:environment => false,
|
27
|
+
:verbose => false,
|
28
|
+
:jruby => false,
|
29
|
+
:skipactiverecord => false,
|
30
|
+
:skipactionview => false,
|
31
|
+
:skipsprockets => false,
|
32
|
+
:snapshot => false
|
28
33
|
}
|
29
34
|
|
30
35
|
subcommand = ARGV.shift
|
@@ -61,6 +66,10 @@ case subcommand
|
|
61
66
|
$DEBUG = true
|
62
67
|
end
|
63
68
|
|
69
|
+
opts.on("--debug-snapshot", "Generate a snapshot of the prepare state for Veracode debugging.") do
|
70
|
+
$options[:snapshot] = true
|
71
|
+
end
|
72
|
+
|
64
73
|
end.parse!
|
65
74
|
|
66
75
|
Veracode.prepare
|
data/lib/veracode.rb
CHANGED
@@ -36,6 +36,7 @@ module Veracode
|
|
36
36
|
@archive_filename = nil
|
37
37
|
@archive_dirname = nil
|
38
38
|
|
39
|
+
@expanded_app_dir = Dir.getwd
|
39
40
|
|
40
41
|
def self.init
|
41
42
|
if Gem::Dependency.new('', '~> 2.2.0').match?('', RUBY_VERSION)
|
@@ -120,10 +121,11 @@ module Veracode
|
|
120
121
|
|
121
122
|
@manifest += Dir.glob("*").keep_if {|f| File.file?(f)}
|
122
123
|
|
123
|
-
#
|
124
|
-
%w{app config
|
124
|
+
#{app config db doc lib log public script test tmp vendor}
|
125
|
+
%w{app config lib log public script}.each {|dirname|
|
125
126
|
@manifest += Dir[File.join(dirname, "**", "*")].keep_if {|f| File.file?(f)}
|
126
127
|
}
|
128
|
+
@manifest += Dir[File.join("vendor", "**", "*.rb")]
|
127
129
|
@manifest += Dir[File.join("db", "**", "*.rb")]
|
128
130
|
|
129
131
|
if $options[:archive_source]
|
@@ -202,7 +204,11 @@ module Veracode
|
|
202
204
|
exit
|
203
205
|
end
|
204
206
|
|
205
|
-
|
207
|
+
if $options[:snapshot]
|
208
|
+
puts "Please provide #{@archive_filename} to veracode for further investigation."
|
209
|
+
else
|
210
|
+
puts "Please upload #{@archive_filename}"
|
211
|
+
end
|
206
212
|
end
|
207
213
|
|
208
214
|
def self.cleanup
|
@@ -284,23 +290,27 @@ module Veracode
|
|
284
290
|
end
|
285
291
|
|
286
292
|
def self.safe_name(o)
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
( o.name.nil? ? o.to_s : o.name.to_s )
|
293
|
-
rescue
|
293
|
+
begin
|
294
|
+
case
|
295
|
+
when o == ActiveSupport::TimeWithZone
|
296
|
+
"ActiveSupport::TimeWithZone"
|
297
|
+
when o.is_a?(Module)
|
294
298
|
begin
|
295
|
-
( o.nil? ?
|
299
|
+
( o.name.nil? ? o.to_s : o.name.to_s )
|
296
300
|
rescue
|
297
|
-
|
301
|
+
begin
|
302
|
+
( o.nil? ? "nil" : o.to_s )
|
303
|
+
rescue
|
304
|
+
( o == nil ? "nil" : o.to_s ) # in case of monkey patched nil?
|
305
|
+
end
|
298
306
|
end
|
307
|
+
when o.is_a?(Method), o.is_a?(UnboundMethod)
|
308
|
+
o.name.to_s
|
309
|
+
else
|
310
|
+
o.to_s
|
299
311
|
end
|
300
|
-
|
301
|
-
|
302
|
-
else
|
303
|
-
o.to_s
|
312
|
+
rescue
|
313
|
+
"Veracode" #should result in this being dropped from the archive since we can't get a safe name for it
|
304
314
|
end
|
305
315
|
end
|
306
316
|
|
@@ -392,8 +402,8 @@ module Veracode
|
|
392
402
|
|
393
403
|
if with_disasm
|
394
404
|
insns = RubyVM::InstructionSequence.disassemble(m)
|
395
|
-
formatted += ( (insns.nil? || insns.empty?) ?
|
396
|
-
"
|
405
|
+
formatted += ( (insns.nil? || insns.empty? || insns[/.*#{@expanded_app_dir}.*/].nil?) ?
|
406
|
+
"\n" :
|
397
407
|
"#{insns}== end disasm\n"
|
398
408
|
)
|
399
409
|
end
|
@@ -419,20 +429,25 @@ module Veracode
|
|
419
429
|
##############################################################################
|
420
430
|
# Archiving Headers
|
421
431
|
def self.class_header(c)
|
422
|
-
|
432
|
+
begin
|
433
|
+
return "" unless c.is_a? Class
|
434
|
+
|
435
|
+
puts " class header" if $options[:verbose]
|
423
436
|
|
424
|
-
|
437
|
+
case
|
438
|
+
when c.superclass.nil? # this should only happen for BasicObject
|
439
|
+
return ""
|
440
|
+
when c.superclass.name.nil? # in case the parent is anonymous
|
441
|
+
name = c.superclass.to_s.dump
|
442
|
+
else
|
443
|
+
name = c.superclass.name.dump
|
444
|
+
end
|
425
445
|
|
426
|
-
|
427
|
-
|
446
|
+
"superclass #{name}\n"
|
447
|
+
rescue Exception => e
|
448
|
+
log_error e.message
|
428
449
|
return ""
|
429
|
-
when c.superclass.name.nil? # in case the parent is anonymous
|
430
|
-
name = c.superclass.to_s.dump
|
431
|
-
else
|
432
|
-
name = c.superclass.name.dump
|
433
450
|
end
|
434
|
-
|
435
|
-
"superclass #{name}\n"
|
436
451
|
end
|
437
452
|
|
438
453
|
def self.module_header(m)
|
@@ -509,25 +524,36 @@ module Veracode
|
|
509
524
|
# m.respond_to?(:global_variables) was throwing exceptions
|
510
525
|
end
|
511
526
|
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
m.__send__(get_methods, $options[:include_inherited]).
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
527
|
+
begin
|
528
|
+
%w[ public protected private ].each {|p|
|
529
|
+
get_methods = (p + "_instance_methods").to_sym
|
530
|
+
if m.respond_to?(get_methods) && m.__send__(get_methods, $options[:include_inherited]).count > 0
|
531
|
+
m.__send__(get_methods, $options[:include_inherited]).each do |m_symbol|
|
532
|
+
begin
|
533
|
+
method = m.instance_method(m_symbol)
|
534
|
+
formatted_contents += format_method(method, "#{p.to_s}_instance", with_disasm)
|
535
|
+
rescue Exception => e
|
536
|
+
log_error "Error archiving #{p.to_s} instance method #{m_symbol.to_s.dump}: #{e.message}"
|
537
|
+
end
|
521
538
|
end
|
522
539
|
end
|
523
|
-
|
524
|
-
|
540
|
+
}
|
541
|
+
rescue Exception => e
|
542
|
+
# m.respond_to?(get_methods)
|
543
|
+
end
|
525
544
|
|
526
545
|
formatted_contents
|
527
546
|
end
|
528
547
|
|
529
548
|
def self.object_contents(o, with_disasm=true)
|
530
|
-
|
549
|
+
begin
|
550
|
+
return "" unless !o.nil?
|
551
|
+
rescue Exception => e
|
552
|
+
log_error "Error testing #{o} with nil?. Probable monkey patching. #{e.message}"
|
553
|
+
return "" if o == nil
|
554
|
+
end
|
555
|
+
|
556
|
+
return "" unless o.is_a?(Object)
|
531
557
|
|
532
558
|
puts " object contents" if $options[:verbose]
|
533
559
|
|
@@ -571,12 +597,28 @@ module Veracode
|
|
571
597
|
##############################################################################
|
572
598
|
# Archiving Objects
|
573
599
|
def self.archive(objects, with_disasm=true)
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
600
|
+
veracode_artifacts = Set[
|
601
|
+
safe_name(Veracode),
|
602
|
+
safe_name(Veracode::ActiveRecord),
|
603
|
+
safe_name(Veracode::ActiveRecord::Model),
|
604
|
+
safe_name(Veracode::ActiveRecord::Schema)
|
605
|
+
]
|
606
|
+
rails_filters = [
|
607
|
+
"ActionCable::",
|
608
|
+
"ActionController::",
|
609
|
+
"ActionDispatch::",
|
610
|
+
"ActionMailer::",
|
611
|
+
"ActiveJob::",
|
612
|
+
"ActiveSupport::",
|
613
|
+
"ActiveStorage::",
|
614
|
+
"ActionView::(?!CompiledTemplates)", #Allows Compiled templates with the not group
|
615
|
+
"ActiveRecord::",
|
616
|
+
]
|
617
|
+
objects = objects.reject do |o|
|
618
|
+
sn = safe_name(o).dup
|
619
|
+
while with_disasm && !sn.slice!(/^#<(Class|Module):/).nil? do sn = sn[0..-2] end #strip #<Class: and #<Module: prefix, strip corresponding > suffix
|
620
|
+
veracode_artifacts.include?(sn) || (with_disasm && sn[/^(#{rails_filters.join('|')}).*/])
|
621
|
+
end
|
580
622
|
|
581
623
|
if $options[:verbose]
|
582
624
|
puts "Archiving #{objects.count.to_s} objects" + (with_disasm ? " with disassembly" : "")
|
@@ -585,18 +627,47 @@ module Veracode
|
|
585
627
|
|
586
628
|
objects.sort_by {|o| safe_name(o) }.each do |o|
|
587
629
|
|
588
|
-
|
630
|
+
sn = safe_name(o)
|
631
|
+
puts "archiving #{o.class.to_s.downcase} #{quote(sn)}" if $options[:verbose]
|
589
632
|
|
590
|
-
|
633
|
+
add_to_archive "#{o.class.to_s.downcase} #{quote(sn)}\n" +
|
591
634
|
( o.is_a?(Class) ? class_header(o) : "") + # superclass
|
635
|
+
( @rails6 && sn == "ActionView::Base" ? "include \"ActionView::CompiledTemplates\"\n" : "") + #hack for rails 6 compiled template output
|
592
636
|
( o.is_a?(Module) ? module_header(o) : "") + # included modules
|
593
|
-
(
|
637
|
+
( o.is_a?(Object) ? object_contents(o, with_disasm) : "") +
|
594
638
|
( o.is_a?(Module) ? module_contents(o, with_disasm) : "") +
|
595
639
|
"end#{o.class.to_s.downcase}\n" +
|
596
640
|
"\n"
|
597
641
|
end
|
598
642
|
end
|
599
643
|
|
644
|
+
def self.archive_rails6_templates
|
645
|
+
puts "archiving views" if $options[:verbose]
|
646
|
+
o = @view.compiled_method_container
|
647
|
+
compiled_views = o.instance_methods - @view_methods
|
648
|
+
formatted_contents = ""
|
649
|
+
for m_symbol in compiled_views
|
650
|
+
begin
|
651
|
+
m = o.instance_method(m_symbol)
|
652
|
+
formatted_contents += format_method(m, "public_instance", true)
|
653
|
+
rescue Exception => e
|
654
|
+
log_error "Error archiving singleton method #{m_symbol.to_s.dump}: #{e.message}"
|
655
|
+
end
|
656
|
+
end
|
657
|
+
# fake the module outpput to match what SAF expects from Rails <= 5
|
658
|
+
add_to_archive "module \"ActionView::CompiledTemplates\"\n" +
|
659
|
+
"extend \"ActiveSupport::Dependencies::ModuleConstMissing\"\n" +
|
660
|
+
"extend \"Module::Concerning\"\n" +
|
661
|
+
"extend \"ActiveSupport::ToJsonWithActiveSupportEncoder\"\n" +
|
662
|
+
"extend \"PP::ObjectMixin\"\n" +
|
663
|
+
"extend \"ActiveSupport::Dependencies::Loadable\"\n" +
|
664
|
+
"extend \"JSON::Ext::Generator::GeneratorMethods::Object\"\n" +
|
665
|
+
"extend \"ActiveSupport::Tryable\"\n" +
|
666
|
+
"extend \"Kernel\"\n" +
|
667
|
+
formatted_contents +
|
668
|
+
"endmodule\n"
|
669
|
+
end
|
670
|
+
|
600
671
|
|
601
672
|
def self.compile_templates
|
602
673
|
|
@@ -642,7 +713,11 @@ module Veracode
|
|
642
713
|
|
643
714
|
assigns = {}
|
644
715
|
view = ActionView::Base.new(view_paths, assigns)
|
645
|
-
|
716
|
+
begin
|
717
|
+
|
718
|
+
rescue Exception => e
|
719
|
+
log_error "Unable to get controller view context (#{e.message})"
|
720
|
+
end
|
646
721
|
|
647
722
|
templates.each { |template|
|
648
723
|
puts "Compiling template #{template}" if $options[:verbose]
|
@@ -655,9 +730,11 @@ module Veracode
|
|
655
730
|
end
|
656
731
|
}
|
657
732
|
|
658
|
-
|
659
|
-
|
660
|
-
|
733
|
+
unless @rails6
|
734
|
+
puts "Compiled #{ActionView::CompiledTemplates.instance_methods.count.to_s} templates" if $options[:verbose]
|
735
|
+
log_error "Compiled #{ActionView::CompiledTemplates.instance_methods.count.to_s} templates"
|
736
|
+
log_error "Not all templates were compiled" if ActionView::CompiledTemplates.instance_methods.count < templates.count
|
737
|
+
end
|
661
738
|
end
|
662
739
|
|
663
740
|
def self.compile_erb_templates
|
@@ -700,7 +777,9 @@ module Veracode
|
|
700
777
|
)
|
701
778
|
|
702
779
|
case t.method(:compile).arity
|
703
|
-
when
|
780
|
+
when 1 # Rails 6
|
781
|
+
t.send(:compile, @view)
|
782
|
+
when 2 # Rails 3.1.0+
|
704
783
|
t.send(:compile, ActionView::Base.new, ActionView::CompiledTemplates)
|
705
784
|
when 3
|
706
785
|
t.send(:compile, {}, ActionView::Base.new, ActionView::CompiledTemplates)
|
@@ -713,7 +792,7 @@ module Veracode
|
|
713
792
|
|
714
793
|
}
|
715
794
|
|
716
|
-
puts "Compiled templates: " + ActionView::CompiledTemplates.instance_methods.count.to_s if $options[:verbose]
|
795
|
+
puts "Compiled templates: " + ActionView::CompiledTemplates.instance_methods.count.to_s if $options[:verbose] && !@rails6
|
717
796
|
|
718
797
|
end
|
719
798
|
|
@@ -756,7 +835,9 @@ module Veracode
|
|
756
835
|
)
|
757
836
|
|
758
837
|
case t.method(:compile).arity
|
759
|
-
when
|
838
|
+
when 1 # Rails 6
|
839
|
+
t.send(:compile, @view)
|
840
|
+
when 2 # Rails 3.1.0+
|
760
841
|
t.send(:compile, ActionView::Base.new, ActionView::CompiledTemplates)
|
761
842
|
when 3
|
762
843
|
t.send(:compile, {}, ActionView::Base.new, ActionView::CompiledTemplates)
|
@@ -769,7 +850,7 @@ module Veracode
|
|
769
850
|
|
770
851
|
}
|
771
852
|
|
772
|
-
puts "Compiled templates: " + ActionView::CompiledTemplates.instance_methods.count.to_s if $options[:verbose]
|
853
|
+
puts "Compiled templates: " + ActionView::CompiledTemplates.instance_methods.count.to_s if $options[:verbose] && !@rails6
|
773
854
|
|
774
855
|
end
|
775
856
|
|
@@ -787,6 +868,9 @@ module Veracode
|
|
787
868
|
lib = "#{part}/#{lib}"
|
788
869
|
lib = lib[0..lib.length-2] if lib[lib.length-1] == '/'
|
789
870
|
begin
|
871
|
+
if @rails6 && (lib =~ /node_modules/ || lib == 'debug')
|
872
|
+
next
|
873
|
+
end
|
790
874
|
if cond_require lib
|
791
875
|
puts "requiring #{lib}" if $options[:verbose]
|
792
876
|
end
|
@@ -826,9 +910,6 @@ def self.require_rails(gemdir)
|
|
826
910
|
end
|
827
911
|
end
|
828
912
|
|
829
|
-
|
830
|
-
|
831
|
-
|
832
913
|
################################################################################
|
833
914
|
# Subcommands
|
834
915
|
def self.prepare
|
@@ -880,11 +961,12 @@ end
|
|
880
961
|
puts "Required rails" if $options[:verbose]
|
881
962
|
end
|
882
963
|
|
964
|
+
@rails6 = Gem::Version.new(Rails.version) >= Gem::Version.new("6.0.0")
|
883
965
|
## Imitate script/rails
|
884
966
|
# APP_PATH = File.expand_path('config/application')
|
885
|
-
|
967
|
+
# APP_PATH is already set in bin/veracode
|
886
968
|
#require File.expand_path('../../config/boot', __FILE__)
|
887
|
-
|
969
|
+
glob_require "config/boot.rb"
|
888
970
|
#require 'rails/commands'
|
889
971
|
# this will trigger the console to be launched
|
890
972
|
# ARGV.clear
|
@@ -893,7 +975,16 @@ end
|
|
893
975
|
# require 'rails/commands'
|
894
976
|
|
895
977
|
## Imitate rails/commands when console
|
896
|
-
|
978
|
+
if @rails6 || Gem::Version.new(Rails.version) >= Gem::Version.new("5.1.0")
|
979
|
+
cond_require 'rails/command.rb'
|
980
|
+
cond_require 'rails/command/actions.rb'
|
981
|
+
cond_require 'rails/command/base.rb'
|
982
|
+
cond_require 'rails/command/behavior.rb'
|
983
|
+
cond_require 'rails/command/environment_argument.rb'
|
984
|
+
cond_require 'rails/commands/console/console_command.rb'
|
985
|
+
else
|
986
|
+
cond_require 'rails/commands/console.rb'
|
987
|
+
end
|
897
988
|
# require APP_PATH # => config/application.rb
|
898
989
|
|
899
990
|
glob_require "config/application.rb"
|
@@ -929,36 +1020,58 @@ end
|
|
929
1020
|
|
930
1021
|
puts "Phase 3 - Imitate Rails" if $options[:verbose]
|
931
1022
|
|
932
|
-
|
933
|
-
|
934
|
-
any_new
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
|
1023
|
+
begin
|
1024
|
+
any_new = true
|
1025
|
+
while any_new
|
1026
|
+
any_new = false
|
1027
|
+
any_new |= glob_require "lib/**/*.rb"
|
1028
|
+
any_new |= glob_require "app/**/*.rb"
|
1029
|
+
puts "new successful requires? #{any_new.to_s}" if $options[:verbose]
|
1030
|
+
end
|
939
1031
|
|
940
|
-
|
1032
|
+
if @rails6
|
1033
|
+
self.update
|
1034
|
+
@view = ActionView::Base.with_empty_template_cache
|
1035
|
+
@view_methods = @view.compiled_method_container.instance_methods
|
1036
|
+
compile_erb_templates
|
1037
|
+
compile_haml_templates
|
1038
|
+
self.stats if $options[:verbose]
|
1039
|
+
else
|
1040
|
+
compile_templates
|
1041
|
+
self.update
|
1042
|
+
self.stats if $options[:verbose]
|
1043
|
+
end
|
941
1044
|
|
942
|
-
|
943
|
-
|
1045
|
+
# Ensure compiled templates are fully disassembled in archive
|
1046
|
+
@baseline_modules.delete(ActionView::CompiledTemplates) unless @rails6
|
944
1047
|
|
945
|
-
|
946
|
-
|
1048
|
+
if $options[:environment]
|
1049
|
+
puts "Processing and disassembling environment"
|
1050
|
+
archive(@modules.reject {|o| safe_name(o) =~ /^#<(Class|Module):0x[0-9a-f]+>/i }
|
1051
|
+
.reject {|o| safe_name(o) =~ /^Veracode/ }
|
1052
|
+
.reject {|o| safe_name(o) =~ /^EmptyRails/ }
|
1053
|
+
.reject {|o| safe_name(o) =~ /^ActionView::CompiledTemplates$/ }, false)
|
1054
|
+
else
|
1055
|
+
puts "Processing Ruby and Rails classes and modules"
|
1056
|
+
archive(@baseline_modules, false)
|
1057
|
+
add_to_archive "\n# Phase 3 - App disassembly\n"
|
1058
|
+
puts "Processing and disassembling #{APP_NAME} classes and modules"
|
1059
|
+
safe_baseline_modules = @baseline_modules.each_with_object(Set.new) { |o, s| s << safe_name(o) }
|
1060
|
+
archive(@modules.reject {|o| safe_baseline_modules.include?(safe_name(o))}, true)
|
1061
|
+
if @rails6
|
1062
|
+
archive_rails6_templates()
|
1063
|
+
end
|
1064
|
+
archive_schema
|
947
1065
|
|
948
|
-
|
949
|
-
puts "Processing and disassembling environment"
|
950
|
-
archive(@modules.reject {|o| safe_name(o) =~ /^#<(Class|Module):0x[0-9a-f]+>/i }
|
951
|
-
.reject {|o| safe_name(o) =~ /^Veracode/ }
|
952
|
-
.reject {|o| safe_name(o) =~ /^EmptyRails/ }
|
953
|
-
.reject {|o| safe_name(o) =~ /^ActionView::CompiledTemplates$/ }, false)
|
954
|
-
else
|
955
|
-
puts "Processing Ruby and Rails classes and modules"
|
956
|
-
archive(@baseline_modules, false)
|
957
|
-
add_to_archive "\n# Phase 3 - App disassembly\n"
|
958
|
-
puts "Processing and disassembling #{APP_NAME} classes and modules"
|
959
|
-
archive(@modules - @baseline_modules, true)
|
960
|
-
archive_schema
|
1066
|
+
end
|
961
1067
|
|
1068
|
+
rescue Exception => e
|
1069
|
+
if $options[:snapshot]
|
1070
|
+
log_error e.message
|
1071
|
+
log_error e.backtrace.join("\n")
|
1072
|
+
else
|
1073
|
+
raise
|
1074
|
+
end
|
962
1075
|
end
|
963
1076
|
|
964
1077
|
## /phase 3 - require app
|
data/lib/veracode/version.rb
CHANGED
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: veracode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Veracode
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.3'
|
27
27
|
description: Prepares your Ruby on Rails app for submission to Veracode.
|
28
28
|
email: devcontact@veracode.com
|
29
29
|
executables:
|
@@ -39,7 +39,7 @@ files:
|
|
39
39
|
homepage: http://veracode.com/
|
40
40
|
licenses: []
|
41
41
|
metadata: {}
|
42
|
-
post_install_message:
|
42
|
+
post_install_message:
|
43
43
|
rdoc_options: []
|
44
44
|
require_paths:
|
45
45
|
- lib
|
@@ -50,13 +50,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
50
50
|
version: 1.9.3.0
|
51
51
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - "
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
55
|
+
version: '0'
|
56
56
|
requirements: []
|
57
|
-
|
58
|
-
|
59
|
-
signing_key:
|
57
|
+
rubygems_version: 3.1.2
|
58
|
+
signing_key:
|
60
59
|
specification_version: 4
|
61
60
|
summary: Command line tool for preparing your Ruby on Rails app for submission to
|
62
61
|
Veracode
|