redmine_stagecoach 0.6.12 → 0.6.13
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/bin/stagecoach +32 -10
- data/lib/stagecoach/command_line.rb +1 -0
- data/lib/stagecoach/git.rb +14 -2
- data/lib/stagecoach/redmine.rb +1 -1
- data/redmine_stagecoach.gemspec +1 -1
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.13
|
data/bin/stagecoach
CHANGED
@@ -56,13 +56,6 @@ module Stagecoach
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
|
60
|
-
# Set up redmine client config.
|
61
|
-
RedmineApi::Client.instance_eval do
|
62
|
-
self.site = config["redmine_site"]
|
63
|
-
self.user = config["redmine_api_key"]
|
64
|
-
end
|
65
|
-
|
66
59
|
# Checks for uncommitted/unstashed changes and aborts if present.
|
67
60
|
if Git.changes != ''
|
68
61
|
puts "You have uncommitted changes:".red
|
@@ -72,10 +65,39 @@ module Stagecoach
|
|
72
65
|
exit
|
73
66
|
end
|
74
67
|
|
68
|
+
|
69
|
+
# ------------------------------------------------------------------
|
70
|
+
# Git branch operations: list, cleanup
|
71
|
+
# ------------------------------------------------------------------
|
72
|
+
|
73
|
+
if opts[:list]
|
74
|
+
CommandLine.line_break
|
75
|
+
puts "Local Git Branches created with Stagecoach:"
|
76
|
+
puts "%s = already merged into master" % "Green".green
|
77
|
+
puts "%s = not merged into master" % "Red".red
|
78
|
+
CommandLine.line_break
|
79
|
+
local_stagecoach_branches = {}
|
80
|
+
config.each { |k,v| local_stagecoach_branches[k] = v unless k =~ /redmine_site|redmine_api_key|redmine_user_id/}
|
81
|
+
local_stagecoach_branches.keys.sort.each do |branch_name|
|
82
|
+
branch_attributes = local_stagecoach_branches[branch_name]
|
83
|
+
|
84
|
+
if Git.branches.select { |a| a.match(/\W+#{branch_name}/) }
|
85
|
+
puts Git.branch_merged_to_master?(branch_name) ? branch_name.green : branch_name.red
|
86
|
+
end
|
87
|
+
end
|
88
|
+
exit
|
89
|
+
end
|
90
|
+
|
75
91
|
# ------------------------------------------------------------------
|
76
92
|
# Initial stage - set up branch and git issue.
|
77
93
|
# ------------------------------------------------------------------
|
78
94
|
|
95
|
+
# Set up redmine client config.
|
96
|
+
RedmineApi::Client.instance_eval do
|
97
|
+
self.site = config["redmine_site"]
|
98
|
+
self.user = config["redmine_api_key"]
|
99
|
+
end
|
100
|
+
|
79
101
|
unless opts[:deploy] or opts[:push]
|
80
102
|
|
81
103
|
# If no issue argument has been given.
|
@@ -183,10 +205,10 @@ module Stagecoach
|
|
183
205
|
|
184
206
|
# Issue handling.
|
185
207
|
if opts[:github]
|
186
|
-
config[Git.current_branch] = {
|
208
|
+
config[Git.current_branch] = {'github_issue' => opts[:github]}
|
187
209
|
#TODO check that github issue is not assigned to somebody already
|
188
210
|
elsif opts[:redmine]
|
189
|
-
config[Git.current_branch] = {
|
211
|
+
config[Git.current_branch] = {'redmine_issue' => redmine_issue_number}
|
190
212
|
end
|
191
213
|
|
192
214
|
# Set up the related issue for this branch.
|
@@ -203,7 +225,7 @@ module Stagecoach
|
|
203
225
|
Git.assign_issue_to_me(github_issue_id)
|
204
226
|
|
205
227
|
# Save it so we can reference it in commits using the magic of git hooks!
|
206
|
-
config[Git.current_branch] = {
|
228
|
+
config[Git.current_branch] = {'github_issue' => github_issue_id, 'redmine_issue' => redmine_issue_number}
|
207
229
|
|
208
230
|
end
|
209
231
|
|
@@ -30,6 +30,7 @@ For more info see the readme at https://github.com/omnikron/stagecoach#readme
|
|
30
30
|
opt :deploy, "Use this option to deploy from your current branch to any branch you choose, eg. stagecoach -d staging", :type => :string
|
31
31
|
opt :from, "Use this option to set the branch you want to branch off from. Default is master", :type => :string, :default => "master"
|
32
32
|
opt :github, "Enter your github issue number here, eg. stagecoach -g 1234 (optional)", :type => :string
|
33
|
+
opt :list, "Use this to list local branches which you have created with Stagecoach"
|
33
34
|
opt :push, "Use this option to push your changes to your remote branch (will be created if necessary)"
|
34
35
|
opt :redmine, "Enter your redmine/planio issue number here, eg. stagecoach -r 1234 (optional)", :type => :string
|
35
36
|
opt :setup, "Use this the first time you run stagecoach to save your redmine repository and api key"
|
data/lib/stagecoach/git.rb
CHANGED
@@ -2,7 +2,7 @@ module Stagecoach
|
|
2
2
|
class Git
|
3
3
|
class << self
|
4
4
|
def branches
|
5
|
-
`git branch`.split("\n")
|
5
|
+
`git branch`.split("\n").each {|a| a.lstrip! }
|
6
6
|
end
|
7
7
|
|
8
8
|
def global_config(header, config)
|
@@ -29,6 +29,13 @@ module Stagecoach
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
+
def branch_merged_to_master?(branch)
|
33
|
+
list = `git branch --merged`.split("\n").collect(&:strip)
|
34
|
+
list << Git.current_branch
|
35
|
+
list.include?(branch.strip)
|
36
|
+
end
|
37
|
+
|
38
|
+
|
32
39
|
def correct_branch?
|
33
40
|
CommandLine.line_break
|
34
41
|
print "You are currently in local branch: #{Git.current_branch.red} \nAre these details correct? ([Y]es or [Q]uit): "
|
@@ -74,7 +81,12 @@ module Stagecoach
|
|
74
81
|
Git.change_to_branch(to_branch)
|
75
82
|
puts `git pull origin #{to_branch}`
|
76
83
|
puts `git merge #{from_branch}`
|
77
|
-
|
84
|
+
begin
|
85
|
+
raise 'Merge failed' if $?.exitstatus != 0
|
86
|
+
rescue
|
87
|
+
puts $!.class.name + ": " + $!.message # $! refers to the last error object
|
88
|
+
puts "Please resolve the merge conflict and deploy again. Exiting..."
|
89
|
+
end
|
78
90
|
end
|
79
91
|
|
80
92
|
def push(branch)
|
data/lib/stagecoach/redmine.rb
CHANGED
@@ -25,7 +25,7 @@ module Stagecoach
|
|
25
25
|
# RedmineApi::Client.site + "/issues/" + issue.id
|
26
26
|
#
|
27
27
|
# but this caused URI merge errors on some setups.
|
28
|
-
"#{RedmineApi::Client.site}
|
28
|
+
"#{RedmineApi::Client.site}issues/#{issue.id}"
|
29
29
|
end
|
30
30
|
|
31
31
|
# Open the issue in a browser.
|
data/redmine_stagecoach.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redmine_stagecoach
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.13
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -168,7 +168,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
168
168
|
version: '0'
|
169
169
|
segments:
|
170
170
|
- 0
|
171
|
-
hash:
|
171
|
+
hash: 2934984471721959034
|
172
172
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
173
|
none: false
|
174
174
|
requirements:
|