geet 0.29.0 → 0.30.1
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
- data/geet.gemspec +2 -2
- data/lib/geet/commandline/configuration.rb +1 -0
- data/lib/geet/services/merge_pr.rb +10 -6
- data/lib/geet/version.rb +1 -1
- data/spec/unit/services/merge_pr_spec.rb +21 -0
- metadata +6 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 17e1a6a9c31e72000fc09feb1cec44ed731bf86f645133ba90f21448bd7a73eb
|
|
4
|
+
data.tar.gz: 46ce4484514700a897b8558062f7bb2729b1863a2135fb05007c5854fbed37b9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 72fe78de09b97764add24958707a3adb96e0cbdebfc52bf8f4234a625a6763c740ca39d3045e40e583f820121b784fdf25d38c97ae6993955a89e3876be87846
|
|
7
|
+
data.tar.gz: 7c84aab8d706442305bc4f12d629040a9345b253efdaa6ed44d64591056664d2780b739e28f2dac299f5a0d2d69dcc4fe6bc26744f657d967572ddc474f438b1
|
data/geet.gemspec
CHANGED
|
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
|
8
8
|
s.platform = Gem::Platform::RUBY
|
|
9
9
|
s.required_ruby_version = ">= 3.2.0"
|
|
10
10
|
s.authors = ["Saverio Miroddi"]
|
|
11
|
-
s.date = "2026-
|
|
11
|
+
s.date = "2026-07-07"
|
|
12
12
|
s.email = ["saverio.pub2@gmail.com"]
|
|
13
13
|
s.homepage = "https://github.com/saveriomiroddi/geet"
|
|
14
14
|
s.summary = "Commandline interface for performing SCM host operations, eg. create a PR on GitHub"
|
|
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
|
|
|
17
17
|
|
|
18
18
|
s.add_runtime_dependency "base64", "~> 0.3.0"
|
|
19
19
|
s.add_runtime_dependency "ostruct", "~> 0.6.3"
|
|
20
|
-
s.add_runtime_dependency "simple_scripting", "~> 0.14
|
|
20
|
+
s.add_runtime_dependency "simple_scripting", "~> 0.14"
|
|
21
21
|
s.add_runtime_dependency "sorbet-runtime", "= 0.6.12883"
|
|
22
22
|
s.add_runtime_dependency "tty-prompt", "~> 0.23.1"
|
|
23
23
|
s.add_runtime_dependency "zeitwerk", "~> 2.7"
|
|
@@ -96,6 +96,7 @@ module Geet
|
|
|
96
96
|
# rubocop:disable Style/MutableConstant
|
|
97
97
|
PR_MERGE_OPTIONS = T.let([
|
|
98
98
|
["-d", "--delete-branch", "Delete the branch after merging"],
|
|
99
|
+
["-r", "--rebase", "Rebase merge"],
|
|
99
100
|
["-s", "--squash", "Squash merge"],
|
|
100
101
|
["-u", "--upstream", "List on the upstream repository"],
|
|
101
102
|
long_help: "Merge the PR for the current branch",
|
|
@@ -29,11 +29,15 @@ module Geet
|
|
|
29
29
|
sig {
|
|
30
30
|
params(
|
|
31
31
|
delete_branch: T::Boolean,
|
|
32
|
+
rebase: T::Boolean,
|
|
32
33
|
squash: T::Boolean
|
|
33
34
|
)
|
|
34
35
|
.returns(Github::PR)
|
|
35
36
|
}
|
|
36
|
-
def execute(delete_branch: false, squash: false)
|
|
37
|
+
def execute(delete_branch: false, rebase: false, squash: false)
|
|
38
|
+
raise "Can't specify both --rebase and --squash" if rebase && squash
|
|
39
|
+
|
|
40
|
+
merge_method = "rebase" if rebase
|
|
37
41
|
merge_method = "squash" if squash
|
|
38
42
|
|
|
39
43
|
@git_client.fetch
|
|
@@ -62,12 +66,12 @@ module Geet
|
|
|
62
66
|
# currently, it's not important.
|
|
63
67
|
#
|
|
64
68
|
checkout_branch(main_branch)
|
|
65
|
-
|
|
69
|
+
rebase_main
|
|
66
70
|
|
|
67
|
-
# When squashing, we need to force delete, since Git doesn't recognize that the
|
|
68
|
-
# been merged.
|
|
71
|
+
# When squashing or rebasing, we need to force delete, since Git doesn't recognize that the
|
|
72
|
+
# branch has been merged (the commits on the main branch have different SHAs).
|
|
69
73
|
#
|
|
70
|
-
delete_local_branch(pr_branch, force: squash)
|
|
74
|
+
delete_local_branch(pr_branch, force: squash || rebase)
|
|
71
75
|
end
|
|
72
76
|
|
|
73
77
|
pr
|
|
@@ -112,7 +116,7 @@ module Geet
|
|
|
112
116
|
end
|
|
113
117
|
|
|
114
118
|
sig { void }
|
|
115
|
-
def
|
|
119
|
+
def rebase_main
|
|
116
120
|
@out.puts "Rebasing..."
|
|
117
121
|
|
|
118
122
|
@git_client.rebase
|
data/lib/geet/version.rb
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# typed: false
|
|
3
|
+
|
|
4
|
+
require "spec_helper"
|
|
5
|
+
|
|
6
|
+
require_relative "../../../lib/geet/git/repository"
|
|
7
|
+
require_relative "../../../lib/geet/services/merge_pr"
|
|
8
|
+
|
|
9
|
+
describe Geet::Services::MergePr do
|
|
10
|
+
describe "#execute" do
|
|
11
|
+
let(:repository) { instance_double(Geet::Git::Repository) }
|
|
12
|
+
let(:git_client) { instance_double(Geet::Utils::GitClient) }
|
|
13
|
+
|
|
14
|
+
subject { described_class.new(repository, out: StringIO.new, git_client: git_client) }
|
|
15
|
+
|
|
16
|
+
it "raises when both --rebase and --squash are passed" do
|
|
17
|
+
expect { subject.execute(rebase: true, squash: true) }
|
|
18
|
+
.to raise_error("Can't specify both --rebase and --squash")
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: geet
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.30.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Saverio Miroddi
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-
|
|
10
|
+
date: 2026-07-07 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: base64
|
|
@@ -43,14 +43,14 @@ dependencies:
|
|
|
43
43
|
requirements:
|
|
44
44
|
- - "~>"
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: 0.14
|
|
46
|
+
version: '0.14'
|
|
47
47
|
type: :runtime
|
|
48
48
|
prerelease: false
|
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: 0.14
|
|
53
|
+
version: '0.14'
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
55
55
|
name: sorbet-runtime
|
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -251,6 +251,7 @@ files:
|
|
|
251
251
|
- spec/integration/open_repo_spec.rb
|
|
252
252
|
- spec/spec_helper.rb
|
|
253
253
|
- spec/unit/github/pr_spec.rb
|
|
254
|
+
- spec/unit/services/merge_pr_spec.rb
|
|
254
255
|
- spec/vcr_cassettes/create_gist_private.yml
|
|
255
256
|
- spec/vcr_cassettes/create_gist_public.yml
|
|
256
257
|
- spec/vcr_cassettes/create_issue.yml
|
|
@@ -296,7 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
296
297
|
- !ruby/object:Gem::Version
|
|
297
298
|
version: '0'
|
|
298
299
|
requirements: []
|
|
299
|
-
rubygems_version: 4.0.
|
|
300
|
+
rubygems_version: 4.0.10
|
|
300
301
|
specification_version: 4
|
|
301
302
|
summary: Commandline interface for performing SCM host operations, eg. create a PR
|
|
302
303
|
on GitHub
|