inspec 2.3.28 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -6
- data/Gemfile +1 -0
- data/README.md +1 -1
- data/inspec.gemspec +1 -1
- data/lib/inspec/base_cli.rb +1 -23
- data/lib/inspec/cli.rb +0 -2
- data/lib/inspec/dsl.rb +4 -1
- data/lib/inspec/formatters/base.rb +0 -1
- data/lib/inspec/metadata.rb +0 -7
- data/lib/inspec/profile.rb +33 -13
- data/lib/inspec/reporters/automate.rb +1 -1
- data/lib/inspec/reporters/cli.rb +5 -0
- data/lib/inspec/reporters/json.rb +2 -0
- data/lib/inspec/runner.rb +9 -5
- data/lib/inspec/runner_rspec.rb +3 -2
- data/lib/inspec/schema.rb +2 -0
- data/lib/inspec/version.rb +1 -1
- data/lib/resources/apache.rb +1 -1
- data/lib/resources/processes.rb +1 -1
- data/lib/resources/yum.rb +0 -25
- data/lib/source_readers/inspec.rb +0 -8
- data/lib/utils/database_helpers.rb +0 -10
- metadata +2 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ca6936485ca0d43d8e2a6d4a666d00d35a0b34213395edf195e3464922ac05c
|
4
|
+
data.tar.gz: 4af42fb90e856a6fdbb03da658caf5e5a299ab490655abdee8901d292425011c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b292beb653ebc321790748a416f99a0f0b5d9c8248e34af8ed1206d1f67764f09c9336ab61c2d8bbe2d8fa134d1faf4e4363636e4388f18b4b632ba49e9b7721
|
7
|
+
data.tar.gz: 335128b72b28c6b66cf9d2d9beac4a4540a597415fe019b250597e9a6dc9db33a987c7223a5999fa243c5ef9d27d2a2c284f1d5ab5662a6742f4e1ad79a40836
|
data/CHANGELOG.md
CHANGED
@@ -1,18 +1,19 @@
|
|
1
1
|
# Change Log
|
2
2
|
<!-- usage documentation: http://expeditor-docs.es.chef.io/configuration/changelog/ -->
|
3
|
-
<!-- latest_release
|
4
|
-
##
|
3
|
+
<!-- latest_release unreleased -->
|
4
|
+
## Unreleased
|
5
5
|
|
6
|
-
####
|
7
|
-
-
|
6
|
+
#### Enhancements
|
7
|
+
- Inspec 3.0 [#3512](https://github.com/inspec/inspec/pull/3512) ([jquick](https://github.com/jquick))
|
8
8
|
<!-- latest_release -->
|
9
9
|
|
10
10
|
<!-- release_rollup since=2.3.24 -->
|
11
11
|
### Changes since 2.3.24 release
|
12
12
|
|
13
|
+
#### Enhancements
|
14
|
+
- Inspec 3.0 [#3512](https://github.com/inspec/inspec/pull/3512) ([jquick](https://github.com/jquick)) <!-- 3.0.0 -->
|
15
|
+
|
13
16
|
#### Merged Pull Requests
|
14
|
-
- Remove bundler pin from 2.x series [#3795](https://github.com/inspec/inspec/pull/3795) ([clintoncwolfe](https://github.com/clintoncwolfe)) <!-- 2.3.28 -->
|
15
|
-
- Update copyright for 2.x branch [#3794](https://github.com/inspec/inspec/pull/3794) ([clintoncwolfe](https://github.com/clintoncwolfe)) <!-- 2.3.27 -->
|
16
17
|
- Update the text on the generic default attribute [#3508](https://github.com/inspec/inspec/pull/3508) ([jquick](https://github.com/jquick)) <!-- 2.3.26 -->
|
17
18
|
- Change `Inspec ` to `InSpec ` where appropriate [#3494](https://github.com/inspec/inspec/pull/3494) ([jerryaldrichiii](https://github.com/jerryaldrichiii)) <!-- 2.3.25 -->
|
18
19
|
<!-- release_rollup -->
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -439,7 +439,7 @@ Please see [TESTING_AGAINST_AZURE.md](./test/integration/aws/TESTING_AGAINST_AZU
|
|
439
439
|
| **Author:** | Dominik Richter (<drichter@chef.io>) |
|
440
440
|
| **Author:** | Christoph Hartmann (<chartmann@chef.io>) |
|
441
441
|
| **Copyright:** | Copyright (c) 2015 Vulcano Security GmbH. |
|
442
|
-
| **Copyright:** | Copyright (c)
|
442
|
+
| **Copyright:** | Copyright (c) 2017 Chef Software Inc. |
|
443
443
|
| **License:** | Apache License, Version 2.0 |
|
444
444
|
|
445
445
|
Licensed under the Apache License, Version 2.0 (the "License");
|
data/inspec.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
|
27
27
|
spec.required_ruby_version = '>= 2.3'
|
28
28
|
|
29
|
-
spec.add_dependency 'train', '~> 1.5'
|
29
|
+
spec.add_dependency 'train', '~> 1.5'
|
30
30
|
spec.add_dependency 'thor', '~> 0.20'
|
31
31
|
spec.add_dependency 'json', '>= 1.8', '< 3.0'
|
32
32
|
spec.add_dependency 'method_source', '~> 0.8'
|
data/lib/inspec/base_cli.rb
CHANGED
@@ -82,8 +82,6 @@ module Inspec
|
|
82
82
|
profile_options
|
83
83
|
option :controls, type: :array,
|
84
84
|
desc: 'A list of control names to run, or a list of /regexes/ to match against control names. Ignore all other tests.'
|
85
|
-
option :format, type: :string,
|
86
|
-
desc: '[DEPRECATED] Please use --reporter - this will be removed in InSpec 3.0'
|
87
85
|
option :reporter, type: :array,
|
88
86
|
banner: 'one two:/output/file/path',
|
89
87
|
desc: 'Enable one or more output reporters: cli, documentation, html, progress, json, json-min, json-rspec, junit, yaml'
|
@@ -116,23 +114,7 @@ module Inspec
|
|
116
114
|
}
|
117
115
|
end
|
118
116
|
|
119
|
-
def self.parse_reporters(opts) # rubocop:disable Metrics/AbcSize
|
120
|
-
# merge in any legacy formats as reporter
|
121
|
-
# this method will only be used for ad-hoc runners
|
122
|
-
if !opts['format'].nil? && opts['reporter'].nil?
|
123
|
-
warn '[DEPRECATED] The option --format is being deprecated and will be removed in inspec 3.0. Please use --reporter'
|
124
|
-
|
125
|
-
# see if we are using the legacy output to write to files
|
126
|
-
if opts['output']
|
127
|
-
warn '[DEPRECATED] The option \'output\' is being deprecated and will be removed in inspec 3.0. Please use --reporter name:path'
|
128
|
-
opts['format'] = "#{opts['format']}:#{opts['output']}"
|
129
|
-
opts.delete('output')
|
130
|
-
end
|
131
|
-
|
132
|
-
opts['reporter'] = Array(opts['format'])
|
133
|
-
opts.delete('format')
|
134
|
-
end
|
135
|
-
|
117
|
+
def self.parse_reporters(opts) # rubocop:disable Metrics/AbcSize
|
136
118
|
# default to cli report for ad-hoc runners
|
137
119
|
opts['reporter'] = ['cli'] if opts['reporter'].nil?
|
138
120
|
|
@@ -312,10 +294,6 @@ module Inspec
|
|
312
294
|
json_config = options_json
|
313
295
|
opts.merge!(json_config)
|
314
296
|
|
315
|
-
# remove the default reporter if we are setting a legacy format on the cli
|
316
|
-
# or via json-config
|
317
|
-
opts.delete('reporter') if options['format'] || json_config['format']
|
318
|
-
|
319
297
|
# merge in any options defined via thor
|
320
298
|
opts.merge!(options)
|
321
299
|
|
data/lib/inspec/cli.rb
CHANGED
@@ -213,8 +213,6 @@ class Inspec::InspecCLI < Inspec::BaseCLI
|
|
213
213
|
target_options
|
214
214
|
option :command, aliases: :c,
|
215
215
|
desc: 'A single command string to run instead of launching the shell'
|
216
|
-
option :format, type: :string, default: nil, hide: true,
|
217
|
-
desc: '[DEPRECATED] Please use --reporter - this will be removed in InSpec 3.0'
|
218
216
|
option :reporter, type: :array,
|
219
217
|
banner: 'one two:/output/file/path',
|
220
218
|
desc: 'Enable one or more output reporters: cli, documentation, html, progress, json, json-min, json-rspec, junit'
|
data/lib/inspec/dsl.rb
CHANGED
@@ -30,8 +30,11 @@ module Inspec::DSL
|
|
30
30
|
def self.load_spec_files_for_profile(bind_context, opts, &block)
|
31
31
|
dependencies = opts[:dependencies]
|
32
32
|
profile_id = opts[:profile_id]
|
33
|
-
|
34
33
|
dep_entry = dependencies.list[profile_id]
|
34
|
+
|
35
|
+
# do not load any controls if the profile is not supported
|
36
|
+
return unless dep_entry.profile.supports_platform?
|
37
|
+
|
35
38
|
if dep_entry.nil?
|
36
39
|
raise <<~EOF
|
37
40
|
Cannot load #{profile_id} since it is not listed as a dependency of #{bind_context.profile_name}.
|
data/lib/inspec/metadata.rb
CHANGED
@@ -159,13 +159,6 @@ module Inspec
|
|
159
159
|
when Hash then [finalize_supports_elem(x, logger)]
|
160
160
|
when Array then x.map { |e| finalize_supports_elem(e, logger) }.compact
|
161
161
|
when nil then []
|
162
|
-
else
|
163
|
-
logger ||= Logger.new(nil)
|
164
|
-
logger.warn(
|
165
|
-
"Do not use deprecated `supports: #{x}` syntax. Instead use:\n"\
|
166
|
-
"supports:\n - os-family: #{x}\n\n",
|
167
|
-
)
|
168
|
-
[{ :'os-family' => x }] # rubocop:disable Style/HashSyntax
|
169
162
|
end
|
170
163
|
end
|
171
164
|
|
data/lib/inspec/profile.rb
CHANGED
@@ -159,10 +159,16 @@ module Inspec
|
|
159
159
|
supports_platform? && supports_runtime?
|
160
160
|
end
|
161
161
|
|
162
|
+
# We need to check if we're using a Mock'd backend for tests to function.
|
163
|
+
# @returns [TrueClass, FalseClass]
|
162
164
|
def supports_platform?
|
163
165
|
if @supports_platform.nil?
|
164
166
|
@supports_platform = metadata.supports_platform?(@backend)
|
165
167
|
end
|
168
|
+
if @backend.backend.class.to_s == 'Train::Transports::Mock::Connection'
|
169
|
+
@supports_platform = true
|
170
|
+
end
|
171
|
+
|
166
172
|
@supports_platform
|
167
173
|
end
|
168
174
|
|
@@ -178,7 +184,8 @@ module Inspec
|
|
178
184
|
end
|
179
185
|
|
180
186
|
def collect_tests(include_list = @controls)
|
181
|
-
|
187
|
+
unless @tests_collected
|
188
|
+
return unless supports_platform?
|
182
189
|
locked_dependencies.each(&:collect_tests)
|
183
190
|
|
184
191
|
tests.each do |path, content|
|
@@ -222,7 +229,21 @@ module Inspec
|
|
222
229
|
def load_libraries
|
223
230
|
return @runner_context if @libraries_loaded
|
224
231
|
|
225
|
-
locked_dependencies.
|
232
|
+
locked_dependencies.dep_list.each_with_index do |(_name, dep), i|
|
233
|
+
d = dep.profile
|
234
|
+
# this will force a dependent profile load so we are only going to add
|
235
|
+
# this metadata if the parent profile is supported.
|
236
|
+
if supports_platform? && !d.supports_platform?
|
237
|
+
# since ruby 1.9 hashes are ordered so we can just use index values here
|
238
|
+
metadata.dependencies[i][:status] = 'skipped'
|
239
|
+
msg = "Skipping profile: '#{d.name}' on unsupported platform: '#{d.backend.platform.name}/#{d.backend.platform.release}'."
|
240
|
+
metadata.dependencies[i][:skip_message] = msg
|
241
|
+
next
|
242
|
+
elsif metadata.dependencies[i]
|
243
|
+
# Currently wrapper profiles will load all dependencies, and then we
|
244
|
+
# load them again when we dive down. This needs to be re-done.
|
245
|
+
metadata.dependencies[i][:status] = 'loaded'
|
246
|
+
end
|
226
247
|
c = d.load_libraries
|
227
248
|
@runner_context.add_resources(c)
|
228
249
|
end
|
@@ -245,7 +266,7 @@ module Inspec
|
|
245
266
|
info(load_params.dup)
|
246
267
|
end
|
247
268
|
|
248
|
-
def info(res = params.dup) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
269
|
+
def info(res = params.dup) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/MethodLength
|
249
270
|
# add information about the controls
|
250
271
|
res[:controls] = res[:controls].map do |id, rule|
|
251
272
|
next if id.to_s.empty?
|
@@ -284,6 +305,14 @@ module Inspec
|
|
284
305
|
res[:sha256] = sha256
|
285
306
|
res[:parent_profile] = parent_profile unless parent_profile.nil?
|
286
307
|
|
308
|
+
if !supports_platform?
|
309
|
+
res[:status] = 'skipped'
|
310
|
+
msg = "Skipping profile: '#{name}' on unsupported platform: '#{backend.platform.name}/#{backend.platform.release}'."
|
311
|
+
res[:skip_message] = msg
|
312
|
+
else
|
313
|
+
res[:status] = 'loaded'
|
314
|
+
end
|
315
|
+
|
287
316
|
# convert legacy os-* supports to their platform counterpart
|
288
317
|
if res[:supports] && !res[:supports].empty?
|
289
318
|
res[:supports].each do |support|
|
@@ -335,9 +364,6 @@ module Inspec
|
|
335
364
|
|
336
365
|
@logger.info "Checking profile in #{@target}"
|
337
366
|
meta_path = @source_reader.target.abs_path(@source_reader.metadata.ref)
|
338
|
-
if meta_path =~ /metadata\.rb$/
|
339
|
-
warn.call(@target, 0, 0, nil, 'The use of `metadata.rb` is deprecated. Use `inspec.yml`.')
|
340
|
-
end
|
341
367
|
|
342
368
|
# verify metadata
|
343
369
|
m_errors, m_warnings = metadata.valid
|
@@ -350,12 +376,6 @@ module Inspec
|
|
350
376
|
# extract profile name
|
351
377
|
result[:summary][:profile] = metadata.params[:name]
|
352
378
|
|
353
|
-
# check if the profile is using the old test directory instead of the
|
354
|
-
# new controls directory
|
355
|
-
if @source_reader.tests.keys.any? { |x| x =~ %r{^test/$} }
|
356
|
-
warn.call(@target, 0, 0, nil, 'Profile uses deprecated `test` directory, rename it to `controls`.')
|
357
|
-
end
|
358
|
-
|
359
379
|
count = controls_count
|
360
380
|
result[:summary][:controls] = count
|
361
381
|
if count == 0
|
@@ -542,7 +562,7 @@ module Inspec
|
|
542
562
|
params[:controls] = controls = {}
|
543
563
|
params[:groups] = groups = {}
|
544
564
|
prefix = @source_reader.target.prefix || ''
|
545
|
-
tests
|
565
|
+
tests&.each do |rule|
|
546
566
|
next if rule.nil?
|
547
567
|
f = load_rule_filepath(prefix, rule)
|
548
568
|
load_rule(rule, f, controls, groups)
|
@@ -23,7 +23,7 @@ module Inspec::Reporters
|
|
23
23
|
final_report[:type] = 'inspec_report'
|
24
24
|
|
25
25
|
final_report[:end_time] = Time.now.utc.strftime('%FT%TZ')
|
26
|
-
final_report[:node_uuid] = @config['node_uuid'] || @
|
26
|
+
final_report[:node_uuid] = @config['node_uuid'] || @config['target_id']
|
27
27
|
raise Inspec::ReporterError, 'Cannot find a UUID for your node. Please specify one via json-config.' if final_report[:node_uuid].nil?
|
28
28
|
|
29
29
|
final_report[:report_uuid] = @config['report_uuid'] || uuid_from_string(final_report[:end_time] + final_report[:node_uuid])
|
data/lib/inspec/reporters/cli.rb
CHANGED
@@ -44,6 +44,11 @@ module Inspec::Reporters
|
|
44
44
|
|
45
45
|
def render
|
46
46
|
run_data[:profiles].each do |profile|
|
47
|
+
if profile[:status] == 'skipped'
|
48
|
+
platform = run_data[:platform]
|
49
|
+
output("Skipping profile: '#{profile[:name]}' on unsupported platform: '#{platform[:name]}/#{platform[:release]}'.")
|
50
|
+
next
|
51
|
+
end
|
47
52
|
@control_count = 0
|
48
53
|
output('')
|
49
54
|
print_profile_header(profile)
|
data/lib/inspec/runner.rb
CHANGED
@@ -80,16 +80,24 @@ module Inspec
|
|
80
80
|
|
81
81
|
@target_profiles.each do |profile|
|
82
82
|
@test_collector.add_profile(profile)
|
83
|
+
next unless profile.supports_platform?
|
84
|
+
|
83
85
|
write_lockfile(profile) if @create_lockfile
|
84
86
|
profile.locked_dependencies
|
85
87
|
profile_context = profile.load_libraries
|
86
88
|
|
87
89
|
profile_context.dependencies.list.values.each do |requirement|
|
90
|
+
unless requirement.profile.supports_platform?
|
91
|
+
Inspec::Log.warn "Skipping profile: '#{requirement.profile.name}'" \
|
92
|
+
" on unsupported platform: '#{@backend.platform.name}/#{@backend.platform.release}'."
|
93
|
+
next
|
94
|
+
end
|
88
95
|
@test_collector.add_profile(requirement.profile)
|
89
96
|
end
|
90
97
|
|
91
98
|
@attributes = profile.runner_context.attributes if @attributes.empty?
|
92
|
-
|
99
|
+
tests = profile.collect_tests
|
100
|
+
all_controls += tests unless tests.nil?
|
93
101
|
end
|
94
102
|
|
95
103
|
all_controls.each do |rule|
|
@@ -202,10 +210,6 @@ module Inspec
|
|
202
210
|
"InSpec v#{Inspec::VERSION}.\n"
|
203
211
|
end
|
204
212
|
|
205
|
-
if !profile.supports_platform?
|
206
|
-
raise "This OS/platform (#{@backend.platform.name}/#{@backend.platform.release}) is not supported by this profile."
|
207
|
-
end
|
208
|
-
|
209
213
|
true
|
210
214
|
end
|
211
215
|
|
data/lib/inspec/runner_rspec.rb
CHANGED
@@ -84,11 +84,12 @@ module Inspec
|
|
84
84
|
def exit_code
|
85
85
|
return @rspec_exit_code if @formatter.results.empty?
|
86
86
|
stats = @formatter.results[:statistics][:controls]
|
87
|
-
|
87
|
+
skipped = @formatter.results[:profiles].first[:status] == 'skipped'
|
88
|
+
if stats[:failed][:total] == 0 && stats[:skipped][:total] == 0 && !skipped
|
88
89
|
0
|
89
90
|
elsif stats[:failed][:total] > 0
|
90
91
|
@conf['distinct_exit'] ? 100 : 1
|
91
|
-
elsif stats[:skipped][:total] > 0
|
92
|
+
elsif stats[:skipped][:total] > 0 || skipped
|
92
93
|
@conf['distinct_exit'] ? 101 : 0
|
93
94
|
else
|
94
95
|
@rspec_exit_code
|
data/lib/inspec/schema.rb
CHANGED
@@ -137,6 +137,8 @@ module Inspec
|
|
137
137
|
'copyright_email' => { 'type' => 'string', 'optional' => true },
|
138
138
|
'license' => { 'type' => 'string', 'optional' => true },
|
139
139
|
'summary' => { 'type' => 'string', 'optional' => true },
|
140
|
+
'status' => { 'type' => 'string', 'optional' => false },
|
141
|
+
'skip_message' => { 'type' => 'string', 'optional' => true },
|
140
142
|
|
141
143
|
'supports' => {
|
142
144
|
'type' => 'array',
|
data/lib/inspec/version.rb
CHANGED
data/lib/resources/apache.rb
CHANGED
@@ -26,7 +26,7 @@ module Inspec::Resources
|
|
26
26
|
|
27
27
|
attr_reader :service, :conf_dir, :conf_path, :user
|
28
28
|
def initialize
|
29
|
-
warn '[DEPRECATED] The `apache` resource is deprecated and will be removed in InSpec
|
29
|
+
warn '[DEPRECATED] The `apache` resource is deprecated and will be removed in InSpec 4.0'
|
30
30
|
|
31
31
|
if inspec.os.debian?
|
32
32
|
@service = 'apache2'
|
data/lib/resources/processes.rb
CHANGED
@@ -56,7 +56,7 @@ module Inspec::Resources
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def list
|
59
|
-
warn '[DEPRECATION] `processes.list` is deprecated. Please use `processes.entries` instead. It will be removed in version
|
59
|
+
warn '[DEPRECATION] `processes.list` is deprecated. Please use `processes.entries` instead. It will be removed in version 4.0.'
|
60
60
|
@list
|
61
61
|
end
|
62
62
|
|
data/lib/resources/yum.rb
CHANGED
@@ -152,29 +152,4 @@ module Inspec::Resources
|
|
152
152
|
"YumRepo #{@reponame}"
|
153
153
|
end
|
154
154
|
end
|
155
|
-
|
156
|
-
# for compatability with serverspec
|
157
|
-
# this is deprecated syntax and will be removed in future versions
|
158
|
-
class YumRepoLegacy < Yum
|
159
|
-
name 'yumrepo'
|
160
|
-
|
161
|
-
def initialize(name)
|
162
|
-
super()
|
163
|
-
@repository = repo(name)
|
164
|
-
end
|
165
|
-
|
166
|
-
def exists?
|
167
|
-
deprecated
|
168
|
-
@repository.exist?
|
169
|
-
end
|
170
|
-
|
171
|
-
def enabled?
|
172
|
-
deprecated
|
173
|
-
@repository.enabled?
|
174
|
-
end
|
175
|
-
|
176
|
-
def deprecated
|
177
|
-
warn '[DEPRECATION] `yumrepo(reponame)` is deprecated. Please use `yum.repo(reponame)` instead.'
|
178
|
-
end
|
179
|
-
end
|
180
155
|
end
|
@@ -12,14 +12,6 @@ module SourceReaders
|
|
12
12
|
|
13
13
|
def self.resolve(target)
|
14
14
|
return new(target, 'inspec.yml') if target.files.include?('inspec.yml')
|
15
|
-
# TODO: deprecated for 1.0.0 release
|
16
|
-
if target.files.include?('metadata.rb') &&
|
17
|
-
(
|
18
|
-
target.files.include?('controls') ||
|
19
|
-
target.files.include?('test')
|
20
|
-
)
|
21
|
-
return new(target, 'metadata.rb')
|
22
|
-
end
|
23
15
|
nil
|
24
16
|
end
|
25
17
|
|
@@ -68,16 +68,6 @@ module DatabaseHelper
|
|
68
68
|
@results.size
|
69
69
|
end
|
70
70
|
|
71
|
-
def stdout
|
72
|
-
warn '[DEPRECATION] The `stdout` method is deprecated. Use `row` instead.'
|
73
|
-
@cmd.stdout
|
74
|
-
end
|
75
|
-
|
76
|
-
def stderr
|
77
|
-
warn '[DEPRECATION] The `stderr` method is deprecated. Use `successful?` instead.'
|
78
|
-
@cmd.stderr
|
79
|
-
end
|
80
|
-
|
81
71
|
def inspect
|
82
72
|
to_s
|
83
73
|
end
|
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
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dominik Richter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: train
|
@@ -17,9 +17,6 @@ dependencies:
|
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.5'
|
20
|
-
- - '='
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 1.7.1
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,9 +24,6 @@ dependencies:
|
|
27
24
|
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '1.5'
|
30
|
-
- - '='
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 1.7.1
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: thor
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|