chef-cli 3.0.14 → 3.0.27
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/Gemfile +7 -1
- data/chef-cli.gemspec +2 -2
- data/lib/chef-cli/cli.rb +25 -37
- data/lib/chef-cli/command/env.rb +1 -1
- data/lib/chef-cli/command/gem.rb +0 -1
- data/lib/chef-cli/command/generator_commands.rb +1 -2
- data/lib/chef-cli/command/generator_commands/cookbook.rb +7 -17
- data/lib/chef-cli/command/provision.rb +0 -2
- data/lib/chef-cli/command/shell_init.rb +1 -1
- data/lib/chef-cli/dist.rb +5 -0
- data/lib/chef-cli/policyfile/artifactory_cookbook_source.rb +2 -2
- data/lib/chef-cli/policyfile/attribute_merge_checker.rb +1 -1
- data/lib/chef-cli/policyfile/community_cookbook_source.rb +1 -1
- data/lib/chef-cli/policyfile/cookbook_location_specification.rb +1 -1
- data/lib/chef-cli/policyfile/delivery_supermarket_source.rb +1 -3
- data/lib/chef-cli/policyfile/differ.rb +8 -2
- data/lib/chef-cli/policyfile/dsl.rb +1 -1
- data/lib/chef-cli/skeletons/code_generator/templates/default/inspec_default_test.rb.erb +1 -1
- data/lib/chef-cli/version.rb +1 -1
- data/lib/kitchen/provisioner/chef_zero_capture.rb +1 -1
- data/spec/unit/cli_spec.rb +17 -56
- data/spec/unit/command/env_spec.rb +1 -1
- data/spec/unit/fixtures/cookbooks_api/update_fixtures.rb +2 -2
- data/spec/unit/policyfile/differ_spec.rb +1 -1
- data/spec/unit/service_exception_inspectors/http_spec.rb +1 -1
- metadata +13 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 577fd81ddfd9035362ceca91e8657bf85601baa80a3b810bb3a537fb1c138f55
|
4
|
+
data.tar.gz: f54bf84b3b02697a25a0b6df304255322a31baa22c8fff25dcdd3b917daac99f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa616d709e416e96c148010b895e5d7e95c440544d66e9e39f2768242443f3aecaafe0fbcc3c3fa6715fbe5426bf7b55ec939db0b31338943b1a84f6bdbb04bf
|
7
|
+
data.tar.gz: 691fd1a5d1cde311bbe3c6bb8678704857733261a1b19e83f2f418ac10d2af22e3fa09c5de26a4a5599bb50733d9deca2a4f70d937b63270ad747b405db31094
|
data/Gemfile
CHANGED
@@ -13,7 +13,7 @@ group :test do
|
|
13
13
|
gem "rspec", "~> 3.8"
|
14
14
|
gem "rspec-expectations", "~> 3.8"
|
15
15
|
gem "rspec-mocks", "~> 3.8"
|
16
|
-
gem "cookstyle", "6.
|
16
|
+
gem "cookstyle", "6.14.7" # this forces dependabot PRs to open which triggers cookstyle CI on the chef generate command
|
17
17
|
gem "chefstyle", "1.2.0"
|
18
18
|
gem "test-kitchen", "> 2.5"
|
19
19
|
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.6")
|
@@ -28,3 +28,9 @@ group :development do
|
|
28
28
|
gem "pry-stack_explorer", "~> 0.4.0"
|
29
29
|
gem "rb-readline"
|
30
30
|
end
|
31
|
+
|
32
|
+
group :profile do
|
33
|
+
gem "stackprof"
|
34
|
+
gem "stackprof-webnav"
|
35
|
+
gem "memory_profiler"
|
36
|
+
end
|
data/chef-cli.gemspec
CHANGED
@@ -48,6 +48,6 @@ Gem::Specification.new do |gem|
|
|
48
48
|
gem.add_dependency "addressable", ">= 2.3.5", "< 2.8"
|
49
49
|
gem.add_dependency "cookbook-omnifetch", "~> 0.5"
|
50
50
|
gem.add_dependency "diff-lcs", ">= 1.0", "< 1.4" # 1.4 changes the output
|
51
|
-
gem.add_dependency "
|
52
|
-
gem.add_dependency "license-acceptance", "
|
51
|
+
gem.add_dependency "pastel", "~> 0.7" # used for policyfile differ
|
52
|
+
gem.add_dependency "license-acceptance", ">= 1.0.11", "< 3"
|
53
53
|
end
|
data/lib/chef-cli/cli.rb
CHANGED
@@ -59,7 +59,7 @@ module ChefCLI
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def run(enforce_license: false)
|
62
|
-
|
62
|
+
path_check!
|
63
63
|
|
64
64
|
subcommand_name, *subcommand_params = argv
|
65
65
|
|
@@ -99,42 +99,21 @@ module ChefCLI
|
|
99
99
|
if omnibus_install?
|
100
100
|
show_version_via_version_manifest
|
101
101
|
else
|
102
|
-
|
102
|
+
msg("#{ChefCLI::Dist::CLI_PRODUCT} version: #{ChefCLI::VERSION}")
|
103
103
|
end
|
104
104
|
end
|
105
105
|
|
106
106
|
def show_version_via_version_manifest
|
107
|
-
msg("#{ChefCLI::Dist::PRODUCT} version: #{
|
108
|
-
|
109
|
-
|
110
|
-
"#{ChefCLI::Dist::
|
107
|
+
msg("#{ChefCLI::Dist::PRODUCT} version: #{component_version("build_version")}")
|
108
|
+
|
109
|
+
{ "#{ChefCLI::Dist::INFRA_CLIENT_PRODUCT}": ChefCLI::Dist::INFRA_CLIENT_GEM,
|
110
|
+
"#{ChefCLI::Dist::INSPEC_PRODUCT}": ChefCLI::Dist::INSPEC_CLI,
|
111
|
+
"#{ChefCLI::Dist::CLI_PRODUCT}": ChefCLI::Dist::CLI_GEM,
|
112
|
+
"#{ChefCLI::Dist::HAB_PRODUCT}": ChefCLI::Dist::HAB_SOFTWARE_NAME,
|
111
113
|
"Test Kitchen": "test-kitchen",
|
112
114
|
"Cookstyle": "cookstyle",
|
113
|
-
}.each do |
|
114
|
-
msg("#{
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
def show_version_via_shell_out
|
119
|
-
msg("#{ChefCLI::Dist::PRODUCT} version: #{ChefCLI::VERSION}")
|
120
|
-
{ "#{ChefCLI::Dist::INFRA_CLIENT_PRODUCT}": "#{ChefCLI::Dist::INFRA_CLIENT_CLI}",
|
121
|
-
"#{ChefCLI::Dist::INSPEC_PRODUCT}": "#{ChefCLI::Dist::INSPEC_CLI}",
|
122
|
-
"Test Kitchen": "kitchen",
|
123
|
-
"Cookstyle": "cookstyle",
|
124
|
-
}.each do |name, cli|
|
125
|
-
# @todo when Ruby 2.5/2.6 support goes away this if statement can go away
|
126
|
-
if Gem::Version.new(Bundler::VERSION) >= Gem::Version.new("2")
|
127
|
-
result = Bundler.with_unbundled_env { shell_out("#{cli} --version") }
|
128
|
-
else
|
129
|
-
result = Bundler.with_clean_env { shell_out("#{cli} --version") }
|
130
|
-
end
|
131
|
-
|
132
|
-
if result.exitstatus != 0
|
133
|
-
msg("#{name} version: ERROR")
|
134
|
-
else
|
135
|
-
version = result.stdout.lines.first.scan(/(?:master\s)?[\d+\.\(\)]+\S+/).join("\s")
|
136
|
-
msg("#{name} version: #{version}")
|
137
|
-
end
|
115
|
+
}.each do |prod_name, component|
|
116
|
+
msg("#{prod_name} version: #{component_version(component)}")
|
138
117
|
end
|
139
118
|
end
|
140
119
|
|
@@ -170,8 +149,15 @@ module ChefCLI
|
|
170
149
|
commands_map.command_specs
|
171
150
|
end
|
172
151
|
|
152
|
+
#
|
153
|
+
# Is a passed parameter actually an option aka does it start with '-'
|
154
|
+
#
|
155
|
+
# @param [String] param The passed parameter to check
|
156
|
+
#
|
157
|
+
# @return [Boolean]
|
158
|
+
#
|
173
159
|
def option?(param)
|
174
|
-
param
|
160
|
+
param[0] == "-"
|
175
161
|
end
|
176
162
|
|
177
163
|
def instantiate_subcommand(name)
|
@@ -188,21 +174,23 @@ module ChefCLI
|
|
188
174
|
end
|
189
175
|
end
|
190
176
|
|
191
|
-
def
|
177
|
+
def component_version(name)
|
192
178
|
if gem_manifest_hash[name].is_a?(Array)
|
193
179
|
gem_manifest_hash[name].first
|
180
|
+
elsif manifest_hash.key? name
|
181
|
+
manifest_field(name)
|
194
182
|
else
|
195
|
-
"unknown"
|
183
|
+
manifest_hash.dig("software", name, "locked_version") || "unknown"
|
196
184
|
end
|
197
185
|
end
|
198
186
|
|
199
187
|
def manifest_hash
|
200
|
-
require "json"
|
188
|
+
require "json" unless defined?(JSON)
|
201
189
|
@manifest_hash ||= JSON.parse(read_version_manifest_json)
|
202
190
|
end
|
203
191
|
|
204
192
|
def gem_manifest_hash
|
205
|
-
require "json"
|
193
|
+
require "json" unless defined?(JSON)
|
206
194
|
@gem_manifest_hash ||= JSON.parse(read_gem_version_manifest_json)
|
207
195
|
end
|
208
196
|
|
@@ -243,7 +231,7 @@ module ChefCLI
|
|
243
231
|
# catch the cases where users setup only the embedded_bin_dir in their path, or
|
244
232
|
# when they have the embedded_bin_dir before the omnibus_bin_dir -- both of which will
|
245
233
|
# defeat appbundler and interact very badly with our intent.
|
246
|
-
def
|
234
|
+
def path_check!
|
247
235
|
# When installed outside of omnibus, trust the user to configure their PATH
|
248
236
|
return true unless omnibus_install?
|
249
237
|
|
data/lib/chef-cli/command/env.rb
CHANGED
data/lib/chef-cli/command/gem.rb
CHANGED
@@ -16,7 +16,6 @@
|
|
16
16
|
#
|
17
17
|
|
18
18
|
require "mixlib/cli" unless defined?(Mixlib::CLI)
|
19
|
-
require "rbconfig"
|
20
19
|
require "pathname" unless defined?(Pathname)
|
21
20
|
require_relative "base"
|
22
21
|
require_relative "../chef_runner"
|
@@ -38,7 +37,7 @@ module ChefCLI
|
|
38
37
|
long: "--license LICENSE",
|
39
38
|
description: "all_rights, apachev2, mit, gplv2, gplv3 - defaults to all_rights",
|
40
39
|
proc: Proc.new { |l|
|
41
|
-
|
40
|
+
/apache2/.match?(l) ? "apachev2" : l
|
42
41
|
},
|
43
42
|
default: nil
|
44
43
|
|
@@ -187,27 +187,17 @@ module ChefCLI
|
|
187
187
|
@verbose
|
188
188
|
end
|
189
189
|
|
190
|
+
#
|
191
|
+
# Is there a .delivery/cli.toml in the current dir or any of the parent dirs
|
192
|
+
#
|
193
|
+
# @return [Boolean]
|
194
|
+
#
|
190
195
|
def have_delivery_config?
|
191
196
|
# delivery-cli's logic is to look recursively upward for
|
192
197
|
# .delivery/cli.toml starting from pwd:
|
193
198
|
# https://github.com/chef/delivery-cli/blob/22cbef3987ebd0aee98405b7e161a100edc87e49/src/delivery/config/mod.rs#L225-L247
|
194
199
|
|
195
|
-
|
196
|
-
result = false
|
197
|
-
|
198
|
-
Pathname.new(path_to_check).ascend do |path|
|
199
|
-
if contains_delivery_cli_toml?(path)
|
200
|
-
result = true
|
201
|
-
break
|
202
|
-
end
|
203
|
-
end
|
204
|
-
|
205
|
-
result
|
206
|
-
end
|
207
|
-
|
208
|
-
def contains_delivery_cli_toml?(path)
|
209
|
-
delivery_cli_path = path.join(".delivery/cli.toml")
|
210
|
-
delivery_cli_path.exist?
|
200
|
+
Pathname.pwd.ascend.any? { |path| path.join(".delivery/cli.toml").exist? }
|
211
201
|
end
|
212
202
|
|
213
203
|
def read_and_validate_params
|
@@ -215,7 +205,7 @@ module ChefCLI
|
|
215
205
|
@cookbook_name_or_path = arguments[0]
|
216
206
|
if !@cookbook_name_or_path
|
217
207
|
@params_valid = false
|
218
|
-
elsif
|
208
|
+
elsif File.basename(@cookbook_name_or_path).include?("-")
|
219
209
|
msg("Hyphens are discouraged in cookbook names as they may cause problems with custom resources. See https://docs.chef.io/ctl_chef/#chef-generate-cookbook for more information.")
|
220
210
|
end
|
221
211
|
|
data/lib/chef-cli/dist.rb
CHANGED
@@ -15,11 +15,11 @@
|
|
15
15
|
# limitations under the License.
|
16
16
|
#
|
17
17
|
|
18
|
-
require "json"
|
18
|
+
require "json" unless defined?(JSON)
|
19
19
|
require_relative "../cookbook_omnifetch"
|
20
20
|
require_relative "source_uri"
|
21
21
|
require_relative "../exceptions"
|
22
|
-
require "chef/http/simple"
|
22
|
+
require "chef/http/simple" unless defined?(Chef::HTTP::Simple)
|
23
23
|
|
24
24
|
module ChefCLI
|
25
25
|
module Policyfile
|
@@ -17,7 +17,7 @@
|
|
17
17
|
|
18
18
|
require "diff/lcs"
|
19
19
|
require "diff/lcs/hunk"
|
20
|
-
require "
|
20
|
+
require "pastel"
|
21
21
|
require "ffi_yajl" unless defined?(FFI_Yajl)
|
22
22
|
|
23
23
|
module ChefCLI
|
@@ -215,9 +215,15 @@ module ChefCLI
|
|
215
215
|
ui.print("\n")
|
216
216
|
end
|
217
217
|
|
218
|
+
def pastel
|
219
|
+
@pastel ||= Pastel.new
|
220
|
+
end
|
221
|
+
|
218
222
|
def print_color_diff(hunk)
|
219
223
|
hunk.to_s.each_line do |line|
|
220
|
-
|
224
|
+
line_color = color_for_line(line)
|
225
|
+
line = pastel.decorate(line, line_color) unless line_color.nil?
|
226
|
+
ui.print(line)
|
221
227
|
end
|
222
228
|
end
|
223
229
|
|
@@ -233,7 +233,7 @@ module ChefCLI
|
|
233
233
|
message = "#{run_list_desc} has invalid cookbook name '#{cookbook}'.\nCookbook names can only contain alphanumerics, hyphens, and underscores."
|
234
234
|
|
235
235
|
# Special case when there's only one colon instead of two:
|
236
|
-
if
|
236
|
+
if /[^:]:[^:]/.match?(cookbook)
|
237
237
|
message << "\nDid you mean '#{item.sub(":", "::")}'?"
|
238
238
|
end
|
239
239
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# InSpec test for recipe <%= cookbook_name %>::<%= recipe_name %>
|
2
2
|
|
3
3
|
# The InSpec reference, with examples and extensive documentation, can be
|
4
|
-
# found at https://
|
4
|
+
# found at https://docs.chef.io/inspec/resources/
|
5
5
|
|
6
6
|
unless os.windows?
|
7
7
|
# This is an example test, replace with your own test.
|
data/lib/chef-cli/version.rb
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require "json"
|
18
|
+
require "json" unless defined?(JSON)
|
19
19
|
require "kitchen"
|
20
20
|
require "kitchen/provisioner/base"
|
21
21
|
require "kitchen/provisioner/chef_zero"
|
data/spec/unit/cli_spec.rb
CHANGED
@@ -53,11 +53,9 @@ describe ChefCLI::CLI do
|
|
53
53
|
E
|
54
54
|
end
|
55
55
|
|
56
|
-
let(:version_message) { "#{ChefCLI::Dist::PRODUCT} version: #{ChefCLI::VERSION}\n" }
|
57
|
-
|
58
56
|
def run_cli(expected_exit_code)
|
59
57
|
expect(cli).to receive(:exit).with(expected_exit_code)
|
60
|
-
expect(cli).to receive(:
|
58
|
+
expect(cli).to receive(:path_check!)
|
61
59
|
cli.run
|
62
60
|
end
|
63
61
|
|
@@ -66,16 +64,6 @@ describe ChefCLI::CLI do
|
|
66
64
|
cli.run
|
67
65
|
end
|
68
66
|
|
69
|
-
def run_cli_and_validate_tool_versions
|
70
|
-
full_version_message = version_message
|
71
|
-
tools.each do |name, details|
|
72
|
-
expect(cli).to receive(:shell_out).with("#{details["command"]} --version").and_return(mock_shell_out(0, "#{details["version_output"]}", ""))
|
73
|
-
full_version_message += "#{name} version: #{details["expected_version"]}\n"
|
74
|
-
end
|
75
|
-
run_cli(0)
|
76
|
-
expect(stdout).to eq(full_version_message)
|
77
|
-
end
|
78
|
-
|
79
67
|
def mock_shell_out(exitstatus, stdout, stderr)
|
80
68
|
shell_out = double("mixlib_shell_out")
|
81
69
|
allow(shell_out).to receive(:exitstatus).and_return(exitstatus)
|
@@ -121,12 +109,17 @@ describe ChefCLI::CLI do
|
|
121
109
|
context "given -v" do
|
122
110
|
let(:argv) { %w{-v} }
|
123
111
|
|
124
|
-
context "
|
112
|
+
context "when installed via omnibus" do
|
125
113
|
let(:mocked_version_manifest_json) do
|
126
114
|
<<~E
|
127
115
|
{
|
128
116
|
"manifest_format": 2,
|
129
|
-
"build_version": "d.e.v"
|
117
|
+
"build_version": "d.e.v",
|
118
|
+
"software": {
|
119
|
+
"habitat": {
|
120
|
+
"locked_version": "1.2.3"
|
121
|
+
}
|
122
|
+
}
|
130
123
|
}
|
131
124
|
E
|
132
125
|
end
|
@@ -160,6 +153,7 @@ describe ChefCLI::CLI do
|
|
160
153
|
Chef Infra Client version: 0.0.2
|
161
154
|
Chef InSpec version: 0.0.3
|
162
155
|
Chef CLI version: 0.0.1
|
156
|
+
Chef Habitat version: 1.2.3
|
163
157
|
Test Kitchen version: 0.0.4
|
164
158
|
Cookstyle version: 0.0.6
|
165
159
|
E
|
@@ -171,6 +165,7 @@ describe ChefCLI::CLI do
|
|
171
165
|
Chef Infra Client version: unknown
|
172
166
|
Chef InSpec version: unknown
|
173
167
|
Chef CLI version: unknown
|
168
|
+
Chef Habitat version: unknown
|
174
169
|
Test Kitchen version: unknown
|
175
170
|
Cookstyle version: unknown
|
176
171
|
E
|
@@ -195,49 +190,15 @@ describe ChefCLI::CLI do
|
|
195
190
|
end
|
196
191
|
end
|
197
192
|
|
198
|
-
context "
|
199
|
-
let(:
|
200
|
-
|
201
|
-
|
202
|
-
"command" => "chef-client",
|
203
|
-
"version_output" => "Chef Infra Client: 15.0.300",
|
204
|
-
"expected_version" => "15.0.300",
|
205
|
-
},
|
206
|
-
"Chef InSpec" => {
|
207
|
-
"command" => "inspec",
|
208
|
-
"version_output" => "4.6.2\n\nYour version of InSpec is out of date! The latest version is 4.6.4.",
|
209
|
-
"expected_version" => "4.6.2",
|
210
|
-
},
|
211
|
-
"Test Kitchen" => {
|
212
|
-
"command" => "kitchen",
|
213
|
-
"version_output" => "Test Kitchen version 2.2.5",
|
214
|
-
"expected_version" => "2.2.5",
|
215
|
-
},
|
216
|
-
"Cookstyle" => {
|
217
|
-
"command" => "cookstyle",
|
218
|
-
"version_output" => "Cookstyle 4.0.0\n * RuboCop 0.62.0",
|
219
|
-
"expected_version" => "4.0.0",
|
220
|
-
},
|
221
|
-
}
|
222
|
-
end
|
223
|
-
|
224
|
-
it "does not print versions of tools with missing or errored tools" do
|
225
|
-
full_version_message = version_message
|
226
|
-
tools.each do |name, details|
|
227
|
-
if name == "inspec"
|
228
|
-
expect(cli).to receive(:shell_out).with("#{details["command"]} --version").and_return(mock_shell_out(1, "#{details["version_output"]}", ""))
|
229
|
-
full_version_message += "#{name} version: ERROR\n"
|
230
|
-
else
|
231
|
-
expect(cli).to receive(:shell_out).with("#{details["command"]} --version").and_return(mock_shell_out(0, "#{details["version_output"]}", ""))
|
232
|
-
full_version_message += "#{name} version: #{details["expected_version"]}\n"
|
233
|
-
end
|
234
|
-
end
|
235
|
-
run_cli(0)
|
236
|
-
expect(stdout).to eq(full_version_message)
|
193
|
+
context "when installed as a gem" do
|
194
|
+
let(:gem_version_message) { "#{ChefCLI::Dist::CLI_PRODUCT} version: #{ChefCLI::VERSION}\n" }
|
195
|
+
before do
|
196
|
+
allow(cli).to receive(:omnibus_install?).and_return false
|
237
197
|
end
|
238
198
|
|
239
199
|
it "prints the version and versions of chef-cli tools" do
|
240
|
-
|
200
|
+
run_cli(0)
|
201
|
+
expect(stdout).to eq(gem_version_message)
|
241
202
|
end
|
242
203
|
end
|
243
204
|
end
|
@@ -295,7 +256,7 @@ describe ChefCLI::CLI do
|
|
295
256
|
end
|
296
257
|
end
|
297
258
|
|
298
|
-
context "
|
259
|
+
context "path_check!" do
|
299
260
|
|
300
261
|
before do
|
301
262
|
allow(Gem).to receive(:ruby).and_return(ruby_path)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.27
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chef Software, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-cli
|
@@ -173,45 +173,39 @@ dependencies:
|
|
173
173
|
- !ruby/object:Gem::Version
|
174
174
|
version: '1.4'
|
175
175
|
- !ruby/object:Gem::Dependency
|
176
|
-
name:
|
176
|
+
name: pastel
|
177
177
|
requirement: !ruby/object:Gem::Requirement
|
178
178
|
requirements:
|
179
|
-
- - "
|
180
|
-
- !ruby/object:Gem::Version
|
181
|
-
version: '1'
|
182
|
-
- - "<"
|
179
|
+
- - "~>"
|
183
180
|
- !ruby/object:Gem::Version
|
184
|
-
version: '
|
181
|
+
version: '0.7'
|
185
182
|
type: :runtime
|
186
183
|
prerelease: false
|
187
184
|
version_requirements: !ruby/object:Gem::Requirement
|
188
185
|
requirements:
|
189
|
-
- - "
|
190
|
-
- !ruby/object:Gem::Version
|
191
|
-
version: '1'
|
192
|
-
- - "<"
|
186
|
+
- - "~>"
|
193
187
|
- !ruby/object:Gem::Version
|
194
|
-
version: '
|
188
|
+
version: '0.7'
|
195
189
|
- !ruby/object:Gem::Dependency
|
196
190
|
name: license-acceptance
|
197
191
|
requirement: !ruby/object:Gem::Requirement
|
198
192
|
requirements:
|
199
|
-
- - "~>"
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '1.0'
|
202
193
|
- - ">="
|
203
194
|
- !ruby/object:Gem::Version
|
204
195
|
version: 1.0.11
|
196
|
+
- - "<"
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
version: '3'
|
205
199
|
type: :runtime
|
206
200
|
prerelease: false
|
207
201
|
version_requirements: !ruby/object:Gem::Requirement
|
208
202
|
requirements:
|
209
|
-
- - "~>"
|
210
|
-
- !ruby/object:Gem::Version
|
211
|
-
version: '1.0'
|
212
203
|
- - ">="
|
213
204
|
- !ruby/object:Gem::Version
|
214
205
|
version: 1.0.11
|
206
|
+
- - "<"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '3'
|
215
209
|
description: A streamlined development and deployment workflow for Chef platform.
|
216
210
|
email:
|
217
211
|
- info@chef.io
|