onceover-codequality 0.13.0 → 1.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: 996d0514e015dfda357e74afcc718c6c48cf681e14f420a9312796fe87ce1162
4
- data.tar.gz: af938880feaa8773f4ea6b0b4709bd78d3d760bd9d9572818772bcc5668fb9b1
3
+ metadata.gz: 1e2d6567dc72f75efc4acbbbc3c114800cbddee6395802b6246c430bfacddfbd
4
+ data.tar.gz: 5fe8dcb4d64ebc30a3cd4b799b973e8d35ca79f56ec7e240a8ff4f9aece3f2ad
5
5
  SHA512:
6
- metadata.gz: 696a7dbd23ba2e739ffbd01ab05b5f7490b73fbe6f4215b19c0ecb01d2fb22189e2dd45d48abea50490bd748c6421a8513c8a08d6805eb30399987837325f197
7
- data.tar.gz: c897de1532b0f7b16a1bd48cc151ee39b4a016a08a2078aaa1315d6a98657a0ea3bbbaa2a56b7bc44b015fd7bdee2f294faccdcbbe2dd36bbeeb0f478ea68b15
6
+ metadata.gz: bf59878c32ee30be0a5bb892e6f2b1e0d3e0b14a6c3a8ba8678ee2db70a80a2988ca71bd41dea60d22aa8596eff76e9210cfc2aa60363f2a3085f76383e7ca6c
7
+ data.tar.gz: c10ae82cb343809eecbc82607f6c2d9ec895d065c215e75173a61a3ab9a1a94b49ee94c40a3ca9e247afdb5618b0880ac97ba0a8bc4f896668e5421322af4a9a
@@ -0,0 +1,17 @@
1
+ version: 2
2
+ updates:
3
+ # raise PRs for gem updates
4
+ - package-ecosystem: bundler
5
+ directory: "/"
6
+ schedule:
7
+ interval: daily
8
+ time: "13:00"
9
+ open-pull-requests-limit: 10
10
+
11
+ # Maintain dependencies for GitHub Actions
12
+ - package-ecosystem: github-actions
13
+ directory: "/"
14
+ schedule:
15
+ interval: daily
16
+ time: "13:00"
17
+ open-pull-requests-limit: 10
@@ -0,0 +1,3 @@
1
+ ---
2
+ skip-changelog:
3
+ - head-branch: ['^release-*']
@@ -0,0 +1,40 @@
1
+ ---
2
+ # https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
3
+
4
+ changelog:
5
+ exclude:
6
+ labels:
7
+ - duplicate
8
+ - invalid
9
+ - modulesync
10
+ - question
11
+ - skip-changelog
12
+ - wont-fix
13
+ - wontfix
14
+ - github_actions
15
+
16
+ categories:
17
+ - title: Breaking Changes 🛠
18
+ labels:
19
+ - backwards-incompatible
20
+
21
+ - title: New Features 🎉
22
+ labels:
23
+ - enhancement
24
+
25
+ - title: Bug Fixes 🐛
26
+ labels:
27
+ - bug
28
+
29
+ - title: Documentation Updates 📚
30
+ labels:
31
+ - documentation
32
+ - docs
33
+
34
+ - title: Dependency Updates ⬆️
35
+ labels:
36
+ - dependencies
37
+
38
+ - title: Other Changes
39
+ labels:
40
+ - "*"
@@ -0,0 +1,52 @@
1
+ name: 🚦 CI
2
+
3
+ on:
4
+ pull_request: {}
5
+ push:
6
+ branches:
7
+ - master
8
+
9
+ jobs:
10
+ rubocop:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ fail-fast: false
14
+ matrix:
15
+ ruby:
16
+ - 3.2
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - name: Install Ruby ${{ matrix.ruby }}
20
+ uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: "3.2"
23
+ bundler-cache: true
24
+ - name: Run Rubocop
25
+ run: bundle exec rake rubocop
26
+ unit:
27
+ strategy:
28
+ fail-fast: false
29
+ matrix:
30
+ os:
31
+ - ubuntu-24.04
32
+ - ubuntu-24.04-arm
33
+ include:
34
+ - ruby: 3.2
35
+ runs-on: ${{ matrix.os }}
36
+ steps:
37
+ - uses: actions/checkout@v4
38
+ - uses: ruby/setup-ruby@v1
39
+ with:
40
+ ruby-version: ${{ matrix.ruby }}
41
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
42
+ - name: Run Tests
43
+ run: bundle exec rake spec
44
+
45
+ tests:
46
+ needs:
47
+ - rubocop
48
+ - unit
49
+ runs-on: ubuntu-latest
50
+ name: Test suite
51
+ steps:
52
+ - run: echo Test suite completed
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: 🏷️ Pull Request Labeler
3
+
4
+ on:
5
+ - pull_request_target
6
+
7
+ jobs:
8
+ labeler:
9
+ permissions:
10
+ contents: read
11
+ pull-requests: write
12
+ name: Labeler
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/labeler@v5
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: Gem Release
3
+
4
+ on:
5
+ push:
6
+ tags:
7
+ - '*'
8
+
9
+ permissions: {}
10
+
11
+ jobs:
12
+ build-release:
13
+ # Prevent releases from forked repositories
14
+ if: github.repository_owner == 'voxpupuli'
15
+ name: Build the gem
16
+ runs-on: ubuntu-24.04
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - name: Install Ruby
20
+ uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: 'ruby'
23
+ - name: Build gem
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
80
+ - name: Publish gem to rubygems.org
81
+ shell: bash
82
+ run: gem push *.gem
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
104
+ run: |
105
+ gem install rubygems-await
106
+ gem await *.gem
data/.gitignore CHANGED
@@ -1,16 +1,16 @@
1
- /.bundle/
1
+ .bundle/
2
+ .idea/
3
+ .rspec_status
4
+ .vendor/
5
+ *.gem
2
6
  **/.yardoc
