git_reflow 0.7.2 → 0.7.4
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 +1 -1
- data/lib/git_reflow/commands/setup.rb +10 -1
- data/lib/git_reflow/config.rb +9 -5
- data/lib/git_reflow/git_helpers.rb +5 -0
- data/lib/git_reflow/git_server/git_hub.rb +0 -1
- data/lib/git_reflow/version.rb +1 -1
- data/lib/git_reflow.rb +1 -0
- data/spec/git_reflow_spec.rb +5 -0
- data/spec/lib/git_reflow/config_spec.rb +10 -5
- data/spec/lib/git_reflow/git_helpers_spec.rb +12 -0
- data/spec/lib/git_server/git_hub_spec.rb +13 -13
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64b5781cd74b023d9f5a94c91949cac9528636f7
|
4
|
+
data.tar.gz: f509d8459ca0b092d4bd710722987613bfb6cd5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ec9acd3327e943147292d1a6f794b23ae5cedbc80250e4c29c3884d26d7382f4b972ef0151ece4ea989e524721248a02ffc2df453c1c1bd094c7f1cd6de62bd
|
7
|
+
data.tar.gz: 860b02e97c65b9121ec31428ee8218a463fe5ccfab846767ee7312891a2321853e053902448bd29111f65200153b0cca775b4432d674465b5d6422239c2c9b02
|
data/Gemfile.lock
CHANGED
@@ -4,7 +4,16 @@ command :setup do |c|
|
|
4
4
|
c.switch [:l, :local], default_value: false, desc: 'setup GitReflow for the current project only'
|
5
5
|
c.switch [:e, :enterprise], default_value: false, desc: 'setup GitReflow with a Github Enterprise account'
|
6
6
|
c.action do |global_options, options, args|
|
7
|
-
reflow_options
|
7
|
+
reflow_options = { project_only: options[:local], enterprise: options[:enterprise] }
|
8
|
+
existing_git_include_paths = GitReflow::Config.get('include.path', all: true).split("\n")
|
9
|
+
|
10
|
+
unless File.exist?(GitReflow::Config::CONFIG_FILE_PATH) or existing_git_include_paths.include?(GitReflow::Config::CONFIG_FILE_PATH)
|
11
|
+
GitReflow.run "touch #{GitReflow::Config::CONFIG_FILE_PATH}"
|
12
|
+
GitReflow.say "Created #{GitReflow::Config::CONFIG_FILE_PATH} for Reflow specific configurations", :notice
|
13
|
+
GitReflow::Config.add "include.path", GitReflow::Config::CONFIG_FILE_PATH, global: true
|
14
|
+
GitReflow.say "Added #{GitReflow::Config::CONFIG_FILE_PATH} to ~/.gitconfig include paths", :notice
|
15
|
+
end
|
16
|
+
|
8
17
|
choose do |menu|
|
9
18
|
menu.header = "Available remote Git Server services:"
|
10
19
|
menu.prompt = "Which service would you like to use for this project? "
|
data/lib/git_reflow/config.rb
CHANGED
@@ -2,6 +2,8 @@ module GitReflow
|
|
2
2
|
module Config
|
3
3
|
extend self
|
4
4
|
|
5
|
+
CONFIG_FILE_PATH = "~/.gitconfig.reflow".freeze
|
6
|
+
|
5
7
|
def get(key, reload: false, all: false, local: false)
|
6
8
|
if reload == false and cached_key_value = instance_variable_get(:"@#{key.tr('.-', '_')}")
|
7
9
|
cached_key_value
|
@@ -21,7 +23,7 @@ module GitReflow
|
|
21
23
|
if local
|
22
24
|
GitReflow::Sandbox.run "git config --replace-all #{key} \"#{value}\"", loud: false
|
23
25
|
else
|
24
|
-
GitReflow::Sandbox.run "git config
|
26
|
+
GitReflow::Sandbox.run "git config -f #{CONFIG_FILE_PATH} --replace-all #{key} \"#{value}\"", loud: false
|
25
27
|
end
|
26
28
|
end
|
27
29
|
|
@@ -30,15 +32,17 @@ module GitReflow
|
|
30
32
|
if local
|
31
33
|
GitReflow::Sandbox.run "git config --unset-all #{key} #{value}", loud: false
|
32
34
|
else
|
33
|
-
GitReflow::Sandbox.run "git config
|
35
|
+
GitReflow::Sandbox.run "git config -f #{CONFIG_FILE_PATH} --unset-all #{key} #{value}", loud: false
|
34
36
|
end
|
35
37
|
end
|
36
38
|
|
37
|
-
def add(key, value, local: false)
|
38
|
-
if
|
39
|
+
def add(key, value, local: false, global: false)
|
40
|
+
if global
|
41
|
+
GitReflow::Sandbox.run "git config --global --add #{key} \"#{value}\"", loud: false
|
42
|
+
elsif local
|
39
43
|
GitReflow::Sandbox.run "git config --add #{key} \"#{value}\"", loud: false
|
40
44
|
else
|
41
|
-
GitReflow::Sandbox.run "git config
|
45
|
+
GitReflow::Sandbox.run "git config -f #{CONFIG_FILE_PATH} --add #{key} \"#{value}\"", loud: false
|
42
46
|
end
|
43
47
|
end
|
44
48
|
end
|
@@ -31,6 +31,11 @@ module GitReflow
|
|
31
31
|
run_command_with_label "git push origin #{current_branch}"
|
32
32
|
end
|
33
33
|
|
34
|
+
def update_current_branch
|
35
|
+
run_command_with_label "git pull origin #{current_branch}"
|
36
|
+
push_current_branch
|
37
|
+
end
|
38
|
+
|
34
39
|
def fetch_destination(destination_branch)
|
35
40
|
run_command_with_label "git fetch origin #{destination_branch}"
|
36
41
|
end
|
@@ -100,7 +100,6 @@ module GitReflow
|
|
100
100
|
config.endpoint = GitServer::GitHub.api_endpoint
|
101
101
|
config.site = GitServer::GitHub.site_url
|
102
102
|
config.adapter = :net_http
|
103
|
-
config.ssl = {:verify => false}
|
104
103
|
end
|
105
104
|
|
106
105
|
@connection.connection_options = {headers: {"X-GitHub-OTP" => options[:two_factor_auth_code]}} if options[:two_factor_auth_code]
|
data/lib/git_reflow/version.rb
CHANGED
data/lib/git_reflow.rb
CHANGED
data/spec/git_reflow_spec.rb
CHANGED
@@ -194,6 +194,11 @@ describe GitReflow do
|
|
194
194
|
|
195
195
|
subject { GitReflow.deliver inputs }
|
196
196
|
|
197
|
+
it "fetches the latest changes to the current branch" do
|
198
|
+
GitReflow.should_receive(:update_current_branch)
|
199
|
+
subject
|
200
|
+
end
|
201
|
+
|
197
202
|
it "fetches the latest changes to the destination branch" do
|
198
203
|
GitReflow.should_receive(:fetch_destination).with('master')
|
199
204
|
subject
|
@@ -16,7 +16,7 @@ describe GitReflow::Config do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
context "and checking for updates" do
|
19
|
-
before { GitReflow::Config.get('
|
19
|
+
before { GitReflow::Config.get('chucknorris.roundhouse') }
|
20
20
|
subject { GitReflow::Config.get('chucknorris.roundhouse') }
|
21
21
|
it { expect{ subject }.to_not have_run_command_silently 'git config --get chucknorris.roundhouse-kick' }
|
22
22
|
end
|
@@ -29,7 +29,7 @@ describe GitReflow::Config do
|
|
29
29
|
|
30
30
|
describe ".set(key)" do
|
31
31
|
subject { GitReflow::Config.set('chucknorris.roundhouse', 'to the face') }
|
32
|
-
it { expect{ subject }.to have_run_command_silently 'git config
|
32
|
+
it { expect{ subject }.to have_run_command_silently 'git config -f ~/.gitconfig.reflow --replace-all chucknorris.roundhouse "to the face"' }
|
33
33
|
|
34
34
|
context "for current project only" do
|
35
35
|
subject { GitReflow::Config.set('chucknorris.roundhouse', 'to the face', local: true) }
|
@@ -39,11 +39,11 @@ describe GitReflow::Config do
|
|
39
39
|
|
40
40
|
describe ".unset(key)" do
|
41
41
|
subject { GitReflow::Config.unset('chucknorris.roundhouse') }
|
42
|
-
it { expect{ subject }.to have_run_command_silently 'git config
|
42
|
+
it { expect{ subject }.to have_run_command_silently 'git config -f ~/.gitconfig.reflow --unset-all chucknorris.roundhouse ' }
|
43
43
|
|
44
44
|
context "for multi-value keys" do
|
45
45
|
subject { GitReflow::Config.unset('chucknorris.roundhouse', value: 'to the face') }
|
46
|
-
it { expect{ subject }.to have_run_command_silently 'git config
|
46
|
+
it { expect{ subject }.to have_run_command_silently 'git config -f ~/.gitconfig.reflow --unset-all chucknorris.roundhouse "to the face"' }
|
47
47
|
end
|
48
48
|
|
49
49
|
context "for current project only" do
|
@@ -59,11 +59,16 @@ describe GitReflow::Config do
|
|
59
59
|
|
60
60
|
describe ".add(key)" do
|
61
61
|
subject { GitReflow::Config.add('chucknorris.roundhouse', 'to the face') }
|
62
|
-
it { expect{ subject }.to have_run_command_silently
|
62
|
+
it { expect{ subject }.to have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --add chucknorris.roundhouse \"to the face\"" }
|
63
63
|
|
64
64
|
context "for current project only" do
|
65
65
|
subject { GitReflow::Config.add('chucknorris.roundhouse', 'to the face', local: true) }
|
66
66
|
it { expect{ subject }.to have_run_command_silently 'git config --add chucknorris.roundhouse "to the face"' }
|
67
67
|
end
|
68
|
+
|
69
|
+
context "globally" do
|
70
|
+
subject { GitReflow::Config.add('chucknorris.roundhouse', 'to the face', global: true) }
|
71
|
+
it { expect{ subject }.to have_run_command_silently 'git config --global --add chucknorris.roundhouse "to the face"' }
|
72
|
+
end
|
68
73
|
end
|
69
74
|
end
|
@@ -88,6 +88,18 @@ describe GitReflow::GitHelpers do
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
|
+
describe ".update_current_branch" do
|
92
|
+
subject { Gitacular.update_current_branch }
|
93
|
+
before { Gitacular.stub(:current_branch).and_return('new-feature') }
|
94
|
+
|
95
|
+
it "updates the remote changes and pushes any local changes" do
|
96
|
+
expect { subject }.to have_run_commands_in_order [
|
97
|
+
"git pull origin new-feature",
|
98
|
+
"git push origin new-feature"
|
99
|
+
]
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
91
103
|
describe ".merge_feature_branch(options)" do
|
92
104
|
let(:destination_branch) { 'monkey-business' }
|
93
105
|
let(:feature_branch) { 'bananas' }
|
@@ -103,10 +103,10 @@ describe GitReflow::GitServer::GitHub do
|
|
103
103
|
end
|
104
104
|
|
105
105
|
it "creates git config keys for github connections" do
|
106
|
-
expect{ subject }.to have_run_command_silently "git config
|
107
|
-
expect{ subject }.to have_run_command_silently "git config
|
108
|
-
expect{ subject }.to have_run_command_silently "git config
|
109
|
-
expect{ subject }.to have_run_command_silently "git config
|
106
|
+
expect{ subject }.to have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --replace-all github.site \"#{GitReflow::GitServer::GitHub.site_url}\""
|
107
|
+
expect{ subject }.to have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --replace-all github.endpoint \"#{GitReflow::GitServer::GitHub.api_endpoint}\""
|
108
|
+
expect{ subject }.to have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --replace-all github.oauth-token \"#{oauth_token_hash[:token]}\""
|
109
|
+
expect{ subject }.to have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --replace-all reflow.git-server \"GitHub\""
|
110
110
|
end
|
111
111
|
|
112
112
|
context "exclusive to project" do
|
@@ -118,16 +118,16 @@ describe GitReflow::GitServer::GitHub do
|
|
118
118
|
end
|
119
119
|
|
120
120
|
it "creates _local_ git config keys for github connections" do
|
121
|
-
expect{ subject }.to_not have_run_command_silently "git config
|
122
|
-
expect{ subject }.to_not have_run_command_silently "git config
|
123
|
-
expect{ subject }.to_not have_run_command_silently "git config
|
124
|
-
expect{ subject }.to_not have_run_command_silently "git config
|
121
|
+
expect{ subject }.to_not have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --replace-all github.site \"#{GitReflow::GitServer::GitHub.site_url}\""
|
122
|
+
expect{ subject }.to_not have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --replace-all github.endpoint \"#{GitReflow::GitServer::GitHub.api_endpoint}\""
|
123
|
+
expect{ subject }.to_not have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --replace-all github.oauth-token \"#{oauth_token_hash[:token]}\""
|
124
|
+
expect{ subject }.to_not have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --replace-all reflow.git-server \"GitHub\""
|
125
125
|
|
126
126
|
expect{ subject }.to have_run_command_silently "git config --replace-all github.site \"#{GitReflow::GitServer::GitHub.site_url}\""
|
127
127
|
expect{ subject }.to have_run_command_silently "git config --replace-all github.endpoint \"#{GitReflow::GitServer::GitHub.api_endpoint}\""
|
128
128
|
expect{ subject }.to have_run_command_silently "git config --replace-all github.oauth-token \"#{oauth_token_hash[:token]}\""
|
129
129
|
expect{ subject }.to have_run_command_silently "git config --replace-all reflow.git-server \"GitHub\""
|
130
|
-
expect{ subject }.to have_run_command_silently "git config
|
130
|
+
expect{ subject }.to have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --add reflow.local-projects \"#{user}/#{repo}\""
|
131
131
|
end
|
132
132
|
end
|
133
133
|
|
@@ -135,10 +135,10 @@ describe GitReflow::GitServer::GitHub do
|
|
135
135
|
let(:github) { GitReflow::GitServer::GitHub.new(enterprise: true) }
|
136
136
|
before { GitReflow::GitServer::GitHub.stub(:@using_enterprise).and_return(true) }
|
137
137
|
it "creates git config keys for github connections" do
|
138
|
-
expect{ subject }.to have_run_command_silently "git config
|
139
|
-
expect{ subject }.to have_run_command_silently "git config
|
140
|
-
expect{ subject }.to have_run_command_silently "git config
|
141
|
-
expect{ subject }.to have_run_command_silently "git config
|
138
|
+
expect{ subject }.to have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --replace-all github.site \"#{enterprise_site}\""
|
139
|
+
expect{ subject }.to have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --replace-all github.endpoint \"#{enterprise_api}\""
|
140
|
+
expect{ subject }.to have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --replace-all github.oauth-token \"#{oauth_token_hash[:token]}\""
|
141
|
+
expect{ subject }.to have_run_command_silently "git config -f #{GitReflow::Config::CONFIG_FILE_PATH} --replace-all reflow.git-server \"GitHub\""
|
142
142
|
end
|
143
143
|
end
|
144
144
|
end
|
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.7.
|
4
|
+
version: 0.7.4
|
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: 2016-
|
13
|
+
date: 2016-04-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: appraisal
|