berkshelf 8.0.22 → 8.1.6

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: 285e9896759a9c75e6b12468afdd4766ba16a747eb4e3d08fe5c27632bcd6ff4
4
- data.tar.gz: c9a643ebb4ddda00a859f0b732078be6a89baa0b9bae6fd5270c99affb24e7b2
3
+ metadata.gz: 7f5952e66b54c357be6385c8b13dda044012e0d9c3cfed474d3db9008298d61c
4
+ data.tar.gz: 882567b118be0253fbea1db8052de0a259a33f23d3d809dd7b508ed077d9cd28
5
5
  SHA512:
6
- metadata.gz: a03b55f1d8a8101e7423dc1bbbaeb05954ae4ea76be52f6638a3e4f6d2aa9328606884882c867fed211317917d46d47a5510d544804ef2b883d4c92527032e7f
7
- data.tar.gz: d45006fe865e833985b02c6038c8f00a1779ea2a59d3a2566279a077565993e9dc4451e211f194d1ee73ee48a5f6f12dcd3dcda83637a5c1d0a005136b27bae3
6
+ metadata.gz: b65c5b81ba1e674c66f889821e38b85ea279854f4e5e27e6994c926941136846e746d97a6eec4962b252b9459f92c538fc04a931517a38aa2732dcea776ac9c5
7
+ data.tar.gz: 2e0624b22d6777eae1fa35e71143fab71d8b206349379588a9b3843d3d0ceceaf0b03307fa9242f4a1e2649d86778e8a8bf63f3f93f44518a9c51ecb1afd1d93
data/Gemfile CHANGED
@@ -3,14 +3,14 @@ source "https://rubygems.org"
3
3
  gemspec
4
4
 
5
5
  group :build do
6
- gem "rake", ">= 10.1"
6
+ gem "rake", ">= 10.1"
7
7
  end
8
8
 
9
9
  group :development do
10
- gem "aruba", "~> 0.10" # Stay below 1 until aruba/in_process monkeypatching stops
11
10
  gem "debug"
12
- gem "cucumber", "< 4.0" # until we identify what is generating the ~@no_run tag in CI
13
- gem "cucumber-expressions", "= 5.0.13"
11
+ gem "aruba", "~> 2.3"
12
+ gem "cucumber", ">= 9.2", "< 10"
13
+ gem "cucumber-cucumber-expressions", "~> 17.1"
14
14
  gem "chef-zero", ">= 4.0"
15
15
  gem "dep_selector", ">= 1.0"
16
16
  gem "fuubar", ">= 2.0"
@@ -23,7 +23,6 @@ end
23
23
 
24
24
  gem "appbundler"
25
25
 
26
-
27
26
  instance_eval(ENV["GEMFILE_MOD"]) if ENV["GEMFILE_MOD"]
28
27
 
29
28
  # If you want to load debugging tools into the bundle exec sandbox,
data/berkshelf.gemspec CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.name = "berkshelf"
26
26
  s.require_paths = ["lib"]
27
27
  s.version = Berkshelf::VERSION
28
- s.required_ruby_version = ">= 2.7.0"
28
+ s.required_ruby_version = ">= 3.1.0"
29
29
  s.required_rubygems_version = ">= 2.0.0"
