kettle-dev 2.5.15 → 2.5.17

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: 561f0712647c4d27b03caa44fe76613f2d68602b056d2e0ada052c6c13334f51
4
- data.tar.gz: 148358784c948bfa8368b36e683834e21636277539ad1b084450829a57721af7
3
+ metadata.gz: c6b0a4f7b709b84f0f3af8b93656498d59c80adeaabcc62f6f86ff9c492a1efd
4
+ data.tar.gz: 3563d5ed2ccced1d1153ecddfc0cfc73768b8cf081e30d46d7da516095cc3a33
5
5
  SHA512:
6
- metadata.gz: db47e6daf32deff2da6749a388a8c802e65e492ce63d35f0cd606f8cdc8ddf73ab4fda2d137c0c834bff64043f3739440bae25b567391838f43eaf376c0031d9
7
- data.tar.gz: d40265dd3c8eb72654de1cec852753e2f6deaa5f996809ad348b4ae90d00d65ad70a5fb24a82570e30764bd9425ebc23e394bf2bdfee9d47f8939a6efb635559
6
+ metadata.gz: 897924217509608d90aac4b56d37ee00ddd813c899975abc3929ece1aa9db7021f5c7f6726408ec34d6682f2823459bb5de668c720edd0e7eed882f82ed622c5
7
+ data.tar.gz: a21d616170ccf501ae3ae4a6112f2a2353f4dcea34c847713d9168437fc611bf743e5ddd5984b5f5c2059225e404f8d659515c23d97570dd4b0b609c44512554
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,48 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [2.5.17] - 2026-08-02
34
+
35
+ - TAG: [v2.5.17][2.5.17t]
36
+ - COVERAGE: 91.45% -- 5292/5787 lines in 46 files
37
+ - BRANCH COVERAGE: 75.66% -- 2002/2646 branches in 46 files
38
+ - 50.41% documented
39
+
40
+ ### Fixed
41
+
42
+ - kettle-jem-template-20260802-001 - Devcontainer JSON files now merge as JSONC,
43
+ preserving comments and trailing commas during template updates.
44
+
45
+ ## [2.5.16] - 2026-08-01
46
+
47
+ - TAG: [v2.5.16][2.5.16t]
48
+ - COVERAGE: 91.43% -- 5291/5787 lines in 46 files
49
+ - BRANCH COVERAGE: 75.66% -- 2002/2646 branches in 46 files
50
+ - 50.41% documented
51
+
52
+ ### Changed
53
+
54
+ - kettle-jem-template-20260801-001 - Generated README gem dashboard links now
55
+ use ClickGems instead of BestGems.
56
+
57
+ ### Fixed
58
+
59
+ - Pre-release image validation now permits a current-repository workflow badge when its workflow exists locally and awaits the release push.
60
+
61
+ - Release changelog coverage runs now enforce the checked-in coverage workflow line and branch thresholds before pushing.
62
+
63
+ - kettle-jem-template-20260801-002 - Generated RSpec helpers now normalize
64
+ managed configuration block bindings structurally, preventing mixed block
65
+ parameter names from producing invalid configuration after a merge.
66
+ - kettle-jem-template-20260801-003 - Generated project metadata and
67
+ documentation now normalize configured underscore hostnames to valid
68
+ hyphenated hostnames.
69
+ - kettle-jem-template-20260801-004 - Generated organization README logos now
70
+ use GitHub's stable organization avatar endpoint instead of assuming a
71
+ matching Galtzo-hosted asset exists.
72
+
73
+ - Mark modern changelog coverage-threshold tooling specs pending on legacy Ruby Appraisals.
74
+
33
75
  ## [2.5.15] - 2026-08-01
34
76
 
35
77
  - TAG: [v2.5.15][2.5.15t]
@@ -223,10 +265,6 @@ Please file a bug if you notice a violation of semantic versioning.
223
265
 
224
266
  ### Added
225
267
 
