inspec 4.18.39 → 4.18.51

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
2
  SHA256:
3
- metadata.gz: 398cfa1582305a817199e0bae6b3642d0c1aebcf5e1853f10d8e5213a467c7ad
4
- data.tar.gz: 26be7c80d1a1065b44b479b221dcb3a1e17a136525fed65e7010961a469dda3c
3
+ metadata.gz: 7a86b0035c773f317e5a501e1b4dffb4390406dacf3de932232da5f2d8da9ad3
4
+ data.tar.gz: 01b2996b318a7726059588f7fc58575e47321e814e74632bf7ae9d02c6093bbd
5
5
  SHA512:
6
- metadata.gz: af1cc64f102f9ea93526c163fac5f5e241a08cb18572fceee8bbe7f792f4e796fd9757a30e1815ba578bd8094f7c78fe3747d7f07e80a6743f967562a2465533
7
- data.tar.gz: ebbbee6e19498cecebc033ed8531d1fc3ff5ea98f9f6e315b4c1c3fc48e85faee54ee434bb783941130729cc3053d16392f79db06597f278f599ef2cc3c336d6
6
+ metadata.gz: 8097d17a8ba6acd4e3a9a10f3cfa00ead7ca11ff63883150db7cd00a761b6ef750dd4c1ccbe25fd581092b5c4821b31ffb84094bf20c202508ea1fe93d39912e
7
+ data.tar.gz: ff1f33e691ba4334eea1cb4642a83e36795f984ba45fe13a4eddc6a8f363ed28a2fec5b374778619cdfe589e1dd862979d46c088deac5af7429313c28ee12bd2
data/Gemfile CHANGED
@@ -20,7 +20,6 @@ end
20
20
 
21
21
  group :test do
22
22
  gem "chefstyle", "~> 0.13.0"
23
- gem "coveralls", require: false
24
23
  gem "minitest", "~> 5.5"
25
24
  gem "minitest-sprint", "~> 1.0"
26
25
  gem "rake", ">= 10"
data/inspec.gemspec CHANGED
@@ -23,19 +23,20 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.required_ruby_version = ">= 2.4"
25
25
 
26
- spec.add_dependency "train", "~> 3.0" # Inspec 4 must have train 2+; 3+ if we include train-winrm
26
+ spec.add_dependency "train", "~> 3.0"
27
27
  # Train plugins we ship with InSpec
28
28
  spec.add_dependency "train-habitat", "~> 0.1"
29
29
  spec.add_dependency "train-aws", "~> 0.1"
30
- spec.add_dependency "train-winrm", "~> 0.2" # Requires train 3+
30
+ spec.add_dependency "train-winrm", "~> 0.2"
31
31
 
32
32
  # Implementation dependencies
33
+ spec.add_dependency "chef-telemetry", "~> 1.0"
33
34
  spec.add_dependency "license-acceptance", ">= 0.2.13", "< 2.0"
34
35
  spec.add_dependency "thor", "~> 0.20"
35
36
  spec.add_dependency "json-schema", "~> 2.8"
36
37
  spec.add_dependency "method_source", "~> 0.8"
37
38
  spec.add_dependency "rubyzip", "~> 1.2", ">= 1.2.2"
38
- spec.add_dependency "rspec", ["~> 3.0", "< 3.9"] # TODO: Loosen - See https://github.com/inspec/inspec/issues/4575
39
+ spec.add_dependency "rspec", "~> 3.9"
39
40
  spec.add_dependency "rspec-its", "~> 1.2"
40
41
  spec.add_dependency "pry", "~> 0"
41
42
  spec.add_dependency "hashie", "~> 3.4"
@@ -46,7 +47,7 @@ Gem::Specification.new do |spec|
46
47
  spec.add_dependency "tty-table", "~> 0.10"
47
48
  spec.add_dependency "tty-prompt", "~> 0.17"
48
49
  # Used for Azure profile until integrated into train
49
- spec.add_dependency "faraday_middleware", "~> 0.12.2"
50
+ spec.add_dependency "faraday_middleware", "~> 0.12"
50
51
  spec.add_dependency "tomlrb", "~> 1.2"
51
52
  spec.add_dependency "addressable", "~> 2.4"
52
53
  spec.add_dependency "parslet", "~> 1.5"
@@ -1,6 +1,6 @@
1
1
  require "uri"
2
2
  require "inspec/fetcher"
