kettle-dev 2.2.1 → 2.2.3

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: dd2279063bbe1a554b16f415cbbb7c2e4ac97bb9db82b7637366a0c0e312173f
4
- data.tar.gz: f2f7bc08a41e7082079977c49ca9a61e4053613fae9bf5dcc75aaa44dbb2ddfc
3
+ metadata.gz: fa3fa8282c2b534ba8d14a5ff998db809e15c577e3e7b65bd7592c7bd8e568d7
4
+ data.tar.gz: ffa804162693d265c3a250d39f37324806d00a44676c50ca35c0a12cbecce771
5
5
  SHA512:
6
- metadata.gz: c03b4ee501ed0fc662aab42cc267cd6346b2a959cd38079a63fb81d0d0b088732d22d1376c0cf69d1899c9bde39892f35c0447ee97cea3d2972b5a2dd434845b
7
- data.tar.gz: 71ccc03797bbd38212044c7a2a9a06af28b2e09970531741ded9c36b1c48f99510ec65113c336cdf3fe9bd8c280b32988d1b6766590dde70cf87d207509a89f0
6
+ metadata.gz: cfffdbc293252d77553ba59d5e9179121c7b537ae676a1380c38a8a7af30b85266e1f07487f0368fd61671cee3a0324b2889537fbe89780225a54c8c6287c10e
7
+ data.tar.gz: 9e59b4fc95c59873b928adaa4a4ff75bab63247e60e5fbb8c39b8f6ef9cb7aad0f433efaa957dab32ec8c18a64cab5be63a7cd697566ef93590859821cb81b63
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,36 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [2.2.3] - 2026-06-09
34
+
35
+ - TAG: [v2.2.3][2.2.3t]
36
+ - COVERAGE: 91.76% -- 3762/4100 lines in 28 files
37
+ - BRANCH COVERAGE: 72.91% -- 1483/2034 branches in 28 files
38
+ - 67.00% documented
39
+
40
+ ### Fixed
41
+
42
+ - `kettle-pre-release` Markdown image checks now inspect project Markdown files
43
+ instead of recursive scratch output such as `tmp/template_test`.
44
+
45
+ ## [2.2.2] - 2026-06-09
46
+
47
+ - TAG: [v2.2.2][2.2.2t]
48
+ - COVERAGE: 92.04% -- 3758/4083 lines in 28 files
49
+ - BRANCH COVERAGE: 72.95% -- 1478/2026 branches in 28 files
50
+ - 66.83% documented
51
+
52
+ ### Changed
53
+
54
+ - `kettle-gha-sha-pins` now scans only the selected workflow directory,
55
+ defaulting to `.github/workflows`, instead of recursively searching every
56
+ nested `.github/workflows` directory under the project root.
57
+
58
+ ### Fixed
59
+
60
+ - Updated generated project metadata links to use the migrated `kettle-dev`
61
+ GitHub organization, including README QLTY badge URLs.
62
+
33
63
  ## [2.2.1] - 2026-06-09
34
64
 
35
65
  - TAG: [v2.2.1][2.2.1t]
@@ -43,6 +73,7 @@ Please file a bug if you notice a violation of semantic versioning.
43
73
  GitHub organization when no forge org can be derived.
44
74
  - `kettle-gha-sha-pins` now persists live ref-to-SHA lookup results in its action
45
75
  cache so a dry run followed by `--write` does not repeat the same API calls.
76
+ - Restored `docs/CNAME` so the generated documentation site keeps its custom domain.
46
77
 
47
78
  ## [2.2.0] - 2026-06-08
48
79
 
@@ -1991,7 +2022,11 @@ Please file a bug if you notice a violation of semantic versioning.
1991
2022
  - Selecting will run the selected workflow via `act`
1992
2023
  - This may move to its own gem in the future.
1993
2024
 
