kettle-dev 1.0.12 → 1.0.14
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/.envrc +1 -1
- data/.github/workflows/coverage.yml +3 -3
- data/CHANGELOG.md +27 -1
- data/README.md +14 -15
- data/Rakefile.example +0 -4
- data/gemfiles/modular/optional.gemfile +5 -1
- data/lib/kettle/dev/release_cli.rb +131 -0
- data/lib/kettle/dev/version.rb +1 -1
- data/lib/kettle-dev.rb +0 -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: 61d7bcf42ac9f8dd354de12af2f45c4a000bf0fb038c17534fdb521fd9799cff
|
4
|
+
data.tar.gz: be95960f8520e6a001376909ecd3d27d9cfc56506a46d770119f11b951f0039f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60ddf9f6624d7bcd57a5b702fd182b8766ba133937c21c93da094738089b832a6b86ceea0528d1c116e42c701c8e2f5b56ba40312fcdd348a0c6bf0a984bbda1
|
7
|
+
data.tar.gz: 98e13824721dc2b7aa68e01cea45f6289b9c6d980606613e013fb6f238317a299b9c10cc63d4a5a65fdd312a2d9221f5463d2ce3d1a3f43f13ef417e42d0a6d9
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/.envrc
CHANGED
@@ -21,7 +21,7 @@ export K_SOUP_COV_DO=true # Means you want code coverage
|
|
21
21
|
export K_SOUP_COV_COMMAND_NAME="Test Coverage"
|
22
22
|
# Available formats are html, xml, rcov, lcov, json, tty
|
23
23
|
export K_SOUP_COV_FORMATTERS="html,xml,rcov,lcov,json,tty"
|
24
|
-
export K_SOUP_COV_MIN_BRANCH=
|
24
|
+
export K_SOUP_COV_MIN_BRANCH=78 # Means you want to enforce X% branch coverage
|
25
25
|
export K_SOUP_COV_MIN_LINE=97 # Means you want to enforce X% line coverage
|
26
26
|
export K_SOUP_COV_MIN_HARD=true # Means you want the build to fail if the coverage thresholds are not met
|
27
27
|
export K_SOUP_COV_MULTI_FORMATTERS=true
|
@@ -7,8 +7,8 @@ permissions:
|
|
7
7
|
|
8
8
|
env:
|
9
9
|
# Lower than local, which is at 100/100, because rubocop-lts isn't installed in the coverage workflow
|
10
|
-
K_SOUP_COV_MIN_BRANCH:
|
11
|
-
K_SOUP_COV_MIN_LINE:
|
10
|
+
K_SOUP_COV_MIN_BRANCH: 73
|
11
|
+
K_SOUP_COV_MIN_LINE: 93
|
12
12
|
K_SOUP_COV_MIN_HARD: true
|
13
13
|
K_SOUP_COV_FORMATTERS: "xml,rcov,lcov,tty"
|
14
14
|
K_SOUP_COV_DO: true
|
@@ -116,7 +116,7 @@ jobs:
|
|
116
116
|
hide_complexity: true
|
117
117
|
indicators: true
|
118
118
|
output: both
|
119
|
-
thresholds: '
|
119
|
+
thresholds: '93 73'
|
120
120
|
continue-on-error: ${{ matrix.experimental != 'false' }}
|
121
121
|
|
122
122
|
- name: Add Coverage PR Comment
|
data/CHANGELOG.md
CHANGED
@@ -24,6 +24,28 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
24
24
|
### Fixed
|
25
25
|
### Security
|
26
26
|
|
27
|
+
## [1.0.14] - 2025-08-28
|
28
|
+
- TAG: [v1.0.14][1.0.14t]
|
29
|
+
- COVERAGE: 97.70% -- 2125/2175 lines in 20 files
|
30
|
+
- BRANCH COVERAGE: 78.77% -- 842/1069 branches in 20 files
|
31
|
+
- 76.03% documented
|
32
|
+
### Added
|
33
|
+
- kettle-release: Push tags to additional remotes after release
|
34
|
+
### Changed
|
35
|
+
- Improve .gitlab-ci.yml pipeline
|
36
|
+
### Fixed
|
37
|
+
- Removed README badges for unsupported old Ruby versions
|
38
|
+
- Minor inconsistencies in template files
|
39
|
+
- git added as a dependency to optional.gemfile instead of the example template
|
40
|
+
|
41
|
+
## [1.0.13] - 2025-08-28
|
42
|
+
- TAG: [v1.0.13][1.0.13t]
|
43
|
+
- COVERAGE: 41.94% -- 65/155 lines in 6 files
|
44
|
+
- BRANCH COVERAGE: 1.92% -- 1/52 branches in 6 files
|
45
|
+
- 76.03% documented
|
46
|
+
### Added
|
47
|
+
- kettle-release: Create GitHub release from tag & changelog entry
|
48
|
+
|
27
49
|
## [1.0.12] - 2025-08-28
|
28
50
|
- TAG: [v1.0.12][1.0.12t]
|
29
51
|
- COVERAGE: 97.80% -- 1957/2001 lines in 19 files
|
@@ -214,7 +236,7 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
214
236
|
- Selecting will run the selected workflow via `act`
|
215
237
|
- This may move to its own gem in the future.
|
216
238
|
|
217
|
-
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.0.
|
239
|
+
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.0.14...HEAD
|
218
240
|
[1.0.0]: https://github.com/kettle-rb/kettle-dev/compare/a427c302df09cfe4253a7c8d400333f9a4c1a208...v1.0.0
|
219
241
|
[1.0.0t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.0.0
|
220
242
|
[1.0.1]: https://gitlab.com/kettle-rb/kettle-dev/-/compare/v1.0.0...v1.0.1
|
@@ -241,3 +263,7 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
241
263
|
[1.0.11t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.0.11
|
242
264
|
[1.0.12]: https://github.com/kettle-rb/kettle-dev/compare/v1.0.11...v1.0.12
|
243
265
|
[1.0.12t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.0.12
|
266
|
+
[1.0.13]: https://github.com/kettle-rb/kettle-dev/compare/v1.0.12...v1.0.13
|
267
|
+
[1.0.13t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.0.13
|
268
|
+
[1.0.14]: https://github.com/kettle-rb/kettle-dev/compare/v1.0.13...v1.0.14
|
269
|
+
[1.0.14t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.0.14
|
data/README.md
CHANGED
@@ -85,20 +85,19 @@ Alternatively:
|
|
85
85
|
|
86
86
|
</details>
|
87
87
|
|
88
|
-
| Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace]
|
89
|
-
|
90
|
-
| Works with JRuby | ![JRuby 9.1 Compat][💎jruby-9.1i] ![JRuby 9.2 Compat][💎jruby-9.2i] ![JRuby 9.3 Compat][💎jruby-9.3i] <br/> [![JRuby 9.4 Compat][💎jruby-9.4i]][🚎10-j-wf] [![JRuby 10.0 Compat][💎jruby-c-i]][🚎11-c-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]
|
91
|
-
| Works with Truffle Ruby | ![Truffle Ruby 22.3 Compat][💎truby-22.3i] ![Truffle Ruby 23.0 Compat][💎truby-23.0i] <br/> [![Truffle Ruby 23.1 Compat][💎truby-23.1i]][🚎9-t-wf] [![Truffle Ruby 24.1 Compat][💎truby-c-i]][🚎11-c-wf]
|
92
|
-
| Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎4-lg-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎6-s-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎6-s-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎6-s-wf] [![Ruby 3.4 Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]
|
93
|
-
| Works with MRI Ruby 2 |
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
| `...` 💖 | [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![More About Me][💖💁🏼♂️aboutme-img]][💖💁🏼♂️aboutme] [🧊][💖🧊berg] [🐙][💖🐙hub] [🛖][💖🛖hut] [🧪][💖🧪lab] |
|
88
|
+
| Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
|
89
|
+
|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
90
|
+
| Works with JRuby | ![JRuby 9.1 Compat][💎jruby-9.1i] ![JRuby 9.2 Compat][💎jruby-9.2i] ![JRuby 9.3 Compat][💎jruby-9.3i] <br/> [![JRuby 9.4 Compat][💎jruby-9.4i]][🚎10-j-wf] [![JRuby 10.0 Compat][💎jruby-c-i]][🚎11-c-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf] |
|
91
|
+
| Works with Truffle Ruby | ![Truffle Ruby 22.3 Compat][💎truby-22.3i] ![Truffle Ruby 23.0 Compat][💎truby-23.0i] <br/> [![Truffle Ruby 23.1 Compat][💎truby-23.1i]][🚎9-t-wf] [![Truffle Ruby 24.1 Compat][💎truby-c-i]][🚎11-c-wf] |
|
92
|
+
| Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎4-lg-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎6-s-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎6-s-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎6-s-wf] [![Ruby 3.4 Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf] |
|
93
|
+
| Works with MRI Ruby 2 | [![Ruby 2.3 Compat][💎ruby-2.3i]][🚎1-an-wf] [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎1-an-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎1-an-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎7-us-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎7-us-wf] |
|
94
|
+
| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
|
95
|
+
| Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![Wiki][📜wiki-img]][📜wiki] |
|
96
|
+
| Compliance | [![License: MIT][📄license-img]][📄license-ref] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
|
97
|
+
| Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] |
|
98
|
+
| Support | [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite] [![Get help from me on Upwork][👨🏼🏫expsup-upwork-img]][👨🏼🏫expsup-upwork] [![Get help from me on Codementor][👨🏼🏫expsup-codementor-img]][👨🏼🏫expsup-codementor] |
|
99
|
+
| Maintainer 🎖️ | [![Follow Me on LinkedIn][💖🖇linkedin-img]][💖🖇linkedin] [![Follow Me on Ruby.Social][💖🐘ruby-mast-img]][💖🐘ruby-mast] [![Follow Me on Bluesky][💖🦋bluesky-img]][💖🦋bluesky] [![Contact Maintainer][🚂maint-contact-img]][🚂maint-contact] [![My technical writing][💖💁🏼♂️devto-img]][💖💁🏼♂️devto] |
|
100
|
+
| `...` 💖 | [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![More About Me][💖💁🏼♂️aboutme-img]][💖💁🏼♂️aboutme] [🧊][💖🧊berg] [🐙][💖🐙hub] [🛖][💖🛖hut] [🧪][💖🧪lab] |
|
102
101
|
|
103
102
|
## ✨ Installation
|
104
103
|
|
@@ -697,7 +696,7 @@ Thanks for RTFM. ☺️
|
|
697
696
|
[📌gitmoji]:https://gitmoji.dev
|
698
697
|
[📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20😜%20😍-34495e.svg?style=flat-square
|
699
698
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
700
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-2.
|
699
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-2.175-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
701
700
|
[🔐security]: SECURITY.md
|
702
701
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
703
702
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
data/Rakefile.example
CHANGED
@@ -58,14 +58,10 @@ task :default do
|
|
58
58
|
puts "Default task complete."
|
59
59
|
end
|
60
60
|
|
61
|
-
Kettle::Dev.install_tasks
|
62
|
-
|
63
61
|
### RELEASE TASKS
|
64
62
|
# Setup stone_checksums
|
65
63
|
begin
|
66
64
|
require "stone_checksums"
|
67
|
-
|
68
|
-
GemChecksums.install_tasks
|
69
65
|
rescue LoadError
|
70
66
|
desc("(stub) build:generate_checksums is unavailable")
|
71
67
|
task("build:generate_checksums") do
|
@@ -1 +1,5 @@
|
|
1
|
-
# Optional dependencies are not
|
1
|
+
# Optional dependencies are not depended on directly, but may be used if present.
|
2
|
+
# git gem is not a direct dependency for two reasons:
|
3
|
+
# 1. it is incompatible with Truffleruby v23
|
4
|
+
# 2. it depends on activesupport, which is too heavy
|
5
|
+
gem "git", ">= 1.19.1" # ruby >= 2.3
|
@@ -202,6 +202,15 @@ module Kettle
|
|
202
202
|
validate_checksums!(version, stage: "after release")
|
203
203
|
end
|
204
204
|
|
205
|
+
# 17. create GitHub release (optional)
|
206
|
+
if @start_step <= 17
|
207
|
+
version ||= detect_version
|
208
|
+
maybe_create_github_release!(version)
|
209
|
+
end
|
210
|
+
|
211
|
+
# 18. push tags to remotes (new final step)
|
212
|
+
push_tags! if @start_step <= 18
|
213
|
+
|
205
214
|
puts "\nRelease complete. Don't forget to push the checksums commit if needed."
|
206
215
|
end
|
207
216
|
|
@@ -403,6 +412,27 @@ module Kettle
|
|
403
412
|
end
|
404
413
|
end
|
405
414
|
|
415
|
+
def push_tags!
|
416
|
+
# After release, push tags to remotes according to policy:
|
417
|
+
# 1) If a remote named "all" exists, push tags only to it.
|
418
|
+
# 2) Otherwise, if other remotes exist, push tags to each of them.
|
419
|
+
# 3) If no remotes are configured, push tags using default remote.
|
420
|
+
if has_remote?("all")
|
421
|
+
run_cmd!("git push all --tags")
|
422
|
+
return
|
423
|
+
end
|
424
|
+
|
425
|
+
remotes = list_remotes
|
426
|
+
remotes -= ["all"] if remotes
|
427
|
+
if remotes.nil? || remotes.empty?
|
428
|
+
run_cmd!("git push --tags")
|
429
|
+
else
|
430
|
+
remotes.each do |remote|
|
431
|
+
run_cmd!("git push #{Shellwords.escape(remote)} --tags")
|
432
|
+
end
|
433
|
+
end
|
434
|
+
end
|
435
|
+
|
406
436
|
def detect_trunk_branch
|
407
437
|
out, ok = git_output(["remote", "show", "origin"])
|
408
438
|
abort("Failed to get origin remote info.") unless ok
|
@@ -644,6 +674,107 @@ module Kettle
|
|
644
674
|
Digest::SHA256.file(path).hexdigest
|
645
675
|
end
|
646
676
|
end
|
677
|
+
|
678
|
+
# If GITHUB_TOKEN is present, create a GitHub release for the given version tag.
|
679
|
+
# Title: v<version>
|
680
|
+
# Body: the CHANGELOG section for this version, followed by the two link references for this version.
|
681
|
+
def maybe_create_github_release!(version)
|
682
|
+
token = ENV.fetch("GITHUB_TOKEN", "").to_s
|
683
|
+
return if token.strip.empty?
|
684
|
+
|
685
|
+
gh_remote = preferred_github_remote
|
686
|
+
url = remote_url(gh_remote || "origin")
|
687
|
+
owner, repo = parse_github_owner_repo(url)
|
688
|
+
unless owner && repo
|
689
|
+
warn("GITHUB_TOKEN present but could not determine GitHub owner/repo from remotes. Skipping release creation.")
|
690
|
+
return
|
691
|
+
end
|
692
|
+
|
693
|
+
section, compare_ref, tag_ref = extract_changelog_for_version(version)
|
694
|
+
unless section
|
695
|
+
warn("CHANGELOG.md does not contain a section for #{version}. Skipping GitHub release creation.")
|
696
|
+
return
|
697
|
+
end
|
698
|
+
|
699
|
+
body = +""
|
700
|
+
body << section.rstrip
|
701
|
+
body << "\n\n"
|
702
|
+
body << compare_ref if compare_ref
|
703
|
+
body << tag_ref if tag_ref
|
704
|
+
|
705
|
+
tag = "v#{version}"
|
706
|
+
puts "Creating GitHub release #{owner}/#{repo} #{tag}..."
|
707
|
+
ok, msg = github_create_release(owner: owner, repo: repo, token: token, tag: tag, title: tag, body: body)
|
708
|
+
if ok
|
709
|
+
puts "GitHub release created for #{tag}."
|
710
|
+
else
|
711
|
+
warn("GitHub release creation skipped/failed: #{msg}")
|
712
|
+
end
|
713
|
+
end
|
714
|
+
|
715
|
+
# Returns [section_text, compare_ref_line, tag_ref_line]
|
716
|
+
def extract_changelog_for_version(version)
|
717
|
+
path = File.join(@root, "CHANGELOG.md")
|
718
|
+
return [nil, nil, nil] unless File.file?(path)
|
719
|
+
content = File.read(path)
|
720
|
+
lines = content.lines
|
721
|
+
|
722
|
+
# Find section start
|
723
|
+
start_idx = lines.index { |l| l.start_with?("## [#{version}]") }
|
724
|
+
return [nil, nil, nil] unless start_idx
|
725
|
+
i = start_idx + 1
|
726
|
+
# Find next section heading or EOF
|
727
|
+
while i < lines.length && !lines[i].start_with?("## [")
|
728
|
+
i += 1
|
729
|
+
end
|
730
|
+
section = lines[start_idx...(i)].join
|
731
|
+
|
732
|
+
# Find link refs (anywhere after Unreleased or at end; simple global scan acceptable)
|
733
|
+
compare_ref = lines.find { |l| l.start_with?("[#{version}]: ") }
|
734
|
+
tag_ref = lines.find { |l| l.start_with?("[#{version}t]: ") }
|
735
|
+
# Ensure newline termination
|
736
|
+
compare_ref = compare_ref&.end_with?("\n") ? compare_ref : (compare_ref && compare_ref + "\n")
|
737
|
+
tag_ref = tag_ref&.end_with?("\n") ? tag_ref : (tag_ref && tag_ref + "\n")
|
738
|
+
[section, compare_ref, tag_ref]
|
739
|
+
rescue StandardError => e
|
740
|
+
warn("Failed to parse CHANGELOG.md: #{e.class}: #{e.message}")
|
741
|
+
[nil, nil, nil]
|
742
|
+
end
|
743
|
+
|
744
|
+
# POST to GitHub Releases API
|
745
|
+
# Returns [ok(Boolean), message(String)]
|
746
|
+
def github_create_release(owner:, repo:, token:, tag:, title:, body:)
|
747
|
+
uri = URI("https://api.github.com/repos/#{owner}/#{repo}/releases")
|
748
|
+
req = Net::HTTP::Post.new(uri)
|
749
|
+
req["Accept"] = "application/vnd.github+json"
|
750
|
+
req["Authorization"] = "token #{token}"
|
751
|
+
req["User-Agent"] = "kettle-dev-release-cli"
|
752
|
+
req.body = JSON.dump({
|
753
|
+
tag_name: tag,
|
754
|
+
name: title,
|
755
|
+
body: body,
|
756
|
+
draft: false,
|
757
|
+
prerelease: false,
|
758
|
+
})
|
759
|
+
|
760
|
+
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
|
761
|
+
http.request(req)
|
762
|
+
end
|
763
|
+
|
764
|
+
case res
|
765
|
+
when Net::HTTPSuccess, Net::HTTPCreated
|
766
|
+
[true, "created"]
|
767
|
+
else
|
768
|
+
# If release already exists, treat as non-fatal
|
769
|
+
if res.code.to_s == "422" && res.body.to_s.include?("already_exists")
|
770
|
+
[true, "already exists"]
|
771
|
+
else
|
772
|
+
[false, "HTTP #{res.code}: #{res.body}"]
|
773
|
+
end
|
774
|
+
end
|
775
|
+
rescue StandardError => e
|
776
|
+
[false, "#{e.class}: #{e.message}"]
|
777
|
+
end
|
647
778
|
end
|
648
779
|
end
|
649
780
|
end
|
data/lib/kettle/dev/version.rb
CHANGED
data/lib/kettle-dev.rb
CHANGED
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: 1.0.
|
4
|
+
version: 1.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter H. Boling
|
@@ -339,10 +339,10 @@ licenses:
|
|
339
339
|
- MIT
|
340
340
|
metadata:
|
341
341
|
homepage_uri: https://kettle-dev.galtzo.com/
|
342
|
-
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.0.
|
343
|
-
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.0.
|
342
|
+
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.0.14
|
343
|
+
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.0.14/CHANGELOG.md
|
344
344
|
bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
|
345
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.0.
|
345
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.0.14
|
346
346
|
funding_uri: https://github.com/sponsors/pboling
|
347
347
|
wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
|
348
348
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
Binary file
|