226
- - kettle-jem-template-20260729-005 - Gemspec metadata now publishes this
227
- project's RubyForum tag as `mailing_list_uri`, and support docs link to the
228
- tagged RubyForum community alongside Discord.
229
-
230
268
  ### Changed
231
269
 
232
270
  - Raised the runtime dependency floors for `kettle-ndjson` to `0.1.3` and
@@ -249,9 +287,6 @@ Please file a bug if you notice a violation of semantic versioning.
249
287
  and templates dedicated `version_gem.rb` entrypoints even when the gemspec
250
288
  dependency is intentionally omitted, and generated anonymous-loader specs
251
289
  cover both `version.rb` and `version_gem.rb`.
252
- - kettle-jem-template-20260729-003 - Old-Ruby gems below the VersionGem runtime
253
- floor now get managed minimal `version.rb` files and anonymous-loader version
254
- specs without adding `version_gem`.
255
290
  - kettle-jem-template-20260730-001 - Gemspec package file enumeration now runs
256
291
  relative to the gemspec directory, so packaged template assets are included
257
292
  even when the gemspec is loaded from another working directory.
@@ -685,14 +720,10 @@ Please file a bug if you notice a violation of semantic versioning.
685
720
 
686
721
  ### Changed
687
722
 
688
- - kettle-jem-template-20260720-001 - Generated READMEs can now render
689
- template-managed corporate sponsor logos from project or family config.
690
723
  - kettle-jem-template-20260720-002 - Generated development Gemfiles now use the
691
724
  released `tree_sitter_language_pack` gem 1.13.3 or newer by default.
692
725
  - kettle-jem-template-20260720-003 - Generated StructuredMerge Git diff driver
693
726
  config now uses the installed `smorg-rb` Ruby driver name.
694
- - kettle-jem-template-20260720-004 - Generated multi-engine workflow files now
695
- omit JRuby and TruffleRuby jobs when project config declares MRI-only engines.
696
727
  - kettle-jem-template-20260720-005 - Generated README Support & Community rows
697
728
  now include a RubyForum help badge.
698
729
 
@@ -725,8 +756,6 @@ Please file a bug if you notice a violation of semantic versioning.
725
756
 
726
757
  ### Changed
727
758
 
728
- - kettle-jem-template-20260716-001 - Shim gemspec manifests now include
729
- `LICENSE.md` instead of nonexistent `LICENSE.txt`.
730
759
  - kettle-jem-template-20260716-002 - Generated gemspec manifests now ship fewer
731
760
  repository-only files by default to reduce downstream distro packaging churn.
732
761
 
@@ -3202,7 +3231,11 @@ Please file a bug if you notice a violation of semantic versioning.
3202
3231
  - Selecting will run the selected workflow via `act`
3203
3232
  - This may move to its own gem in the future.
3204
3233
 
