thegarage-gitx 2.3.0.pre1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f40f446859a3964035cde6606580ad207ceee9c5
4
- data.tar.gz: 56f224ffe1dd7fde762fa726ed9a3a5f166f1679
3
+ metadata.gz: 6700841a12c4d93f59977bba1870d434d2cb6610
4
+ data.tar.gz: 6a4230ce7ffe3ffe7b9367b58f53db83d2fd5631
5
5
  SHA512:
6
- metadata.gz: 9f77fe954ce841e57c90b0d4ff8403363e2f940c9bbb80af5205186f3924242b30195f50aa30a8710843ea035c2713b8b0e798ce09db22dda81ec0b1a975fae5
7
- data.tar.gz: 415cb3c76b07da640e028275b07eacb857e11cbbaab02cac28ef78e9c52b63e9585012e4513a64b1d54de629335225d7368685c14ea52a27c6dcc0f39b1ed676
6
+ metadata.gz: 77738d6c2dbddd45b473dbda6c69bd866774a50242be7e48e8d21d2170ffa7de31987b7c7f13172b9da4633df44a997abeaf54ebf31532db578a4811b04c33d4
7
+ data.tar.gz: d8726869143d111f1975b89b9a247966837c7b16ffe65c2a680c9b9f7413df30aed2ffd35459f7319db05072256fba10cd1e78117c2f77ee6a90a741a98cea80
data/README.md CHANGED
@@ -34,6 +34,7 @@ in order to re-assign pull requests.
34
34
  options:
35
35
  * `--assign` or `-a` = assign pull request to github user
36
36
  * `--open` or `-o` = open pull request in default web browser.
37
+ * `--bump` or `-b` = bump an existing pull request by posting a comment to re-review new changes
37
38
 
38
39
 
39
40
  ## git release
@@ -1,7 +1,6 @@
1
1
  require 'thor'
2
2
  require 'pathname'
3
3
  require 'rugged'
4
- require 'English'
5
4
  require 'thegarage/gitx'
6
5
 
7
6
  module Thegarage
@@ -37,16 +36,6 @@ module Thegarage
37
36
  repo.branches.find(&:head?)
38
37
  end
39
38
 
40
- # execute a shell command and raise an error if non-zero exit code is returned
41
- # return the string output from the command
42
- def run_cmd(cmd, options = {})
43
- say "$ #{cmd}"
44
- output = `#{cmd}`
45
- success = $CHILD_STATUS.to_i == 0
46
- fail "#{cmd} failed" unless success || options[:allow_failure]
47
- output
48
- end
49
-
50
39
  def aggregate_branch?(branch)
51
40
  AGGREGATE_BRANCHES.include?(branch)
52
41
  end
@@ -54,21 +43,6 @@ module Thegarage
54
43
  def assert_not_protected_branch!(branch, action)
55
44
  raise "Cannot #{action} reserved branch" if RESERVED_BRANCHES.include?(branch) || aggregate_branch?(branch)
56
45
  end
57
-
58
- # retrieve a list of branches
59
- def branches(options = {})
60
- branches = []
61
- args = []
62
- args << '-r' if options[:remote]
63
- args << "--merged #{options[:merged].is_a?(String) ? options[:merged] : ''}" if options[:merged]
64
- output = `git branch #{args.join(' ')}`.split("\n")
65
- output.each do |branch|
66
- branch = branch.gsub(/\*/, '').strip.split(' ').first
67
- branch = branch.split('/').last if options[:remote]
68
- branches << branch unless RESERVED_BRANCHES.include?(branch)
69
- end
70
- branches.uniq
71
- end
72
46
  end
73
47
  end
74
48
  end
@@ -14,22 +14,32 @@ module Thegarage
14
14
 
15
15
  say "Deleting local and remote branches that have been merged into "
16
16
  say Thegarage::Gitx::BASE_BRANCH, :green
17
- merged_remote_branches.each do |branch|
17
+ merged_branches(remote: true).each do |branch|
18
18
  run_cmd "git push origin --delete #{branch}"
19
19
  end
20
- merged_local_branches.each do |branch|
20
+ merged_branches(remote: false).each do |branch|
21
21
  run_cmd "git branch -d #{branch}"
22
22
  end
23
23
  end
24
24
 
25
25
  private
26
26
 
