puppet-ghostbuster 1.2.1 → 2.0.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: 833a968929238772dc7ddd1f8fe1df5f7f6619ac35ebd8728dc80a84a81f9797
4
- data.tar.gz: 66ae42129a1dc62b2db60f26a2579d67317f4c23c20dc2035bcf6b495efb2b14
3
+ metadata.gz: 375b356f2dfb050b520be62463511571b00593edbe7bc9adbbd695407065e270
4
+ data.tar.gz: 4e79ddd9fe3302c103661357e60d433d62973428463a9bdf491495fd53e78863
5
5
  SHA512:
6
- metadata.gz: 65462ffe20fb495d3db8c3742f73dd82e5b6514720d7c821c6b4294d4afeeee3763074bfa401eb6f6d8b1ac7eb81904210a4075b192299f80f94c911bfb424af
7
- data.tar.gz: 7dc4843877ceee379a1a4e58d046cb21bac6fbf168aad0f036c93d9d1a97b87e4c117c104bf04929e755c3763cdcbbdb882edfae3bbc1f75f65d77a11f47b2b1
6
+ metadata.gz: 68d6f7a6cf434eae005054bcce1a7cb575738416d06671a2cbb1c6647984217a2b2b6a61997c291aa52b251a6e3cc43aed9a853a5a6b34d3992f78e7cfbaf377
7
+ data.tar.gz: 70dcd2436f3303f2933d52140edfa48991aa626cf3711e40cbcc0562fd92ea673e2429526f5ced1723d355a06ae5b9e12414917b51b7e34b28f08a48741e08ca
@@ -1,33 +1,106 @@
1
- name: Release
1
+ ---
2
+ name: Gem Release
2
3
 
3
4
  on:
4
5
  push:
5
6
  tags:
6
7
  - '*'
7
8
 
9
+ permissions: {}
10
+
8
11
  jobs:
9
- release:
10
- runs-on: ubuntu-latest
12
+ build-release:
13
+ # Prevent releases from forked repositories
11
14
  if: github.repository_owner == 'voxpupuli'
15
+ name: Build the gem
16
+ runs-on: ubuntu-24.04
12
17
  steps:
13
- - uses: actions/checkout@v4
14
- - name: Install Ruby 3.0
18
+ - uses: actions/checkout@v5
19
+ - name: Install Ruby
15
20
  uses: ruby/setup-ruby@v1
16
21
  with:
17
- ruby-version: '3.0'
18
- bundler: 'none'
19
- env:
20
- BUNDLE_WITHOUT: release:development:rubocop
22
+ ruby-version: 'ruby'
21
23
  - name: Build gem
22
- run: gem build --strict --verbose *.gemspec
24
+ shell: bash
25
+ run: gem build --verbose *.gemspec
26
+ - name: Upload gem to GitHub cache
27
+ uses: actions/upload-artifact@v4
28
+ with:
29
+ name: gem-artifact
30
+ path: '*.gem'
31
+ retention-days: 1
32
+ compression-level: 0
33
+
34
+ create-github-release:
35
+ needs: build-release
36
+ name: Create GitHub release
37
+ runs-on: ubuntu-24.04
38
+ permissions:
39
+ contents: write # clone repo and create release
40
+ steps:
41
+ - name: Download gem from GitHub cache
42
+ uses: actions/download-artifact@v4
43
+ with:
44
+ name: gem-artifact
45
+ - name: Create Release
46
+ shell: bash
47
+ env:
48
+ GH_TOKEN: ${{ github.token }}
49
+ run: gh release create --repo ${{ github.repository }} ${{ github.ref_name }} --generate-notes *.gem
50
+
51
+ release-to-github:
52
+ needs: build-release
53
+ name: Release to GitHub
54
+ runs-on: ubuntu-24.04
55
+ permissions:
56
+ packages: write # publish to rubygems.pkg.github.com
57
+ steps:
58
+ - name: Download gem from GitHub cache
59
+ uses: actions/download-artifact@v4
60
+ with:
61
+ name: gem-artifact
62
+ - name: Publish gem to GitHub packages
63
+ run: gem push --host https://rubygems.pkg.github.com/${{ github.repository_owner }} *.gem
64
+ env:
65
+ GEM_HOST_API_KEY: ${{ secrets.GITHUB_TOKEN }}
66
+
67
+ release-to-rubygems:
68
+ needs: build-release
69
+ name: Release gem to rubygems.org
70
+ runs-on: ubuntu-24.04
71
+ environment: release # recommended by rubygems.org
72
+ permissions:
73
+ id-token: write # rubygems.org authentication
74
+ steps:
75
+ - name: Download gem from GitHub cache
76
+ uses: actions/download-artifact@v4
77
+ with:
78
+ name: gem-artifact
79
+ - uses: rubygems/configure-rubygems-credentials@v1.0.0
23
80
  - name: Publish gem to rubygems.org