3
- require "fetchers/url"
3
+ require "inspec/fetcher/url"
4
4
 
5
5
  # InSpec Target Helper for Supermarket
6
6
  module Supermarket
@@ -8,6 +8,8 @@ require "inspec/utils/deprecation/global_method"
8
8
  # Allow end of options during array type parsing
9
9
  # https://github.com/erikhuda/thor/issues/631
10
10
  class Thor::Arguments
11
+ alias old_parse_array parse_array
12
+
11
13
  def parse_array(_name)
12
14
  return shift if peek.is_a?(Array)
13
15
 
@@ -8,7 +8,7 @@ module Inspec
8
8
  attr_reader :cache, :target, :fetcher
9
9
  def initialize(target, cache)
10
10
  @target = target
11
- @fetcher = Inspec::Fetcher.resolve(target)
11
+ @fetcher = Inspec::Fetcher::Registry.resolve(target)
12
12
 
13
13
  if @fetcher.nil?
14
14
  raise("Could not fetch inspec profile in #{target.inspect}.")
data/lib/inspec/cli.rb CHANGED
@@ -298,7 +298,11 @@ class Inspec::InspecCLI < Inspec::BaseCLI
298
298
  def detect
299
299
  o = config
300
300
  o[:command] = "platform.params"
301
+
302
+ configure_logger(o)
303
+
301
304
  (_, res) = run_command(o)
305
+
302
306
  if o["format"] == "json"
303
307
  puts res.to_json
304
308
  else
data/lib/inspec/config.rb CHANGED
@@ -6,7 +6,6 @@ require "stringio"
6
6
  require "forwardable"
7
7
  require "thor"
8
8
  require "base64"
9
- require "inspec/base_cli"
10
9
  require "inspec/plugin/v2/filter"
11
10
 
12
11
  module Inspec
@@ -422,6 +421,7 @@ module Inspec
422
421
 
423
422
  def finalize_set_top_level_command(options)
424
423
  options[:type] = @command_name
424
+ require "inspec/base_cli"
425
425
  Inspec::BaseCLI.inspec_cli_command = @command_name # TODO: move to a more relevant location
426
426
  end
427
427
 
@@ -26,7 +26,9 @@ module Inspec
26
26
  end
27
27
  end
28
28
 
29
- Fetcher = FetcherRegistry.new
29
+ module Fetcher
30
+ Registry = FetcherRegistry.new
31
+ end
30
32
 
31
33
  def self.fetcher(version)
32
34
  if version != 1
@@ -38,9 +40,9 @@ module Inspec
38
40
  end
39
41
 
40
42
  # TODO: remove. require up, not down.
41
- require "fetchers/local"
42
- require "fetchers/url"
43
- require "fetchers/git"
43
+ require "inspec/fetcher/local"
44
+ require "inspec/fetcher/url"
45
+ require "inspec/fetcher/git"
44
46
 
45
47
  # TODO: Remove in 4.0 when Compliance fetcher plugin is created
46
48
  require "plugins/inspec-compliance/lib/inspec-compliance/api"
@@ -3,7 +3,7 @@ require "fileutils"
3
3
  require "mixlib/shellout"
4
4
  require "inspec/log"
5
5
 
6
- module Fetchers
6
+ module Inspec::Fetcher
7
7
  #
8
8
  # The git fetcher uses the git binary to fetch remote git sources.
9
9
  # Git-based sources should be specified with the `git:` key in the
@@ -90,8 +90,8 @@ module Fetchers
90
90
  # vendoring to something more complex, don't bother.
91
91
  FileUtils.rmdir(destination_path) if Dir.empty?(destination_path)
92
92
 
93
- raise ArgumentError, "Cannot find relative path '#{@relative_path}' " \
94
- "within profile in git repo specified by '#{@remote_url}'"
93
+ raise Inspec::FetcherFailure, "Cannot find relative path '#{@relative_path}' " \
94
+ "within profile in git repo specified by '#{@remote_url}'"
95
95
  end
96
96
  FileUtils.cp_r("#{working_dir}/#{@relative_path}", destination_path)
97
97
  end
@@ -129,11 +129,11 @@ module Fetchers
129
129
  def resolve_ref(ref_name)
130
130
  command_string = "git ls-remote \"#{@remote_url}\" \"#{ref_name}*\""
131
131
  cmd = shellout(command_string)
