socialcast-git-extensions 2.2.1 → 2.2.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.
- data/bin/git-integrate +3 -4
- data/bin/git-promote +3 -4
- data/bin/git-prune-merged +2 -1
- data/bin/git-release +3 -4
- data/bin/git-reset-prototype +3 -3
- data/bin/git-reset-staging +3 -3
- data/bin/git-reviewrequest +4 -4
- data/bin/git-share +2 -1
- data/bin/git-start +3 -4
- data/bin/git-track +2 -1
- data/bin/git-update +2 -1
- data/lib/socialcast-git-extensions.rb +13 -57
- data/lib/socialcast-git-extensions/git.rb +52 -0
- data/lib/socialcast-git-extensions/github.rb +14 -0
- data/lib/socialcast-git-extensions/version.rb +2 -4
- data/socialcast-git-extensions.gemspec +1 -1
- metadata +5 -3
data/bin/git-integrate
CHANGED
@@ -5,13 +5,12 @@
|
|
5
5
|
# git integrate <ticket_id> <ticket_id2>...
|
6
6
|
|
7
7
|
require File.join(File.dirname(__FILE__), '..', 'lib', 'socialcast-git-extensions.rb')
|
8
|
-
include Socialcast
|
9
|
-
|
10
|
-
is_quiet = ARGV.delete("--quiet") || ARGV.delete("-q")
|
8
|
+
include Socialcast::Gitx
|
9
|
+
include Socialcast::Git
|
11
10
|
|
12
11
|
branch = current_branch
|
13
12
|
|
14
13
|
run_cmd 'git update'
|
15
14
|
integrate(branch, 'prototype')
|
16
15
|
|
17
|
-
|
16
|
+
share "#worklog integrating #{branch} into prototype #scgitx"
|
data/bin/git-promote
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require File.join(File.dirname(__FILE__), '..', 'lib', 'socialcast-git-extensions.rb')
|
4
|
-
include Socialcast
|
5
|
-
|
6
|
-
is_quiet = ARGV.delete("--quiet") || ARGV.delete("-q")
|
4
|
+
include Socialcast::Gitx
|
5
|
+
include Socialcast::Git
|
7
6
|
|
8
7
|
branch = current_branch
|
9
8
|
|
@@ -14,4 +13,4 @@ integrate(branch, 'staging')
|
|
14
13
|
integrate('staging', 'prototype')
|
15
14
|
run_cmd "git checkout #{branch}"
|
16
15
|
|
17
|
-
|
16
|
+
share "#worklog promoting #{branch} into staging #scgitx"
|
data/bin/git-prune-merged
CHANGED
@@ -4,7 +4,8 @@
|
|
4
4
|
#usage -r --remote to prune remote branches
|
5
5
|
|
6
6
|
require File.join(File.dirname(__FILE__), '..', 'lib', 'socialcast-git-extensions.rb')
|
7
|
-
include Socialcast
|
7
|
+
include Socialcast::Gitx
|
8
|
+
include Socialcast::Git
|
8
9
|
|
9
10
|
remote = ARGV.delete("--remote") || ARGV.delete("-r")
|
10
11
|
|
data/bin/git-release
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require File.join(File.dirname(__FILE__), '..', 'lib', 'socialcast-git-extensions.rb')
|
4
|
-
include Socialcast
|
4
|
+
include Socialcast::Gitx
|
5
|
+
include Socialcast::Git
|
5
6
|
|
6
7
|
branch = current_branch
|
7
8
|
abort("Cannot release reserved branch") if %w{master staging prototype}.include?(branch)
|
8
9
|
|
9
|
-
is_quiet = ARGV.delete("--quiet") || ARGV.delete("-q")
|
10
|
-
|
11
10
|
exit unless HighLine.agree("<%= color('Release #{branch} to production? (y/n)', :green) %>")
|
12
11
|
|
13
12
|
run_cmd 'git update'
|
@@ -18,4 +17,4 @@ integrate 'staging', 'prototype'
|
|
18
17
|
run_cmd "git checkout master"
|
19
18
|
run_cmd "grb rm #{branch}"
|
20
19
|
|
21
|
-
|
20
|
+
share "#worklog releasing #{branch} to production #scgitx"
|
data/bin/git-reset-prototype
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require File.join(File.dirname(__FILE__), '..', 'lib', 'socialcast-git-extensions.rb')
|
4
|
-
include Socialcast
|
4
|
+
include Socialcast::Gitx
|
5
|
+
include Socialcast::Git
|
5
6
|
|
6
7
|
head_branch = ARGV.first || 'master'
|
7
8
|
reset_branch('prototype', head_branch)
|
@@ -9,5 +10,4 @@ reset_branch('last_known_good_prototype', head_branch)
|
|
9
10
|
|
10
11
|
HighLine.say "\n<%= color('Updating the following tickets to no longer be in prototype:', :red) %>"
|
11
12
|
|
12
|
-
|
13
|
-
run_cmd "socialcast share '#worklog resetting prototype branch #scgitx'" unless is_quiet
|
13
|
+
share "#worklog resetting prototype branch #scgitx"
|
data/bin/git-reset-staging
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require File.join(File.dirname(__FILE__), '..', 'lib', 'socialcast-git-extensions.rb')
|
4
|
-
include Socialcast
|
4
|
+
include Socialcast::Gitx
|
5
|
+
include Socialcast::Git
|
5
6
|
|
6
7
|
head_branch = ARGV.first || 'last_known_good_staging'
|
7
8
|
reset_branch('staging', head_branch)
|
8
9
|
reset_branch('last_known_good_staging', head_branch)
|
9
10
|
|
10
|
-
|
11
|
-
run_cmd "socialcast share '#worklog resetting staging branch #scgitx'" unless is_quiet
|
11
|
+
share "#worklog resetting staging branch #scgitx"
|
data/bin/git-reviewrequest
CHANGED
@@ -5,9 +5,9 @@
|
|
5
5
|
# git reviewrequest
|
6
6
|
|
7
7
|
require File.join(File.dirname(__FILE__), '..', 'lib', 'socialcast-git-extensions.rb')
|
8
|
-
include Socialcast
|
9
|
-
|
10
|
-
|
8
|
+
include Socialcast::Gitx
|
9
|
+
include Socialcast::Git
|
10
|
+
include Socialcast::Github
|
11
11
|
|
12
12
|
branch = current_branch
|
13
13
|
username = `git config -z --global --get github.user`.strip
|
@@ -16,4 +16,4 @@ password = HighLine.ask("Github password: ") { |q| q.echo = false }
|
|
16
16
|
run_cmd 'git update'
|
17
17
|
|
18
18
|
url = create_pull_request username, password, branch
|
19
|
-
|
19
|
+
share "@SocialcastDevelopers #reviewrequest for #{branch} #scgitx", url
|
data/bin/git-share
CHANGED
data/bin/git-start
CHANGED
@@ -3,9 +3,8 @@
|
|
3
3
|
#start a new git branch with latest changes from master
|
4
4
|
|
5
5
|
require File.join(File.dirname(__FILE__), '..', 'lib', 'socialcast-git-extensions.rb')
|
6
|
-
include Socialcast
|
7
|
-
|
8
|
-
is_quiet = ARGV.delete("--quiet") || ARGV.delete("-q")
|
6
|
+
include Socialcast::Gitx
|
7
|
+
include Socialcast::Git
|
9
8
|
|
10
9
|
unless branch_name = ARGV.first
|
11
10
|
example_branch = %w{ api-fix-invalid-auth desktop-cleanup-avatar-markup share-form-add-edit-link }.sort_by { rand }.first
|
@@ -23,4 +22,4 @@ run_cmd 'git checkout master'
|
|
23
22
|
run_cmd 'git pull'
|
24
23
|
run_cmd "git checkout -b #{branch_name}"
|
25
24
|
|
26
|
-
|
25
|
+
share "#worklog starting work on #{branch_name} #scgitx"
|
data/bin/git-track
CHANGED
data/bin/git-update
CHANGED
@@ -1,64 +1,20 @@
|
|
1
|
-
require 'grit'
|
2
1
|
require 'highline/import'
|
3
|
-
require '
|
4
|
-
require '
|
2
|
+
require 'socialcast-git-extensions/git'
|
3
|
+
require 'socialcast-git-extensions/github'
|
5
4
|
|
6
5
|
module Socialcast
|
7
6
|
module Gitx
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
def branches(options = {})
|
22
|
-
branches = []
|
23
|
-
reserved_branches = %w{ HEAD master last_known_good_master staging last_known_good_staging next_release last_known_good_next_release }
|
24
|
-
args = []
|
25
|
-
args << '-r' if options[:remote]
|
26
|
-
args << '--merged' if options[:merged]
|
27
|
-
output = `git branch #{args.join(' ')}`.split("\n")
|
28
|
-
output.each do |branch|
|
29
|
-
branch = branch.gsub(/\*/, '').strip.split(' ').first
|
30
|
-
branch = branch.split('/').last if options[:remote]
|
31
|
-
branches << branch unless reserved_branches.include?(branch)
|
7
|
+
class << self
|
8
|
+
def run_cmd(cmd)
|
9
|
+
HighLine.say "\n> <%= color('#{cmd.gsub("'", '')}', :red) %>"
|
10
|
+
raise "#{cmd} failed" unless system cmd
|
11
|
+
end
|
12
|
+
def share(message, url = nil)
|
13
|
+
return if ARGV.delete("--quiet") || ARGV.delete("-q")
|
14
|
+
cmd = "socialcast share '#{message}'"
|
15
|
+
cmd += " --url #{url}" if url
|
16
|
+
run_cmd cmd
|
17
|
+
end
|
32
18
|
end
|
33
|
-
branches
|
34
|
-
end
|
35
|
-
def reset_branch(branch, head_branch = 'master')
|
36
|
-
return if branch == head_branch
|
37
|
-
run_cmd "git checkout #{head_branch}"
|
38
|
-
run_cmd "git pull"
|
39
|
-
run_cmd "git branch -D #{branch}" rescue nil
|
40
|
-
run_cmd "git push origin :#{branch}" rescue nil
|
41
|
-
run_cmd "git checkout -b #{branch}"
|
42
|
-
run_cmd "grb publish #{branch}"
|
43
|
-
run_cmd "git checkout #{head_branch}"
|
44
|
-
end
|
45
|
-
|
46
|
-
def integrate(branch, destination_branch = 'staging')
|
47
|
-
HighLine.say "integrating <%= color('#{branch}', :green) %> into <%= color('#{destination_branch}', :green) %>"
|
48
|
-
run_cmd "git remote prune origin"
|
49
|
-
unless destination_branch == 'master'
|
50
|
-
run_cmd "git branch -D #{destination_branch}" rescue nil
|
51
|
-
run_cmd "grb track #{destination_branch}"
|
52
|
-
end
|
53
|
-
run_cmd "git checkout #{destination_branch}"
|
54
|
-
run_cmd "git pull . #{branch}"
|
55
|
-
run_cmd "git push origin HEAD"
|
56
|
-
|
57
|
-
run_cmd "git checkout #{branch}"
|
58
|
-
end
|
59
|
-
def create_pull_request(username, password, branch)
|
60
|
-
response = RestClient.post "https://#{username}:#{password}@api.github.com/repos/socialcast/socialcast/pulls", {:title => branch, :base => 'master', :head => branch}.to_json, :accept => :json, :content_type => :json
|
61
|
-
data = JSON.parse response.body
|
62
|
-
url = data['html_url']
|
63
19
|
end
|
64
20
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'grit'
|
2
|
+
|
3
|
+
module Socialcast
|
4
|
+
module Git
|
5
|
+
include Socialcast::Gitx
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def current_branch
|
9
|
+
repo = Grit::Repo.new(Dir.pwd)
|
10
|
+
Grit::Head.current(repo).name
|
11
|
+
end
|
12
|
+
def branches(options = {})
|
13
|
+
branches = []
|
14
|
+
reserved_branches = %w{ HEAD master last_known_good_master staging last_known_good_staging next_release last_known_good_next_release }
|
15
|
+
args = []
|
16
|
+
args << '-r' if options[:remote]
|
17
|
+
args << '--merged' if options[:merged]
|
18
|
+
output = `git branch #{args.join(' ')}`.split("\n")
|
19
|
+
output.each do |branch|
|
20
|
+
branch = branch.gsub(/\*/, '').strip.split(' ').first
|
21
|
+
branch = branch.split('/').last if options[:remote]
|
22
|
+
branches << branch unless reserved_branches.include?(branch)
|
23
|
+
end
|
24
|
+
branches
|
25
|
+
end
|
26
|
+
def reset_branch(branch, head_branch = 'master')
|
27
|
+
return if branch == head_branch
|
28
|
+
run_cmd "git checkout #{head_branch}"
|
29
|
+
run_cmd "git pull"
|
30
|
+
run_cmd "git branch -D #{branch}" rescue nil
|
31
|
+
run_cmd "git push origin :#{branch}" rescue nil
|
32
|
+
run_cmd "git checkout -b #{branch}"
|
33
|
+
run_cmd "grb publish #{branch}"
|
34
|
+
run_cmd "git checkout #{head_branch}"
|
35
|
+
end
|
36
|
+
|
37
|
+
def integrate(branch, destination_branch = 'staging')
|
38
|
+
HighLine.say "integrating <%= color('#{branch}', :green) %> into <%= color('#{destination_branch}', :green) %>"
|
39
|
+
run_cmd "git remote prune origin"
|
40
|
+
unless destination_branch == 'master'
|
41
|
+
run_cmd "git branch -D #{destination_branch}" rescue nil
|
42
|
+
run_cmd "grb track #{destination_branch}"
|
43
|
+
end
|
44
|
+
run_cmd "git checkout #{destination_branch}"
|
45
|
+
run_cmd "git pull . #{branch}"
|
46
|
+
run_cmd "git push origin HEAD"
|
47
|
+
|
48
|
+
run_cmd "git checkout #{branch}"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rest_client'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module Socialcast
|
5
|
+
module Github
|
6
|
+
class << self
|
7
|
+
def create_pull_request(username, password, branch)
|
8
|
+
response = RestClient.post "https://#{username}:#{password}@api.github.com/repos/socialcast/socialcast/pulls", {:title => branch, :base => 'master', :head => branch}.to_json, :accept => :json, :content_type => :json
|
9
|
+
data = JSON.parse response.body
|
10
|
+
url = data['html_url']
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -4,7 +4,7 @@ require "socialcast-git-extensions/version"
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "socialcast-git-extensions"
|
7
|
-
s.version = Socialcast::
|
7
|
+
s.version = Socialcast::Gitx::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
9
|
s.authors = ["Ryan Sonnek"]
|
10
10
|
s.email = ["ryan@socialcast.com"]
|
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: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 2.2.
|
9
|
+
- 2
|
10
|
+
version: 2.2.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ryan Sonnek
|
@@ -161,6 +161,8 @@ files:
|
|
161
161
|
- bin/git-update
|
162
162
|
- bin/git-wtf
|
163
163
|
- lib/socialcast-git-extensions.rb
|
164
|
+
- lib/socialcast-git-extensions/git.rb
|
165
|
+
- lib/socialcast-git-extensions/github.rb
|
164
166
|
- lib/socialcast-git-extensions/version.rb
|
165
167
|
- socialcast-git-extensions.gemspec
|
166
168
|
- test/helper.rb
|