git_helper 3.3.1 → 3.3.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/Gemfile.lock +32 -9
- data/Guardfile +3 -1
- data/README.md +4 -4
- data/Rakefile +2 -0
- data/bin/git-helper +18 -13
- data/lib/git_helper.rb +6 -2
- data/lib/git_helper/change_remote.rb +15 -6
- data/lib/git_helper/checkout_default.rb +2 -0
- data/lib/git_helper/clean_branches.rb +2 -0
- data/lib/git_helper/code_request.rb +33 -19
- data/lib/git_helper/empty_commit.rb +2 -0
- data/lib/git_helper/forget_local_commits.rb +2 -0
- data/lib/git_helper/git_config_reader.rb +3 -5
- data/lib/git_helper/gitlab_client.rb +2 -0
- data/lib/git_helper/local_code.rb +18 -8
- data/lib/git_helper/merge_request.rb +90 -70
- data/lib/git_helper/new_branch.rb +3 -1
- data/lib/git_helper/octokit_client.rb +2 -0
- data/lib/git_helper/pull_request.rb +97 -66
- data/lib/git_helper/setup.rb +52 -32
- data/lib/git_helper/version.rb +3 -1
- data/spec/git_helper/change_remote_spec.rb +24 -24
- data/spec/git_helper/checkout_default_spec.rb +2 -0
- data/spec/git_helper/clean_branches_spec.rb +2 -0
- data/spec/git_helper/code_request_spec.rb +30 -28
- data/spec/git_helper/empty_commit_spec.rb +2 -0
- data/spec/git_helper/forget_local_commits_spec.rb +2 -0
- data/spec/git_helper/git_config_reader_spec.rb +4 -2
- data/spec/git_helper/gitlab_client_spec.rb +2 -0
- data/spec/git_helper/local_code_spec.rb +2 -0
- data/spec/git_helper/merge_request_spec.rb +24 -23
- data/spec/git_helper/new_branch_spec.rb +10 -8
- data/spec/git_helper/octokit_client_spec.rb +2 -0
- data/spec/git_helper/pull_request_spec.rb +20 -18
- data/spec/git_helper/setup_spec.rb +34 -26
- data/spec/spec_helper.rb +4 -1
- metadata +34 -9
- data/lib/git_helper/highline_cli.rb +0 -33
- data/spec/git_helper/highline_cli_spec.rb +0 -51
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'faker'
|
4
|
+
require 'pry'
|
2
5
|
|
3
6
|
# This file was generated by the `rspec --init` command. Conventionally, all
|
4
7
|
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
@@ -33,7 +36,7 @@ RSpec.configure do |config|
|
|
33
36
|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
34
37
|
end
|
35
38
|
|
36
|
-
config.filter_run :
|
39
|
+
config.filter_run focus: true
|
37
40
|
config.run_all_when_everything_filtered = true
|
38
41
|
|
39
42
|
# rspec-mocks config goes here. You can use an alternate test double
|
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.3.
|
4
|
+
version: 3.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emma Sax
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gitlab
|
@@ -39,19 +39,19 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.13'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: highline_wrapper
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '1.1'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '1.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: octokit
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '4.3'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.13'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.13'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rake
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,6 +150,20 @@ dependencies:
|
|
136
150
|
- - "~>"
|
137
151
|
- !ruby/object:Gem::Version
|
138
152
|
version: '3.9'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rubocop
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '1.10'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '1.10'
|
139
167
|
description: A set of GitHub and GitLab workflow scripts to provide a smoother development
|
140
168
|
process for your git projects.
|
141
169
|
email:
|
@@ -160,7 +188,6 @@ files:
|
|
160
188
|
- lib/git_helper/forget_local_commits.rb
|
161
189
|
- lib/git_helper/git_config_reader.rb
|
162
190
|
- lib/git_helper/gitlab_client.rb
|
163
|
-
- lib/git_helper/highline_cli.rb
|
164
191
|
- lib/git_helper/local_code.rb
|
165
192
|
- lib/git_helper/merge_request.rb
|
166
193
|
- lib/git_helper/new_branch.rb
|
@@ -177,7 +204,6 @@ files:
|
|
177
204
|
- spec/git_helper/forget_local_commits_spec.rb
|
178
205
|
- spec/git_helper/git_config_reader_spec.rb
|
179
206
|
- spec/git_helper/gitlab_client_spec.rb
|
180
|
-
- spec/git_helper/highline_cli_spec.rb
|
181
207
|
- spec/git_helper/local_code_spec.rb
|
182
208
|
- spec/git_helper/merge_request_spec.rb
|
183
209
|
- spec/git_helper/new_branch_spec.rb
|
@@ -197,7 +223,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
197
223
|
requirements:
|
198
224
|
- - ">="
|
199
225
|
- !ruby/object:Gem::Version
|
200
|
-
version: '
|
226
|
+
version: '2.5'
|
201
227
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
202
228
|
requirements:
|
203
229
|
- - ">="
|
@@ -218,7 +244,6 @@ test_files:
|
|
218
244
|
- spec/git_helper/forget_local_commits_spec.rb
|
219
245
|
- spec/git_helper/git_config_reader_spec.rb
|
220
246
|
- spec/git_helper/gitlab_client_spec.rb
|
221
|
-
- spec/git_helper/highline_cli_spec.rb
|
222
247
|
- spec/git_helper/local_code_spec.rb
|
223
248
|
- spec/git_helper/merge_request_spec.rb
|
224
249
|
- spec/git_helper/new_branch_spec.rb
|
@@ -1,33 +0,0 @@
|
|
1
|
-
module GitHelper
|
2
|
-
class HighlineCli
|
3
|
-
def ask(prompt)
|
4
|
-
highline_client.ask(prompt) do |conf|
|
5
|
-
conf.readline = true
|
6
|
-
end.to_s
|
7
|
-
end
|
8
|
-
|
9
|
-
def ask_yes_no(prompt)
|
10
|
-
answer = highline_client.ask(prompt) do |conf|
|
11
|
-
conf.readline = true
|
12
|
-
end.to_s
|
13
|
-
|
14
|
-
answer.empty? ? true : !!(answer =~ /^y/i)
|
15
|
-
end
|
16
|
-
|
17
|
-
def ask_options(prompt, choices)
|
18
|
-
choices_as_string_options = ''
|
19
|
-
choices.each { |choice| choices_as_string_options << "#{choices.index(choice) + 1}. #{choice}\n" }
|
20
|
-
compiled_prompt = "#{prompt}\n#{choices_as_string_options.strip}"
|
21
|
-
|
22
|
-
index = highline_client.ask(compiled_prompt) do |conf|
|
23
|
-
conf.readline = true
|
24
|
-
end.to_i - 1
|
25
|
-
|
26
|
-
choices[index]
|
27
|
-
end
|
28
|
-
|
29
|
-
private def highline_client
|
30
|
-
@highline_client ||= HighLine.new
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'git_helper'
|
3
|
-
|
4
|
-
describe GitHelper::HighlineCli do
|
5
|
-
let(:response) { double(:response, readline: true, to_i: 3) }
|
6
|
-
let(:highline_client) { double(:highline_cli, ask: response) }
|
7
|
-
|
8
|
-
subject { GitHelper::HighlineCli.new }
|
9
|
-
|
10
|
-
before do
|
11
|
-
allow(HighLine).to receive(:new).and_return(highline_client)
|
12
|
-
end
|
13
|
-
|
14
|
-
describe '#ask' do
|
15
|
-
it 'should ask the highline client ask'do
|
16
|
-
expect(highline_client).to receive(:ask)
|
17
|
-
subject.ask(Faker::Lorem.sentence)
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'should return a string' do
|
21
|
-
expect(subject.ask(Faker::Lorem.sentence)).to be_a(String)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe '#ask_yes_no' do
|
26
|
-
it 'should ask the highline client ask'do
|
27
|
-
expect(highline_client).to receive(:ask)
|
28
|
-
subject.ask_yes_no(Faker::Lorem.sentence)
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'should return a boolean' do
|
32
|
-
expect(subject.ask_yes_no(Faker::Lorem.sentence)).to be_falsey
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'should return true if we say yes' do
|
36
|
-
allow(response).to receive(:to_s).and_return('y')
|
37
|
-
expect(subject.ask_yes_no(Faker::Lorem.sentence)).to be_truthy
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
describe '#ask_options' do
|
42
|
-
it 'should ask the highline client ask'do
|
43
|
-
expect(highline_client).to receive(:ask)
|
44
|
-
subject.ask_options(Faker::Lorem.sentence, ['one', 'two', 'three'])
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'should return a string from the options' do
|
48
|
-
expect(subject.ask_options(Faker::Lorem.sentence, ['one', 'two', 'three'])).to be_a(String)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|