socialcast-git-extensions 0.11.2 → 0.12.0
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.
- data/VERSION +1 -1
- data/bin/git-integrate +3 -4
- data/bin/git-promote +3 -4
- data/bin/git-release +3 -4
- data/lib/socialcast-git-extensions.rb +34 -12
- data/socialcast-git-extensions.gemspec +2 -2
- metadata +5 -5
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.12.0
|
data/bin/git-integrate
CHANGED
@@ -3,13 +3,12 @@
|
|
3
3
|
require File.join(File.dirname(__FILE__), '..', 'lib', 'socialcast-git-extensions.rb')
|
4
4
|
include Socialcast
|
5
5
|
|
6
|
-
|
7
|
-
raise 'JIRA ticket is required in order to move into staging' unless ticket
|
6
|
+
assert_tickets_provided
|
8
7
|
|
9
8
|
run_cmd 'git update'
|
10
9
|
|
11
10
|
branch = current_branch
|
12
11
|
integrate(branch, 'staging')
|
13
12
|
|
14
|
-
|
15
|
-
|
13
|
+
update_tickets :branch => branch, :in_staging => true
|
14
|
+
start_tickets
|
data/bin/git-promote
CHANGED
@@ -3,15 +3,14 @@
|
|
3
3
|
require File.join(File.dirname(__FILE__), '..', 'lib', 'socialcast-git-extensions.rb')
|
4
4
|
include Socialcast
|
5
5
|
|
6
|
-
|
7
|
-
raise 'JIRA ticket is required in order to move into next_release' unless ticket
|
6
|
+
assert_tickets_provided
|
8
7
|
|
9
8
|
run_cmd 'git update'
|
10
9
|
|
11
10
|
branch = current_branch
|
12
11
|
integrate(branch, 'next_release')
|
13
12
|
|
14
|
-
|
15
|
-
|
13
|
+
update_tickets :branch => branch, :in_staging => true
|
14
|
+
resolve_tickets
|
16
15
|
|
17
16
|
integrate(branch, 'staging')
|
data/bin/git-release
CHANGED
@@ -7,8 +7,7 @@ include Socialcast
|
|
7
7
|
branch = current_branch
|
8
8
|
raise "Cannot release reserved branch" if %w{master staging}.include?(branch)
|
9
9
|
|
10
|
-
|
11
|
-
raise 'JIRA ticket is required in order to release this branch' unless ticket
|
10
|
+
assert_tickets_provided
|
12
11
|
|
13
12
|
exit unless Readline.readline("This will release #{branch} to production. Are you sure (y/n)? ") == 'y'
|
14
13
|
|
@@ -16,8 +15,8 @@ run_cmd 'git update'
|
|
16
15
|
|
17
16
|
integrate branch, 'master'
|
18
17
|
|
19
|
-
|
20
|
-
|
18
|
+
update_tickets :branch => branch
|
19
|
+
release_tickets
|
21
20
|
|
22
21
|
run_cmd "git promote #{ticket}"
|
23
22
|
run_cmd "git integrate #{ticket}"
|
@@ -44,25 +44,47 @@ module Socialcast
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
def
|
48
|
-
|
49
|
-
fields << Jira4R::V2::RemoteFieldValue.new(GIT_BRANCH_FIELD, [options[:branch]]) if options[:branch]
|
50
|
-
fields << Jira4R::V2::RemoteFieldValue.new(IN_STAGING_FIELD, ['true']) if options[:in_staging]
|
51
|
-
jira_server.updateIssue ticket, fields
|
47
|
+
def assert_tickets_provided
|
48
|
+
raise "JIRA ticket is required to run this process" unless tickets.any?
|
52
49
|
end
|
53
|
-
def
|
54
|
-
|
50
|
+
def tickets
|
51
|
+
ARGV
|
55
52
|
end
|
56
|
-
def
|
57
|
-
|
53
|
+
def update_tickets(options = {})
|
54
|
+
tickets.each do |ticket|
|
55
|
+
fields = []
|
56
|
+
fields << Jira4R::V2::RemoteFieldValue.new(GIT_BRANCH_FIELD, [options[:branch]]) if options[:branch]
|
57
|
+
fields << Jira4R::V2::RemoteFieldValue.new(IN_STAGING_FIELD, ['true']) if options[:in_staging]
|
58
|
+
begin
|
59
|
+
jira_server.updateIssue ticket, fields
|
60
|
+
rescue => e
|
61
|
+
puts "Error updating ticket: #{e.message}"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
def start_tickets
|
66
|
+
tickets.each do |ticket|
|
67
|
+
transition_ticket_if_has_status ticket, 1, 11
|
68
|
+
end
|
58
69
|
end
|
59
|
-
def
|
60
|
-
|
70
|
+
def resolve_tickets
|
71
|
+
tickets.each do |ticket|
|
72
|
+
transition_ticket_if_has_status ticket, 3, 21
|
73
|
+
end
|
74
|
+
end
|
75
|
+
def release_tickets
|
76
|
+
tickets.each do |ticket|
|
77
|
+
transition_ticket_if_has_status ticket, 5, 101
|
78
|
+
end
|
61
79
|
end
|
62
80
|
def transition_ticket_if_has_status(ticket, status, action)
|
63
81
|
issue = jira_server.getIssue ticket
|
64
82
|
if issue.status == status.to_s
|
65
|
-
|
83
|
+
begin
|
84
|
+
jira_server.progressWorkflowAction ticket, action.to_s, []
|
85
|
+
rescue => e
|
86
|
+
puts "Error updating ticket: #{e.message}"
|
87
|
+
end
|
66
88
|
end
|
67
89
|
end
|
68
90
|
def associated_tickets(branch)
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{socialcast-git-extensions}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.12.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ryan Sonnek"]
|
12
|
-
s.date = %q{2010-07-
|
12
|
+
s.date = %q{2010-07-21}
|
13
13
|
s.description = %q{git extension scripts for socialcast workflow}
|
14
14
|
s.email = %q{ryan@socialcast.com}
|
15
15
|
s.executables = ["git-integrate", "git-promote", "git-prune-merged", "git-release", "git-release-pending", "git-reset-staging", "git-track", "git-update", "git-wtf"]
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: socialcast-git-extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 47
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 12
|
9
|
+
- 0
|
10
|
+
version: 0.12.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ryan Sonnek
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-07-
|
18
|
+
date: 2010-07-21 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|