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 +4 -4
- data/.github/workflows/release.yml +91 -18
- data/.github/workflows/test.yml +6 -7
- data/CHANGELOG.md +21 -1
- data/lib/puppet-ghostbuster/version.rb +1 -1
- data/lib/puppet-lint/plugins/check_ghostbuster_facts.rb +1 -1
- data/lib/puppet-lint/plugins/check_ghostbuster_hiera_files.rb +1 -1
- data/puppet-ghostbuster.gemspec +9 -6
- data/spec/spec_helper.rb +1 -1
- metadata +41 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 375b356f2dfb050b520be62463511571b00593edbe7bc9adbbd695407065e270
|
4
|
+
data.tar.gz: 4e79ddd9fe3302c103661357e60d433d62973428463a9bdf491495fd53e78863
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68d6f7a6cf434eae005054bcce1a7cb575738416d06671a2cbb1c6647984217a2b2b6a61997c291aa52b251a6e3cc43aed9a853a5a6b34d3992f78e7cfbaf377
|
7
|
+
data.tar.gz: 70dcd2436f3303f2933d52140edfa48991aa626cf3711e40cbcc0562fd92ea673e2429526f5ced1723d355a06ae5b9e12414917b51b7e34b28f08a48741e08ca
|
@@ -1,33 +1,106 @@
|
|
1
|
-
|
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
|
-
|
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@
|
14
|
-
- name: Install Ruby
|
18
|
+
- uses: actions/checkout@v5
|
19
|
+
- name: Install Ruby
|
15
20
|
uses: ruby/setup-ruby@v1
|
16
21
|
with:
|
17
|
-
ruby-version: '
|
18
|
-
bundler: 'none'
|
19
|
-
env:
|
20
|
-
BUNDLE_WITHOUT: release:development:rubocop
|
22
|
+
ruby-version: 'ruby'
|
21
23
|
- name: Build gem
|
22
|
-
|
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
|
-
|
26
|
-
|
27
|
-
|
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
|
-
|
30
|
-
|
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
|
data/.github/workflows/test.yml
CHANGED
@@ -14,11 +14,11 @@ jobs:
|
|
14
14
|
rubocop:
|
15
15
|
runs-on: ubuntu-latest
|
16
16
|
steps:
|
17
|
-
- uses: actions/checkout@
|
17
|
+
- uses: actions/checkout@v5
|
18
18
|
- name: Setup ruby
|
19
19
|
uses: ruby/setup-ruby@v1
|
20
20
|
with:
|
21
|
-
ruby-version: '3.
|
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@
|
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
|
-
## [
|
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
|
|
@@ -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)\.[
|
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
|
data/puppet-ghostbuster.gemspec
CHANGED
@@ -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
|
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', '~>
|
27
|
-
|
28
|
-
s.
|
29
|
-
s.add_dependency
|
30
|
-
s.
|
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
|
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:
|
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:
|
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:
|
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:
|
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:
|
170
|
+
name: openvox
|
152
171
|
requirement: !ruby/object:Gem::Requirement
|
153
172
|
requirements:
|
154
173
|
- - ">="
|
155
174
|
- !ruby/object:Gem::Version
|
156
|
-
version: '
|
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: '
|
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:
|
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.
|
177
|
-
- - "
|
195
|
+
version: '1.1'
|
196
|
+
- - ">="
|
178
197
|
- !ruby/object:Gem::Version
|
179
|
-
version:
|
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.
|
187
|
-
- - "
|
205
|
+
version: '1.1'
|
206
|
+
- - ">="
|
188
207
|
- !ruby/object:Gem::Version
|
189
|
-
version:
|
208
|
+
version: 1.1.1
|
190
209
|
- !ruby/object:Gem::Dependency
|
191
|
-
name:
|
210
|
+
name: syslog
|
192
211
|
requirement: !ruby/object:Gem::Requirement
|
193
212
|
requirements:
|
194
213
|
- - "~>"
|
195
214
|
- !ruby/object:Gem::Version
|
196
|
-
version:
|
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:
|
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
|
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.
|
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: []
|