81
+ shell: bash
24
82
  run: gem push *.gem
25
- env:
26
- GEM_HOST_API_KEY: '${{ secrets.RUBYGEMS_AUTH_TOKEN }}'
27
- - name: Setup GitHub packages access
83
+
84
+ release-verification:
85
+ name: Check that all releases are done
86
+ runs-on: ubuntu-24.04
87
+ permissions:
88
+ contents: read # minimal permissions that we have to grant
89
+ needs:
90
+ - create-github-release
91
+ - release-to-github
92
+ - release-to-rubygems
93
+ steps:
94
+ - name: Download gem from GitHub cache
95
+ uses: actions/download-artifact@v4
96
+ with:
97
+ name: gem-artifact
98
+ - name: Install Ruby
99
+ uses: ruby/setup-ruby@v1
100
+ with:
101
+ ruby-version: 'ruby'
102
+ - name: Wait for release to propagate
103
+ shell: bash
28
104
  run: |
29
- mkdir -p ~/.gem
30
- echo ":github: Bearer ${{ secrets.GITHUB_TOKEN }}" >> ~/.gem/credentials
31
- chmod 0600 ~/.gem/credentials
32
- - name: Publish gem to GitHub packages
33
- run: gem push --key github --host https://rubygems.pkg.github.com/${{ github.repository_owner }} *.gem
105
+ gem install rubygems-await
106
+ gem await *.gem
@@ -14,11 +14,11 @@ jobs:
14
14
  rubocop:
15
15
  runs-on: ubuntu-latest
16
16
  steps:
17
- - uses: actions/checkout@v4
17
+ - uses: actions/checkout@v5
18
18
  - name: Setup ruby
19
19
  uses: ruby/setup-ruby@v1
20
20
  with:
21
- ruby-version: '3.0'
21
+ ruby-version: '3.2'
22
22
  bundler-cache: true
23
23
  - name: Run rake rubocop
24
24
  run: bundle exec rake rubocop
@@ -28,16 +28,15 @@ jobs:
28
28
  fail-fast: false
29
29
  matrix:
30
30
  include:
31
- - ruby: "2.7"
32
- - ruby: "3.0"
33
- - ruby: "3.1"
34
- coverage: "yes"
35
31
  - ruby: "3.2"
32
+ coverage: "yes"
33
+ - ruby: "3.3"
34
+ - ruby: "3.4"
36
35
  env:
37
36
  COVERAGE: ${{ matrix.coverage }}
38
37
  name: Ruby ${{ matrix.ruby }}
39
38
  steps:
40
- - uses: actions/checkout@v4
39
+ - uses: actions/checkout@v5
41
40
  - name: Install Ruby ${{ matrix.ruby }}
42
41
  uses: ruby/setup-ruby@v1
43
42
  with:
data/CHANGELOG.md CHANGED
@@ -2,7 +2,27 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- ## [1.2.1](https://github.com/voxpupuli/puppet-ghostbuster/tree/1.2.1) (2024-02-09)
5
+ ## [2.0.0](https://github.com/voxpupuli/puppet-ghostbuster/tree/2.0.0) (2025-10-16)
6
+
7
+ [Full Changelog](https://github.com/voxpupuli/puppet-ghostbuster/compare/1.2.1...2.0.0)
8
+
9
+ **Breaking changes:**
10
+
11
+ - feat: switch to openvox, adapt new release ci, switch to ruby 3.2 [\#99](https://github.com/voxpupuli/puppet-ghostbuster/pull/99) ([rwaffen](https://github.com/rwaffen))
12
+
13
+ **Implemented enhancements:**
14
+
15
+ - Use vcr for unit tests [\#58](https://github.com/voxpupuli/puppet-ghostbuster/issues/58)
16
+ - Plugin to detect unused top scope variables [\#55](https://github.com/voxpupuli/puppet-ghostbuster/issues/55)
17
+ - Plugin to detect unused entries in hiera files [\#47](https://github.com/voxpupuli/puppet-ghostbuster/issues/47)
18
+
19
+ **Merged pull requests:**
20
+
21
+ - Bump actions/checkout from 4 to 5 [\#100](https://github.com/voxpupuli/puppet-ghostbuster/pull/100) ([dependabot[bot]](https://github.com/apps/dependabot))
22
+ - Update voxpupuli-rubocop requirement from ~\> 2.6.0 to ~\> 2.8.0 [\#96](https://github.com/voxpupuli/puppet-ghostbuster/pull/96) ([dependabot[bot]](https://github.com/apps/dependabot))
23
+ - Update voxpupuli-rubocop requirement from ~\> 2.4.0 to ~\> 2.6.0 [\#93](https://github.com/voxpupuli/puppet-ghostbuster/pull/93) ([dependabot[bot]](https://github.com/apps/dependabot))
24
+
25
+ ## [1.2.1](https://github.com/voxpupuli/puppet-ghostbuster/tree/1.2.1) (2024-03-26)
6
26
 
7
27
  [Full Changelog](https://github.com/voxpupuli/puppet-ghostbuster/compare/1.2.0...1.2.1)
8
28
 
@@ -1,3 +1,3 @@
1
1
  class PuppetGhostbuster
2
- VERSION = '1.2.1'
2
+ VERSION = '2.0.0'.freeze
3
3
  end
@@ -28,7 +28,7 @@ PuppetLint.new_check(:ghostbuster_facts) do
28
28
  return if m.nil?
29
29
 
30
30
  File.foreach(path) do |line|
31
- if line =~ /Facter.add\(["':](?<fact>[^"'\)]+)["']?\)/
31
+ if line =~ /Facter.add\(["':](?<fact>[^"')]+)["']?\)/
32
32
  fact_name = Regexp.last_match(:fact)
33
33
 
34
34
  found = false
@@ -41,7 +41,7 @@ PuppetLint.new_check(:ghostbuster_hiera_files) do
41
41
  path_datadir = Regexp.escape((hierarchy['datadir'] || default_datadir).chomp('/'))
42
42
  ([*hierarchy['path']] + [*hierarchy['paths']]).each do |level|
43
43
  level = File.join(path_datadir, level)
44
- regex = Regexp.new(level.gsub(/%\{(::)?(trusted|server_facts|facts)\.[^\}]+\}/, '(.+)').gsub(/%\{[^\}]+\}/, '.+'))
44
+ regex = Regexp.new(level.gsub(/%\{(::)?(trusted|server_facts|facts)\.[^}]+\}/, '(.+)').gsub(/%\{[^}]+\}/, '.+'))
45
45
  facts = level.match(regex).captures.map { |f| f[/%{(::)?(trusted|server_facts|facts)\.(.+)}/, 3] }
46
46
  regs[regex] = facts
47
47
  end
@@ -12,20 +12,23 @@ Gem::Specification.new do |s|
12
12
  s.description = 'Try and find dead code in Puppet receipts'
13
13
  s.licenses = 'Apache-2.0'
14
14
 
15
- s.required_ruby_version = '>= 2.7'
15
+ s.required_ruby_version = '>= 3.2'
16
16
 
17
17
  s.files = `git ls-files`.split("\n")
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
19
19
 
20
+ s.add_dependency 'puppet-lint', '>= 5.0', '< 6.0'
21
+
20
22
  s.add_development_dependency 'coveralls', '>= 0.8', '< 0.9'
21
23
  s.add_development_dependency 'jgrep', '>= 1.0.0', '< 2.0.0'
22
24
  s.add_development_dependency 'rake', '>= 13.0.0', '< 14.0.0'
23
25
  s.add_development_dependency 'rspec', '~> 3.0'
24
26
  s.add_development_dependency 'rspec-collection_matchers', '~> 1.0'
25
27
  s.add_development_dependency 'rspec-its', '~> 1.0'
26
- s.add_development_dependency 'voxpupuli-rubocop', '~> 2.4.0'
27
- s.add_runtime_dependency 'json', '>= 2.0', '< 3.0'
28
- s.add_runtime_dependency 'puppet', '>= 6.0', '< 9.0'
29
- s.add_dependency 'puppet-lint', '>= 1.0', '< 5.0'
30
- s.add_runtime_dependency 'puppetdb-ruby', '~> 1.1', '>= 1.1.1'
28
+ s.add_development_dependency 'voxpupuli-rubocop', '~> 5.0.0'
29
+
30
+ s.add_dependency 'json', '>= 2.0', '< 3.0'
31
+ s.add_dependency 'openvox', '>= 8.0', '< 9.0'
32
+ s.add_dependency 'puppetdb-ruby', '~> 1.1', '>= 1.1.1'
33
+ s.add_dependency 'syslog', '~> 0.3.0'
31
34
  end
data/spec/spec_helper.rb CHANGED
@@ -5,7 +5,7 @@ PuppetLint::Plugins.load_spec_helper
5
5
 
6
6
  class PuppetDB::Client
7
7
  def puppetdb_to_jgrep(query)
8
- if query[0] == :and || query[0] == :or
8
+ if %i[and or].include?(query[0])
9
9
  "(#{puppetdb_to_jgrep(query[1])} #{query[0]} #{puppetdb_to_jgrep(query[2])})"
10
10
  else
11
11
  "#{[query[1]].flatten.join('.')}#{query[0]}#{query[2]}"
metadata CHANGED
@@ -1,16 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-ghostbuster
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Camptocamp
8
8
  - Vox Pupuli
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2024-03-26 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: puppet-lint
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '5.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '6.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '5.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '6.0'
14
33
  - !ruby/object:Gem::Dependency
15
34
  name: coveralls
16
35
  requirement: !ruby/object:Gem::Requirement
@@ -119,14 +138,14 @@ dependencies:
119
138
  requirements:
120
139
  - - "~>"
121
140
  - !ruby/object:Gem::Version
122
- version: 2.4.0
141
+ version: 5.0.0
123
142
  type: :development
124
143
  prerelease: false
125
144
  version_requirements: !ruby/object:Gem::Requirement
126
145
  requirements:
127
146
  - - "~>"
128
147
  - !ruby/object:Gem::Version
129
- version: 2.4.0
148
+ version: 5.0.0
130
149
  - !ruby/object:Gem::Dependency
131
150
  name: json
132
151
  requirement: !ruby/object:Gem::Requirement
@@ -148,12 +167,12 @@ dependencies:
148
167
  - !ruby/object:Gem::Version
149
168
  version: '3.0'
150
169
  - !ruby/object:Gem::Dependency
151
- name: puppet
170
+ name: openvox
152
171
  requirement: !ruby/object:Gem::Requirement
153
172
  requirements:
154
173
  - - ">="
155
174
  - !ruby/object:Gem::Version
156
- version: '6.0'
175
+ version: '8.0'
157
176
  - - "<"
158
177
  - !ruby/object:Gem::Version
159
178
  version: '9.0'
@@ -163,52 +182,45 @@ dependencies:
163
182
  requirements:
164
183
  - - ">="
165
184
  - !ruby/object:Gem::Version
166
- version: '6.0'
185
+ version: '8.0'
167
186
  - - "<"
168
187
  - !ruby/object:Gem::Version
169
188
  version: '9.0'
170
189
  - !ruby/object:Gem::Dependency
171
- name: puppet-lint
190
+ name: puppetdb-ruby
172
191
  requirement: !ruby/object:Gem::Requirement
173
192
  requirements:
174
- - - ">="
193
+ - - "~>"
175
194
  - !ruby/object:Gem::Version
176
- version: '1.0'
177
- - - "<"
195
+ version: '1.1'
196
+ - - ">="
178
197
  - !ruby/object:Gem::Version
179
- version: '5.0'
198
+ version: 1.1.1
180
199
  type: :runtime
181
200
  prerelease: false
182
201
  version_requirements: !ruby/object:Gem::Requirement
183
202
  requirements:
184
- - - ">="
203
+ - - "~>"
185
204
  - !ruby/object:Gem::Version
186
- version: '1.0'
187
- - - "<"
205
+ version: '1.1'
206
+ - - ">="
188
207
  - !ruby/object:Gem::Version
189
- version: '5.0'
208
+ version: 1.1.1
190
209
  - !ruby/object:Gem::Dependency
191
- name: puppetdb-ruby
210
+ name: syslog
192
211
  requirement: !ruby/object:Gem::Requirement
193
212
  requirements:
194
213
  - - "~>"
195
214
  - !ruby/object:Gem::Version
196
- version: '1.1'
197
- - - ">="
198
- - !ruby/object:Gem::Version
199
- version: 1.1.1
215
+ version: 0.3.0
200
216
  type: :runtime
201
217
  prerelease: false
202
218
  version_requirements: !ruby/object:Gem::Requirement
203
219
  requirements:
204
220
  - - "~>"
205
221
  - !ruby/object:Gem::Version
206
- version: '1.1'
207
- - - ">="
208
- - !ruby/object:Gem::Version
209
- version: 1.1.1
222
+ version: 0.3.0
210
223
  description: Try and find dead code in Puppet receipts
211
- email:
212
224
  executables: []
213
225
  extensions: []
214
226
  extra_rdoc_files: []
@@ -266,7 +278,6 @@ homepage: http://github.com/voxpupuli/puppet-ghostbuster
266
278
  licenses:
267
279
  - Apache-2.0
268
280
  metadata: {}
269
- post_install_message:
270
281
  rdoc_options: []
271
282
  require_paths:
272
283
  - lib
@@ -274,15 +285,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
274
285
  requirements:
275
286
  - - ">="
276
287
  - !ruby/object:Gem::Version
277
- version: '2.7'
288
+ version: '3.2'
278
289
  required_rubygems_version: !ruby/object:Gem::Requirement
279
290
  requirements:
280
291
  - - ">="
281
292
  - !ruby/object:Gem::Version
282
293
  version: '0'
283
294
  requirements: []
284
- rubygems_version: 3.2.33
285
- signing_key:
295
+ rubygems_version: 3.6.9
286
296
  specification_version: 4
287
297
  summary: Dead code detector for Puppet
288
298
  test_files: []