3205
- [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.15...HEAD
3234
+ [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.17...HEAD
3235
+ [2.5.17]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.16...v2.5.17
3236
+ [2.5.17t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.5.17
3237
+ [2.5.16]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.15...v2.5.16
3238
+ [2.5.16t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.5.16
3206
3239
  [2.5.15]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.14...v2.5.15
3207
3240
  [2.5.15t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.5.15
3208
3241
  [2.5.14]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.13...v2.5.14
data/README.md CHANGED
@@ -1,8 +1,8 @@
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>
1
+ <a href="https://github.com/kettle-dev"><img alt="kettle-dev Logo by GitHub" src="https://github.com/kettle-dev.png?size=192" width="14%" align="right"/></a>
2
2
 
3
3
  # 🍲 Kettle::Dev
4
4
 
5
- [![Version][👽versioni]][👽version] [![Ruby Users Forum][✉️ruby-forum-top-img]][✉️ruby-forum] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: AGPL-3.0-only][📄license-img]][📄license] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf]
5
+ [![Version][👽versioni]][👽version] [![Ruby Users Forum][✉️ruby-forum-top-img]][✉️ruby-forum] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: AGPL-3.0-only][📄license-img]][📄license] [![Total downloads][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf]
6
6
 
7
7
  `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know on Discord][✉️discord-invite] or [RubyForum][✉️ruby-forum], as I may have missed the notification.
8
8
 
@@ -120,15 +120,15 @@ The _amazing_ test matrix is powered by the kettle-dev stack.
120
120
  <details markdown="1">
121
121
  <summary>How kettle-dev manages complexity in tests</summary>
122
122
 
123
- | Gem | Source | Role | Daily download rank |
123
+ | Gem | Source | Role | Total downloads |
124
124
  |-----|--------|------|---------------------|
125
- | [appraisal2](https://bestgems.org/gems/appraisal2) | [GitHub](https://github.com/appraisal-rb/appraisal2) | multi-dependency Appraisal matrix generation | [![Daily download rank for appraisal2](https://img.shields.io/gem/rd/appraisal2.svg?style=flat-square)](https://bestgems.org/gems/appraisal2) |
126
- | [appraisal2-rubocop](https://bestgems.org/gems/appraisal2-rubocop) | [GitHub](https://github.com/appraisal-rb/appraisal2-rubocop) | RuboCop Appraisal generator integration | [![Daily download rank for appraisal2-rubocop](https://img.shields.io/gem/rd/appraisal2-rubocop.svg?style=flat-square)](https://bestgems.org/gems/appraisal2-rubocop) |
127
- | [kettle-jem](https://bestgems.org/gems/kettle-jem) | [GitHub](https://github.com/kettle-dev/kettle-jem) | Appraisals & CI workflow templates | [![Daily download rank for kettle-jem](https://img.shields.io/gem/rd/kettle-jem.svg?style=flat-square)](https://bestgems.org/gems/kettle-jem) |
128
- | [kettle-soup-cover](https://bestgems.org/gems/kettle-soup-cover) | [GitHub](https://github.com/kettle-dev/kettle-soup-cover) | SimpleCov coverage policy and reporting | [![Daily download rank for kettle-soup-cover](https://img.shields.io/gem/rd/kettle-soup-cover.svg?style=flat-square)](https://bestgems.org/gems/kettle-soup-cover) |
129
- | [kettle-test](https://bestgems.org/gems/kettle-test) | [GitHub](https://github.com/kettle-dev/kettle-test) | standard test runner and coverage harness | [![Daily download rank for kettle-test](https://img.shields.io/gem/rd/kettle-test.svg?style=flat-square)](https://bestgems.org/gems/kettle-test) |
130
- | [rubocop-lts](https://bestgems.org/gems/rubocop-lts) | [GitHub](https://github.com/rubocop-lts/rubocop-lts) | Ruby-version-aware linting | [![Daily download rank for rubocop-lts](https://img.shields.io/gem/rd/rubocop-lts.svg?style=flat-square)](https://bestgems.org/gems/rubocop-lts) |
131
- | [turbo_tests2](https://bestgems.org/gems/turbo_tests2) | [GitHub](https://github.com/galtzo-floss/turbo_tests2) | parallel test execution | [![Daily download rank for turbo_tests2](https://img.shields.io/gem/rd/turbo_tests2.svg?style=flat-square)](https://bestgems.org/gems/turbo_tests2) |
125
+ | [appraisal2](https://clickgems.clickhouse.com/dashboard/appraisal2) | [GitHub](https://github.com/appraisal-rb/appraisal2) | multi-dependency Appraisal matrix generation | [![Total downloads for appraisal2](https://img.shields.io/gem/dt/appraisal2.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/appraisal2) |
126
+ | [appraisal2-rubocop](https://clickgems.clickhouse.com/dashboard/appraisal2-rubocop) | [GitHub](https://github.com/appraisal-rb/appraisal2-rubocop) | RuboCop Appraisal generator integration | [![Total downloads for appraisal2-rubocop](https://img.shields.io/gem/dt/appraisal2-rubocop.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/appraisal2-rubocop) |
127
+ | [kettle-jem](https://clickgems.clickhouse.com/dashboard/kettle-jem) | [GitHub](https://github.com/kettle-dev/kettle-jem) | Appraisals & CI workflow templates | [![Total downloads for kettle-jem](https://img.shields.io/gem/dt/kettle-jem.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/kettle-jem) |
128
+ | [kettle-soup-cover](https://clickgems.clickhouse.com/dashboard/kettle-soup-cover) | [GitHub](https://github.com/kettle-dev/kettle-soup-cover) | SimpleCov coverage policy and reporting | [![Total downloads for kettle-soup-cover](https://img.shields.io/gem/dt/kettle-soup-cover.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/kettle-soup-cover) |
129
+ | [kettle-test](https://clickgems.clickhouse.com/dashboard/kettle-test) | [GitHub](https://github.com/kettle-dev/kettle-test) | standard test runner and coverage harness | [![Total downloads for kettle-test](https://img.shields.io/gem/dt/kettle-test.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/kettle-test) |
130
+ | [rubocop-lts](https://clickgems.clickhouse.com/dashboard/rubocop-lts) | [GitHub](https://github.com/rubocop-lts/rubocop-lts) | Ruby-version-aware linting | [![Total downloads for rubocop-lts](https://img.shields.io/gem/dt/rubocop-lts.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/rubocop-lts) |
131
+ | [turbo_tests2](https://clickgems.clickhouse.com/dashboard/turbo_tests2) | [GitHub](https://github.com/galtzo-floss/turbo_tests2) | parallel test execution | [![Total downloads for turbo_tests2](https://img.shields.io/gem/dt/turbo_tests2.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/turbo_tests2) |
132
132
 
133
133
  </details>
134
134
 
@@ -856,7 +856,7 @@ Thanks for RTFM. ☺️
856
856
  [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
857
857
  [⛳️gem-namespace]: https://github.com/kettle-dev/kettle-dev
858
858
  [⛳️namespace-img]: https://img.shields.io/badge/namespace-Kettle::Dev-3C2D2D.svg?style=square&logo=ruby&logoColor=white
859
- [⛳️gem-name]: https://bestgems.org/gems/kettle-dev
859
+ [⛳️gem-name]: https://clickgems.clickhouse.com/dashboard/kettle-dev
860
860
  [⛳️name-img]: https://img.shields.io/badge/name-kettle--dev-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
861
861
  [⛳️tag-img]: https://img.shields.io/github/tag/kettle-dev/kettle-dev.svg
862
862
  [⛳️tag]: https://github.com/kettle-dev/kettle-dev/releases
@@ -905,9 +905,9 @@ Thanks for RTFM. ☺️
905
905
  [📜gh-wiki]: https://github.com/kettle-dev/kettle-dev/wiki
906
906
  [📜gl-wiki-img]: https://img.shields.io/badge/wiki-gitlab-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
907
907
  [📜gh-wiki-img]: https://img.shields.io/badge/wiki-github-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
908
- [👽dl-rank]: https://bestgems.org/gems/kettle-dev
909
- [👽dl-ranki]: https://img.shields.io/gem/rd/kettle-dev.svg
910
- [👽version]: https://bestgems.org/gems/kettle-dev
908
+ [👽dl-rank]: https://clickgems.clickhouse.com/dashboard/kettle-dev
909
+ [👽dl-ranki]: https://img.shields.io/gem/dt/kettle-dev.svg
910
+ [👽version]: https://clickgems.clickhouse.com/dashboard/kettle-dev
911
911
  [👽versioni]: https://img.shields.io/gem/v/kettle-dev.svg
912
912
  [🏀qlty-mnt]: https://qlty.sh/gh/kettle-dev/projects/kettle-dev
913
913
  [🏀qlty-mnti]: https://qlty.sh/gh/kettle-dev/projects/kettle-dev/maintainability.svg
@@ -1005,7 +1005,7 @@ Thanks for RTFM. ☺️
1005
1005
  [📌gitmoji]: https://gitmoji.dev
1006
1006
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
1007
1007
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
1008
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-5.752-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1008
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-5.787-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1009
1009
  [🔐security]: https://github.com/kettle-dev/kettle-dev/blob/main/SECURITY.md
1010
1010
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
1011
1011
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -5,6 +5,7 @@ require "json"
5
5
  require "net/http"
6
6
  require "uri"
7
7
  require "fileutils"
8
+ require "yaml"
8
9
  require "kettle/ndjson"
9
10
 
10
11
  module Kettle
@@ -915,11 +916,31 @@ module Kettle
915
916
  "K_SOUP_COV_MULTI_FORMATTERS" => "false",
916
917
  "K_SOUP_COV_OPEN_BIN" => ""
917
918
  )
919
+ env.merge!(changelog_coverage_workflow_thresholds)
918
920
  gemfile = File.join(@coverage_root, "Gemfile")
919
921
  env["BUNDLE_GEMFILE"] = gemfile if File.file?(gemfile)
920
922
  env
921
923
  end
922
924
 
925
+ # The changelog coverage run is the final local test gate before a
926
+ # release commit is pushed. Reuse the checked-in CI workflow thresholds
927
+ # rather than silently falling back to kettle-soup-cover defaults.
928
+ def changelog_coverage_workflow_thresholds
929
+ path = ["coverage.yml", "coverage.yaml"]
930
+ .map { |name| File.join(@coverage_root, ".github", "workflows", name) }
931
+ .find { |candidate| File.file?(candidate) }
932
+ return {} unless path
933
+
934
+ workflow = YAML.safe_load_file(path, permitted_classes: [], aliases: false)
935
+ workflow_env = (workflow.is_a?(Hash) && workflow["env"].is_a?(Hash)) ? workflow["env"] : {}
936
+ %w[K_SOUP_COV_MIN_LINE K_SOUP_COV_MIN_BRANCH].each_with_object({}) do |key, thresholds|
937
+ value = workflow_env[key]
938
+ thresholds[key] = value.to_s unless value.nil? || value.to_s.empty?
939
+ end
940
+ rescue Psych::Exception => error
941
+ raise "Unable to read coverage thresholds from #{path}: #{error.message}"
942
+ end
943
+
923
944
  def ensure_changelog_coverage_json!
924
945
  return if File.file?(@coverage_path)
925
946
 
@@ -4,6 +4,7 @@ require "optparse"
4
4
  require "English"
5
5
  require "json"
6
6
  require "fileutils"
7
+ require "open3"
7
8
  require "yaml"
8
9
  require "uri"
9
10
  require "net/http"
@@ -505,11 +506,49 @@ module Kettle
505
506
  end
506
507
 
507
508
  def image_url_skipped?(url)
509
+ return true if github_actions_badge_for_local_workflow?(url)
510
+
508
511
  @image_url_skip_patterns.any? do |pattern|
509
512
  File.fnmatch?(pattern, url, File::FNM_CASEFOLD)
510
513
  end
511
514
  end
512
515
 
516
+ # A template run can add a workflow and its README badge in the same
517
+ # commit. Before that commit is pushed, GitHub correctly returns 404 for
518
+ # the badge even though the local workflow will make it valid.
519
+ def github_actions_badge_for_local_workflow?(url)
520
+ uri = URI.parse(url)
521
+ return false unless uri.host == "github.com"
522
+
523
+ segments = uri.path.split("/").reject(&:empty?)
524
+ return false unless segments.length == 6
525
+ return false unless segments[2, 2] == %w[actions workflows] && segments.last == "badge.svg"
526
+ return false unless local_github_repository_slug == segments.first(2).join("/")
527
+
528
+ File.file?(File.join(".github", "workflows", segments[4]))
529
+ rescue URI::InvalidURIError
530
+ false
531
+ end
532
+
533
+ def local_github_repository_slug
534
+ return @local_github_repository_slug if defined?(@local_github_repository_slug)
535
+
536
+ remote_url, status = Open3.capture2("git", "config", "--get", "remote.origin.url")
537
+ @local_github_repository_slug = status.success? ? github_repository_slug(remote_url) : nil
538
+ end
539
+
540
+ def github_repository_slug(remote_url)
541
+ value = remote_url.to_s.strip
542
+ return value.split(":", 2).last.delete_suffix(".git") if value.start_with?("git@github.com:")
543
+
544
+ uri = URI.parse(value)
545
+ return unless uri.host == "github.com"
546
+
547
+ uri.path.delete_prefix("/").delete_suffix(".git")
548
+ rescue URI::InvalidURIError
549
+ nil
550
+ end
551
+
513
552
  def stringify_keys(value)
514
553
  case value
515
554
  when Hash
@@ -5,7 +5,7 @@ module Kettle
5
5
  # Version namespace for this gem.
6
6
  module Version
7
7
  # Current gem version.
8
- VERSION = "2.5.15"
8
+ VERSION = "2.5.17"
9
9
  end
10
10
  # Current gem version exposed at the traditional constant location.
11
11
  VERSION = Version::VERSION # Traditional Constant Location
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.5.15
4
+ version: 2.5.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -60,7 +60,7 @@ dependencies:
60
60
  version: '0.3'
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: 0.3.3
63
+ version: 0.3.5
64
64
  type: :runtime
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
@@ -70,7 +70,7 @@ dependencies:
70
70
  version: '0.3'
71
71
  - - ">="
72
72
  - !ruby/object:Gem::Version
73
- version: 0.3.3
73
+ version: 0.3.5
74
74
  - !ruby/object:Gem::Dependency
75
75
  name: kettle-ndjson
76
76
  requirement: !ruby/object:Gem::Requirement
@@ -80,7 +80,7 @@ dependencies:
80
80
  version: '0.1'
81
81
  - - ">="
82
82
  - !ruby/object:Gem::Version
83
- version: 0.1.9
83
+ version: 0.1.10
84
84
  type: :runtime
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
@@ -90,7 +90,7 @@ dependencies:
90
90
  version: '0.1'
91
91
  - - ">="
92
92
  - !ruby/object:Gem::Version
93
- version: 0.1.9
93
+ version: 0.1.10
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: kettle-rb
96
96
  requirement: !ruby/object:Gem::Requirement
@@ -100,7 +100,7 @@ dependencies:
100
100
  version: '0.1'
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 0.1.7
103
+ version: 0.1.8
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
@@ -110,7 +110,7 @@ dependencies:
110
110
  version: '0.1'
111
111
  - - ">="
112
112
  - !ruby/object:Gem::Version
113
- version: 0.1.7
113
+ version: 0.1.8
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: kettle-test
116
116
  requirement: !ruby/object:Gem::Requirement
@@ -120,7 +120,7 @@ dependencies:
120
120
  version: '2.0'
121
121
  - - ">="
122
122
  - !ruby/object:Gem::Version
123
- version: 2.0.12
123
+ version: 2.0.18
124
124
  type: :runtime
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
@@ -130,7 +130,7 @@ dependencies:
130
130
  version: '2.0'
131
131
  - - ">="
132
132
  - !ruby/object:Gem::Version
133
- version: 2.0.12
133
+ version: 2.0.18
134
134
  - !ruby/object:Gem::Dependency
135
135
  name: ruby-progressbar
136
136
  requirement: !ruby/object:Gem::Requirement
@@ -401,10 +401,10 @@ licenses:
401
401
  - AGPL-3.0-only
402
402
  metadata:
403
403
  homepage_uri: https://kettle-dev.galtzo.com
404
- source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.5.15
405
- changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.5.15/CHANGELOG.md
404
+ source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.5.17
405
+ changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.5.17/CHANGELOG.md
406
406
  bug_tracker_uri: https://github.com/kettle-dev/kettle-dev/issues
407
- documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.5.15
407
+ documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.5.17
408
408
  funding_uri: https://github.com/sponsors/pboling
409
409
  wiki_uri: https://github.com/kettle-dev/kettle-dev/wiki
410
410
  news_uri: https://www.railsbling.com/tags/kettle-dev
metadata.gz.sig CHANGED
Binary file