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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +17 -1
- data/README.md +1 -1
- data/lib/kettle/family/command_runner.rb +14 -1
- data/lib/kettle/family/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +4 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1ffac198401618fcc4e988b09d48941a187bf809f3b0baf7b6261247fa81d8e3
|
|
4
|
+
data.tar.gz: 1a139626c8c632ceca9f738678593b0103810f6bf884a9a98a29d1ab8c197edf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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.
|
|
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
|
|
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
|
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.
|
|
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.
|
|
314
|
-
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v0.1.
|
|
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.
|
|
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
|