gitcycle 0.2.25 → 0.2.26
Sign up to get free protection for your applications and to get access to all the features.
- data/features/branch.feature +0 -27
- data/features/ready.feature +1 -24
- data/gitcycle.gemspec +1 -1
- data/lib/gitcycle.rb +37 -34
- metadata +2 -2
data/features/branch.feature
CHANGED
@@ -66,31 +66,4 @@ Scenario: Change source branch
|
|
66
66
|
Pushing 'origin/master-ticket.id'.
|
67
67
|
Sending branch information to gitcycle.
|
68
68
|
"""
|
69
|
-
And redis entries valid
|
70
|
-
|
71
|
-
Scenario: Collaborator
|
72
|
-
Given a fresh set of repositories
|
73
|
-
When I cd to the owner repo
|
74
|
-
And I create a new branch "some_branch"
|
75
|
-
And I checkout some_branch
|
76
|
-
And I push some_branch
|
77
|
-
And I cd to the user repo
|
78
|
-
And I execute gitcycle branch with a new URL or string
|
79
|
-
And I enter "n"
|
80
|
-
And I enter "config.owner/some_branch"
|
81
|
-
And I enter "y"
|
82
|
-
And gitcycle runs
|
83
|
-
Then output includes
|
84
|
-
"""
|
85
|
-
Your work will eventually merge into 'master'. Is this correct? (y/n)
|
86
|
-
What branch would you like to eventually merge into?
|
87
|
-
Retrieving branch information from gitcycle.
|
88
|
-
Would you like to name your branch 'ticket.id'? (y/n)
|
89
|
-
Adding remote repo 'config.owner/config.repo'.
|
90
|
-
Fetching remote 'config.owner'.
|
91
|
-
Checking out remote branch 'ticket.id' from 'config.owner/config.repo/some_branch'.
|
92
|
-
Fetching remote 'origin'.
|
93
|
-
Pushing 'origin/ticket.id'.
|
94
|
-
Sending branch information to gitcycle.
|
95
|
-
"""
|
96
69
|
And redis entries valid
|
data/features/ready.feature
CHANGED
@@ -56,27 +56,4 @@ Scenario: Reopen pull request
|
|
56
56
|
"""
|
57
57
|
And output includes "Opening issue" with URL
|
58
58
|
And URL is a valid issue
|
59
|
-
And URL is not the same as the last
|
60
|
-
|
61
|
-
Scenario: Collaborator
|
62
|
-
Given a fresh set of repositories
|
63
|
-
When I cd to the owner repo
|
64
|
-
And I create a new branch "some_branch"
|
65
|
-
And I checkout some_branch
|
66
|
-
And I push some_branch
|
67
|
-
And I cd to the user repo
|
68
|
-
And I execute gitcycle branch with a new URL or string
|
69
|
-
And I enter "n"
|
70
|
-
And I enter "config.owner/some_branch"
|
71
|
-
And I enter "y"
|
72
|
-
And gitcycle runs
|
73
|
-
And I commit something
|
74
|
-
And I execute gitcycle with "ready"
|
75
|
-
And gitcycle runs
|
76
|
-
Then output includes
|
77
|
-
"""
|
78
|
-
Retrieving branch information from gitcycle.
|
79
|
-
Fetching remote 'config.owner'.
|
80
|
-
Merging remote branch 'some_branch' from 'config.owner/gitcycle_test'.
|
81
|
-
Pushing branch 'config.owner/some_branch'.
|
82
|
-
"""
|
59
|
+
And URL is not the same as the last
|
data/gitcycle.gemspec
CHANGED
data/lib/gitcycle.rb
CHANGED
@@ -72,10 +72,6 @@ class Gitcycle
|
|
72
72
|
end
|
73
73
|
|
74
74
|
source = params['branch[source]']
|
75
|
-
if source.include?('/')
|
76
|
-
params['branch[home]'], params['branch[source]'] = source.split('/')
|
77
|
-
params['branch[collab]'] = 1
|
78
|
-
end
|
79
75
|
|
80
76
|
puts "\nRetrieving branch information from gitcycle.\n".green
|
81
77
|
branch = get('branch', params)
|
@@ -91,7 +87,7 @@ class Gitcycle
|
|
91
87
|
end
|
92
88
|
|
93
89
|
checkout_remote_branch(
|
94
|
-
:owner =>
|
90
|
+
:owner => owner,
|
95
91
|
:repo => repo,
|
96
92
|
:branch => branch['source'],
|
97
93
|
:target => name
|
@@ -145,11 +141,12 @@ class Gitcycle
|
|
145
141
|
remote = repo['owner'] unless collab
|
146
142
|
|
147
143
|
output = add_remote_and_fetch(
|
144
|
+
:catch => false,
|
148
145
|
:owner => remote,
|
149
146
|
:repo => @git_repo
|
150
147
|
)
|
151
148
|
|
152
|
-
if
|
149
|
+
if errored?(output)
|
153
150
|
og_remote = remote
|
154
151
|
remote = repo["owner"]
|
155
152
|
|
@@ -160,9 +157,9 @@ class Gitcycle
|
|
160
157
|
end
|
161
158
|
|
162
159
|
puts "Creating branch '#{branch}' from '#{remote}/#{branch}'.\n".green
|
163
|
-
output = run("git branch --no-track #{branch} #{remote}/#{branch}")
|
160
|
+
output = run("git branch --no-track #{branch} #{remote}/#{branch}", :catch => false)
|
164
161
|
|
165
|
-
if
|
162
|
+
if errored?(output)
|
166
163
|
puts "Could not find branch #{"'#{og_remote}/#{branch}' or " if og_remote}'#{remote}/#{branch}'.\n".red
|
167
164
|
exit
|
168
165
|
end
|
@@ -542,7 +539,7 @@ class Gitcycle
|
|
542
539
|
end
|
543
540
|
|
544
541
|
puts "Fetching remote '#{owner}'.\n".green
|
545
|
-
run("git fetch -q #{owner}")
|
542
|
+
run("git fetch -q #{owner}", :catch => options[:catch])
|
546
543
|
end
|
547
544
|
end
|
548
545
|
|
@@ -581,12 +578,12 @@ class Gitcycle
|
|
581
578
|
|
582
579
|
if branches(:match => target)
|
583
580
|
if yes?("You already have a branch called '#{target}'. Overwrite?")
|
584
|
-
|
585
|
-
|
586
|
-
|
581
|
+
run("git push origin :#{target} -q")
|
582
|
+
run("git checkout master -q")
|
583
|
+
run("git branch -D #{target}")
|
587
584
|
else
|
588
|
-
|
589
|
-
|
585
|
+
run("git checkout #{target} -q")
|
586
|
+
run("git pull origin #{target} -q")
|
590
587
|
return
|
591
588
|
end
|
592
589
|
end
|
@@ -714,6 +711,10 @@ class Gitcycle
|
|
714
711
|
end
|
715
712
|
end
|
716
713
|
|
714
|
+
def errored?(output)
|
715
|
+
output.include?("fatal: ") || output.include?("ERROR: ") || $?.exitstatus != 0
|
716
|
+
end
|
717
|
+
|
717
718
|
def exec_git(command, args)
|
718
719
|
args.unshift("git", command)
|
719
720
|
Kernel.exec(*args.collect(&:to_s))
|
@@ -829,6 +830,11 @@ class Gitcycle
|
|
829
830
|
b
|
830
831
|
end
|
831
832
|
end
|
833
|
+
|
834
|
+
def q(question, extra='')
|
835
|
+
puts "#{question.yellow}#{extra}"
|
836
|
+
$input ? $input.shift : $stdin.gets.strip
|
837
|
+
end
|
832
838
|
|
833
839
|
def require_config
|
834
840
|
unless @login && @token
|
@@ -837,6 +843,7 @@ class Gitcycle
|
|
837
843
|
puts "Have you set up this repository at http://gitcycle.com?\n".yellow
|
838
844
|
exit
|
839
845
|
end
|
846
|
+
true
|
840
847
|
end
|
841
848
|
|
842
849
|
def require_git
|
@@ -845,34 +852,30 @@ class Gitcycle
|
|
845
852
|
puts "Are you sure you are in a git repository?\n".yellow
|
846
853
|
exit
|
847
854
|
end
|
855
|
+
true
|
848
856
|
end
|
849
857
|
|
850
|
-
def
|
851
|
-
FileUtils.mkdir_p(File.dirname(@config_path))
|
852
|
-
File.open(@config_path, 'w') do |f|
|
853
|
-
f.write(YAML.dump(@config))
|
854
|
-
end
|
855
|
-
end
|
856
|
-
|
857
|
-
def q(question, extra='')
|
858
|
-
puts "#{question.yellow}#{extra}"
|
859
|
-
$input ? $input.shift : $stdin.gets.strip
|
860
|
-
end
|
861
|
-
|
862
|
-
def run(cmd)
|
858
|
+
def run(cmd, options={})
|
863
859
|
if ENV['RUN'] == '0'
|
864
860
|
puts cmd
|
865
861
|
else
|
866
|
-
`#{cmd} 2>&1`
|
862
|
+
output = `#{cmd} 2>&1`
|
867
863
|
end
|
868
|
-
|
869
|
-
|
870
|
-
|
871
|
-
|
872
|
-
if $? != 0
|
873
|
-
puts "The last command was supposed to run without error, but it didn't :(\n".red
|
864
|
+
if options[:catch] != false && errored?(output)
|
865
|
+
puts "#{output}\n\n"
|
866
|
+
puts "Gitcycle encountered an error when running the last command:".red
|
867
|
+
puts " #{cmd}\n"
|
874
868
|
puts "Please copy this session's output and send it to gitcycle@bleacherreport.com.\n".yellow
|
875
869
|
exit
|
870
|
+
else
|
871
|
+
output
|
872
|
+
end
|
873
|
+
end
|
874
|
+
|
875
|
+
def save_config
|
876
|
+
FileUtils.mkdir_p(File.dirname(@config_path))
|
877
|
+
File.open(@config_path, 'w') do |f|
|
878
|
+
f.write(YAML.dump(@config))
|
876
879
|
end
|
877
880
|
end
|
878
881
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitcycle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.26
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cucumber
|