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 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
- run_cmd "socialcast share '#worklog integrating #{branch} into prototype #scgitx'" unless is_quiet
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
- run_cmd "socialcast share '#worklog promoting #{branch} into staging #scgitx'" unless is_quiet
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
- run_cmd "socialcast share '#worklog releasing #{branch} to production #scgitx'" unless is_quiet
20
+ share "#worklog releasing #{branch} to production #scgitx"
@@ -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
- is_quiet = ARGV.delete("--quiet") || ARGV.delete("-q")
13
- run_cmd "socialcast share '#worklog resetting prototype branch #scgitx'" unless is_quiet
13
+ share "#worklog resetting prototype branch #scgitx"
@@ -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
- is_quiet = ARGV.delete("--quiet") || ARGV.delete("-q")
11
- run_cmd "socialcast share '#worklog resetting staging branch #scgitx'" unless is_quiet
11
+ share "#worklog resetting staging branch #scgitx"
@@ -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
- is_quiet = ARGV.delete("--quiet") || ARGV.delete("-q")
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
- run_cmd "socialcast share '@SocialcastDevelopers #reviewrequest for #{branch} #scgitx' --url #{url}" unless is_quiet
19
+ share "@SocialcastDevelopers #reviewrequest for #{branch} #scgitx", url
data/bin/git-share CHANGED
@@ -5,6 +5,7 @@
5
5
  # git share
6
6
 
7
7
  require File.join(File.dirname(__FILE__), '..', 'lib', 'socialcast-git-extensions.rb')
8
- include Socialcast
8
+ include Socialcast::Gitx
9
+ include Socialcast::Git
9
10
 
10
11
  run_cmd "grb publish #{current_branch}"
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
- run_cmd "socialcast share '#worklog starting work on #{branch_name} #scgitx'" unless is_quiet
25
+ share "#worklog starting work on #{branch_name} #scgitx"
data/bin/git-track 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
  branch = current_branch
7
8
 
data/bin/git-update 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
  branch = current_branch
7
8
 
@@ -1,64 +1,20 @@
1
- require 'grit'
2
1
  require 'highline/import'
3
- require 'rest_client'
4
- require 'json'
2
+ require 'socialcast-git-extensions/git'
3
+ require 'socialcast-git-extensions/github'
5
4
 
6
5
  module Socialcast
7
6
  module Gitx
8
-
9
- end
10
-
11
- def current_branch
12
- repo = Grit::Repo.new(Dir.pwd)
13
- Grit::Head.current(repo).name
14
- end
15
-
16
- def run_cmd(cmd)
17
- HighLine.say "\n> <%= color('#{cmd.gsub("'", '')}', :red) %>"
18
- raise "#{cmd} failed" unless system cmd
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
@@ -1,7 +1,5 @@
1
1
  module Socialcast
2
- module Git
3
- module Extensions
4
- VERSION = "2.2.1"
5
- end
2
+ module Gitx
3
+ VERSION = "2.2.2"
6
4
  end
7
5
  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::Git::Extensions::VERSION
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: 5
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 2
9
- - 1
10
- version: 2.2.1
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