132
- raise "Error running '#{command_string}': #{cmd.stderr}" unless cmd.exitstatus == 0
132
+ raise(Inspec::FetcherFailure, "Profile git dependency failed for #{@remote_url} - error running '#{command_string}': #{cmd.stderr}") unless cmd.exitstatus == 0
133
133
 
134
134
  ref = parse_ls_remote(cmd.stdout, ref_name)
135
135
  unless ref
136
- raise "Unable to resolve #{ref_name} to a specific git commit for #{@remote_url}"
136
+ raise Inspec::FetcherFailure, "Profile git dependency failed - unable to resolve #{ref_name} to a specific git commit for #{@remote_url}"
137
137
  end
138
138
 
139
139
  ref
@@ -191,7 +191,7 @@ module Fetchers
191
191
  cmd.error!
192
192
  cmd.status
193
193
  rescue Errno::ENOENT
194
- raise "To use git sources, you must have git installed."
194
+ raise Inspec::FetcherFailure, "Profile git dependency failed for #{@remote_url} - to use git sources, you must have git installed."
195
195
  end
196
196
 
197
197
  def shellout(cmd, opts = {})
@@ -1,6 +1,6 @@
1
1
  require "openssl"
2
2
 
3
- module Fetchers
3
+ module Inspec::Fetcher
4
4
  class Local < Inspec.fetcher(1)
5
5
  name "local"
6
6
  priority 0
@@ -101,7 +101,10 @@ module Fetchers
101
101
  end
102
102
 
103
103
  def perform_shasum(target)
104
- @archive_shasum ||= OpenSSL::Digest::SHA256.digest(File.read(target)).unpack("H*")[0]
104
+ return @archive_shasum if @archive_shasum
105
+ raise(Inspec::FetcherFailure, "Profile dependency local path '#{target}' does not exist") unless File.exist?(target)
106
+
107
+ @archive_shasum = OpenSSL::Digest::SHA256.digest(File.read(target)).unpack("H*")[0]
105
108
  end
106
109
 
107
110
  def resolved_source
@@ -1,6 +1,6 @@
1
1
  require "inspec/fetcher"
2
2
 
3
- module Fetchers
3
+ module Inspec::Fetcher
4
4
  class Mock < Inspec.fetcher(1)
5
5
  name "mock"
6
6
  priority 0
@@ -3,7 +3,7 @@ require "openssl"
3
3
  require "tempfile"
4
4
  require "open-uri"
5
5
 
6
- module Fetchers
6
+ module Inspec::Fetcher
7
7
  class Url < Inspec.fetcher(1)
