git_helper 3.0.0 → 3.2.0
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/Guardfile +2 -2
- data/README.md +31 -16
- data/Rakefile +1 -1
- data/bin/git-helper +12 -16
- data/lib/git_helper.rb +6 -1
- data/lib/git_helper/git_config_reader.rb +0 -2
- data/lib/git_helper/gitlab_client.rb +0 -2
- data/lib/git_helper/highline_cli.rb +0 -2
- data/lib/git_helper/local_code.rb +17 -13
- data/lib/git_helper/merge_request.rb +1 -0
- data/lib/git_helper/octokit_client.rb +0 -2
- data/lib/git_helper/pull_request.rb +1 -0
- data/lib/git_helper/version.rb +1 -1
- data/plugins.zip +0 -0
- data/spec/git_helper/change_remote_spec.rb +18 -15
- data/spec/git_helper/code_request_spec.rb +20 -17
- data/spec/git_helper/git_config_reader_spec.rb +9 -7
- data/spec/git_helper/highline_cli_spec.rb +38 -36
- data/spec/git_helper/local_code_spec.rb +63 -26
- data/spec/git_helper/merge_request_spec.rb +49 -32
- data/spec/git_helper/new_branch_spec.rb +1 -0
- data/spec/git_helper/pull_request_spec.rb +39 -31
- data/spec/spec_helper.rb +2 -0
- metadata +27 -14
- data/Gemfile.lock +0 -101
@@ -11,6 +11,7 @@ describe GitHelper::NewBranch do
|
|
11
11
|
before do
|
12
12
|
allow(GitHelper::LocalCode).to receive(:new).and_return(local_code)
|
13
13
|
allow(GitHelper::HighlineCli).to receive(:new).and_return(cli)
|
14
|
+
allow(subject).to receive(:puts)
|
14
15
|
end
|
15
16
|
|
16
17
|
it 'should call GitHelper::LocalCode' do
|
@@ -2,14 +2,15 @@ require 'spec_helper'
|
|
2
2
|
require 'git_helper'
|
3
3
|
|
4
4
|
describe GitHelper::GitHubPullRequest do
|
5
|
-
let(:local_code) { double(:local_code, read_template:
|
5
|
+
let(:local_code) { double(:local_code, read_template: Faker::Lorem.word) }
|
6
6
|
let(:highline_cli) { double(:highline_cli) }
|
7
7
|
let(:octokit_client_client) { double(:octokit_client_client, project: :project, merge_request: :merge_request, create_merge_request: :created) }
|
8
8
|
let(:octokit_client) { double(:octokit_client, client: octokit_client_client) }
|
9
|
+
|
9
10
|
let(:options) do
|
10
11
|
{
|
11
|
-
local_project:
|
12
|
-
local_branch:
|
12
|
+
local_project: Faker::Lorem.word,
|
13
|
+
local_branch: Faker::Lorem.word,
|
13
14
|
local_code: local_code,
|
14
15
|
cli: highline_cli
|
15
16
|
}
|
@@ -19,49 +20,50 @@ describe GitHelper::GitHubPullRequest do
|
|
19
20
|
|
20
21
|
before do
|
21
22
|
allow(GitHelper::OctokitClient).to receive(:new).and_return(octokit_client)
|
23
|
+
allow(subject).to receive(:puts)
|
22
24
|
end
|
23
25
|
|
24
26
|
describe '#create' do
|
25
27
|
it 'should call the octokit client to create' do
|
26
28
|
allow(subject).to receive(:new_pr_body).and_return('')
|
27
|
-
expect(octokit_client_client).to receive(:create_pull_request)
|
28
|
-
subject.create({base_branch:
|
29
|
+
expect(octokit_client_client).to receive(:create_pull_request).and_return(double(html_url: Faker::Internet.url))
|
30
|
+
subject.create({base_branch: Faker::Lorem.word, new_title: Faker::Lorem.word})
|
29
31
|
end
|
30
32
|
|
31
33
|
it 'should call various other methods' do
|
32
34
|
expect(subject).to receive(:new_pr_body).and_return('').at_least(:once)
|
33
|
-
allow(octokit_client_client).to receive(:create_pull_request)
|
34
|
-
subject.create({base_branch:
|
35
|
+
allow(octokit_client_client).to receive(:create_pull_request).and_return(double(html_url: Faker::Internet.url))
|
36
|
+
subject.create({base_branch: Faker::Lorem.word, new_title: Faker::Lorem.word})
|
35
37
|
end
|
36
38
|
|
37
39
|
it 'should catch the raised error if the creation does not work' do
|
38
40
|
allow(subject).to receive(:new_pr_body).and_return('')
|
39
41
|
allow(octokit_client_client).to receive(:create_pull_request).and_raise(StandardError)
|
40
|
-
expect(subject.create({base_branch:
|
42
|
+
expect(subject.create({base_branch: Faker::Lorem.word, new_title: Faker::Lorem.word})).to eq(nil)
|
41
43
|
end
|
42
44
|
end
|
43
45
|
|
44
46
|
describe '#merge' do
|
45
47
|
it 'should call the octokit client to merge' do
|
46
|
-
allow(subject).to receive(:existing_pr).and_return(double(title:
|
48
|
+
allow(subject).to receive(:existing_pr).and_return(double(title: Faker::Lorem.word))
|
47
49
|
allow(subject).to receive(:merge_method).and_return('rebase')
|
48
|
-
allow(subject).to receive(:pr_id).and_return(
|
49
|
-
expect(octokit_client_client).to receive(:merge_pull_request)
|
50
|
+
allow(subject).to receive(:pr_id).and_return(Faker::Number.number)
|
51
|
+
expect(octokit_client_client).to receive(:merge_pull_request).and_return(double(sha: Faker::Internet.password))
|
50
52
|
subject.merge
|
51
53
|
end
|
52
54
|
|
53
55
|
it 'should call various other methods' do
|
54
|
-
expect(subject).to receive(:existing_pr).and_return(double(title:
|
56
|
+
expect(subject).to receive(:existing_pr).and_return(double(title: Faker::Lorem.word)).at_least(:once)
|
55
57
|
expect(subject).to receive(:merge_method).and_return('rebase').at_least(:once)
|
56
|
-
expect(subject).to receive(:pr_id).and_return(
|
57
|
-
allow(octokit_client_client).to receive(:merge_pull_request)
|
58
|
+
expect(subject).to receive(:pr_id).and_return(Faker::Number.number).at_least(:once)
|
59
|
+
allow(octokit_client_client).to receive(:merge_pull_request).and_return(double(sha: Faker::Internet.password))
|
58
60
|
subject.merge
|
59
61
|
end
|
60
62
|
|
61
63
|
it 'should catch the raised error if the merge does not work' do
|
62
|
-
allow(subject).to receive(:existing_pr).and_return(double(title:
|
64
|
+
allow(subject).to receive(:existing_pr).and_return(double(title: Faker::Lorem.word))
|
63
65
|
allow(subject).to receive(:merge_method).and_return('rebase')
|
64
|
-
allow(subject).to receive(:pr_id).and_return(
|
66
|
+
allow(subject).to receive(:pr_id).and_return(Faker::Number.number)
|
65
67
|
allow(octokit_client_client).to receive(:merge_pull_request).and_raise(StandardError)
|
66
68
|
expect(subject.merge).to eq(nil)
|
67
69
|
end
|
@@ -95,40 +97,45 @@ describe GitHelper::GitHubPullRequest do
|
|
95
97
|
end
|
96
98
|
|
97
99
|
context 'if there is one template option' do
|
100
|
+
let(:template) { Faker::Lorem.word }
|
101
|
+
|
98
102
|
it 'should call the CLI to ask about a single template' do
|
99
|
-
allow(subject).to receive(:pr_template_options).and_return([
|
103
|
+
allow(subject).to receive(:pr_template_options).and_return([template])
|
100
104
|
expect(highline_cli).to receive(:apply_template?).and_return(true)
|
101
105
|
subject.send(:template_name_to_apply)
|
102
106
|
end
|
103
107
|
|
104
108
|
it 'should return the single template if the user says yes' do
|
105
|
-
allow(subject).to receive(:pr_template_options).and_return([
|
109
|
+
allow(subject).to receive(:pr_template_options).and_return([template])
|
106
110
|
allow(highline_cli).to receive(:apply_template?).and_return(true)
|
107
|
-
expect(subject.send(:template_name_to_apply)).to eq(
|
111
|
+
expect(subject.send(:template_name_to_apply)).to eq(template)
|
108
112
|
end
|
109
113
|
|
110
114
|
it 'should return nil if the user says no' do
|
111
|
-
allow(subject).to receive(:pr_template_options).and_return([
|
115
|
+
allow(subject).to receive(:pr_template_options).and_return([template])
|
112
116
|
allow(highline_cli).to receive(:apply_template?).and_return(false)
|
113
117
|
expect(subject.send(:template_name_to_apply)).to eq(nil)
|
114
118
|
end
|
115
119
|
end
|
116
120
|
|
117
121
|
context 'if there are multiple template options' do
|
122
|
+
let(:template1) { Faker::Lorem.word }
|
123
|
+
let(:template2) { Faker::Lorem.word }
|
124
|
+
|
118
125
|
it 'should call the CLI to ask which of multiple templates to apply' do
|
119
|
-
allow(subject).to receive(:pr_template_options).and_return([
|
120
|
-
expect(highline_cli).to receive(:template_to_apply).and_return(
|
126
|
+
allow(subject).to receive(:pr_template_options).and_return([template1, template2])
|
127
|
+
expect(highline_cli).to receive(:template_to_apply).and_return(template1)
|
121
128
|
subject.send(:template_name_to_apply)
|
122
129
|
end
|
123
130
|
|
124
131
|
it 'should return the answer template if the user says yes' do
|
125
|
-
allow(subject).to receive(:pr_template_options).and_return([
|
126
|
-
allow(highline_cli).to receive(:template_to_apply).and_return(
|
127
|
-
expect(subject.send(:template_name_to_apply)).to eq(
|
132
|
+
allow(subject).to receive(:pr_template_options).and_return([template1, template2])
|
133
|
+
allow(highline_cli).to receive(:template_to_apply).and_return(template1)
|
134
|
+
expect(subject.send(:template_name_to_apply)).to eq(template1)
|
128
135
|
end
|
129
136
|
|
130
137
|
it 'should return nil if the user says no' do
|
131
|
-
allow(subject).to receive(:pr_template_options).and_return([
|
138
|
+
allow(subject).to receive(:pr_template_options).and_return([template1, template2])
|
132
139
|
allow(highline_cli).to receive(:template_to_apply).and_return('None')
|
133
140
|
expect(subject.send(:template_name_to_apply)).to eq(nil)
|
134
141
|
end
|
@@ -144,13 +151,14 @@ describe GitHelper::GitHubPullRequest do
|
|
144
151
|
|
145
152
|
describe '#pr_id' do
|
146
153
|
it 'should ask the CLI for the code request ID' do
|
147
|
-
expect(highline_cli).to receive(:code_request_id).and_return(
|
154
|
+
expect(highline_cli).to receive(:code_request_id).and_return(Faker::Number.number)
|
148
155
|
subject.send(:pr_id)
|
149
156
|
end
|
150
157
|
|
151
158
|
it 'should equal an integer' do
|
152
|
-
|
153
|
-
expect(
|
159
|
+
pr_id = Faker::Number.number
|
160
|
+
expect(highline_cli).to receive(:code_request_id).and_return(pr_id)
|
161
|
+
expect(subject.send(:pr_id)).to eq(pr_id)
|
154
162
|
end
|
155
163
|
end
|
156
164
|
|
@@ -172,7 +180,7 @@ describe GitHelper::GitHubPullRequest do
|
|
172
180
|
expect(subject.send(:merge_method)).to be_a(String)
|
173
181
|
end
|
174
182
|
|
175
|
-
context
|
183
|
+
context 'if theres only one item' do
|
176
184
|
let(:project) { double(:project, allow_merge_commit: true, allow_squash_merge: false, allow_rebase_merge: false) }
|
177
185
|
|
178
186
|
it 'should not ask the CLI anything' do
|
@@ -231,7 +239,7 @@ describe GitHelper::GitHubPullRequest do
|
|
231
239
|
|
232
240
|
describe '#existing_pr' do
|
233
241
|
it 'should call the octokit client' do
|
234
|
-
allow(highline_cli).to receive(:code_request_id).and_return(
|
242
|
+
allow(highline_cli).to receive(:code_request_id).and_return(Faker::Number.number)
|
235
243
|
expect(octokit_client_client).to receive(:pull_request).and_return(:pull_request)
|
236
244
|
subject.send(:existing_pr)
|
237
245
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emma Sax
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gitlab
|
@@ -72,14 +72,28 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '2.
|
75
|
+
version: '2.2'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '2.
|
82
|
+
version: '2.2'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: faker
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.15'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2.15'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: guard-rspec
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -132,7 +146,6 @@ extensions: []
|
|
132
146
|
extra_rdoc_files: []
|
133
147
|
files:
|
134
148
|
- Gemfile
|
135
|
-
- Gemfile.lock
|
136
149
|
- Guardfile
|
137
150
|
- LICENSE
|
138
151
|
- README.md
|
@@ -189,23 +202,23 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
189
202
|
- !ruby/object:Gem::Version
|
190
203
|
version: '0'
|
191
204
|
requirements: []
|
192
|
-
rubygems_version: 3.
|
205
|
+
rubygems_version: 3.2.3
|
193
206
|
signing_key:
|
194
207
|
specification_version: 4
|
195
208
|
summary: A set of GitHub and GitLab workflow scripts.
|
196
209
|
test_files:
|
197
210
|
- spec/spec_helper.rb
|
198
|
-
- spec/git_helper/octokit_client_spec.rb
|
199
|
-
- spec/git_helper/new_branch_spec.rb
|
200
|
-
- spec/git_helper/forget_local_commits_spec.rb
|
201
|
-
- spec/git_helper/clean_branches_spec.rb
|
202
211
|
- spec/git_helper/change_remote_spec.rb
|
203
212
|
- spec/git_helper/checkout_default_spec.rb
|
204
|
-
- spec/git_helper/
|
205
|
-
- spec/git_helper/gitlab_client_spec.rb
|
213
|
+
- spec/git_helper/clean_branches_spec.rb
|
206
214
|
- spec/git_helper/code_request_spec.rb
|
207
215
|
- spec/git_helper/empty_commit_spec.rb
|
208
|
-
- spec/git_helper/
|
216
|
+
- spec/git_helper/forget_local_commits_spec.rb
|
209
217
|
- spec/git_helper/git_config_reader_spec.rb
|
210
|
-
- spec/git_helper/
|
218
|
+
- spec/git_helper/gitlab_client_spec.rb
|
219
|
+
- spec/git_helper/highline_cli_spec.rb
|
211
220
|
- spec/git_helper/local_code_spec.rb
|
221
|
+
- spec/git_helper/merge_request_spec.rb
|
222
|
+
- spec/git_helper/new_branch_spec.rb
|
223
|
+
- spec/git_helper/octokit_client_spec.rb
|
224
|
+
- spec/git_helper/pull_request_spec.rb
|
data/Gemfile.lock
DELETED
@@ -1,101 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
git_helper (2.0.2)
|
5
|
-
gitlab (~> 4.16)
|
6
|
-
gli (~> 2.13)
|
7
|
-
highline (~> 2.0)
|
8
|
-
octokit (~> 4.18)
|
9
|
-
|
10
|
-
GEM
|
11
|
-
remote: https://rubygems.org/
|
12
|
-
specs:
|
13
|
-
addressable (2.7.0)
|
14
|
-
public_suffix (>= 2.0.2, < 5.0)
|
15
|
-
coderay (1.1.3)
|
16
|
-
diff-lcs (1.4.4)
|
17
|
-
faraday (1.0.1)
|
18
|
-
multipart-post (>= 1.2, < 3)
|
19
|
-
ffi (1.13.1)
|
20
|
-
formatador (0.2.5)
|
21
|
-
gitlab (4.16.1)
|
22
|
-
httparty (~> 0.14, >= 0.14.0)
|
23
|
-
terminal-table (~> 1.5, >= 1.5.1)
|
24
|
-
gli (2.19.2)
|
25
|
-
guard (2.16.2)
|
26
|
-
formatador (>= 0.2.4)
|
27
|
-
listen (>= 2.7, < 4.0)
|
28
|
-
lumberjack (>= 1.0.12, < 2.0)
|
29
|
-
nenv (~> 0.1)
|
30
|
-
notiffany (~> 0.0)
|
31
|
-
pry (>= 0.9.12)
|
32
|
-
shellany (~> 0.0)
|
33
|
-
thor (>= 0.18.1)
|
34
|
-
guard-compat (1.2.1)
|
35
|
-
guard-rspec (4.7.3)
|
36
|
-
guard (~> 2.1)
|
37
|
-
guard-compat (~> 1.1)
|
38
|
-
rspec (>= 2.99.0, < 4.0)
|
39
|
-
highline (2.0.3)
|
40
|
-
httparty (0.18.1)
|
41
|
-
mime-types (~> 3.0)
|
42
|
-
multi_xml (>= 0.5.2)
|
43
|
-
listen (3.2.1)
|
44
|
-
rb-fsevent (~> 0.10, >= 0.10.3)
|
45
|
-
rb-inotify (~> 0.9, >= 0.9.10)
|
46
|
-
lumberjack (1.2.8)
|
47
|
-
method_source (1.0.0)
|
48
|
-
mime-types (3.3.1)
|
49
|
-
mime-types-data (~> 3.2015)
|
50
|
-
mime-types-data (3.2020.0512)
|
51
|
-
multi_xml (0.6.0)
|
52
|
-
multipart-post (2.1.1)
|
53
|
-
nenv (0.3.0)
|
54
|
-
notiffany (0.1.3)
|
55
|
-
nenv (~> 0.1)
|
56
|
-
shellany (~> 0.0)
|
57
|
-
octokit (4.18.0)
|
58
|
-
faraday (>= 0.9)
|
59
|
-
sawyer (~> 0.8.0, >= 0.5.3)
|
60
|
-
pry (0.13.1)
|
61
|
-
coderay (~> 1.1)
|
62
|
-
method_source (~> 1.0)
|
63
|
-
public_suffix (4.0.6)
|
64
|
-
rake (13.0.1)
|
65
|
-
rb-fsevent (0.10.4)
|
66
|
-
rb-inotify (0.10.1)
|
67
|
-
ffi (~> 1.0)
|
68
|
-
rspec (3.9.0)
|
69
|
-
rspec-core (~> 3.9.0)
|
70
|
-
rspec-expectations (~> 3.9.0)
|
71
|
-
rspec-mocks (~> 3.9.0)
|
72
|
-
rspec-core (3.9.3)
|
73
|
-
rspec-support (~> 3.9.3)
|
74
|
-
rspec-expectations (3.9.2)
|
75
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
76
|
-
rspec-support (~> 3.9.0)
|
77
|
-
rspec-mocks (3.9.1)
|
78
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
79
|
-
rspec-support (~> 3.9.0)
|
80
|
-
rspec-support (3.9.3)
|
81
|
-
sawyer (0.8.2)
|
82
|
-
addressable (>= 2.3.5)
|
83
|
-
faraday (> 0.8, < 2.0)
|
84
|
-
shellany (0.0.1)
|
85
|
-
terminal-table (1.8.0)
|
86
|
-
unicode-display_width (~> 1.1, >= 1.1.1)
|
87
|
-
thor (1.0.1)
|
88
|
-
unicode-display_width (1.7.0)
|
89
|
-
|
90
|
-
PLATFORMS
|
91
|
-
ruby
|
92
|
-
|
93
|
-
DEPENDENCIES
|
94
|
-
bundler (~> 2.1)
|
95
|
-
git_helper!
|
96
|
-
guard-rspec (~> 4.3)
|
97
|
-
rake (~> 13.0)
|
98
|
-
rspec (~> 3.9)
|
99
|
-
|
100
|
-
BUNDLED WITH
|
101
|
-
2.1.4
|