3
7
  **/REFERENCE.md
4
- /spec/testcase/**/doc
5
8
  /_yardoc/
6
9
  /coverage/
7
10
  /doc/
8
11
  /pkg/
9
12
  /spec/reports/
13
+ /spec/testcase/**/doc
10
14
  /tmp/
11
-
12
- # rspec failure tracking
13
- .rspec_status
14
- /.idea
15
- *.gem
16
-
15
+ Gemfile.lock
16
+ vendor/
data/.rubocop.yml ADDED
@@ -0,0 +1,12 @@
1
+ ---
2
+ inherit_from: .rubocop_todo.yml
3
+
4
+ AllCops:
5
+ NewCops: enable
6
+ DisplayCopNames: true
7
+ ExtraDetails: true
8
+ DisplayStyleGuide: true
9
+ TargetRubyVersion: 3.2
10
+ Exclude:
11
+ - vendor/**/*
12
+ - .vendor/**/*
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,284 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2025-07-11 08:55:24 UTC using RuboCop version 1.50.2.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # This cop supports safe autocorrection (--autocorrect).
11
+ # Configuration parameters: Severity, Include.
12
+ # Include: **/*.gemspec
13
+ Gemspec/RequireMFA:
14
+ Exclude:
15
+ - 'onceover-codequality.gemspec'
16
+
17
+ # Offense count: 5
18
+ # This cop supports safe autocorrection (--autocorrect).
19
+ Lint/AmbiguousRegexpLiteral:
20
+ Exclude:
21
+ - 'spec/onceover/environment_spec.rb'
22
+ - 'spec/onceover/lint_spec.rb'
23
+ - 'spec/onceover/puppetfile_spec.rb'
24
+ - 'spec/onceover/syntax_spec.rb'
25
+
26
+ # Offense count: 2
27
+ # This cop supports safe autocorrection (--autocorrect).
28
+ # Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
29
+ Lint/UnusedBlockArgument:
30
+ Exclude:
31
+ - 'lib/onceover/codequality/cli.rb'
32
+
33
+ # Offense count: 1
34
+ Lint/UselessAssignment:
35
+ Exclude:
36
+ - 'lib/onceover/codequality/environment.rb'
37
+
38
+ # Offense count: 2
39
+ # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
40
+ Metrics/AbcSize:
41
+ Max: 38
42
+
43
+ # Offense count: 2
44
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
45
+ # AllowedMethods: refine
46
+ Metrics/BlockLength:
47
+ Max: 38
48
+
49
+ # Offense count: 2
50
+ # Configuration parameters: AllowedMethods, AllowedPatterns.
51
+ Metrics/CyclomaticComplexity:
52
+ Max: 12
53
+
54
+ # Offense count: 5
55
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
56
+ Metrics/MethodLength:
57
+ Max: 40
58
+
59
+ # Offense count: 2
60
+ # Configuration parameters: AllowedMethods, AllowedPatterns.
61
+ Metrics/PerceivedComplexity:
62
+ Max: 13
63
+
64
+ # Offense count: 1
65
+ Naming/AccessorMethodName:
66
+ Exclude:
67
+ - 'lib/onceover/codequality/environment.rb'
68
+
69
+ # Offense count: 1
70
+ # Configuration parameters: EnforcedStyleForLeadingUnderscores.
71
+ # SupportedStylesForLeadingUnderscores: disallowed, required, optional
72
+ Naming/MemoizedInstanceVariableName:
73
+ Exclude:
74
+ - 'lib/onceover/codequality/cli.rb'
75
+
76
+ # Offense count: 1
77
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
78
+ # AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
79
+ Naming/MethodParameterName:
80
+ Exclude:
81
+ - 'lib/onceover/codequality/formatter.rb'
82
+
83
+ # Offense count: 1
84
+ Security/Open:
85
+ Exclude:
86
+ - 'lib/onceover/codequality/environment.rb'
87
+
88
+ # Offense count: 7
89
+ # This cop supports safe autocorrection (--autocorrect).
90
+ # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
91
+ # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
92
+ # ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
93
+ # FunctionalMethods: let, let!, subject, watch
94
+ # AllowedMethods: lambda, proc, it
95
+ Style/BlockDelimiters:
96
+ Exclude:
97
+ - 'lib/onceover/codequality/docs.rb'
98
+ - 'lib/onceover/codequality/environment.rb'
99
+ - 'lib/onceover/codequality/lint.rb'
100
+
101
+ # Offense count: 1
102
+ # This cop supports safe autocorrection (--autocorrect).
103
+ # Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
104
+ # SupportedStyles: assign_to_condition, assign_inside_condition
105
+ Style/ConditionalAssignment:
106
+ Exclude:
107
+ - 'lib/onceover/codequality/lint.rb'
108
+
109
+ # Offense count: 1
110
+ # This cop supports safe autocorrection (--autocorrect).
111
+ Style/DefWithParentheses:
112
+ Exclude:
113
+ - 'lib/onceover/codequality/environment.rb'
114
+
115
+ # Offense count: 9
116
+ # Configuration parameters: AllowedConstants.
117
+ Style/Documentation:
118
+ Exclude:
119
+ - 'spec/**/*'
120
+ - 'test/**/*'
121
+ - 'lib/onceover/codequality.rb'
122
+ - 'lib/onceover/codequality/cli.rb'
123
+ - 'lib/onceover/codequality/docs.rb'
124
+ - 'lib/onceover/codequality/environment.rb'
125
+ - 'lib/onceover/codequality/executor.rb'
126
+ - 'lib/onceover/codequality/formatter.rb'
127
+ - 'lib/onceover/codequality/lint.rb'
128
+ - 'lib/onceover/codequality/puppetfile.rb'
129
+ - 'lib/onceover/codequality/syntax.rb'
130
+
131
+ # Offense count: 1
132
+ # This cop supports safe autocorrection (--autocorrect).
133
+ Style/Encoding:
134
+ Exclude:
135
+ - 'onceover-codequality.gemspec'
136
+
137
+ # Offense count: 1
138
+ # This cop supports safe autocorrection (--autocorrect).
139
+ Style/ExpandPathArguments:
140
+ Exclude:
141
+ - 'onceover-codequality.gemspec'
142
+
143
+ # Offense count: 22
144
+ # This cop supports unsafe autocorrection (--autocorrect-all).
145
+ # Configuration parameters: EnforcedStyle.
146
+ # SupportedStyles: always, always_true, never
147
+ Style/FrozenStringLiteralComment:
148
+ Enabled: false
149
+
150
+ # Offense count: 6
151
+ # Configuration parameters: AllowedVariables.
152
+ Style/GlobalVars:
153
+ Exclude:
154
+ - 'spec/onceover/lint_spec.rb'
155
+ - 'spec/onceover/puppetfile_spec.rb'
156
+ - 'spec/onceover/syntax_spec.rb'
157
+
158
+ # Offense count: 1
159
+ # This cop supports safe autocorrection (--autocorrect).
160
+ # Configuration parameters: MinBodyLength, AllowConsecutiveConditionals.
161
+ Style/GuardClause:
162
+ Exclude:
163
+ - 'lib/onceover/codequality/environment.rb'
164
+
165
+ # Offense count: 11
166
+ # This cop supports safe autocorrection (--autocorrect).
167
+ # Configuration parameters: EnforcedStyle, EnforcedShorthandSyntax, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
168
+ # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
169
+ # SupportedShorthandSyntax: always, never, either, consistent
170
+ Style/HashSyntax:
171
+ Exclude:
172
+ - 'Rakefile'
173
+ - 'lib/onceover/codequality/cli.rb'
174
+ - 'lib/onceover/codequality/syntax.rb'
175
+ - 'spec/testcase/bad_puppetfile/Puppetfile'
176
+ - 'spec/testcase/good_puppetfile/Puppetfile'
177
+
178
+ # Offense count: 4
179
+ # This cop supports safe autocorrection (--autocorrect).
180
+ Style/IfUnlessModifier:
181
+ Exclude:
182
+ - 'lib/onceover/codequality/cli.rb'
183
+
184
+ # Offense count: 6
185
+ # This cop supports safe autocorrection (--autocorrect).
186
+ # Configuration parameters: AllowedMethods, AllowedPatterns.
187
+ Style/MethodCallWithoutArgsParentheses:
188
+ Exclude:
189
+ - 'spec/onceover/environment_spec.rb'
190
+
191
+ # Offense count: 1
192
+ Style/MultilineBlockChain:
193
+ Exclude:
194
+ - 'lib/onceover/codequality/environment.rb'
195
+
196
+ # Offense count: 2
197
+ # This cop supports unsafe autocorrection (--autocorrect-all).
198
+ # Configuration parameters: EnforcedStyle.
199
+ # SupportedStyles: literals, strict
200
+ Style/MutableConstant:
201
+ Exclude:
202
+ - 'lib/onceover/codequality/environment.rb'
203
+ - 'lib/onceover/codequality/lint.rb'
204
+
205
+ # Offense count: 4
206
+ # This cop supports safe autocorrection (--autocorrect).
207
+ # Configuration parameters: EnforcedStyle.
208
+ # SupportedStyles: both, prefix, postfix
209
+ Style/NegatedIf:
210
+ Exclude:
211
+ - 'lib/onceover/codequality/cli.rb'
212
+
213
+ # Offense count: 1
214
+ # This cop supports safe autocorrection (--autocorrect).
215
+ Style/NegatedIfElseCondition:
216
+ Exclude:
217
+ - 'lib/onceover/codequality/lint.rb'
218
+
219
+ # Offense count: 2
220
+ # This cop supports safe autocorrection (--autocorrect).
221
+ # Configuration parameters: EnforcedStyle, MinBodyLength.
222
+ # SupportedStyles: skip_modifier_ifs, always
223
+ Style/Next:
224
+ Exclude:
225
+ - 'lib/onceover/codequality/docs.rb'
226
+ - 'lib/onceover/codequality/lint.rb'
227
+
228
+ # Offense count: 1
229
+ # Configuration parameters: AllowedMethods.
230
+ # AllowedMethods: respond_to_missing?
231
+ Style/OptionalBooleanParameter:
232
+ Exclude:
233
+ - 'lib/onceover/codequality/formatter.rb'
234
+
235
+ # Offense count: 1
236
+ # This cop supports safe autocorrection (--autocorrect).
237
+ # Configuration parameters: PreferredDelimiters.
238
+ Style/PercentLiteralDelimiters:
239
+ Exclude:
240
+ - 'onceover-codequality.gemspec'
241
+
242
+ # Offense count: 1
243
+ # This cop supports safe autocorrection (--autocorrect).
244
+ Style/RedundantPercentQ:
245
+ Exclude:
246
+ - 'onceover-codequality.gemspec'
247
+
248
+ # Offense count: 1
249
+ # This cop supports safe autocorrection (--autocorrect).
250
+ # Configuration parameters: AllowMultipleReturnValues.
251
+ Style/RedundantReturn:
252
+ Exclude:
253
+ - 'lib/onceover/codequality/executor.rb'
254
+
255
+ # Offense count: 1
256
+ # This cop supports safe autocorrection (--autocorrect).
257
+ # Configuration parameters: EnforcedStyle, AllowInnerSlashes.
258
+ # SupportedStyles: slashes, percent_r, mixed
259
+ Style/RegexpLiteral:
260
+ Exclude:
261
+ - 'lib/onceover/codequality/environment.rb'
262
+
263
+ # Offense count: 119
264
+ # This cop supports safe autocorrection (--autocorrect).
265
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
266
+ # SupportedStyles: single_quotes, double_quotes
267
+ Style/StringLiterals:
268
+ Enabled: false
269
+
270
+ # Offense count: 1
271
+ # This cop supports unsafe autocorrection (--autocorrect-all).
272
+ # Configuration parameters: AllowMethodsWithArguments, AllowedMethods, AllowedPatterns, AllowComments.
273
+ # AllowedMethods: define_method
274
+ Style/SymbolProc:
275
+ Exclude:
276
+ - 'lib/onceover/codequality/environment.rb'
277
+
278
+ # Offense count: 2
279
+ # This cop supports safe autocorrection (--autocorrect).
280
+ # Configuration parameters: EnforcedStyleForMultiline.
281
+ # SupportedStylesForMultiline: comma, consistent_comma, no_comma
282
+ Style/TrailingCommaInArrayLiteral:
283
+ Exclude:
284
+ - 'lib/onceover/codequality/lint.rb'