8
8
  MIME_TYPES = {
9
9
  "application/x-zip-compressed" => ".zip",
@@ -205,15 +205,24 @@ module Fetchers
205
205
  @temp_archive_path = archive.path
206
206
  end
207
207
 
208
+ def open(target, opts) # overridden so we can control who we're talking to
209
+ URI.open(target, opts)
210
+ rescue NoMethodError # TODO: remove when we drop ruby 2.4
211
+ super(target, opts) # Kernel#open
212
+ end
213
+
208
214
  def open_via_uri(target)
209
215
  opts = http_opts
210
216
 
211
- if opts[:http_basic_authentication]
212
- # OpenURI does not support userinfo so we need to remove it
213
- open(target.sub("#{@target_uri.userinfo}@", ""), opts)
214
- else
215
- open(target, opts)
216
- end
217
+ # OpenURI does not support userinfo so we need to remove it
218
+ # https://ruby-doc.org/stdlib-2.5.0/libdoc/open-uri/rdoc/OpenURI/OpenRead.html#method-i-open
219
+ target = target.sub("#{@target_uri.userinfo}@", "") if
220
+ opts[:http_basic_authentication]
221
+
222
+ open(target, opts)
223
+
224
+ rescue SocketError, Errno::ECONNREFUSED, OpenURI::HTTPError => e
225
+ raise Inspec::FetcherFailure, "Profile URL dependency #{target} could not be fetched: #{e.message}"
217
226
  end
218
227
 
219
228
  def download_archive(path)
@@ -264,7 +273,7 @@ module Fetchers
264
273
  end
265
274
  end
266
275
  unless keys_missing_values.empty?
267
- raise "Unable to fetch profile - the following HTTP headers have no value: " \
276
+ raise Inspec::FetcherFailure, "Unable to fetch profile - the following HTTP headers have no value: " \
268
277
  "#{keys_missing_values.join(", ")}"
269
278
  end
270
279
  end
@@ -17,7 +17,7 @@ module Inspec
17
17
  #
18
18
  class Fetcher < PluginRegistry::Plugin
19
19
  def self.plugin_registry
20
- Inspec::Fetcher
20
+ Inspec::Fetcher::Registry
21
21
  end
22
22
 
23
23
  attr_accessor :target
@@ -431,7 +431,13 @@ module Inspec::Plugin::V2
431
431
  end
432
432
 
433
433
  # find all gem specification directories
434
- directories = [Gem::Specification.default_specifications_dir]
434
+
435
+ spec_dir = if Gem.respond_to? :default_specifications_dir
436
+ Gem.default_specifications_dir
437
+ else
438
+ Gem::Specification.default_specifications_dir
439
+ end
440
+ directories = [spec_dir]
435
441
  unless defined?(::Bundler)
436
442
  # add in any others that do not start with the user directory
437
443
  directories += Gem::Specification.dirs.find_all do |path|
@@ -1,4 +1,5 @@
1
- require "inspec/resources/command"
1
+ # circular: require "inspec/resource"
2
+ # but... already being included by inspec/resource.rb
2
3
 
3
4
  module Inspec::Resources
4
5
  class GemPackage < Inspec.resource(1)
@@ -38,6 +39,8 @@ module Inspec::Resources
38
39
  def info
39
40
  return @info if defined?(@info)
40
41
 
42
+ require "inspec/resources/command"
43
+
41
44
  cmd = inspec.command("#{@gem_binary} list --local -a -q \^#{@package_name}\$")
42
45
  return {} unless cmd.exit_status == 0
43
46
 
@@ -96,7 +96,7 @@ module Inspec::Resources
96
96
 
97
97
  def parse_csv_result(cmd)
98
98
  require "csv"
99
- table = CSV.parse(cmd.stdout, { headers: true })
99
+ table = CSV.parse(cmd.stdout, headers: true)
100
100
 
101
101
  # remove first row, since it will be a seperator line
102
102
  table.delete(0)
@@ -52,12 +52,6 @@ module Inspec::Resources
52
52
  .register_column(:inactive_days, field: "inactive_days")
53
53
  .register_column(:expiry_dates, field: "expiry_date")
54
54
  .register_column(:reserved, field: "reserved")
55
- # These are deprecated, but we need to "alias" them
56
- filtertable
57
- .register_custom_property(:user) { |table, value| table.resource.user(value) }
58
- .register_custom_property(:password) { |table, value| table.resource.password(value) }
59
- .register_custom_property(:last_change) { |table, value| table.resource.last_change(value) }
60
- .register_custom_property(:expiry_date) { |table, value| table.resource.expiry_date(value) }
61
55
 
62
56
  filtertable.register_custom_property(:content) do |t, _|
63
57
  t.entries.map do |e|
@@ -223,6 +223,10 @@ module Inspec::Resources
223
223
  meta_info[:userflags] unless meta_info.nil?
224
224
  end
225
225
 
226
+ def lastlogin
227
+ meta_info[:lastlogin] unless meta_info.nil?
228
+ end
229
+
226
230
  # returns the minimum days between password changes
227
231
  def mindays
228
232
  credentials[:mindays] unless credentials.nil?
@@ -632,6 +636,7 @@ module Inspec::Resources
632
636
  shell: res[:shell],
633
637
  domain: res[:domain],
634
638
  userflags: res[:userflags],
639
+ lastlogin: res[:lastlogin],
635
640
  }
636
641
  end
637
642
 
@@ -715,6 +720,7 @@ module Inspec::Resources
715
720
  home = $_.HomeDirectory[0]
716
721
  shell = $null
717
722
  domain = $Computername
723
+ lastlogin = if($_.lastlogin.getType().Tostring() -eq "System.Management.Automation.PSMethod" ){ $null }else{[String]$_.lastlogin}
718
724
  }
719
725
  } | ConvertTo-Json
720
726
  EOH
@@ -11,14 +11,13 @@ module Inspec
11
11
  module DescribeDslLazyLoader
12
12
  # Support for Describe DSL plugins
13
13
  def method_missing(method_name, *arguments, &block)