1994
- [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.1...HEAD
2025
+ [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.3...HEAD
2026
+ [2.2.3]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.2...v2.2.3
2027
+ [2.2.3t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.2.3
2028
+ [2.2.2]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.1...v2.2.2
2029
+ [2.2.2t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.2.2
1995
2030
  [2.2.1]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.0...v2.2.1
1996
2031
  [2.2.1t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.2.1
1997
2032
  [2.2.0]: https://github.com/kettle-rb/kettle-dev/compare/v2.1.1...v2.2.0
data/CITATION.cff CHANGED
@@ -12,9 +12,9 @@ authors:
12
12
  orcid: 'https://orcid.org/0009-0008-8519-441X'
13
13
  identifiers:
14
14
  - type: url
15
- value: 'https://github.com/kettle-rb/kettle-dev'
15
+ value: 'https://github.com/kettle-dev/kettle-dev'
16
16
  description: "kettle-dev"
17
- repository-code: 'https://github.com/kettle-rb/kettle-dev'
17
+ repository-code: 'https://github.com/kettle-dev/kettle-dev'
18
18
  abstract: >-
19
19
  kettle-dev
20
20
  license: See license file
data/CONTRIBUTING.md CHANGED
@@ -198,7 +198,7 @@ Your picture could be here!
198
198
 
199
199
  Made with [contributors-img][🖐contrib-rocks].
200
200
 
201
- Also see GitLab Contributors: [https://gitlab.com/kettle-rb/kettle-dev/-/graphs/main][🚎contributors-gl]
201
+ Also see GitLab Contributors: [https://gitlab.com/kettle-dev/kettle-dev/-/graphs/main][🚎contributors-gl]
202
202
 
203
203
  ## For Maintainers
204
204
 
@@ -249,15 +249,15 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
249
249
  14. Run `bundle exec rake release` which will create a git tag for the version,
250
250
  push git commits and tags, and push the `.gem` file to the gem host configured in the gemspec.
251
251
 
252
- [📜src-gl]: https://gitlab.com/kettle-rb/kettle-dev
253
- [📜src-cb]: https://codeberg.org/kettle-rb/kettle-dev
254
- [📜src-gh]: https://github.com/kettle-rb/kettle-dev
255
- [🧪build]: https://github.com/kettle-rb/kettle-dev/actions
256
- [🤝conduct]: https://github.com/kettle-rb/kettle-dev/blob/main/CODE_OF_CONDUCT.md
252
+ [📜src-gl]: https://gitlab.com/kettle-dev/kettle-dev
253
+ [📜src-cb]: https://codeberg.org/kettle-dev/kettle-dev
254
+ [📜src-gh]: https://github.com/kettle-dev/kettle-dev
255
+ [🧪build]: https://github.com/kettle-dev/kettle-dev/actions
256
+ [🤝conduct]: https://github.com/kettle-dev/kettle-dev/blob/main/CODE_OF_CONDUCT.md
257
257
  [🖐contrib-rocks]: https://contrib.rocks
258
- [🖐contributors]: https://github.com/kettle-rb/kettle-dev/graphs/contributors
259
- [🚎contributors-gl]: https://gitlab.com/kettle-rb/kettle-dev/-/graphs/main
260
- [🖐contributors-img]: https://contrib.rocks/image?repo=kettle-rb/kettle-dev
258
+ [🖐contributors]: https://github.com/kettle-dev/kettle-dev/graphs/contributors
259
+ [🚎contributors-gl]: https://gitlab.com/kettle-dev/kettle-dev/-/graphs/main
260
+ [🖐contributors-img]: https://contrib.rocks/image?repo=kettle-dev/kettle-dev
261
261
  [💎gem-coop]: https://gem.coop
262
262
  [🔒️rubygems-security-guide]: https://guides.rubygems.org/security/#building-gems
263
263
  [🔒️rubygems-checksums-pr]: https://github.com/rubygems/rubygems/pull/6022
data/FUNDING.md CHANGED
@@ -10,10 +10,10 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
10
10
 
11
11
  [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
12
12
  [⛳liberapay]: https://liberapay.com/pboling/donate
13
- [🖇osc-backers]: https://opencollective.com/kettle-rb#backer
14
- [🖇osc-backers-i]: https://opencollective.com/kettle-rb/backers/badge.svg?style=flat
15
- [🖇osc-sponsors]: https://opencollective.com/kettle-rb#sponsor
16
- [🖇osc-sponsors-i]: https://opencollective.com/kettle-rb/sponsors/badge.svg?style=flat
13
+ [🖇osc-backers]: https://opencollective.com/kettle-dev#backer
14
+ [🖇osc-backers-i]: https://opencollective.com/kettle-dev/backers/badge.svg?style=flat
15
+ [🖇osc-sponsors]: https://opencollective.com/kettle-dev#sponsor
16
+ [🖇osc-sponsors-i]: https://opencollective.com/kettle-dev/sponsors/badge.svg?style=flat
17
17
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
18
18
  [🖇sponsor]: https://github.com/sponsors/pboling
19
19
  [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
@@ -46,7 +46,7 @@ To join the community or get help 👇️ Join the Discord.
46
46
 
47
47
  To say "thanks!" ☝️ Join the Discord or 👇️ send money.
48
48
 
49
- [![Sponsor kettle-rb/kettle-dev on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
49
+ [![Sponsor kettle-dev/kettle-dev on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
50
50
 
51
51
  # Another Way to Support Open Source Software
52
52
 
@@ -59,13 +59,13 @@ I’m developing a new library, [floss_funding][🖇floss-funding-gem], designed
59
59
  **[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
60
60
 
61
61
  [⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
62
- [🖇osc-all-img]: https://img.shields.io/opencollective/all/kettle-rb
63
- [🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/kettle-rb
64
- [🖇osc-backers-img]: https://img.shields.io/opencollective/backers/kettle-rb
65
- [🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/kettle-rb?style=for-the-badge
66
- [🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/kettle-rb?style=for-the-badge
67
- [🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/kettle-rb?style=for-the-badge
68
- [🖇osc]: https://opencollective.com/kettle-rb
62
+ [🖇osc-all-img]: https://img.shields.io/opencollective/all/kettle-dev
63
+ [🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/kettle-dev
64
+ [🖇osc-backers-img]: https://img.shields.io/opencollective/backers/kettle-dev
65
+ [🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/kettle-dev?style=for-the-badge
66
+ [🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/kettle-dev?style=for-the-badge
67
+ [🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/kettle-dev?style=for-the-badge
68
+ [🖇osc]: https://opencollective.com/kettle-dev
69
69
  [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
70
70
  [🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
71
71
  [🖇paypal-bottom-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=for-the-badge&logo=paypal&color=0A0A0A
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <a href="https://github.com/kettle-rb"><img alt="kettle-rb Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/kettle-rb/avatar-128px.svg" width="14%" align="right"/></a>
1
+ <a href="https://github.com/kettle-dev"><img alt="kettle-dev Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/kettle-dev/avatar-128px.svg" width="14%" align="right"/></a>
2
2
 
3
3
  # 🍲 Kettle::Dev
4
4
 
@@ -120,14 +120,14 @@ not practical for the current toolchain.
120
120
 
121
121
  | Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI | Discussions |
122
122
  |-------------------------------------------------|-----------------------------------------------------------------------|---------------------------|--------------------------|---------------------------|--------------------------|------------------------------|
123
- | 🧪 [kettle-rb/kettle-dev on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix | ➖ |
124
- | 🧊 [kettle-rb/kettle-dev on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix | ➖ |
125
- | 🐙 [kettle-rb/kettle-dev on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix | [💚][gh-discussions] |
123
+ | 🧪 [kettle-dev/kettle-dev on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix | ➖ |
124
+ | 🧊 [kettle-dev/kettle-dev on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix | ➖ |
125
+ | 🐙 [kettle-dev/kettle-dev on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix | [💚][gh-discussions] |
126
126
  | 🎮️ [Discord Server][✉️discord-invite] | [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] | [Let's][✉️discord-invite] | [talk][✉️discord-invite] | [about][✉️discord-invite] | [this][✉️discord-invite] | [library!][✉️discord-invite] |
127
127
 
128
128
  </details>
129
129
 
130
- [gh-discussions]: https://github.com/kettle-rb/kettle-dev/discussions
130
+ [gh-discussions]: https://github.com/kettle-dev/kettle-dev/discussions
131
131
 
132
132
  ### Enterprise Support [![Tidelift](https://tidelift.com/badges/package/rubygems/kettle-dev)](https://tidelift.com/subscription/pkg/rubygems-kettle-dev?utm_source=rubygems-kettle-dev&utm_medium=referral&utm_campaign=readme)
133
133
 
@@ -588,16 +588,16 @@ chat rooms and mailing lists agrees to follow the [![Contributor Covenant 2.1][
588
588
 
589
589
  Made with [contributors-img][🖐contrib-rocks].
590
590
 
591
- Also see GitLab Contributors: [https://gitlab.com/kettle-rb/kettle-dev/-/graphs/main][🚎contributors-gl]
591
+ Also see GitLab Contributors: [https://gitlab.com/kettle-dev/kettle-dev/-/graphs/main][🚎contributors-gl]
592
592
 
593
593
  <details>
594
594
  <summary>⭐️ Star History</summary>
595
595
 
596
- <a href="https://star-history.com/kettle-rb/kettle-dev&Date">
596
+ <a href="https://star-history.com/kettle-dev/kettle-dev&Date">
597
597
  <picture>
598
- <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=kettle-rb/kettle-dev&type=Date&theme=dark" />
599
- <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=kettle-rb/kettle-dev&type=Date" />
600
- <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=kettle-rb/kettle-dev&type=Date" />
598
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=kettle-dev/kettle-dev&type=Date&theme=dark" />
599
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=kettle-dev/kettle-dev&type=Date" />
600
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=kettle-dev/kettle-dev&type=Date" />
601
601
  </picture>
602
602
  </a>
603
603
 
@@ -662,7 +662,7 @@ To join the community or get help 👇️ Join the Discord.
662
662
 
663
663
  To say "thanks!" ☝️ Join the Discord or 👇️ send money.
664
664
 
665
- [![Sponsor kettle-rb/kettle-dev on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
665
+ [![Sponsor kettle-dev/kettle-dev on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
666
666
 
667
667
  ### Please give the project a star ⭐ ♥.
668
668
 
@@ -673,17 +673,17 @@ Thanks for RTFM. ☺️
673
673
  [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
674
674
  [⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
675
675
  [⛳liberapay]: https://liberapay.com/pboling/donate
676
- [🖇osc-all-img]: https://img.shields.io/opencollective/all/kettle-rb
677
- [🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/kettle-rb
678
- [🖇osc-backers-img]: https://img.shields.io/opencollective/backers/kettle-rb
679
- [🖇osc-backers]: https://opencollective.com/kettle-rb#backer
680
- [🖇osc-backers-i]: https://opencollective.com/kettle-rb/backers/badge.svg?style=flat
681
- [🖇osc-sponsors]: https://opencollective.com/kettle-rb#sponsor
682
- [🖇osc-sponsors-i]: https://opencollective.com/kettle-rb/sponsors/badge.svg?style=flat
683
- [🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/kettle-rb?style=for-the-badge
684
- [🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/kettle-rb?style=for-the-badge
685
- [🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/kettle-rb?style=for-the-badge
686
- [🖇osc]: https://opencollective.com/kettle-rb
676
+ [🖇osc-all-img]: https://img.shields.io/opencollective/all/kettle-dev
677
+ [🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/kettle-dev
678
+ [🖇osc-backers-img]: https://img.shields.io/opencollective/backers/kettle-dev
679
+ [🖇osc-backers]: https://opencollective.com/kettle-dev#backer
680
+ [🖇osc-backers-i]: https://opencollective.com/kettle-dev/backers/badge.svg?style=flat
681
+ [🖇osc-sponsors]: https://opencollective.com/kettle-dev#sponsor
682
+ [🖇osc-sponsors-i]: https://opencollective.com/kettle-dev/sponsors/badge.svg?style=flat
683
+ [🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/kettle-dev?style=for-the-badge
684
+ [🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/kettle-dev?style=for-the-badge
685
+ [🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/kettle-dev?style=for-the-badge
686
+ [🖇osc]: https://opencollective.com/kettle-dev
687
687
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
688
688
  [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
689
689
  [🖇sponsor]: https://github.com/sponsors/pboling
@@ -707,12 +707,12 @@ Thanks for RTFM. ☺️
707
707
  [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
708
708
 
709
709
  [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
710
- [⛳️gem-namespace]: https://github.com/kettle-rb/kettle-dev
710
+ [⛳️gem-namespace]: https://github.com/kettle-dev/kettle-dev
711
711
  [⛳️namespace-img]: https://img.shields.io/badge/namespace-Kettle::Dev-3C2D2D.svg?style=square&logo=ruby&logoColor=white
712
712
  [⛳️gem-name]: https://bestgems.org/gems/kettle-dev
713
713
  [⛳️name-img]: https://img.shields.io/badge/name-kettle--dev-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
714
- [⛳️tag-img]: https://img.shields.io/github/tag/kettle-rb/kettle-dev.svg
715
- [⛳️tag]: https://github.com/kettle-rb/kettle-dev/releases
714
+ [⛳️tag-img]: https://img.shields.io/github/tag/kettle-dev/kettle-dev.svg
715
+ [⛳️tag]: https://github.com/kettle-dev/kettle-dev/releases
716
716
  [🚂maint-blog]: http://www.railsbling.com/tags/kettle-dev
717
717
  [🚂maint-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange
718
718
  [🚂maint-contact]: http://www.railsbling.com/contact
@@ -747,64 +747,64 @@ Thanks for RTFM. ☺️
747
747
  [💁🏼‍♂️peterboling]: http://www.peterboling.com
748
748
  [🚂railsbling]: http://www.railsbling.com
749
749
  [📜src-gl-img]: https://img.shields.io/badge/GitLab-FBA326?style=for-the-badge&logo=Gitlab&logoColor=orange
750
- [📜src-gl]: https://gitlab.com/kettle-rb/kettle-dev
750
+ [📜src-gl]: https://gitlab.com/kettle-dev/kettle-dev
751
751
  [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
752
- [📜src-cb]: https://codeberg.org/kettle-rb/kettle-dev
752
+ [📜src-cb]: https://codeberg.org/kettle-dev/kettle-dev
753
753
  [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green
754
- [📜src-gh]: https://github.com/kettle-rb/kettle-dev
754
+ [📜src-gh]: https://github.com/kettle-dev/kettle-dev
755
755
  [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
756
756
  [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
757
- [📜gl-wiki]: https://gitlab.com/kettle-rb/kettle-dev/-/wikis/home
758
- [📜gh-wiki]: https://github.com/kettle-rb/kettle-dev/wiki
757
+ [📜gl-wiki]: https://gitlab.com/kettle-dev/kettle-dev/-/wikis/home
758
+ [📜gh-wiki]: https://github.com/kettle-dev/kettle-dev/wiki
759
759
  [📜gl-wiki-img]: https://img.shields.io/badge/wiki-gitlab-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
760
760
  [📜gh-wiki-img]: https://img.shields.io/badge/wiki-github-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
761
761
  [👽dl-rank]: https://bestgems.org/gems/kettle-dev
762
762
  [👽dl-ranki]: https://img.shields.io/gem/rd/kettle-dev.svg
763
763
  [👽version]: https://bestgems.org/gems/kettle-dev
764
764
  [👽versioni]: https://img.shields.io/gem/v/kettle-dev.svg
765
- [🏀qlty-mnt]: https://qlty.sh/gh/kettle-rb/projects/kettle-dev
766
- [🏀qlty-mnti]: https://qlty.sh/gh/kettle-rb/projects/kettle-dev/maintainability.svg
767
- [🏀qlty-cov]: https://qlty.sh/gh/kettle-rb/projects/kettle-dev/metrics/code?sort=coverageRating
768
- [🏀qlty-covi]: https://qlty.sh/gh/kettle-rb/projects/kettle-dev/coverage.svg
769
- [🏀codecov]: https://codecov.io/gh/kettle-rb/kettle-dev
770
- [🏀codecovi]: https://codecov.io/gh/kettle-rb/kettle-dev/graph/badge.svg
771
- [🏀coveralls]: https://coveralls.io/github/kettle-rb/kettle-dev?branch=main
772
- [🏀coveralls-img]: https://coveralls.io/repos/github/kettle-rb/kettle-dev/badge.svg?branch=main
773
- [🚎ruby-2.4-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/ruby-2.4.yml
774
- [🚎ruby-2.5-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/ruby-2.5.yml
775
- [🚎ruby-2.6-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/ruby-2.6.yml
776
- [🚎ruby-2.7-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/ruby-2.7.yml
777
- [🚎ruby-3.0-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/ruby-3.0.yml
778
- [🚎ruby-3.1-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/ruby-3.1.yml
779
- [🚎ruby-3.2-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/ruby-3.2.yml
780
- [🚎ruby-3.3-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/ruby-3.3.yml
781
- [🚎ruby-3.4-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/ruby-3.4.yml
782
- [🚎jruby-9.2-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/jruby-9.2.yml
783
- [🚎jruby-9.3-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/jruby-9.3.yml
784
- [🚎jruby-9.4-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/jruby-9.4.yml
785
- [🚎truby-22.3-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/truffleruby-22.3.yml
786
- [🚎truby-23.0-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/truffleruby-23.0.yml
787
- [🚎truby-23.1-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/truffleruby-23.1.yml
788
- [🚎truby-24.2-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/truffleruby-24.2.yml
789
- [🚎truby-25.0-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/truffleruby-25.0.yml
790
- [🚎2-cov-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/coverage.yml
791
- [🚎2-cov-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/coverage.yml/badge.svg
792
- [🚎3-hd-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/heads.yml
793
- [🚎3-hd-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/heads.yml/badge.svg
794
- [🚎5-st-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/style.yml
795
- [🚎5-st-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/style.yml/badge.svg
796
- [🚎9-t-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/truffle.yml
797
- [🚎9-t-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/truffle.yml/badge.svg
798
- [🚎10-j-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/jruby.yml
799
- [🚎10-j-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/jruby.yml/badge.svg
800
- [🚎11-c-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/current.yml
801
- [🚎11-c-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/current.yml/badge.svg
802
- [🚎12-crh-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/dep-heads.yml
803
- [🚎12-crh-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/dep-heads.yml/badge.svg
804
- [🚎13-🔒️-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/locked_deps.yml
805
- [🚎13-🔒️-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/locked_deps.yml/badge.svg
806
- [🚎14-🔓️-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/unlocked_deps.yml
807
- [🚎14-🔓️-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/unlocked_deps.yml/badge.svg
765
+ [🏀qlty-mnt]: https://qlty.sh/gh/kettle-dev/projects/kettle-dev
766
+ [🏀qlty-mnti]: https://qlty.sh/gh/kettle-dev/projects/kettle-dev/maintainability.svg
767
+ [🏀qlty-cov]: https://qlty.sh/gh/kettle-dev/projects/kettle-dev/metrics/code?sort=coverageRating
768
+ [🏀qlty-covi]: https://qlty.sh/gh/kettle-dev/projects/kettle-dev/coverage.svg
769
+ [🏀codecov]: https://codecov.io/gh/kettle-dev/kettle-dev
770
+ [🏀codecovi]: https://codecov.io/gh/kettle-dev/kettle-dev/graph/badge.svg
771
+ [🏀coveralls]: https://coveralls.io/github/kettle-dev/kettle-dev?branch=main
772
+ [🏀coveralls-img]: https://coveralls.io/repos/github/kettle-dev/kettle-dev/badge.svg?branch=main
773
+ [🚎ruby-2.4-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/ruby-2.4.yml
774
+ [🚎ruby-2.5-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/ruby-2.5.yml
775
+ [🚎ruby-2.6-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/ruby-2.6.yml
776
+ [🚎ruby-2.7-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/ruby-2.7.yml
777
+ [🚎ruby-3.0-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/ruby-3.0.yml
778
+ [🚎ruby-3.1-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/ruby-3.1.yml
779
+ [🚎ruby-3.2-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/ruby-3.2.yml
780
+ [🚎ruby-3.3-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/ruby-3.3.yml
781
+ [🚎ruby-3.4-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/ruby-3.4.yml
782
+ [🚎jruby-9.2-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/jruby-9.2.yml
783
+ [🚎jruby-9.3-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/jruby-9.3.yml
784
+ [🚎jruby-9.4-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/jruby-9.4.yml
785
+ [🚎truby-22.3-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/truffleruby-22.3.yml
786
+ [🚎truby-23.0-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/truffleruby-23.0.yml
787
+ [🚎truby-23.1-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/truffleruby-23.1.yml
788
+ [🚎truby-24.2-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/truffleruby-24.2.yml
789
+ [🚎truby-25.0-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/truffleruby-25.0.yml
790
+ [🚎2-cov-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/coverage.yml
791
+ [🚎2-cov-wfi]: https://github.com/kettle-dev/kettle-dev/actions/workflows/coverage.yml/badge.svg
792
+ [🚎3-hd-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/heads.yml
793
+ [🚎3-hd-wfi]: https://github.com/kettle-dev/kettle-dev/actions/workflows/heads.yml/badge.svg
794
+ [🚎5-st-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/style.yml
795
+ [🚎5-st-wfi]: https://github.com/kettle-dev/kettle-dev/actions/workflows/style.yml/badge.svg
796
+ [🚎9-t-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/truffle.yml
797
+ [🚎9-t-wfi]: https://github.com/kettle-dev/kettle-dev/actions/workflows/truffle.yml/badge.svg
798
+ [🚎10-j-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/jruby.yml
799
+ [🚎10-j-wfi]: https://github.com/kettle-dev/kettle-dev/actions/workflows/jruby.yml/badge.svg
800
+ [🚎11-c-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/current.yml
801
+ [🚎11-c-wfi]: https://github.com/kettle-dev/kettle-dev/actions/workflows/current.yml/badge.svg
802
+ [🚎12-crh-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/dep-heads.yml
803
+ [🚎12-crh-wfi]: https://github.com/kettle-dev/kettle-dev/actions/workflows/dep-heads.yml/badge.svg
804
+ [🚎13-🔒️-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/locked_deps.yml
805
+ [🚎13-🔒️-wfi]: https://github.com/kettle-dev/kettle-dev/actions/workflows/locked_deps.yml/badge.svg
806
+ [🚎14-🔓️-wf]: https://github.com/kettle-dev/kettle-dev/actions/workflows/unlocked_deps.yml
807
+ [🚎14-🔓️-wfi]: https://github.com/kettle-dev/kettle-dev/actions/workflows/unlocked_deps.yml/badge.svg
808
808
  [💎ruby-2.4i]: https://img.shields.io/badge/Ruby-2.4-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
809
809
  [💎ruby-2.5i]: https://img.shields.io/badge/Ruby-2.5-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
810
810
  [💎ruby-2.6i]: https://img.shields.io/badge/Ruby-2.6-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
@@ -828,34 +828,34 @@ Thanks for RTFM. ☺️
828
828
  [💎jruby-9.4i]: https://img.shields.io/badge/JRuby-9.4-FBE742?style=for-the-badge&logo=ruby&logoColor=red
829
829
  [💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742?style=for-the-badge&logo=ruby&logoColor=green
830
830
  [💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742?style=for-the-badge&logo=ruby&logoColor=blue
831
- [🤝gh-issues]: https://github.com/kettle-rb/kettle-dev/issues
832
- [🤝gh-pulls]: https://github.com/kettle-rb/kettle-dev/pulls
833
- [🤝gl-issues]: https://gitlab.com/kettle-rb/kettle-dev/-/issues
834
- [🤝gl-pulls]: https://gitlab.com/kettle-rb/kettle-dev/-/merge_requests
835
- [🤝cb-issues]: https://codeberg.org/kettle-rb/kettle-dev/issues
836
- [🤝cb-pulls]: https://codeberg.org/kettle-rb/kettle-dev/pulls
831
+ [🤝gh-issues]: https://github.com/kettle-dev/kettle-dev/issues
832
+ [🤝gh-pulls]: https://github.com/kettle-dev/kettle-dev/pulls
833
+ [🤝gl-issues]: https://gitlab.com/kettle-dev/kettle-dev/-/issues
834
+ [🤝gl-pulls]: https://gitlab.com/kettle-dev/kettle-dev/-/merge_requests
835
+ [🤝cb-issues]: https://codeberg.org/kettle-dev/kettle-dev/issues
836
+ [🤝cb-pulls]: https://codeberg.org/kettle-dev/kettle-dev/pulls
837
837
  [🤝cb-donate]: https://donate.codeberg.org/
838
- [🤝contributing]: https://github.com/kettle-rb/kettle-dev/blob/main/CONTRIBUTING.md
839
- [🏀codecov-g]: https://codecov.io/gh/kettle-rb/kettle-dev/graph/badge.svg
838
+ [🤝contributing]: https://github.com/kettle-dev/kettle-dev/blob/main/CONTRIBUTING.md
839
+ [🏀codecov-g]: https://codecov.io/gh/kettle-dev/kettle-dev/graph/badge.svg
840
840
  [🖐contrib-rocks]: https://contrib.rocks
841
- [🖐contributors]: https://github.com/kettle-rb/kettle-dev/graphs/contributors
842
- [🖐contributors-img]: https://contrib.rocks/image?repo=kettle-rb/kettle-dev
843
- [🚎contributors-gl]: https://gitlab.com/kettle-rb/kettle-dev/-/graphs/main
844
- [🪇conduct]: https://github.com/kettle-rb/kettle-dev/blob/main/CODE_OF_CONDUCT.md
841
+ [🖐contributors]: https://github.com/kettle-dev/kettle-dev/graphs/contributors
842
+ [🖐contributors-img]: https://contrib.rocks/image?repo=kettle-dev/kettle-dev
843
+ [🚎contributors-gl]: https://gitlab.com/kettle-dev/kettle-dev/-/graphs/main
844
+ [🪇conduct]: https://github.com/kettle-dev/kettle-dev/blob/main/CODE_OF_CONDUCT.md
845
845
  [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg
846
846
  [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
847
847
  [📌semver]: https://semver.org/spec/v2.0.0.html
848
848
  [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-259D6C.svg?style=flat
849
849
  [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
850
850
  [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
851
- [📌changelog]: https://github.com/kettle-rb/kettle-dev/blob/main/CHANGELOG.md
851
+ [📌changelog]: https://github.com/kettle-dev/kettle-dev/blob/main/CHANGELOG.md
852
852
  [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
853
853
  [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
854
854
  [📌gitmoji]: https://gitmoji.dev
855
855
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
856
856
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
857
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-4.078-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
858
- [🔐security]: https://github.com/kettle-rb/kettle-dev/blob/main/SECURITY.md
857
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-4.100-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
858
+ [🔐security]: https://github.com/kettle-dev/kettle-dev/blob/main/SECURITY.md
859
859
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
860
860
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
861
861
  [📄license]: LICENSE.md
@@ -869,7 +869,7 @@ Thanks for RTFM. ☺️
869
869
  [🚎yard-current]: http://rubydoc.info/gems/kettle-dev
870
870
  [🚎yard-head]: https://kettle-dev.galtzo.com
871
871
  [💎stone_checksums]: https://github.com/galtzo-floss/stone_checksums
872
- [💎SHA_checksums]: https://gitlab.com/kettle-rb/kettle-dev/-/tree/main/checksums
872
+ [💎SHA_checksums]: https://gitlab.com/kettle-dev/kettle-dev/-/tree/main/checksums
873
873
  [💎rlts]: https://github.com/rubocop-lts/rubocop-lts
874
874
  [💎rlts-img]: https://img.shields.io/badge/code_style_&_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white
875
875
  [💎appraisal2]: https://github.com/appraisal-rb/appraisal2
@@ -881,8 +881,8 @@ Thanks for RTFM. ☺️
881
881
  |---|---|
882
882
  | Package | kettle-dev |
883
883
  | Description | 🍲 Kettle::Dev is a meta tool from kettle-rb to streamline development and testing. Acts as a shim dependency, pulling in many other dependencies, to give you OOTB productivity with a RubyGem, or Ruby app project. Configures a complete set of Rake tasks, for all the libraries is brings in, so they arrive ready to go. Fund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev |
884
- | Homepage | https://github.com/kettle-rb/kettle-dev |
885
- | Source | https://github.com/kettle-rb/kettle-dev/tree/v2.2.0 |
884
+ | Homepage | https://github.com/kettle-dev/kettle-dev |
885
+ | Source | https://github.com/kettle-dev/kettle-dev/tree/v2.2.1 |
886
886
  | License | `AGPL-3.0-only` |
887
- | Funding | https://github.com/sponsors/pboling, https://issuehunt.io/u/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/kettle-rb, https://patreon.com/galtzo, https://polar.sh/pboling, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/kettle-dev, https://www.buymeacoffee.com/pboling |
887
+ | Funding | https://github.com/sponsors/pboling, https://issuehunt.io/u/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/kettle-dev, https://opencollective.com/kettle-rb, https://patreon.com/galtzo, https://polar.sh/pboling, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/kettle-dev, https://www.buymeacoffee.com/pboling |
888
888
  <!-- kettle-jem:metadata:end -->
@@ -38,7 +38,7 @@ module Kettle
38
38
  @argv = argv
39
39
  @err = err
40
40
  @options = {
41
- root: Dir.pwd,
41
+ root: File.join(Dir.pwd, ".github", "workflows"),
42
42
  dry_run: true,
43
43
  token: ENV["GITHUB_TOKEN"] || ENV["GH_TOKEN"],
44
44
  json: false,
@@ -227,7 +227,7 @@ module Kettle
227
227
  opt.banner = "Usage: kettle-gha-sha-pins [options]"
228
228
  opt.separator ""
229
229
  opt.separator "Normalize GitHub Actions workflow action refs to immutable commit SHAs."
230
- opt.on("-r", "--root PATH", "Root directory to scan (defaults to cwd)") do |root|
230
+ opt.on("-r", "--root PATH", "Directory to scan (defaults to .github/workflows under cwd)") do |root|
231
231
  @options[:root] = root
232
232
  end
233
233
  opt.on("-w", "--write", "Write edits (dry-run is default)") do
@@ -367,12 +367,10 @@ module Kettle
367
367
  end
368
368
 
369
369
  def discover_workflow_files(root, reject_patterns)
370
- expanded_root = Pathname.new(root).expand_path
370
+ expanded_root = workflow_analysis_root(root)
371
371
  patterns = [
372
- File.join(expanded_root.to_s, "**/.github/workflows/**/*.yml"),
373
- File.join(expanded_root.to_s, "**/.github/workflows/**/*.yaml"),
374
- File.join(expanded_root.to_s, "**/.github/workflows/*.yml"),
375
- File.join(expanded_root.to_s, "**/.github/workflows/*.yaml")
372
+ File.join(expanded_root.to_s, "*.yml"),
373
+ File.join(expanded_root.to_s, "*.yaml")
376
374
  ]
377
375
  files = Dir.glob(patterns, File::FNM_PATHNAME).uniq.sort
378
376
  files.select do |path|
@@ -382,6 +380,14 @@ module Kettle
382
380
  end
383
381
  end
384
382
 
383
+ def workflow_analysis_root(root)
384
+ expanded_root = Pathname.new(root).expand_path
385
+ workflow_root = expanded_root.join(".github", "workflows")
386
+ return workflow_root if workflow_root.directory?
387
+
388
+ expanded_root
389
+ end
390
+
385
391
  def extract_uses_nodes(parsed, text = nil)
386
392
  mapping_node = Psych::Nodes::Mapping
387
393
  scalar_node = Psych::Nodes::Scalar
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "optparse"
4
+ require "English"
4
5
  require "uri"
5
6
  require "net/http"
6
7
  require "openssl"
@@ -96,6 +97,11 @@ module Kettle
96
97
  module Markdown
97
98
  module_function
98
99
 
100
+ SCRATCH_PATH_PREFIXES = %w[
101
+ tmp/
102
+ .git/
103
+ ].freeze
104
+
99
105
  # Extract unique remote HTTP(S) image URLs from markdown or HTML images.
100
106
  # @param text [String]
101
107
  # @return [Array<String>]
@@ -125,11 +131,43 @@ module Kettle
125
131
  urls.uniq
126
132
  end
127
133
 
134
+ # Find Markdown files that are part of the releasable project.
135
+ # @return [Array<String>]
136
+ def project_markdown_files
137
+ files = tracked_markdown_files
138
+ return files unless files.empty?
139
+
140
+ Dir.glob(["**/*.md", "**/*.md.example"], File::FNM_DOTMATCH).reject { |path| scratch_path?(path) }.sort
141
+ end
142
+
143
+ # @return [Array<String>]
144
+ def tracked_markdown_files
145
+ output = IO.popen(["git", "ls-files", "-z", "--", "*.md", "*.md.example"], err: File::NULL, &:read)
146
+ return [] unless $CHILD_STATUS.success?
147
+
148
+ output.split("\0").reject { |path| scratch_path?(path) }.sort
149
+ rescue Errno::ENOENT
150
+ []
151
+ end
152
+
153
+ # @param path [String]
154
+ # @return [Boolean]
155
+ def scratch_path?(path)
156
+ SCRATCH_PATH_PREFIXES.any? { |prefix| path.start_with?(prefix) }
157
+ end
158
+
128
159
  # Extract from files matching glob.
129
- # @param glob_pattern [String]
160
+ # @param glob_pattern [String, Array<String>]
130
161
  # @return [Array<String>]
131
- def extract_image_urls_from_files(glob_pattern = "*.md")
132
- files = Dir.glob(glob_pattern)
162
+ def extract_image_urls_from_files(glob_pattern = nil)
163
+ files =
164
+ if glob_pattern.nil?
165
+ project_markdown_files
166
+ elsif glob_pattern.is_a?(String)
167
+ Dir.glob(glob_pattern)
168
+ else
169
+ Array(glob_pattern)
170
+ end
133
171
  urls = files.flat_map do |f|
134
172
  begin
135
173
  extract_image_urls_from_text(File.read(f))
@@ -183,7 +221,7 @@ module Kettle
183
221
  # @return [void]
184
222
  def check_markdown_uri_normalization!
185
223
  puts "[kettle-pre-release] Check 2: Normalize Markdown image URLs"
186
- files = Dir.glob(["**/*.md", "**/*.md.example"])
224
+ files = Markdown.project_markdown_files
187
225
  changed = []
188
226
  total_candidates = 0
189
227
 
@@ -232,10 +270,7 @@ module Kettle
232
270
  # @return [void]
233
271
  def check_markdown_images_http!
234
272
  puts "[kettle-pre-release] Check 3: Validate Markdown image links (HTTP HEAD)"
235
- urls = [
236
- Markdown.extract_image_urls_from_files("**/*.md"),
237
- Markdown.extract_image_urls_from_files("**/*.md.example")
238
- ].flatten.uniq
273
+ urls = Markdown.extract_image_urls_from_files
239
274
  puts "[kettle-pre-release] Found #{urls.size} unique image URL(s)."
240
275
  failures = []
241
276
  urls.each do |url|
@@ -3,7 +3,7 @@
3
3
  module Kettle
4
4
  module Dev
5
5
  module Version
6
- VERSION = "2.2.1"
6
+ VERSION = "2.2.3"
7
7
  end
8
8
  VERSION = Version::VERSION # Traditional Constant Location
9
9
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kettle-dev
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -333,17 +333,17 @@ files:
333
333
  - sig/kettle/dev/version.rbs
334
334
  - sig/kettle/dev/versioning.rbs
335
335
  - sig/kettle/emoji_regex.rbs
336
- homepage: https://github.com/kettle-rb/kettle-dev
336
+ homepage: https://github.com/kettle-dev/kettle-dev
337
337
  licenses:
338
338
  - AGPL-3.0-only
339
339
  metadata:
340
340
  homepage_uri: https://kettle-dev.galtzo.com
341
- source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v2.2.1
342
- changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v2.2.1/CHANGELOG.md
343
- bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
344
- documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.2.1
341
+ source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.2.3
342
+ changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.2.3/CHANGELOG.md
343
+ bug_tracker_uri: https://github.com/kettle-dev/kettle-dev/issues
344
+ documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.2.3
345
345
  funding_uri: https://github.com/sponsors/pboling
346
- wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
346
+ wiki_uri: https://github.com/kettle-dev/kettle-dev/wiki
347
347
  news_uri: https://www.railsbling.com/tags/kettle-dev
348
348
  discord_uri: https://discord.gg/3qme4XHNKN
349
349
  rubygems_mfa_required: 'true'
metadata.gz.sig CHANGED
Binary file