puppet_forge 5.0.4 → 6.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bfd2f7dc169c4d67e1c05207c868c4646da6e76fcdbb5012adc7676a257a53e2
4
- data.tar.gz: db540cb4ac8d5108f512f3fbd216b63fd37aa5c245b4b46317094215fa93b747
3
+ metadata.gz: 4643cefde481f4704b66647650391f737608c7b78dff4db49abba8ee77168d1c
4
+ data.tar.gz: e020f190a88702791c677a2c82e807dce0b1a754389498002a75cb6a8e67ff9c
5
5
  SHA512:
6
- metadata.gz: 49c8930480951263fc978a0521b04a14bd72c55776672a99d38cd37299456086ef34ff3bc53a3904b22b9025242775406b1e1fd3c1794c35a22d678ad43236fc
7
- data.tar.gz: 2220df52a1ee74550325f63c0f6463ecf2180f14807f03294dc0d71a8d841661628416e922621e7b9f966f506582f1e759ceca202bfb807f1a94ceb72b377623
6
+ metadata.gz: f14fcacfb852f6aefb7ec8b8105e254915e301d22faae606e2e592a504728b261d56142d86c4633b10ffca69f1605ed8e48846aa83b84eff4e91351b04cc5eff
7
+ data.tar.gz: 379360682acb7c360f41ef1faf1408c63fd98359c3737e5382d4141cd2244d75e39110b3c0da3ef478c40099f80286e901c307d68016632d9c547fde5f505006
@@ -1,4 +1,4 @@
1
- name: "release"
1
+ name: "Release"
2
2
 
3
3
  on:
4
4
  workflow_dispatch:
@@ -10,11 +10,10 @@ on:
10
10
  version:
11
11
  description: "Version of gem to be released."
12
12
  required: true
13
-
14
13
  jobs:
15
14
  release_prep:
16
15
  uses: "puppetlabs/cat-github-actions/.github/workflows/gem_release_prep.yml@main"
17
16
  with:
18
17
  target: "${{ github.event.inputs.target }}"
19
- version: "${{ github.events.inputs.version }}"
18
+ version: "${{ github.event.inputs.version }}"
20
19
  secrets: "inherit"
@@ -15,11 +15,10 @@ jobs:
15
15
  strategy:
16
16
  matrix:
17
17
  ruby:
18
+ - '3.4'
19
+ - '3.3'
18
20
  - '3.2'
19
21
  - '3.1'
20
- - '3.0'
21
- - '2.7'
22
- - '2.6'
23
22
 
24
23
  steps:
25
24
  - uses: actions/checkout@v3
data/CHANGELOG.md CHANGED
@@ -5,6 +5,32 @@ All notable changes to this project will be documented in this file.
5
5
 
6
6
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org).
7
7
 