14
- # TODO: need a backend available at the describe level... class method somewhere?
15
- # # see if it is a resource first
16
- # begin
17
- # resource = Inspec::DSL.method_missing_resource(:where_is_backend?, method_name, *arguments)
18
- # return resource if resource
19
- # rescue LoadError
20
- # # pass through
21
- # end
14
+ begin
15
+ backend = metadata[:backend] # populated via Inspec::Runner#add_resource
16
+ resource = Inspec::DSL.method_missing_resource(backend, method_name, *arguments)
17
+ return resource if resource
18
+ rescue LoadError
19
+ # pass through
20
+ end
22
21
 
23
22
  # Check to see if there is a describe_dsl plugin activator hook with the method name
24
23
  registry = Inspec::Plugin::V2::Registry.instance
data/lib/inspec/runner.rb CHANGED
@@ -228,7 +228,7 @@ module Inspec
228
228
  end
229
229
 
230
230
  def eval_with_virtual_profile(command)
231
- require "fetchers/mock"
231
+ require "inspec/fetcher/mock"
232
232
  add_target({ "inspec.yml" => "name: inspec-shell" })
233
233
  our_profile = @target_profiles.first
234
234
  ctx = our_profile.runner_context
@@ -307,6 +307,8 @@ module Inspec
307
307
  def add_resource(method_name, arg, opts, block)
308
308
  case method_name
309
309
  when "describe"
310
+ opts = { backend: @test_collector.backend }.merge opts
311
+
310
312
  @test_collector.example_group(*arg, opts, &block)
311
313
  when "expect"
312
314
  block.example_group
@@ -10,6 +10,8 @@ require "inspec/rspec_extensions"
10
10
 
11
11
  module Inspec
12
12
  class RunnerRspec
13
+ attr_accessor :formatter
14
+
13
15
  def initialize(conf)
14
16
  @conf = conf
15
17
  @formatter = nil
@@ -22,19 +24,26 @@ module Inspec
22
24
  # @param [Type] &block the block associated with this example group
23
25
  # @return [RSpecExampleGroup]
24
26
  def example_group(*args, &block)
27
+ # NOTE: this RUNS immediately
25
28
  RSpec::Core::ExampleGroup.describe(*args, &block)
26
29
  end
27
30
 
31
+ def formatters
32
+ RSpec.configuration.formatters.grep(Inspec::Formatters::Base)
33
+ end
34
+
28
35
  # Add a full profile to the runner. Only pulls in metadata
29
36
  #
30
37
  # @param [Inspec::Profile] profile
31
38
  # @return [nil]
32
39
  def add_profile(profile)
33
- RSpec.configuration.formatters
34
- .find_all { |c| c.is_a?(Inspec::Formatters::Base) }
35
- .each do |fmt|
36
- fmt.add_profile(profile)
37
- end
40
+ formatters.each do |fmt|
41
+ fmt.add_profile(profile)
42
+ end
43
+ end
44
+
45
+ def backend
46
+ formatters.first.backend
38
47
  end
39
48
 
40
49
  # Configure the backend of the runner.
@@ -42,11 +51,9 @@ module Inspec
42
51
  # @param [Inspec::Backend] backend
43
52
  # @return [nil]
44
53
  def backend=(backend)
45
- RSpec.configuration.formatters
46
- .find_all { |c| c.is_a?(Inspec::Formatters::Base) }
47
- .each do |fmt|
48
- fmt.backend = backend
49
- end
54
+ formatters.each do |fmt|
55
+ fmt.backend = backend
56
+ end
50
57
  end
51
58
 
52
59
  # Add an example group to the list of registered tests.
@@ -227,6 +227,8 @@ module XinetdParser
227
227
  def parse_xinetd(raw) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
228
228
  return {} if raw.nil?
229
229
 
230
+ require "inspec/utils/simpleconfig"
231
+
230
232
  res = {}
231
233
  cur_group = nil
232
234
  simple_conf = []
@@ -273,5 +275,3 @@ module XinetdParser
273
275
  res
274
276
  end
275
277
  end
276
-
277
- require "inspec/utils/simpleconfig"
@@ -1,3 +1,3 @@
1
1
  module Inspec
2
- VERSION = "4.18.39".freeze
2
+ VERSION = "4.18.51".freeze
3
3
  end
@@ -254,7 +254,7 @@ RSpec::Matchers.define :cmp do |first_expected| # rubocop:disable Metrics/BlockL
254
254
  return actual.send(op, expected.to_i)