27
- def merged_local_branches
28
- branches(:merged => true).reject { |b| aggregate_branch?(b) }
29
- end
27
+ # @return list of branches that have been merged
28
+ def merged_branches(options = {})
29
+ args = []
30
+ args << '-r' if options[:remote]
31
+ args << "--merged"
32
+ output = run_cmd("git branch #{args.join(' ')}").split("\n")
33
+ branches = output.map do |branch|
34
+ branch = branch.gsub(/\*/, '').strip.split(' ').first
35
+ branch = branch.split('/').last if options[:remote]
36
+ branch
37
+ end
38
+ branches.uniq!
39
+ branches -= RESERVED_BRANCHES
40
+ branches.reject! { |b| aggregate_branch?(b) }
30
41
 
31
- def merged_remote_branches
32
- branches(:merged => true, :remote => true).reject { |b| aggregate_branch?(b) }
42
+ branches
33
43
  end
34
44
  end
35
45
  end
@@ -22,7 +22,7 @@ module Thegarage
22
22
  method_option :description, :type => :string, :aliases => '-d', :desc => 'pull request description'
23
23
  method_option :assignee, :type => :string, :aliases => '-a', :desc => 'pull request assignee'
24
24
  method_option :open, :type => :boolean, :aliases => '-o', :desc => 'open the pull request in a web browser'
25
- method_option :bump, :type => :boolean, :aliases => '-b', :desc => 'bump an existing review with a github comment to re-request review'
25
+ method_option :bump, :type => :boolean, :aliases => '-b', :desc => 'bump an existing pull request by posting a comment to re-review new changes'
26
26
  # @see http://developer.github.com/v3/pulls/
27
27
  def review
28
28
  fail 'Github authorization token not found' unless authorization_token
@@ -1,5 +1,17 @@
1
+ require 'English'
2
+
1
3
  class Thor
2
4
  module Actions
5
+ # execute a shell command and raise an error if non-zero exit code is returned
6
+ # return the string output from the command
7
+ def run_cmd(cmd, options = {})
8
+ say "$ #{cmd}"
9
+ output = `#{cmd}`
10
+ success = $CHILD_STATUS.to_i == 0
11
+ fail "#{cmd} failed" unless success || options[:allow_failure]
12
+ output
13
+ end
14
+
3
15
  # launch configured editor to retreive message/string
4
16
  # see http://osdir.com/ml/ruby-talk/2010-06/msg01424.html
5
17
  # see https://gist.github.com/rkumar/456809
@@ -1,5 +1,5 @@
1
1
  module Thegarage
2
2
  module Gitx
3
- VERSION = '2.3.0.pre1'
3
+ VERSION = '2.3.0'
4
4
  end
5
5
  end
@@ -20,13 +20,12 @@ describe Thegarage::Gitx::Cli::CleanupCommand do
20
20
  before do
21
21
  allow(cli).to receive(:say)
22
22
 
23
- expect(cli).to receive(:merged_remote_branches).and_return(%w( merged-remote-feature ))
24
- expect(cli).to receive(:merged_local_branches).and_return(%w( merged-local-feature ))
25
-
26
23
  expect(cli).to receive(:run_cmd).with('git checkout master').ordered
27
24
  expect(cli).to receive(:run_cmd).with('git pull').ordered
28
25
  expect(cli).to receive(:run_cmd).with('git remote prune origin').ordered
26
+ expect(cli).to receive(:run_cmd).with('git branch -r --merged').and_return("merged-remote-feature").ordered
29
27
  expect(cli).to receive(:run_cmd).with('git push origin --delete merged-remote-feature').ordered
28
+ expect(cli).to receive(:run_cmd).with('git branch --merged').and_return("merged-local-feature").ordered
30
29
  expect(cli).to receive(:run_cmd).with('git branch -d merged-local-feature').ordered
31
30
 
32
31
  cli.cleanup
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thegarage-gitx
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0.pre1
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Sonnek
@@ -309,9 +309,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
309
309
  version: '0'
310
310
  required_rubygems_version: !ruby/object:Gem::Requirement
311
311
  requirements:
312
- - - ">"
312
+ - - ">="
313
313
  - !ruby/object:Gem::Version
314
- version: 1.3.1
314
+ version: '0'
315
315
  requirements: []
316
316
  rubyforge_project:
317
317
  rubygems_version: 2.2.2