8
+ ## [v6.1.0](https://github.com/puppetlabs/forge-ruby/tree/v6.1.0) - 2025-12-12
9
+
10
+ [Full Changelog](https://github.com/puppetlabs/forge-ruby/compare/v6.0.0...v6.1.0)
11
+
12
+ ### Added
13
+
14
+ - Add base64 dependency [#129](https://github.com/puppetlabs/forge-ruby/pull/129) ([bastelfreak](https://github.com/bastelfreak))
15
+
16
+ ### Fixed
17
+
18
+ - (BOLT-109) Fix Windows long path support by replacing Dir[] with Find.find [#134](https://github.com/puppetlabs/forge-ruby/pull/134) ([gavindidrichsen](https://github.com/gavindidrichsen))
19
+
20
+ ### Other
21
+
22
+ - base64: Allow 0.3 [#135](https://github.com/puppetlabs/forge-ruby/pull/135) ([bastelfreak](https://github.com/bastelfreak))
23
+ - faraday-follow_redirects: Allow 0.4 [#132](https://github.com/puppetlabs/forge-ruby/pull/132) ([bastelfreak](https://github.com/bastelfreak))
24
+
25
+ ## [v6.0.0](https://github.com/puppetlabs/forge-ruby/tree/v6.0.0) - 2024-09-20
26
+
27
+ [Full Changelog](https://github.com/puppetlabs/forge-ruby/compare/v5.0.4...v6.0.0)
28
+
29
+ ### Fixed
30
+
31
+ - remove ruby 2.6, 2.7 and 3.0 [#124](https://github.com/puppetlabs/forge-ruby/pull/124) ([malikparvez](https://github.com/malikparvez))
32
+ - Removing Archive::Tar::Minitar [#122](https://github.com/puppetlabs/forge-ruby/pull/122) ([malikparvez](https://github.com/malikparvez))
33
+
8
34
  ## [v5.0.4](https://github.com/puppetlabs/forge-ruby/tree/v5.0.4) - 2024-08-13
9
35
 
10
36
  [Full Changelog](https://github.com/puppetlabs/forge-ruby/compare/v5.0.3...v5.0.4)
@@ -1,5 +1,5 @@
1
1
  require 'zlib'
2
- require 'archive/tar/minitar'
2
+ require 'minitar'
3
3
 
4
4
  module PuppetForge
5
5
  class Tar
@@ -15,7 +15,7 @@ module PuppetForge
15
15
  file_lists = {}
16
16
  Zlib::GzipReader.open(sourcefile) do |reader|
17
17
  file_lists = validate_files(reader)
18
- Archive::Tar::Minitar.unpack(reader, destdir, file_lists[:valid]) do |action, name, stats|
18
+ Minitar.unpack(reader, destdir, file_lists[:valid]) do |action, name, stats|
19
19
  case action
20
20
  when :file_done
21
21
  FileUtils.chmod('u+rw,g+r,a-st', "#{destdir}/#{name}")
@@ -33,7 +33,7 @@ module PuppetForge
33
33
 
34
34
  def pack(sourcedir, destfile)
35
35
  Zlib::GzipWriter.open(destfile) do |writer|
36
- Archive::Tar::Minitar.pack(sourcedir, writer)
36
+ Minitar.pack(sourcedir, writer)
37
37
  end
38
38
  end
39
39
 
@@ -50,7 +50,7 @@ module PuppetForge
50
50
  # @return [Hash{:symbol => Array<String>}] a hash with file-category keys pointing to lists of filenames.
51
51
  def validate_files(tarfile)
52
52
  file_lists = {:valid => [], :invalid => [], :symlinks => []}
53
- Archive::Tar::Minitar.open(tarfile).each do |entry|
53
+ Minitar.open(tarfile).each do |entry|
54
54
  flag = entry.typeflag
55
55
  if flag.nil? || flag =~ /[[:digit:]]/ && SYMLINK_FLAGS.include?(flag.to_i)
56
56
  file_lists[:symlinks] << entry.full_name
@@ -1,4 +1,5 @@
1
1
  require 'pathname'
2
+ require 'find'
2
3
  require 'puppet_forge/error'
3
4
  require 'puppet_forge/tar'
4
5
 
@@ -55,8 +56,23 @@ module PuppetForge
55
56
  def root_dir
56
57
  return @root_dir if @root_dir
57
58
 
58
- # Grab the first directory containing a metadata.json file
59
- metadata_file = Dir["#{@tmpdir}/**/metadata.json"].sort_by(&:length)[0]
59
+ # Use Find.find instead of Dir[] for Windows long path support
60
+ metadata_file = nil
61
+ shortest_length = Float::INFINITY
62
+
63
+ begin
64
+ Find.find(@tmpdir) do |path|
65
+ if File.basename(path) == 'metadata.json'
66
+ if path.length < shortest_length
67
+ metadata_file = path
68
+ shortest_length = path.length
69
+ end
70
+ end
71
+ end
72
+ rescue Errno::ENAMETOOLONG => e
73
+ # Even Find.find might fail, need to use Dir.each with manual recursion
74
+ raise "Cannot traverse directory due to long paths: #{e.message}"
75
+ end
60
76
 
61
77
  if metadata_file
62
78
  @root_dir = Pathname.new(metadata_file).dirname
@@ -1,3 +1,3 @@
1
1
  module PuppetForge
2
- VERSION = '5.0.4' # Library version
2
+ VERSION = '6.1.0' # Library version
3
3
  end
data/puppet_forge.gemspec CHANGED
@@ -18,18 +18,19 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.required_ruby_version = '>= 2.6.0'
21
+ spec.required_ruby_version = '>= 3.1.0'
22
22
 
23
+ spec.add_runtime_dependency "base64", '>= 0.2.0', '< 0.4.0'
23
24
  spec.add_runtime_dependency "faraday", "~> 2.0"
24
- spec.add_runtime_dependency "faraday-follow_redirects", "~> 0.3.0"
25
+ spec.add_runtime_dependency "faraday-follow_redirects", ">= 0.3", "< 0.5"
26
+ spec.add_dependency "minitar", '~> 1.0', '>= 1.0.2'
25
27
  spec.add_dependency "semantic_puppet", "~> 1.0"
26
- spec.add_dependency "minitar", "< 1.0.0 "
27
28
 
29
+ spec.add_development_dependency "cane"
30
+ spec.add_development_dependency "pry-byebug"
28
31
  spec.add_development_dependency "rake"
32
+ spec.add_development_dependency "redcarpet"
29
33
  spec.add_development_dependency "rspec", "~> 3.0"
30
34
  spec.add_development_dependency "simplecov"
31
- spec.add_development_dependency "cane"
32
35
  spec.add_development_dependency "yard"
33
- spec.add_development_dependency "redcarpet"
34
- spec.add_development_dependency "pry-byebug"
35
36
  end
@@ -88,7 +88,7 @@ describe PuppetForge::Connection do
88
88
 
89
89
  expect {
90
90
  subject.get('/error')
91
- }.to raise_error(Faraday::ServerError, "the server responded with status 503")
91
+ }.to raise_error(Faraday::ServerError, /the server responded with status 503/)
92
92
  end
93
93
 
94
94
  context 'when an authorization value is provided' do
@@ -57,7 +57,7 @@ describe PuppetForge::Tar::Mini do
57
57
  writer = double('GzipWriter')
58
58
 
59
59
  expect(Zlib::GzipWriter).to receive(:open).with(destfile).and_yield(writer)
60
- expect(Archive::Tar::Minitar).to receive(:pack).with(sourcedir, writer)
60
+ expect(Minitar).to receive(:pack).with(sourcedir, writer)
61
61
 
62
62
  minitar.pack(sourcedir, destfile)
63
63
  end
@@ -66,8 +66,8 @@ describe PuppetForge::Tar::Mini do
66
66
  reader = double('GzipReader')
67
67
 
68
68
  expect(Zlib::GzipReader).to receive(:open).with(sourcefile).and_yield(reader)
69
- expect(Archive::Tar::Minitar).to receive(:open).with(reader).and_return(tarfile_contents)
70
- expect(Archive::Tar::Minitar).to receive(:unpack).with(reader, destdir, ['full_file']).and_yield(:file_start, 'thefile', nil)
69
+ expect(Minitar).to receive(:open).with(reader).and_return(tarfile_contents)
70
+ expect(Minitar).to receive(:unpack).with(reader, destdir, ['full_file']).and_yield(:file_start, 'thefile', nil)
71
71
 
72
72
  file_lists = minitar.unpack(sourcefile, destdir)
73
73
 
@@ -81,6 +81,6 @@ describe PuppetForge::Tar::Mini do
81
81
 
82
82
  expect(Zlib::GzipReader).to receive(:open).with(sourcefile).and_yield(reader)
83
83
  expect(minitar).to receive(:validate_files).with(reader).and_return({:valid => [name]})
84
- expect(Archive::Tar::Minitar).to receive(:unpack).with(reader, destdir, [name]).and_yield(type, name, nil)
84
+ expect(Minitar).to receive(:unpack).with(reader, destdir, [name]).and_yield(type, name, nil)
85
85
  end
86
86
  end
metadata CHANGED
@@ -1,15 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet_forge
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.4
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet Labs
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-13 00:00:00.000000000 Z
11
+ date: 2025-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: base64
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.2.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: 0.4.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 0.2.0
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: 0.4.0
13
33
  - !ruby/object:Gem::Dependency
14
34
  name: faraday
15
35
  requirement: !ruby/object:Gem::Requirement
@@ -28,23 +48,32 @@ dependencies:
28
48
  name: faraday-follow_redirects
29
49
  requirement: !ruby/object:Gem::Requirement
30
50
  requirements:
31
- - - "~>"
51
+ - - ">="
32
52
  - !ruby/object:Gem::Version
33
- version: 0.3.0
53
+ version: '0.3'
54
+ - - "<"
55
+ - !ruby/object:Gem::Version
56
+ version: '0.5'
34
57
  type: :runtime
35
58
  prerelease: false
36
59
  version_requirements: !ruby/object:Gem::Requirement
37
60
  requirements:
38
- - - "~>"
61
+ - - ">="
39
62
  - !ruby/object:Gem::Version
40
- version: 0.3.0
63
+ version: '0.3'
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: '0.5'
41
67
  - !ruby/object:Gem::Dependency
42
- name: semantic_puppet
68
+ name: minitar
43
69
  requirement: !ruby/object:Gem::Requirement
44
70
  requirements:
45
71
  - - "~>"
46
72
  - !ruby/object:Gem::Version
47
73
  version: '1.0'
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 1.0.2
48
77
  type: :runtime
49
78
  prerelease: false
50
79
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,22 +81,25 @@ dependencies:
52
81
  - - "~>"
53
82
  - !ruby/object:Gem::Version
54
83
  version: '1.0'
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 1.0.2
55
87
  - !ruby/object:Gem::Dependency
56
- name: minitar
88
+ name: semantic_puppet
57
89
  requirement: !ruby/object:Gem::Requirement
58
90
  requirements:
59
- - - "<"
91
+ - - "~>"
60
92
  - !ruby/object:Gem::Version
61
- version: 1.0.0
93
+ version: '1.0'
62
94
  type: :runtime
63
95
  prerelease: false
64
96
  version_requirements: !ruby/object:Gem::Requirement
65
97
  requirements:
66
- - - "<"
98
+ - - "~>"
67
99
  - !ruby/object:Gem::Version
68
- version: 1.0.0
100
+ version: '1.0'
69
101
  - !ruby/object:Gem::Dependency
70
- name: rake
102
+ name: cane
71
103
  requirement: !ruby/object:Gem::Requirement
72
104
  requirements:
73
105
  - - ">="
@@ -81,21 +113,21 @@ dependencies:
81
113
  - !ruby/object:Gem::Version
82
114
  version: '0'
83
115
  - !ruby/object:Gem::Dependency
84
- name: rspec
116
+ name: pry-byebug
85
117
  requirement: !ruby/object:Gem::Requirement
86
118
  requirements:
87
- - - "~>"
119
+ - - ">="
88
120
  - !ruby/object:Gem::Version
89
- version: '3.0'
121
+ version: '0'
90
122
  type: :development
91
123
  prerelease: false
92
124
  version_requirements: !ruby/object:Gem::Requirement
93
125
  requirements:
94
- - - "~>"
126
+ - - ">="
95
127
  - !ruby/object:Gem::Version
96
- version: '3.0'
128
+ version: '0'
97
129
  - !ruby/object:Gem::Dependency
98
- name: simplecov
130
+ name: rake
99
131
  requirement: !ruby/object:Gem::Requirement
100
132
  requirements:
101
133
  - - ">="
@@ -109,7 +141,7 @@ dependencies:
109
141
  - !ruby/object:Gem::Version
110
142
  version: '0'
111
143
  - !ruby/object:Gem::Dependency
112
- name: cane
144
+ name: redcarpet
113
145
  requirement: !ruby/object:Gem::Requirement
114
146
  requirements:
115
147
  - - ">="
@@ -123,21 +155,21 @@ dependencies:
123
155
  - !ruby/object:Gem::Version
124
156
  version: '0'
125
157
  - !ruby/object:Gem::Dependency
126
- name: yard
158
+ name: rspec
127
159
  requirement: !ruby/object:Gem::Requirement
128
160
  requirements:
129
- - - ">="
161
+ - - "~>"
130
162
  - !ruby/object:Gem::Version
131
- version: '0'
163
+ version: '3.0'
132
164
  type: :development
133
165
  prerelease: false
134
166
  version_requirements: !ruby/object:Gem::Requirement
135
167
  requirements:
136
- - - ">="
168
+ - - "~>"
137
169
  - !ruby/object:Gem::Version
138
- version: '0'
170
+ version: '3.0'
139
171
  - !ruby/object:Gem::Dependency
140
- name: redcarpet
172
+ name: simplecov
141
173
  requirement: !ruby/object:Gem::Requirement
142
174
  requirements:
143
175
  - - ">="
@@ -151,7 +183,7 @@ dependencies:
151
183
  - !ruby/object:Gem::Version
152
184
  version: '0'
153
185
  - !ruby/object:Gem::Dependency
154
- name: pry-byebug
186
+ name: yard
155
187
  requirement: !ruby/object:Gem::Requirement
156
188
  requirements:
157
189
  - - ">="
@@ -173,11 +205,9 @@ extensions: []
173
205
  extra_rdoc_files: []
174
206
  files:
175
207
  - ".github/pull_request_template.md"
176
- - ".github/workflows/labeller.yml"
177
208
  - ".github/workflows/release.yml"
178
209
  - ".github/workflows/release_prep.yml"
179
210
  - ".github/workflows/ruby-rspec.yml"
180
- - ".github/workflows/snyk_merge.yml"
181
211
  - ".gitignore"
182
212
  - CHANGELOG.md
183
213
  - CODEOWNERS
@@ -258,7 +288,7 @@ homepage: https://github.com/puppetlabs/forge-ruby
258
288
  licenses:
259
289
  - Apache-2.0
260
290
  metadata: {}
261
- post_install_message:
291
+ post_install_message:
262
292
  rdoc_options: []
263
293
  require_paths:
264
294
  - lib
@@ -266,15 +296,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
266
296
  requirements:
267
297
  - - ">="
268
298
  - !ruby/object:Gem::Version
269
- version: 2.6.0
299
+ version: 3.1.0
270
300
  required_rubygems_version: !ruby/object:Gem::Requirement
271
301
  requirements:
272
302
  - - ">="
273
303
  - !ruby/object:Gem::Version
274
304
  version: '0'
275
305
  requirements: []
276
- rubygems_version: 3.1.6
277
- signing_key:
306
+ rubygems_version: 3.3.27
307
+ signing_key:
278
308
  specification_version: 4
279
309
  summary: Access the Puppet Forge API from Ruby for resource information and to download
280
310
  releases.
@@ -1,27 +0,0 @@
1
- name: Labeller
2
-
3
- on:
4
- issues:
5
- types:
6
- - opened
7
- - labeled
8
- - unlabeled
9
- pull_request:
10
- types:
11
- - opened
12
- - labeled
13
- - unlabeled
14
-
15
- jobs:
16
- label:
17
- runs-on: ubuntu-latest
18
- steps:
19
-
20
- - uses: puppetlabs/community-labeller@v1.0.1
21
- name: Label issues or pull requests
22
- with:
23
- label_name: community
24
- label_color: '5319e7'
25
- org_membership: puppetlabs
26
- fail_if_member: 'true'
27
- token: ${{ secrets.IAC_COMMUNITY_LABELER }}
@@ -1,24 +0,0 @@
1
- name: snyk_merge
2
- on:
3
- workflow_dispatch:
4
- push:
5
- branches:
6
- - main
7
- jobs:
8
- security:
9
- runs-on: ubuntu-latest
10
- steps:
11
- - uses: actions/checkout@master
12
- - name: setup ruby
13
- uses: ruby/setup-ruby@v1
14
- with:
15
- ruby-version: 2.7
16
- - name: create lock
17
- run: bundle lock
18
- - name: Run Snyk to check for vulnerabilities
19
- uses: snyk/actions/ruby@master
20
- env:
21
- SNYK_TOKEN: ${{ secrets.SNYK_FORGE_KEY }}
22
- with:
23
- command: monitor
24
- args: --org=puppet-forge