255
255
  elsif expected.is_a?(String) && boolean?(expected) && [true, false].include?(actual)
256
256
  return actual.send(op, to_boolean(expected))
257
- elsif expected.is_a?(Integer) && integer?(actual)
257
+ elsif expected.is_a?(Integer) && actual.is_a?(String) && integer?(actual)
258
258
  return actual.to_i.send(op, expected)
259
259
  elsif expected.is_a?(Float) && float?(actual)
260
260
  return actual.to_f.send(op, expected)
@@ -8,7 +8,7 @@ require "inspec/dist"
8
8
  # similar to `inspec exec http://localhost:2134/owners/%base%/compliance/%ssh%/tar --user %token%`
9
9
  module InspecPlugins
10
10
  module Compliance
11
- class Fetcher < Fetchers::Url
11
+ class Fetcher < Inspec::Fetcher::Url
12
12
  include Inspec::Dist
13
13
 
14
14
  name "compliance"
@@ -1,8 +1,6 @@
1
1
  pkg_name=<%= "inspec-profile-#{profile.name}" %>
2
2
  pkg_version=<%= profile.version %>
3
3
  pkg_origin=<%= habitat_origin %>
4
- pkg_deps=(chef/inspec)
5
- pkg_build_deps=(chef/inspec core/jq-static)
6
4
  pkg_svc_user=root
7
5
  <%= "pkg_license='#{profile.metadata.params[:license]}'" if profile.metadata.params[:license]%>
8
6
  pkg_scaffolding="chef/scaffolding-chef-inspec"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.18.39
4
+ version: 4.18.51
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef InSpec Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-14 00:00:00.000000000 Z
11
+ date: 2019-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: train
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.2'
69
+ - !ruby/object:Gem::Dependency
70
+ name: chef-telemetry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: license-acceptance
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -153,9 +167,6 @@ dependencies:
153
167
  requirement: !ruby/object:Gem::Requirement
154
168
  requirements:
155
169
  - - "~>"
156
- - !ruby/object:Gem::Version
157
- version: '3.0'
158
- - - "<"
159
170
  - !ruby/object:Gem::Version
160
171
  version: '3.9'
161
172
  type: :runtime
@@ -163,9 +174,6 @@ dependencies:
163
174
  version_requirements: !ruby/object:Gem::Requirement
164
175
  requirements:
165
176
  - - "~>"
166
- - !ruby/object:Gem::Version
167
- version: '3.0'
168
- - - "<"
169
177
  - !ruby/object:Gem::Version
170
178
  version: '3.9'
171
179
  - !ruby/object:Gem::Dependency
@@ -300,14 +308,14 @@ dependencies:
300
308
  requirements:
301
309
  - - "~>"
302
310
  - !ruby/object:Gem::Version
303
- version: 0.12.2
311
+ version: '0.12'
304
312
  type: :runtime
305
313
  prerelease: false
306
314
  version_requirements: !ruby/object:Gem::Requirement
307
315
  requirements:
308
316
  - - "~>"
309
317
  - !ruby/object:Gem::Version
310
- version: 0.12.2
318
+ version: '0.12'
311
319
  - !ruby/object:Gem::Dependency
312
320
  name: tomlrb
313
321
  requirement: !ruby/object:Gem::Requirement
@@ -433,10 +441,6 @@ files:
433
441
  - lib/bundles/inspec-supermarket/api.rb
434
442
  - lib/bundles/inspec-supermarket/cli.rb
435
443
  - lib/bundles/inspec-supermarket/target.rb
436
- - lib/fetchers/git.rb
437
- - lib/fetchers/local.rb
438
- - lib/fetchers/mock.rb
439
- - lib/fetchers/url.rb
440
444
  - lib/inspec.rb
441
445
  - lib/inspec/archive/tar.rb
442
446
  - lib/inspec/archive/zip.rb
@@ -463,6 +467,10 @@ files:
463
467
  - lib/inspec/exceptions.rb
464
468
  - lib/inspec/expect.rb
465
469
  - lib/inspec/fetcher.rb
470
+ - lib/inspec/fetcher/git.rb
471
+ - lib/inspec/fetcher/local.rb
472
+ - lib/inspec/fetcher/mock.rb
473
+ - lib/inspec/fetcher/url.rb
466
474
  - lib/inspec/file_provider.rb
467
475
  - lib/inspec/formatters.rb
468
476
  - lib/inspec/formatters/base.rb