30
30
  s.metadata = {
31
31
  "bug_tracker_uri" => "https://github.com/chef/berkshelf/issues",
@@ -35,9 +35,9 @@ Gem::Specification.new do |s|
35
35
 
36
36
  ruby_version = Gem::Version.new(RUBY_VERSION)
37
37
 
38
- s.add_dependency "mixlib-shellout", ">= 2.0", "< 4.0"
38
+ s.add_dependency "mixlib-shellout", ">= 2.0", "< 4.0"
39
39
 
40
- s.add_dependency "chef-cleanroom", "~> 1.0"
40
+ s.add_dependency "chef-cleanroom", "~> 1.0"
41
41
 
42
42
  if ruby_version >= Gem::Version.new("3.1.0")
43
43
  s.add_dependency "minitar", "~> 1.0"
@@ -55,7 +55,7 @@ Gem::Specification.new do |s|
55
55
  s.add_dependency "retryable", ">= 2.0", "< 4.0"
56
56
  s.add_dependency "solve", "~> 4.0"
57
57
 
58
- s.add_dependency "thor", ">= 0.20", "< 1.3.0"
58
+ s.add_dependency "thor", "~> 1.4"
59
59
  s.add_dependency "octokit", ">= 4.0", "< 6.0"
60
60
 
61
61
  s.add_dependency "mixlib-archive", ">= 1.1.4", "< 2.0" # needed for ruby 3.0 / Dir.chdir removal
@@ -66,4 +66,7 @@ Gem::Specification.new do |s|
66
66
  s.add_dependency "chef-config"
67
67
  # this is required for Mixlib::Config#from_json
68
68
  s.add_dependency "mixlib-config", ">= 2.2.5"
69
+
70
+ # syslog was removed from Ruby's standard library in 3.4; see https://stdgems.org/new-in/3.4
71
+ s.add_dependency "syslog", "~> 0.3"
69
72
  end
@@ -1,4 +1,4 @@
1
- require 'chef/version_class'
1
+ require "chef/version_class"
2
2
 
3
3
  module Berkshelf
4
4
  module Validator
@@ -36,7 +36,7 @@ module Berkshelf
36
36
  def validate_versions(cookbook)
37
37
  cookbook_dependencies = cookbook.dependencies
38
38
  cookbook_dependencies.each do |cookbook_name, cookbook_version|
39
- version = cookbook_version.gsub(/[^\d,\.]/, '')
39
+ version = cookbook_version.gsub(/[^\d,\.]/, "")
40
40
  Chef::Version.new(version)
41
41
  end
42
42
  end
@@ -1,3 +1,3 @@
1
1
  module Berkshelf
2
- VERSION = "8.0.22".freeze
2
+ VERSION = "8.1.6".freeze
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require_relative "support/test_keys"
2
+
1
3
  def windows?
2
4
  !!(RUBY_PLATFORM =~ /mswin|mingw|windows/)
3
5
  end
@@ -0,0 +1,16 @@
1
+ require "openssl"
2
+ require "fileutils"
3
+
4
+ module TestKeyHelper
5
+ def self.generate_rsa_key(path)
6
+ return if File.exist?(path) # Don't regenerate if already exists
7
+
8
+ key = OpenSSL::PKey::RSA.new(2048)
9
+ FileUtils.mkdir_p(File.dirname(path))
10
+ File.write(path, key.to_pem)
11
+ end
12
+ end
13
+
14
+ # Generate the test keys
15
+ TestKeyHelper.generate_rsa_key("spec/config/berkshelf.pem")
16
+ TestKeyHelper.generate_rsa_key("spec/config/validator.pem")
@@ -231,8 +231,8 @@ describe Berkshelf::Lockfile do
231
231
  expect(Chef::Environment).to receive(:from_hash).with(env_hash).and_return(environment)
232
232
 
233
233
  expect(environment).to receive(:cookbook_versions).with(
234
- {"apt" => "= 1.0.0",
235
- "jenkins" => "= 1.4.5"}
234
+ { "apt" => "= 1.0.0",
235
+ "jenkins" => "= 1.4.5" }
236
236
  )
237
237
 
238
238
  expect(environment).to receive(:save)
@@ -6,7 +6,7 @@ describe Berkshelf::Validator do
6
6
 
7
7
  it "raises an error when the cookbook has spaces in the files" do
8
8
  allow(Dir).to receive(:glob).and_return(["/there are/spaces/in this/recipes/default.rb"])
9
- allow(cookbook).to receive(:dependencies).and_return({"cookbook" => "1.0.0"})
9
+ allow(cookbook).to receive(:dependencies).and_return({ "cookbook" => "1.0.0" })
10
10
  expect do
11
11
  subject.validate_files(cookbook)
12
12
  end.to raise_error(Berkshelf::InvalidCookbookFiles)
@@ -14,21 +14,21 @@ describe Berkshelf::Validator do
14
14
 
15
15
  it "does not raise an error when the cookbook is valid" do
16
16
  allow(Dir).to receive(:glob).and_return(["/there-are/no-spaces/in-this/recipes/default.rb"])
17
- allow(cookbook).to receive(:dependencies).and_return({"cookbook" => "1.0.0"})
17
+ allow(cookbook).to receive(:dependencies).and_return({ "cookbook" => "1.0.0" })
18
18
  expect do
19
19
  subject.validate_files(cookbook)
20
20
  end.to_not raise_error
21
21
  end
22
22
 
23
23
  it "raises an error when the cookbook version is not valid" do
24
- allow(cookbook).to receive(:dependencies).and_return({"cookbook" => "1"})
24
+ allow(cookbook).to receive(:dependencies).and_return({ "cookbook" => "1" })
25
25
  expect do
26
26
  subject.validate_files(cookbook)
27
27
  end.to raise_error
28
28
  end
29
29
 
30
30
  it "does not raise an error when the cookbook version is valid" do
31
- allow(cookbook).to receive(:dependencies).and_return({"cookbook" => "1.0"})
31
+ allow(cookbook).to receive(:dependencies).and_return({ "cookbook" => "1.0" })
32
32
  expect do
33
33
  subject.validate_files(cookbook)
34
34
  end.to_not raise_error
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: berkshelf
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.22
4
+ version: 8.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamie Winsor
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2025-05-20 00:00:00.000000000 Z
15
+ date: 2025-09-17 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: mixlib-shellout
@@ -114,22 +114,16 @@ dependencies:
114
114
  name: thor
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: '0.20'
120
- - - "<"
117
+ - - "~>"
121
118
  - !ruby/object:Gem::Version
122
- version: 1.3.0
119
+ version: '1.4'
123
120
  type: :runtime
124
121
  prerelease: false
125
122
  version_requirements: !ruby/object:Gem::Requirement
126
123
  requirements:
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- version: '0.20'
130
- - - "<"
124
+ - - "~>"
131
125
  - !ruby/object:Gem::Version
132
- version: 1.3.0
126
+ version: '1.4'
133
127
  - !ruby/object:Gem::Dependency
134
128
  name: octokit
135
129
  requirement: !ruby/object:Gem::Requirement
@@ -232,6 +226,20 @@ dependencies:
232
226
  - - ">="
233
227
  - !ruby/object:Gem::Version
234
228
  version: 2.2.5
229
+ - !ruby/object:Gem::Dependency
230
+ name: syslog
231
+ requirement: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: '0.3'
236
+ type: :runtime
237
+ prerelease: false
238
+ version_requirements: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - "~>"
241
+ - !ruby/object:Gem::Version
242
+ version: '0.3'
235
243
  description: Manages a Chef cookbook's dependencies
236
244
  email:
237
245
  - jamie@vialstudios.com
@@ -305,9 +313,7 @@ files:
305
313
  - lib/berkshelf/validator.rb
306
314
  - lib/berkshelf/version.rb
307
315
  - lib/berkshelf/visualizer.rb
308
- - spec/config/berkshelf.pem
309
316
  - spec/config/knife.rb
310
- - spec/config/validator.pem
311
317
  - spec/data/trusted_certs/example.crt
312
318
  - spec/fixtures/Berksfile
313
319
  - spec/fixtures/berksfiles/default
@@ -346,6 +352,7 @@ files:
346
352
  - spec/support/matchers/filepath_matchers.rb
347
353
  - spec/support/path_helpers.rb
348
354
  - spec/support/shared_examples/formatter.rb
355
+ - spec/support/test_keys.rb
349
356
  - spec/unit/berkshelf/berksfile_spec.rb
350
357
  - spec/unit/berkshelf/berkshelf/api_client/chef_server_connection_spec.rb
351
358
  - spec/unit/berkshelf/berkshelf/api_client/connection_spec.rb
@@ -403,7 +410,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
403
410
  requirements:
404
411
  - - ">="
405
412
  - !ruby/object:Gem::Version
406
- version: 2.7.0
413
+ version: 3.1.0
407
414
  required_rubygems_version: !ruby/object:Gem::Requirement
408
415
  requirements:
409
416
  - - ">="
@@ -1,27 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEpQIBAAKCAQEAs3u5qfmdEWtzYHvXpbQRyefhUjeTG7nwhn/LaYY6ou19xxW0
3
- I5MKSBqCxUCHqODRc7ox8zSF37x3jMBHbSczOcfbWsSe/qGnmvZZQhHmXCje2zkW
4
- ByaRHmmatzkz1aAqAmZm/wdSuVLXytsbrPXuaj/MiHa6QH3e/ZFaYME7rMkouqfC
5
- pUlSa2tZ9Ko1ZCCwjkiifuP4yQFsS6/G6b8c7F8wdq4byfJ9o6FN34lJHrzfG0ZV
6
- hwS47Bdn6FDBQ6PVxrBsvQNE2n7QlNLfXWi4Tb8OpmQif01FjxleAr5kamx3GD+s
7
- jC7fKHE9bZ0apZ1MVmkz9PhFmOigV5jl9Att+QIDAQABAoIBAQCCG6qXgQ9PVWkq
8
- BBxrToGmr6UzCH5nlv65QWKfeGKBQU/wRdd0Al9trWomu4Sb831iOxOCjgyOB/1R
9
- 1wDwK36C4FIvFmF7jIwHVZWWw4sOO8JxgIxrWpXQShWRxLHCpnxNiRYYwaJCHb+4
10
- meUSGKVf+Ce4tPiHT7eacQfnI6yyr1hWusKu0I8w7NsfeNc+/Rpne6mifLfaB/9u
11
- b9kgfD15HGEsuUaMLZ/y1HFWvw2G2Og1cDrIpBIVtUAhA+DnjjLe/YoETeSmQAxH
12
- ioQpJJ/gSqtTczIoyPXXiwaF5wUTQrsn5zZhTs9mAQy7hcSR92IH2xBSmK3+wlz0
13
- vHZIq9rRAoGBAOeRUTRDgj+f+BlH1qFqf4EfkBN5quVM2808LYBGZWfA5/6o9jSN
14
- AM84VXq3S8Wy5V6UMcSv4mOqEr3tEUYE8or9r/RxzpGahSdi8Ttju9vvpJH5I3xr
15
- xx2ZK/vlrAfr6JHlE4bqqc5unCslUt2/liCWpERQ3cFcPydQb7Imrm+DAoGBAMZr
16
- mcxBeMyQHG6Kcpc7EQXZ5i7a8T6ksPu7FbAZ70Meb9UMtVIYpVBalutCXKhl7D4K
17
- qrCmV2gQryBz+S7AecFZSKvXdb7ueYzf8EcI/v+loNu9v9/4m4YV3bPBkMhW5kcK
18
- xFnVIsYqUlR+dsS8JfjSCpk4lePVSSt7B26eIFfTAoGBAJHPDKSuBWtunNe+RkUp
19
- O9PgPeYlbBgqBxT52WS17tAfxXSyiySXzHSuchRtKgb4GDkvcw73+MLsqhRxG7lN
20
- EDO4fXyb1IgWFdWxFVhh+j4IbUWE7HVBoAThF7Lq8SGjx7Nl3J/NTtKvDyKTw9Pg
21
- +PTYJeLmUFuabCGjIlG4zYllAoGBAIwe5oB4597GEl35xUyI+M+B/myuTtknIpjS
22
- mFFBL1bdwqnYjJ+KKgwhvRwsRBTjzT5O+BVBks45ogKwA5OBdzoUXB6GTG9mJ05V
23
- wm/XqYRNqdgkGsEG5oV9IZBUrHLd80bOErVBr4nzzyo+GI98MvCRG8zySd+X+lEL
24
- U8dJQZvjAoGAWorll+fomfie6t5XbkpwMo8rn60yFUiRE7HWxA2qDj3IpoE6SfNE
25
- eOpsf1Zzx30r8answ9lPnd753ACdgNzE66ScWD+cQeB6OlMZMaW5tVSjddZ7854L
26
- 00znt8b1OLkVY33xfsa89wKH343304BhVHABPMxm5Leua/H21/BqSK0=
27
- -----END RSA PRIVATE KEY-----
@@ -1,27 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEowIBAAKCAQEAxvMbzsVt0PJ0ozcpQZC+zpaWYAZe/nHnSFeTkm9BAtQUA8vp
3
- cKMJTXNw4Lm3jcotrPATMgGgwVG7ram689JcQSnwSgIFinr5ZLRB22qyGdqHHmAf
4
- w4RVde6dJON2IqI51JzQ5Pfs+M1SYcKiCzcBHvFddug5VcMjipFLv7QPKDmal8Ep
5
- tOtRhb8Ad2DBXV7gX3e8ZaKfQgA0uc07g1KmcjR7vOG25nxY6NRxTwWn5+uMVgCp
6
- 1xjbBeq7XF2gJPYVNsNRu8C3/rMX7D3NuKpJGj3CsKOtECREsq+7lk7A7OPzrP0g
7
- Um/dUSeV99FLavrJNZ8TRc+BLZD/RiE1x0wG9wIDAQABAoIBAAbRchSGA5tzk7e8
8
- Pje3BDMESicEUOEbejeqeK4+DdZQ+lae+GMZ00nKOQYal0XOtf4FREMkdyPo7yum
9
- c3fDr9Gz5D5FD3eNe1qOKuugHnZwXM0Xsj77HAqsoMoQ2Y2aTa0Rqr8OGBr2vmoH
10
- R5Jm0i0DTJa0orJju6YWEKiDPTm9oCT025M3G4kswM4jnzQiTciksfEYJGIK1Alk
11
- Lcct/8TtyoYNhzYfzFi2wIQx4Iy6o/2AqWjvcJT2RI3cge5CBOXR7Y1Zqt5/vWm+
12
- MvSy+krujFTTKpJKbatOsRGoCX6e8IcIQ4MtOj9jSPQPvGcQrjEdks6+zKID6INW
13
- ZZYrvqECgYEA8EKB/oYzNueoBvaFcw1ONUNScYnr9IS/7oZnciw53cMwDumsH9qB
14
- NbEH6m1/2EQhOU5KoAQX2qd8KNQ6oIL1ae51ACtdEBP9Sb9j2q+IlEOf3bLga+w1
15
- DXeQ0wx4ZHyF6a2AJK4qVO+nDnYw074VxaApLXDyfXpIS7N9lOJxeb8CgYEA0/vF
16
- mt/+r6v2YOVWtSah44lIyaDj3N6fjYcI34aJvowwe+Njfnd2o4BkqhthQKOnl6FI
17
- SQPrLBdwc4OvN9oWMZHX2b0ols0Bf5ZxAfqMvCS2JG+SiiZT+p+cPnCitfPZ6zn7
18
- 5SMpVMqlMS8GxNze8ZkieQ7PaF28rF0xUJZIkMkCgYEAwspJNqB7OVKMCkkoXOU2
19
- uTxBxUe7A9309mAF0q1EpSUw+4Y8RP8UrwE+l7P7aM2j2iA9pIptBJuxsDCQ7739
20
- Vss8FM0TgIuUWYxQWubh5sMFA+uYxCcXxDliM5nyqhXDRHekYxjJvV8npDPy1llQ
21
- sY9ukyb1kwHnR2jYsjL9KWUCgYAmB1vKzfZVs4bOmTX154lRVXaOXWOjYvjCnf/0
22
- gaFCYsnr374gmPPanxTwA1tuCi3toMxj9OUCku3kezI61c/3co+Di1C1xO9I4UdC
23
- sJ0Av6FBZham2/ti0bFo7jHybF2iulM7JxSqFnSOHz6aoHkKZItvpj2FHpPTZCCN
24
- sXgxKQKBgDyBsl4/LCG+eQrxaL6Y7DHP9oNTw5hRbQWlZlXfygyUbKCqj1OfOrVu
25
- hDAn/ElMLgSgRbI8nXq68cu6UE4wO4Di6fQyCb2pP7tgS+0swbq85YoMbHh/z+yN
26
- WUvLQHfN4RHJStY3JX/cBcSoIiArNbuFcPThM02YBDhbiW+NQhZV
27
- -----END RSA PRIVATE KEY-----