kettle-family 0.1.18 → 0.1.19

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: 10fbba264a541a5e75a232b97eaeb6345ca8d39e4890cfbdd94b8e6e8e603b9c
4
- data.tar.gz: '09e74048d1d9a5bb5bb0bdcad08d501f3aee4d9d0a35902b3e6eeabbb9bd61c0'
3
+ metadata.gz: 1ffac198401618fcc4e988b09d48941a187bf809f3b0baf7b6261247fa81d8e3
4
+ data.tar.gz: 1a139626c8c632ceca9f738678593b0103810f6bf884a9a98a29d1ab8c197edf
5
5
  SHA512:
6
- metadata.gz: c531f29f32761826c0898234853805f0af313a151232fde19d851e812a8255fd9543515e4142ded8bc2e50146a3887fe950ed1c3de77432f688be76f5809fa2a
7
- data.tar.gz: de6ea714b9b25f9339b5748b76de0d035b35a32d4fd33f9fd643ab518f0f4e9979d0be9d9267b56470f4fd0ca9abf99ea6df99de67e11468eb010085ba0e6ff5
6
+ metadata.gz: cd5ba9086f00e699c138787ffc5c5e8140616238e18713f79a58ae8e215ff4adb2630a356e42476c9314f2324d7027e7f489169882f0359694dc8e7379251687
7
+ data.tar.gz: 28ddd6e49f16293a5469dcceb271238077fcb140a85542ae6288f5d5a6072e905677e733a25d6388f3b3aff4ba2bc4ac14ae34a121fe8435972ec9ee98cb18e5
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,20 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [0.1.19] - 2026-06-25
34
+
35
+ - TAG: [v0.1.19][0.1.19t]
36
+ - COVERAGE: 94.74% -- 1531/1616 lines in 21 files
37
+ - BRANCH COVERAGE: 76.20% -- 538/706 branches in 21 files
38
+ - 39.63% documented
39
+
40
+ ### Fixed
41
+
42
+ - Interactive release commands now leave RubyGems MFA/OTP prompts for the user
43
+ instead of sending cached signing passphrases to the `Code:` prompt.
44
+ - Interactive command output is now normalized to UTF-8 before report rendering,
45
+ avoiding encoding crashes when a release command fails after PTY output.
46
+
33
47
  ## [0.1.18] - 2026-06-25
34
48
 
35
49
  - TAG: [v0.1.18][0.1.18t]
@@ -337,7 +351,9 @@ Please file a bug if you notice a violation of semantic versioning.
337
351
  - Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
338
352
  - Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
339
353
 
340
- [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v0.1.18...HEAD
354
+ [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v0.1.19...HEAD
355
+ [0.1.19]: https://github.com/kettle-dev/kettle-family/compare/v0.1.18...v0.1.19
356
+ [0.1.19t]: https://github.com/kettle-dev/kettle-family/releases/tag/v0.1.19
341
357
  [0.1.18]: https://github.com/kettle-dev/kettle-family/compare/v0.1.17...v0.1.18
342
358
  [0.1.18t]: https://github.com/kettle-dev/kettle-family/releases/tag/v0.1.18
343
359
  [0.1.17]: https://github.com/kettle-dev/kettle-family/compare/v0.1.11...v0.1.17
data/README.md CHANGED
@@ -571,7 +571,7 @@ Thanks for RTFM. ☺️
571
571
  [📌gitmoji]: https://gitmoji.dev
572
572
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
573
573
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
574
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-1.609-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
574
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-1.616-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
575
575
  [🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
576
576
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
577
577
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -24,6 +24,8 @@ module Kettle
24
24
  Open3.capture3(process_env, *argv, chdir: member.root)
25
25
  end
26
26
  end
27
+ stdout = normalize_output(stdout)
28
+ stderr = normalize_output(stderr)
27
29
  elapsed = Process.clock_gettime(Process::CLOCK_MONOTONIC) - started
28
30
  CommandResult.new(
29
31
  member_name: member.name,
@@ -131,6 +133,8 @@ module Kettle
131
133
  end
132
134
 
133
135
  def handle_interactive_prompt(input, chunk)
136
+ return if otp_prompt?(chunk)
137
+
134
138
  if accept_confirmation_prompt?(chunk)
135
139
  write_accept_response(input) if accept
136
140
  return
@@ -148,8 +152,17 @@ module Kettle
148
152
  chunk.match?(/\[[Yy]\/[Nn]\]\s*:?/)
149
153
  end
150
154
 
155
+ def otp_prompt?(chunk)
156
+ chunk.match?(/(?:multi-factor authentication|OTP code|one-time password|\bCode:\s*)/i)
157
+ end
158
+
151
159
  def signing_password_prompt?(chunk)
152
- chunk.match?(/pass(?:\s|-)?phrase|PEM password|private key password/i)
160
+ chunk.match?(/(?:enter\s+)?(?:PEM\s+)?pass(?:\s|-)?phrase\s*(?:for\s+[^:]+)?[:?]\s*\z/i) ||
161
+ chunk.match?(/(?:PEM|private key) password\s*[:?]\s*\z/i)
162
+ end
163
+
164
+ def normalize_output(output)
165
+ output.to_s.encode("UTF-8", invalid: :replace, undef: :replace, replace: "")
153
166
  end
154
167
 
155
168
  def with_unbundled_environment
@@ -3,7 +3,7 @@
3
3
  module Kettle
4
4
  module Family
5
5
  module Version
6
- VERSION = "0.1.18"
6
+ VERSION = "0.1.19"
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-family
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.18
4
+ version: 0.1.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -310,10 +310,10 @@ licenses:
310
310
  - AGPL-3.0-only
311
311
  metadata:
312
312
  homepage_uri: https://kettle-family.galtzo.com
313
- source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v0.1.18
314
- changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v0.1.18/CHANGELOG.md
313
+ source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v0.1.19
314
+ changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v0.1.19/CHANGELOG.md
315
315
  bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
316
- documentation_uri: https://www.rubydoc.info/gems/kettle-family/0.1.18
316
+ documentation_uri: https://www.rubydoc.info/gems/kettle-family/0.1.19
317
317
  funding_uri: https://github.com/sponsors/pboling
318
318
  wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
319
319
  news_uri: https://www.railsbling.com/tags/kettle-family
metadata.gz.sig CHANGED
Binary file