git_reflow 0.4.1 → 0.4.2
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/Gemfile.lock +12 -12
- data/README.rdoc +2 -0
- data/git_reflow.gemspec +1 -1
- data/lib/git_reflow/git_helpers.rb +19 -2
- data/lib/git_reflow/git_server/git_hub.rb +4 -24
- data/lib/git_reflow/version.rb +1 -1
- data/spec/lib/git_reflow/git_helpers_spec.rb +10 -0
- data/spec/lib/git_server/git_hub_spec.rb +1 -1
- data/spec/support/github_helpers.rb +4 -4
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56b9d1f62f165da2fa44742c87666802d88b484d
|
4
|
+
data.tar.gz: df62b69368422f3fee100b6c0d95145321cd2215
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c64744638a2767e4a3b24877a7b5dc61506715d6cb729665b91f3460c5731a1f918f84c6258e7c14b85e1830135a3b2f87318ae36c04122fa856914d63c3a50c
|
7
|
+
data.tar.gz: b1f37dd0b8db8c3e554d643d0e94e3b39942ea0e7a081f1fe4f7beea0c105cc652478543ab1ba9da0d52b73044ccefd633b034d816b37c9db00deefa35db9140
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
git_reflow (0.4.
|
4
|
+
git_reflow (0.4.2)
|
5
5
|
colorize (= 0.6.0)
|
6
|
-
github_api (= 0.12.
|
6
|
+
github_api (= 0.12.3)
|
7
7
|
gli (= 2.12.2)
|
8
8
|
highline
|
9
9
|
httpclient
|
@@ -26,9 +26,9 @@ GEM
|
|
26
26
|
descendants_tracker (0.0.4)
|
27
27
|
thread_safe (~> 0.3, >= 0.3.1)
|
28
28
|
diff-lcs (1.2.5)
|
29
|
-
faraday (0.9.
|
29
|
+
faraday (0.9.1)
|
30
30
|
multipart-post (>= 1.2, < 3)
|
31
|
-
github_api (0.12.
|
31
|
+
github_api (0.12.3)
|
32
32
|
addressable (~> 2.3)
|
33
33
|
descendants_tracker (~> 0.0.4)
|
34
34
|
faraday (~> 0.8, < 0.10)
|
@@ -37,19 +37,19 @@ GEM
|
|
37
37
|
nokogiri (~> 1.6.3)
|
38
38
|
oauth2
|
39
39
|
gli (2.12.2)
|
40
|
-
hashie (3.
|
40
|
+
hashie (3.4.0)
|
41
41
|
highline (1.6.21)
|
42
|
-
httpclient (2.
|
42
|
+
httpclient (2.6.0.1)
|
43
43
|
json (1.7.5)
|
44
|
-
json_pure (1.8.
|
45
|
-
jwt (1.
|
44
|
+
json_pure (1.8.2)
|
45
|
+
jwt (1.2.1)
|
46
46
|
method_source (0.8.2)
|
47
|
-
mini_portile (0.6.
|
47
|
+
mini_portile (0.6.2)
|
48
48
|
multi_json (1.10.1)
|
49
49
|
multi_xml (0.5.5)
|
50
50
|
multipart-post (2.0.0)
|
51
|
-
nokogiri (1.6.
|
52
|
-
mini_portile (
|
51
|
+
nokogiri (1.6.6.2)
|
52
|
+
mini_portile (~> 0.6.0)
|
53
53
|
oauth2 (1.0.0)
|
54
54
|
faraday (>= 0.8, < 0.10)
|
55
55
|
jwt (~> 1.0)
|
@@ -63,7 +63,7 @@ GEM
|
|
63
63
|
pry-byebug (2.0.0)
|
64
64
|
byebug (~> 3.4)
|
65
65
|
pry (~> 0.10)
|
66
|
-
rack (1.
|
66
|
+
rack (1.6.0)
|
67
67
|
rake (0.9.2.2)
|
68
68
|
rdoc (3.12)
|
69
69
|
json (~> 1.4)
|
data/README.rdoc
CHANGED
data/git_reflow.gemspec
CHANGED
@@ -31,7 +31,7 @@ spec = Gem::Specification.new do |s|
|
|
31
31
|
s.add_dependency('highline')
|
32
32
|
s.add_dependency('httpclient')
|
33
33
|
s.add_dependency('json_pure')
|
34
|
-
s.add_dependency('github_api', '0.12.
|
34
|
+
s.add_dependency('github_api', '0.12.3')
|
35
35
|
|
36
36
|
s.post_install_message = "You need to setup your GitHub OAuth token\nPlease run 'git-reflow setup'"
|
37
37
|
end
|
@@ -7,12 +7,12 @@ module GitReflow
|
|
7
7
|
|
8
8
|
def remote_user
|
9
9
|
return "" unless "#{GitReflow::Config.get('remote.origin.url')}".length > 0
|
10
|
-
GitReflow::Config.get('remote.origin.url')
|
10
|
+
extract_remote_user_and_repo_from_remote_url(GitReflow::Config.get('remote.origin.url'))[:user]
|
11
11
|
end
|
12
12
|
|
13
13
|
def remote_repo_name
|
14
14
|
return "" unless "#{GitReflow::Config.get('remote.origin.url')}".length > 0
|
15
|
-
GitReflow::Config.get('remote.origin.url')
|
15
|
+
extract_remote_user_and_repo_from_remote_url(GitReflow::Config.get('remote.origin.url'))[:repo]
|
16
16
|
end
|
17
17
|
|
18
18
|
def current_branch
|
@@ -61,5 +61,22 @@ module GitReflow
|
|
61
61
|
run "echo \"#{message}\" | cat - .git/SQUASH_MSG > ./tmp_squash_msg"
|
62
62
|
run 'mv ./tmp_squash_msg .git/SQUASH_MSG'
|
63
63
|
end
|
64
|
+
|
65
|
+
private
|
66
|
+
|
67
|
+
def extract_remote_user_and_repo_from_remote_url(remote_url)
|
68
|
+
result = { user: '', repo: '' }
|
69
|
+
return result unless "#{remote_url}".length > 0
|
70
|
+
|
71
|
+
if remote_url =~ /\Agit@/i
|
72
|
+
result[:user] = remote_url[/[\/:](\w|-|\.)+/i][1..-1]
|
73
|
+
result[:repo] = remote_url[/\/(\w|-|\.)+$/i][1..-5]
|
74
|
+
elsif remote_url =~ /\Ahttps?/i
|
75
|
+
result[:user] = remote_url.split('/')[-2]
|
76
|
+
result[:repo] = remote_url.split('/')[-1].gsub(/.git\Z/i, '')
|
77
|
+
end
|
78
|
+
|
79
|
+
result
|
80
|
+
end
|
64
81
|
end
|
65
82
|
end
|
@@ -53,6 +53,8 @@ module GitReflow
|
|
53
53
|
config.ssl = {:verify => false}
|
54
54
|
end
|
55
55
|
|
56
|
+
@connection.connection_options = {headers: {"X-GitHub-OTP" => options[:two_factor_auth_code]}} if options[:two_factor_auth_code]
|
57
|
+
|
56
58
|
previous_authorizations = @connection.oauth.all.select {|auth| auth.note == "git-reflow (#{run('hostname', loud: false).strip})" }
|
57
59
|
if previous_authorizations.any?
|
58
60
|
authorization = previous_authorizations.last
|
@@ -61,33 +63,11 @@ module GitReflow
|
|
61
63
|
end
|
62
64
|
|
63
65
|
self.class.oauth_token = authorization.token
|
64
|
-
puts "\nYour GitHub account was successfully setup!"
|
65
66
|
|
66
67
|
rescue ::Github::Error::Unauthorized => e
|
67
68
|
if e.inspect.to_s.include?('two-factor')
|
68
|
-
two_factor_code
|
69
|
-
|
70
|
-
basic_auth: "#{gh_user}:#{gh_password}",
|
71
|
-
endpoint: GitServer::GitHub.api_endpoint,
|
72
|
-
site: GitServer::GitHub.site_url,
|
73
|
-
ssl: {:verify => false},
|
74
|
-
headers: { "X-GitHub-OTP" => two_factor_code }
|
75
|
-
)
|
76
|
-
|
77
|
-
previous_authorizations = github_authorizations.all.select {|auth|
|
78
|
-
auth.note == "git-reflow (#{run('hostname', loud: false).strip})"
|
79
|
-
}
|
80
|
-
|
81
|
-
self.class.user = gh_user
|
82
|
-
|
83
|
-
if previous_authorizations.any?
|
84
|
-
authorization = previous_authorizations.last
|
85
|
-
else
|
86
|
-
authorization = github_authorizations.create scopes: ['repo'], note: "git-reflow (#{run('hostname', loud: false).strip})"
|
87
|
-
end
|
88
|
-
|
89
|
-
self.class.oauth_token = authorization.token
|
90
|
-
puts "\nYour GitHub account was successfully setup!"
|
69
|
+
two_factor_code = ask("Please enter your two-factor authentication code: ")
|
70
|
+
self.authenticate options.merge({user: gh_user, password: gh_password, two_factor_auth_code: two_factor_code})
|
91
71
|
else
|
92
72
|
puts "\nGithub Authentication Error: #{e.inspect}"
|
93
73
|
end
|
data/lib/git_reflow/version.rb
CHANGED
@@ -23,6 +23,11 @@ describe GitReflow::GitHelpers do
|
|
23
23
|
let(:origin_url) { nil }
|
24
24
|
it { should == '' }
|
25
25
|
end
|
26
|
+
|
27
|
+
context "remote origin uses HTTP" do
|
28
|
+
let(:origin_url) { 'https://github.com/reenhanced.spectacular/this-is-the.shit.git' }
|
29
|
+
it { should == 'reenhanced.spectacular' }
|
30
|
+
end
|
26
31
|
end
|
27
32
|
|
28
33
|
describe ".remote_repo_name" do
|
@@ -34,6 +39,11 @@ describe GitReflow::GitHelpers do
|
|
34
39
|
let(:origin_url) { nil }
|
35
40
|
it { should == '' }
|
36
41
|
end
|
42
|
+
|
43
|
+
context "remote origin uses HTTP" do
|
44
|
+
let(:origin_url) { 'https://github.com/reenhanced.spectacular/this-is-the.shit.git' }
|
45
|
+
it { should == 'this-is-the.shit' }
|
46
|
+
end
|
37
47
|
end
|
38
48
|
|
39
49
|
describe ".current_branch" do
|
@@ -148,7 +148,7 @@ describe GitReflow::GitServer::GitHub do
|
|
148
148
|
end
|
149
149
|
|
150
150
|
it "notifies user of invalid login details" do
|
151
|
-
expect { subject }.to have_output "\
|
151
|
+
expect { subject }.to have_output "\nGithub Authentication Error: #{Github::Error::Unauthorized.new(unauthorized_error_response).inspect}"
|
152
152
|
end
|
153
153
|
end
|
154
154
|
end
|
@@ -71,15 +71,15 @@ module GithubHelpers
|
|
71
71
|
to_return(:body => pull.to_s, :status => 201, :headers => {:content_type => "application/json\; charset=utf-8"})
|
72
72
|
|
73
73
|
# Stubbing pull request finder
|
74
|
-
stub_get("/repos/#{user}/pulls").with(:query => {'base' => 'master', 'head' => "#{user}:#{branch}", 'state' => 'open'}).
|
74
|
+
stub_get("/repos/#{user}/pulls").with(:query => {'access_token' => 'a1b2c3d4e5f6g7h8i9j0', 'base' => 'master', 'head' => "#{user}:#{branch}", 'state' => 'open'}).
|
75
75
|
to_return(:body => fixture('pull_requests/pull_requests.json'), :status => 201, :headers => {:content_type => "application/json; charset=utf-8"})
|
76
|
-
stub_get("/repos/#{user}/#{repo}/pulls").with(:query => {'base' => 'master', 'head' => "#{user}:#{branch}", 'state' => 'open'}).
|
76
|
+
stub_get("/repos/#{user}/#{repo}/pulls").with(:query => {'access_token' => 'a1b2c3d4e5f6g7h8i9j0', 'base' => 'master', 'head' => "#{user}:#{branch}", 'state' => 'open'}).
|
77
77
|
to_return(:body => fixture('pull_requests/pull_requests.json'), :status => 201, :headers => {:content_type => "application/json; charset=utf-8"})
|
78
78
|
# Stubbing pull request comments
|
79
|
-
stub_get("/repos/#{user}/pulls/#{pull[:number]}/comments?").
|
79
|
+
stub_get("/repos/#{user}/pulls/#{pull[:number]}/comments?").with(:query => {'access_token' => 'a1b2c3d4e5f6g7h8i9j0'}).
|
80
80
|
to_return(:body => fixture('pull_requests/comments.json'), :status => 201, :headers => {:content_type => "application/json; charset=utf-8"})
|
81
81
|
# Stubbing issue comments
|
82
|
-
stub_get("/repos/#{user}/issues/#{pull[:number]}/comments?").
|
82
|
+
stub_get("/repos/#{user}/issues/#{pull[:number]}/comments?").with(:query => {'access_token' => 'a1b2c3d4e5f6g7h8i9j0'}).
|
83
83
|
to_return(:body => fixture('issues/comments.json'), :status => 201, :headers => {:content_type => "application/json; charset=utf-8"})
|
84
84
|
end
|
85
85
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_reflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Valentino Stoll
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2015-02-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -172,14 +172,14 @@ dependencies:
|
|
172
172
|
requirements:
|
173
173
|
- - '='
|
174
174
|
- !ruby/object:Gem::Version
|
175
|
-
version: 0.12.
|
175
|
+
version: 0.12.3
|
176
176
|
type: :runtime
|
177
177
|
prerelease: false
|
178
178
|
version_requirements: !ruby/object:Gem::Requirement
|
179
179
|
requirements:
|
180
180
|
- - '='
|
181
181
|
- !ruby/object:Gem::Version
|
182
|
-
version: 0.12.
|
182
|
+
version: 0.12.3
|
183
183
|
description: Git Reflow manages your git workflow.
|
184
184
|
email:
|
185
185
|
- dev@reenhanced.com
|
@@ -259,7 +259,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
259
259
|
version: '0'
|
260
260
|
requirements: []
|
261
261
|
rubyforge_project:
|
262
|
-
rubygems_version: 2.
|
262
|
+
rubygems_version: 2.4.3
|
263
263
|
signing_key:
|
264
264
|
specification_version: 4
|
265
265
|
summary: A better git process
|