gitx 3.2.0 → 4.1.1

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
  SHA256:
3
- metadata.gz: 96b227336f3e21cebf4f4be03e68b301333a1797e75cdb02aca430ba6fd41652
4
- data.tar.gz: cf5a0a378857a405fa309bbd3539c45d69e2a32b6bc13e2cfe90a0563a8fb185
3
+ metadata.gz: 3794617867e08f0a15468dd3291883d22bed44fa9dfde0350cf120e5c5c8890c
4
+ data.tar.gz: 827802ca75c6a1f4243fa628a12dc3cc1e9b11afef91d587fc9fe4ae4a9b2b6e
5
5
  SHA512:
6
- metadata.gz: 2608e996319f376c8eaa721a924f4b7a5d00788ed9e306df31d2b12aef43868313a4c11144912c0d5aa7e7772d3ca1d649be28f894dbfafef8d18b13a0f147f5
7
- data.tar.gz: a4a8d25ee10ddbc46a19b78ca94f755dbd52a2508c4ccbc48ee04fae5b695317592322289aecc5b6296ab9b3557811d1211aa279716c359b1b28aec18185df49
6
+ metadata.gz: ae00b7739d6b3488d0ae4ae588d776c1a004eeb36167587699d2c0dae2ec49902dfc78d122f1edcab7e9ce47a3cecfd36efe59491bce0d663562058e08975f57
7
+ data.tar.gz: 8727bf623a20f50a6de72088a0e1106e26ccd1ba974d66471e2ed0f8643ffe3c04ec299b6d4343df3816f8c881af3588497e7a2fd9806627c418d461933d24dc
data/CONTRIBUTING.md CHANGED
@@ -25,7 +25,7 @@ Use [Test Driven Development](http://en.wikipedia.org/wiki/Test-driven_developme
25
25
  * Follow [best practices](http://robots.thoughtbot.com/post/48933156625/5-useful-tips-for-a-better-commit-message) for git commit messages to communicate your changes.
26
26
  * Add [ticket references to commits to automatically trigger product management workflows](http://help.sprint.ly/knowledgebase/articles/108139-available-scm-vcs-commands)
27
27
  * Only write the **minimal** amount of code necessary to accomplish the given task.
28
- * Ensure branch stays up-to-date with latest changes that are merged into master by using: `$ git update`
28
+ * Ensure branch stays up-to-date with latest changes that are merged into main by using: `$ git update`
29
29
  * Changes that are not directly related to the current feature should be cherry-picked into their own branch and merged separately.
30
30
 
31
31
  ### Testing Protips™
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Build Status](https://travis-ci.org/wireframe/gitx.png?branch=master)](https://travis-ci.org/wireframe/gitx)
1
+ [![Build Status](https://travis-ci.org/wireframe/gitx.png?branch=main)](https://travis-ci.org/wireframe/gitx)
2
2
  [![Code Coverage](https://coveralls.io/repos/wireframe/gitx/badge.png)](https://coveralls.io/r/wireframe/gitx)
3
3
  [![Code Climate](https://codeclimate.com/github/wireframe/gitx.png)](https://codeclimate.com/github/wireframe/gitx)
4
4
 
@@ -47,7 +47,7 @@ This setting is cleared when a reviewer approves or rejects the pull request.
47
47
 
48
48
  ## git release <feature_branch_name (optional, default: current_branch)
49
49
 
50
- release the feature branch to the base branch (by default, master). This operation will perform the following:
50
+ release the feature branch to the base branch (by default, main). This operation will perform the following:
51
51
 
52
52
  * pull latest code from remote feature branch
53
53
  * pull latest code from the base branch
@@ -5,7 +5,7 @@ require 'gitx/cli/base_command'
5
5
  module Gitx
6
6
  module Cli
7
7
  class CleanupCommand < BaseCommand
8
- desc 'cleanup', 'Cleanup branches that have been merged into master from the repo'
8
+ desc 'cleanup', 'Cleanup branches that have been merged into main from the repo'
9
9
  def cleanup
10
10
  update_base_branch
11
11
  say 'Deleting local and remote branches that have been merged into '
@@ -9,6 +9,7 @@ module Gitx
9
9
  class IntegrateCommand < BaseCommand
10
10
  include Gitx::Github
11
11
  desc 'integrate', 'integrate the current branch into one of the aggregate development branches (default = staging)'
12
+ method_option :'skip-pull-request', type: :boolean, desc: 'skip pull request reference in merge commit'
12
13
  method_option :resume, type: :string, aliases: '-r', desc: 'resume merging of feature-branch'
13
14
  def integrate(integration_branch = 'staging')
14
15
  assert_aggregate_branch!(integration_branch)
@@ -17,7 +18,7 @@ module Gitx
17
18
  print_message(branch, integration_branch)
18
19
 
19
20
  run_git_cmd 'update'
20
- pull_request = pull_request_for_branch(branch)
21
+ pull_request = pull_request_for_branch(branch) unless options[:'skip-pull-request']
21
22
  integrate_branch(branch, integration_branch, pull_request) unless options[:resume]
22
23
  checkout_branch branch
23
24
  end
@@ -20,11 +20,11 @@ module Gitx
20
20
  run_git_cmd 'update'
21
21
 
22
22
  pull_request = find_or_create_pull_request(branch)
23
- return unless confirm_branch_status?(branch)
24
23
 
25
24
  if (label = config.release_label)
26
25
  label_pull_request pull_request, label
27
26
  else
27
+ return unless confirm_branch_status?(branch)
28
28
  checkout_branch config.base_branch
29
29
  run_git_cmd 'pull', 'origin', config.base_branch
30
30
  run_git_cmd 'merge', '--no-ff', '--message', commit_message(branch, pull_request), branch
@@ -8,7 +8,7 @@ module Gitx
8
8
  EXAMPLE_BRANCH_NAMES = %w[api-fix-invalid-auth desktop-cleanup-avatar-markup share-form-add-edit-link].freeze
9
9
  VALID_BRANCH_NAME_REGEX = /^[A-Za-z0-9\-_]+$/.freeze
10
10
 
11
- desc 'start', 'start a new git branch with latest changes from master'
11
+ desc 'start', 'start a new git branch with latest changes from main'
12
12
  method_option :issue, type: :string, aliases: '-i', desc: 'Issue identifier'
13
13
  def start(branch_name = nil)
14
14
  branch_name = ask("What would you like to name your branch? (ex: #{EXAMPLE_BRANCH_NAMES.sample})") until valid_new_branch_name?(branch_name)
@@ -5,22 +5,31 @@ require 'gitx/cli/base_command'
5
5
  module Gitx
6
6
  module Cli
7
7
  class UpdateCommand < BaseCommand
8
- desc 'update', 'Update the current branch with latest changes from the remote feature branch and master'
8
+ desc 'update', 'Update the current branch with latest changes from the remote feature branch and main'
9
9
  def update
10
10
  say 'Updating '
11
11
  say "#{current_branch.name} ", :green
12
12
  say 'with latest changes from '
13
13
  say config.base_branch, :green
14
14
 
15
+ update_base_branch
15
16
  update_branch(current_branch.name) if remote_branch_exists?(current_branch.name)
16
- update_branch(config.base_branch)
17
+ update_branch(config.base_branch, repository: '.')
18
+
17
19
  run_git_cmd 'share'
18
20
  end
19
21
 
20
22
  private
21
23
 
22
- def update_branch(branch)
23
- run_git_cmd 'pull', 'origin', branch
24
+ def update_base_branch
25
+ branch_name = current_branch.name
26
+ checkout_branch(config.base_branch)
27
+ update_branch(config.base_branch)
28
+ checkout_branch(branch_name)
29
+ end
30
+
31
+ def update_branch(branch, repository: 'origin')
32
+ run_git_cmd 'pull', repository, branch
24
33
  rescue Gitx::Executor::ExecutionError
25
34
  raise MergeError, 'Merge conflict occurred. Please fix merge conflict and rerun the command'
26
35
  end
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  # default base branch
3
- base_branch: master
3
+ base_branch: main
4
4
 
5
5
  # Label to use for releasing a pull request, if this is set a label will be
6
6
  # added to the PR rather than merging to the base branch
@@ -14,16 +14,16 @@ aggregate_branches:
14
14
  # list of branches that should not be deleted when cleaning up
15
15
  reserved_branches:
16
16
  - HEAD
17
- - master
17
+ - main
18
18
  - next_release
19
19
  - staging
20
20
  - prototype
21
21
 
22
22
  # list of supported branches for generating buildtags
23
23
  taggable_branches:
24
- - master
24
+ - main
25
25
  - staging
26
26
 
27
27
  # list of commands to execute after releasing feature branch
28
28
  after_release:
29
- - git integrate
29
+ - git integrate --skip-pull-request
data/lib/gitx/github.rb CHANGED
@@ -17,6 +17,7 @@ module Gitx
17
17
  #
18
18
  # This footer will automatically be stripped from the pull request description
19
19
  MESSAGE
20
+ PULL_REQEST_TEMPLATE_FILE='.github/PULL_REQUEST_TEMPLATE.md'
20
21
 
21
22
  def find_or_create_pull_request(branch)
22
23
  pull_request = find_pull_request(branch)
@@ -82,6 +83,7 @@ module Gitx
82
83
  description_template = []
83
84
  description_template << "#{description}\n" if description
84
85
  description_template << changelog
86
+ description_template << "#{pull_request_template}\n" if pull_request_template
85
87
 
86
88
  ask_editor(description_template.join("\n"), editor: repo.config['core.editor'], footer: PULL_REQUEST_FOOTER)
87
89
  end
@@ -90,6 +92,14 @@ module Gitx
90
92
  options[:title] || branch.gsub(/[-_]/, ' ')
91
93
  end
92
94
 
95
+ def pull_request_template_file
96
+ File.expand_path(PULL_REQEST_TEMPLATE_FILE)
97
+ end
98
+
99
+ def pull_request_template
100
+ @pull_request_template ||= File.exist?(pull_request_template_file) ? File.read(pull_request_template_file) : nil
101
+ end
102
+
93
103
  # authorization token used for github API calls
94
104
  # the token is cached on the filesystem for future use
95
105
  # @return [String] auth token stored in git (current repo, user config or installed global settings)
data/lib/gitx/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Gitx
2
- VERSION = '3.2.0'.freeze
2
+ VERSION = '4.1.1'.freeze
3
3
  end
@@ -78,74 +78,6 @@ http_interactions:
78
78
  string: '[{"html_url":"https://path/to/html/pull/request","issue_url":"https://api/path/to/issue/url","number":10,"head":{"ref":"branch_name", "sha": "e12da4"}}]'
79
79
  http_version:
80
80
  recorded_at: Tue, 05 Aug 2014 16:36:03 GMT
81
- - request:
82
- method: get
83
- uri: https://api.github.com/repos/wireframe/gitx/commits/feature-branch/status
84
- body:
85
- encoding: US-ASCII
86
- string: ''
87
- headers:
88
- Accept:
89
- - application/vnd.github.v3+json
90
- User-Agent:
91
- - Octokit Ruby Gem 3.4.0
92
- Content-Type:
93
- - application/json
94
- Authorization:
95
- - token 123123
96
- Accept-Encoding:
97
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
98
- response:
99
- status:
100
- code: 200
101
- message: OK
102
- headers:
103
- Server:
104
- - GitHub.com
105
- Date:
106
- - Wed, 10 Dec 2014 19:01:27 GMT
107
- Content-Type:
108
- - application/json; charset=utf-8
109
- Transfer-Encoding:
110
- - chunked
111
- Status:
112
- - 200 OK
113
- X-Ratelimit-Limit:
114
- - '5000'
115
- X-Ratelimit-Remaining:
116
- - '4993'
117
- X-Ratelimit-Reset:
118
- - '1418241620'
119
- X-Oauth-Scopes:
120
- - repo
121
- X-Accepted-Oauth-Scopes:
122
- - repo, repo:status
123
- X-Github-Media-Type:
124
- - github.v3; format=json
125
- X-Xss-Protection:
126
- - 1; mode=block
127
- X-Frame-Options:
128
- - deny
129
- Content-Security-Policy:
130
- - default-src 'none'
131
- Access-Control-Allow-Credentials:
132
- - 'true'
133
- Access-Control-Expose-Headers:
134
- - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
135
- X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
136
- Access-Control-Allow-Origin:
137
- - "*"
138
- X-Github-Request-Id:
139
- - C6CBAFAF:141D:2F27072:54889887
140
- Strict-Transport-Security:
141
- - max-age=31536000; includeSubdomains; preload
142
- X-Content-Type-Options:
143
- - nosniff
144
- body:
145
- encoding: UTF-8
146
- string: '{"state":"success"}'
147
- http_version:
148
- recorded_at: Tue, 05 Aug 2014 16:36:03 GMT
149
81
  - request:
150
82
  method: post
151
83
  uri: https://api.github.com/repos/wireframe/gitx/issues/10/labels
@@ -23,7 +23,7 @@ describe Gitx::Cli::BuildtagCommand do
23
23
  expect { cli.buildtag }.to raise_error(/Branch must be one of the supported taggable branches/)
24
24
  end
25
25
  end
26
- context 'when options[:branch] is NOT master or staging' do
26
+ context 'when options[:branch] is NOT main or staging' do
27
27
  let(:options) do
28
28
  {
29
29
  branch: 'feature-branch'
@@ -33,16 +33,16 @@ describe Gitx::Cli::BuildtagCommand do
33
33
  expect { cli.buildtag }.to raise_error(/Branch must be one of the supported taggable branches/)
34
34
  end
35
35
  end
36
- context 'when options[:branch] is master' do
36
+ context 'when options[:branch] is main' do
37
37
  let(:options) do
38
38
  {
39
- branch: 'master'
39
+ branch: 'main'
40
40
  }
41
41
  end
42
42
  before do
43
43
  Timecop.freeze(Time.utc(2013, 10, 30, 10, 21, 28)) do
44
- expect(executor).to receive(:execute).with('git', 'tag', 'builds/master/2013-10-30-10-21-28', '--annotate', '--message', '[gitx] buildtag for master').ordered
45
- expect(executor).to receive(:execute).with('git', 'push', 'origin', 'builds/master/2013-10-30-10-21-28').ordered
44
+ expect(executor).to receive(:execute).with('git', 'tag', 'builds/main/2013-10-30-10-21-28', '--annotate', '--message', '[gitx] buildtag for main').ordered
45
+ expect(executor).to receive(:execute).with('git', 'push', 'origin', 'builds/main/2013-10-30-10-21-28').ordered
46
46
  cli.buildtag
47
47
  end
48
48
  end
@@ -53,14 +53,14 @@ describe Gitx::Cli::BuildtagCommand do
53
53
  context 'when options[:message] is passed' do
54
54
  let(:options) do
55
55
  {
56
- branch: 'master',
56
+ branch: 'main',
57
57
  message: 'custom git commit message'
58
58
  }
59
59
  end
60
60
  before do
61
61
  Timecop.freeze(Time.utc(2013, 10, 30, 10, 21, 28)) do
62
- expect(executor).to receive(:execute).with('git', 'tag', 'builds/master/2013-10-30-10-21-28', '--annotate', '--message', 'custom git commit message').ordered
63
- expect(executor).to receive(:execute).with('git', 'push', 'origin', 'builds/master/2013-10-30-10-21-28').ordered
62
+ expect(executor).to receive(:execute).with('git', 'tag', 'builds/main/2013-10-30-10-21-28', '--annotate', '--message', 'custom git commit message').ordered
63
+ expect(executor).to receive(:execute).with('git', 'push', 'origin', 'builds/main/2013-10-30-10-21-28').ordered
64
64
  cli.buildtag
65
65
  end
66
66
  end
@@ -38,7 +38,7 @@ describe Gitx::Cli::CleanupCommand do
38
38
  before do
39
39
  allow(cli).to receive(:say)
40
40
 
41
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
41
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
42
42
  expect(executor).to receive(:execute).with('git', 'pull').ordered
43
43
  expect(executor).to receive(:execute).with('git', 'remote', 'prune', 'origin').ordered
44
44
  expect(executor).to receive(:execute).with('git', 'branch', '--delete', 'merged-local-feature').ordered
@@ -58,7 +58,7 @@ describe Gitx::Cli::CleanupCommand do
58
58
  before do
59
59
  allow(cli).to receive(:say)
60
60
 
61
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
61
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
62
62
  expect(executor).to receive(:execute).with('git', 'pull').ordered
63
63
  expect(executor).to receive(:execute).with('git', 'remote', 'prune', 'origin').ordered
64
64
  expect(executor).to receive(:execute).with('git', 'push', 'origin', '--delete', 'merged-remote-feature').ordered
@@ -78,7 +78,7 @@ describe Gitx::Cli::CleanupCommand do
78
78
  before do
79
79
  allow(cli).to receive(:say)
80
80
 
81
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
81
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
82
82
  expect(executor).to receive(:execute).with('git', 'pull').ordered
83
83
  expect(executor).to receive(:execute).with('git', 'remote', 'prune', 'origin').ordered
84
84
  expect(executor).to receive(:execute).with('git', 'push', 'origin', '--delete', 'merged-remote-feature/review').ordered
@@ -47,18 +47,18 @@ describe Gitx::Cli::IntegrateCommand do
47
47
  should meet_expectations
48
48
  end
49
49
  end
50
- context 'when current_branch == master' do
51
- let(:current_branch) { double('fake branch', name: 'master', head?: true) }
52
- let(:local_branch_names) { ['master'] }
50
+ context 'when current_branch == main' do
51
+ let(:current_branch) { double('fake branch', name: 'main', head?: true) }
52
+ let(:local_branch_names) { ['main'] }
53
53
  let(:remote_branch_names) { ['origin/staging'] }
54
54
  before do
55
55
  expect(executor).to receive(:execute).with('git', 'update').ordered
56
56
  expect(executor).to receive(:execute).with('git', 'fetch', 'origin').ordered
57
57
  expect(executor).to receive(:execute).with('git', 'branch', '--delete', '--force', 'staging').ordered
58
58
  expect(executor).to receive(:execute).with('git', 'checkout', 'staging').ordered
59
- expect(executor).to receive(:execute).with('git', 'merge', '--no-ff', '--message', '[gitx] Integrate master into staging', 'master').ordered
59
+ expect(executor).to receive(:execute).with('git', 'merge', '--no-ff', '--message', '[gitx] Integrate main into staging', 'main').ordered
60
60
  expect(executor).to receive(:execute).with('git', 'push', 'origin', 'HEAD').ordered
61
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
61
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
62
62
 
63
63
  cli.integrate
64
64
  end
@@ -85,7 +85,7 @@ describe Gitx::Cli::IntegrateCommand do
85
85
  expect(executor).to receive(:execute).with('git', 'update').ordered
86
86
  expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
87
87
  expect(executor).to receive(:execute).with('git', 'update').ordered
88
- expect(executor).to receive(:execute).with('git', 'log', 'origin/master...feature-branch', '--reverse', '--no-merges', '--pretty=format:* %B').and_return(changelog).ordered
88
+ expect(executor).to receive(:execute).with('git', 'log', 'origin/main...feature-branch', '--reverse', '--no-merges', '--pretty=format:* %B').and_return(changelog).ordered
89
89
  expect(executor).to receive(:execute).with('git', 'fetch', 'origin').ordered
90
90
  expect(executor).to receive(:execute).with('git', 'branch', '--delete', '--force', 'staging').ordered
91
91
  expect(executor).to receive(:execute).with('git', 'checkout', 'staging').ordered
@@ -109,7 +109,7 @@ describe Gitx::Cli::IntegrateCommand do
109
109
  context 'when staging branch does not exist remotely' do
110
110
  let(:remote_branch_names) { [] }
111
111
  before do
112
- expect(repo).to receive(:create_branch).with('staging', 'master')
112
+ expect(repo).to receive(:create_branch).with('staging', 'main')
113
113
 
114
114
  expect(executor).to receive(:execute).with('git', 'update').ordered
115
115
  expect(executor).to receive(:execute).with('git', 'push', 'origin', 'staging:staging').ordered
@@ -214,5 +214,29 @@ describe Gitx::Cli::IntegrateCommand do
214
214
  should meet_expectations
215
215
  end
216
216
  end
217
+ context 'with --skip-pull-request' do
218
+ let(:changelog) { '* made some fixes' }
219
+ let(:changelog) { '2013-01-01 did some stuff' }
220
+ let(:options) { { 'skip-pull-request': true } }
221
+ before do
222
+ allow(cli).to receive(:ask_editor).and_return('description')
223
+
224
+ expect(executor).to receive(:execute).with('git', 'update').ordered
225
+ expect(executor).to receive(:execute).with('git', 'fetch', 'origin').ordered
226
+ expect(executor).to receive(:execute).with('git', 'branch', '--delete', '--force', 'staging').ordered
227
+ expect(executor).to receive(:execute).with('git', 'checkout', 'staging').ordered
228
+ expect(executor).to receive(:execute).with('git', 'merge', '--no-ff', '--message', '[gitx] Integrate feature-branch into staging', 'feature-branch').ordered
229
+ expect(executor).to receive(:execute).with('git', 'push', 'origin', 'HEAD').ordered
230
+ expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
231
+
232
+ cli.integrate
233
+ end
234
+ it 'does not create pull request' do
235
+ expect(WebMock).to_not have_requested(:post, 'https://api.github.com/repos/wireframe/gitx/pulls')
236
+ end
237
+ it 'runs expected commands' do
238
+ should meet_expectations
239
+ end
240
+ end
217
241
  end
218
242
  end
@@ -22,26 +22,26 @@ describe Gitx::Cli::NukeCommand do
22
22
  end
23
23
 
24
24
  describe '#nuke' do
25
- context 'when target branch == prototype and --destination == master' do
25
+ context 'when target branch == prototype and --destination == main' do
26
26
  let(:options) do
27
27
  {
28
28
  destination: good_branch
29
29
  }
30
30
  end
31
- let(:good_branch) { 'master' }
31
+ let(:good_branch) { 'main' }
32
32
  let(:bad_branch) { 'prototype' }
33
- let(:buildtag) { double(:tag, name: 'builds/master/2013-10-01-01') }
33
+ let(:buildtag) { double(:tag, name: 'builds/main/2013-10-01-01') }
34
34
  let(:tags) { [buildtag] }
35
35
  before do
36
36
  expect(cli).to receive(:yes?).and_return(true)
37
37
 
38
38
  expect(executor).to receive(:execute).with('git', 'fetch', '--tags').ordered
39
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
39
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
40
40
  expect(executor).to receive(:execute).with('git', 'branch', '--delete', '--force', 'prototype').ordered
41
41
  expect(executor).to receive(:execute).with('git', 'push', 'origin', '--delete', 'prototype').ordered
42
- expect(executor).to receive(:execute).with('git', 'checkout', '-b', 'prototype', 'builds/master/2013-10-01-01').ordered
42
+ expect(executor).to receive(:execute).with('git', 'checkout', '-b', 'prototype', 'builds/main/2013-10-01-01').ordered
43
43
  expect(executor).to receive(:execute).with('git', 'share').ordered
44
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
44
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
45
45
 
46
46
  cli.nuke bad_branch
47
47
  end
@@ -50,21 +50,21 @@ describe Gitx::Cli::NukeCommand do
50
50
  end
51
51
  end
52
52
  context 'when target branch == prototype and destination prompt == nil' do
53
- let(:good_branch) { 'master' }
53
+ let(:good_branch) { 'main' }
54
54
  let(:bad_branch) { 'prototype' }
55
- let(:buildtag) { double(:tag, name: 'builds/master/2013-10-01-01') }
55
+ let(:buildtag) { double(:tag, name: 'builds/main/2013-10-01-01') }
56
56
  let(:tags) { [buildtag] }
57
57
  before do
58
58
  expect(cli).to receive(:ask).and_return(good_branch)
59
59
  expect(cli).to receive(:yes?).and_return(true)
60
60
 
61
61
  expect(executor).to receive(:execute).with('git', 'fetch', '--tags').ordered
62
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
62
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
63
63
  expect(executor).to receive(:execute).with('git', 'branch', '--delete', '--force', 'prototype').ordered
64
64
  expect(executor).to receive(:execute).with('git', 'push', 'origin', '--delete', 'prototype').ordered
65
- expect(executor).to receive(:execute).with('git', 'checkout', '-b', 'prototype', 'builds/master/2013-10-01-01').ordered
65
+ expect(executor).to receive(:execute).with('git', 'checkout', '-b', 'prototype', 'builds/main/2013-10-01-01').ordered
66
66
  expect(executor).to receive(:execute).with('git', 'share').ordered
67
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
67
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
68
68
 
69
69
  cli.nuke 'prototype'
70
70
  end
@@ -73,14 +73,14 @@ describe Gitx::Cli::NukeCommand do
73
73
  end
74
74
  end
75
75
  context 'when user does not confirm nuking the target branch' do
76
- let(:buildtag) { double(:tag, name: 'builds/master/2013-10-01-01') }
76
+ let(:buildtag) { double(:tag, name: 'builds/main/2013-10-01-01') }
77
77
  let(:tags) { [buildtag] }
78
78
  before do
79
- expect(cli).to receive(:ask).and_return('master')
79
+ expect(cli).to receive(:ask).and_return('main')
80
80
  expect(cli).to receive(:yes?).and_return(false)
81
81
 
82
82
  expect(executor).to receive(:execute).with('git', 'fetch', '--tags').ordered
83
- expect(executor).to_not receive(:execute).with('git', 'checkout', 'master').ordered
83
+ expect(executor).to_not receive(:execute).with('git', 'checkout', 'main').ordered
84
84
 
85
85
  cli.nuke 'prototype'
86
86
  end
@@ -94,7 +94,7 @@ describe Gitx::Cli::NukeCommand do
94
94
  destination: good_branch
95
95
  }
96
96
  end
97
- let(:good_branch) { 'master' }
97
+ let(:good_branch) { 'main' }
98
98
  let(:bad_branch) { 'prototype' }
99
99
  let(:buildtags) { '' }
100
100
  it 'raises error' do
@@ -103,9 +103,9 @@ describe Gitx::Cli::NukeCommand do
103
103
  end
104
104
  end
105
105
  context 'when database migrations exist and user cancels operation' do
106
- let(:buildtag) { double(:tag, name: 'builds/master/2013-10-01-01') }
106
+ let(:buildtag) { double(:tag, name: 'builds/main/2013-10-01-01') }
107
107
  let(:tags) { [buildtag] }
108
- let(:good_branch) { 'master' }
108
+ let(:good_branch) { 'main' }
109
109
  let(:bad_branch) { 'prototype' }
110
110
  let(:migrations) do
111
111
  %w[db/migrate/20140715194946_create_users.rb db/migrate/20140730063034_update_user_account.rb].join("\n")
@@ -115,8 +115,8 @@ describe Gitx::Cli::NukeCommand do
115
115
 
116
116
  expect(executor).to receive(:execute).with('git', 'fetch', '--tags').ordered
117
117
  expect(cli).to receive(:ask).and_return(good_branch)
118
- expect(cli).to receive(:yes?).with('Reset prototype to builds/master/2013-10-01-01? (y/n)', :green).and_return(true)
119
- expect(executor).to receive(:execute).with('git', 'diff', 'builds/master/2013-10-01-01...prototype', '--name-only', 'db/migrate').and_return(migrations)
118
+ expect(cli).to receive(:yes?).with('Reset prototype to builds/main/2013-10-01-01? (y/n)', :green).and_return(true)
119
+ expect(executor).to receive(:execute).with('git', 'diff', 'builds/main/2013-10-01-01...prototype', '--name-only', 'db/migrate').and_return(migrations)
120
120
  expect(cli).to receive(:yes?).with('Are you sure you want to nuke prototype? (y/n) ', :green).and_return(false)
121
121
 
122
122
  cli.nuke 'prototype'
@@ -129,9 +129,9 @@ describe Gitx::Cli::NukeCommand do
129
129
  end
130
130
  end
131
131
  context 'when database migrations exist and user approves operation' do
132
- let(:buildtag) { double(:tag, name: 'builds/master/2013-10-01-01') }
132
+ let(:buildtag) { double(:tag, name: 'builds/main/2013-10-01-01') }
133
133
  let(:tags) { [buildtag] }
134
- let(:good_branch) { 'master' }
134
+ let(:good_branch) { 'main' }
135
135
  let(:bad_branch) { 'prototype' }
136
136
  let(:migrations) do
137
137
  %w[db/migrate/20140715194946_create_users.rb db/migrate/20140730063034_update_user_account.rb].join("\n")
@@ -140,17 +140,17 @@ describe Gitx::Cli::NukeCommand do
140
140
  FileUtils.mkdir_p('db/migrate')
141
141
 
142
142
  expect(cli).to receive(:ask).and_return(good_branch)
143
- expect(cli).to receive(:yes?).with('Reset prototype to builds/master/2013-10-01-01? (y/n)', :green).and_return(true)
144
- expect(executor).to receive(:execute).with('git', 'diff', 'builds/master/2013-10-01-01...prototype', '--name-only', 'db/migrate').and_return(migrations)
143
+ expect(cli).to receive(:yes?).with('Reset prototype to builds/main/2013-10-01-01? (y/n)', :green).and_return(true)
144
+ expect(executor).to receive(:execute).with('git', 'diff', 'builds/main/2013-10-01-01...prototype', '--name-only', 'db/migrate').and_return(migrations)
145
145
  expect(cli).to receive(:yes?).with('Are you sure you want to nuke prototype? (y/n) ', :green).and_return(true)
146
146
 
147
147
  expect(executor).to receive(:execute).with('git', 'fetch', '--tags').ordered
148
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
148
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
149
149
  expect(executor).to receive(:execute).with('git', 'branch', '--delete', '--force', 'prototype').ordered
150
150
  expect(executor).to receive(:execute).with('git', 'push', 'origin', '--delete', 'prototype').ordered
151
- expect(executor).to receive(:execute).with('git', 'checkout', '-b', 'prototype', 'builds/master/2013-10-01-01').ordered
151
+ expect(executor).to receive(:execute).with('git', 'checkout', '-b', 'prototype', 'builds/main/2013-10-01-01').ordered
152
152
  expect(executor).to receive(:execute).with('git', 'share').ordered
153
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
153
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
154
154
 
155
155
  cli.nuke 'prototype'
156
156
  end
@@ -36,14 +36,14 @@ describe Gitx::Cli::ReleaseCommand do
36
36
  before do
37
37
  expect(repo).to receive(:workdir).and_return(temp_dir)
38
38
 
39
- expect(cli).to receive(:yes?).with('Release feature-branch to master? (y/n)', :green).and_return(true)
39
+ expect(cli).to receive(:yes?).with('Release feature-branch to main? (y/n)', :green).and_return(true)
40
40
  expect(cli).to receive(:yes?).with('Branch status is currently: failure. Proceed with release? (y/n)', :red).and_return(false)
41
41
  allow(cli).to receive(:authorization_token).and_return(authorization_token)
42
42
 
43
43
  expect(executor).to receive(:execute).with('git', 'update').ordered
44
- expect(executor).to_not receive(:execute).with('git', 'checkout', 'master')
45
- expect(executor).to_not receive(:execute).with('git', 'pull', 'origin', 'master')
46
- expect(executor).to_not receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to master\n\nConnected to #10", 'feature-branch')
44
+ expect(executor).to_not receive(:execute).with('git', 'checkout', 'main')
45
+ expect(executor).to_not receive(:execute).with('git', 'pull', 'origin', 'main')
46
+ expect(executor).to_not receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to main\n\nConnected to #10", 'feature-branch')
47
47
  expect(executor).to_not receive(:execute).with('git', 'push', 'origin', 'HEAD')
48
48
 
49
49
  VCR.use_cassette('pull_request_does_exist_with_failure_status') do
@@ -64,11 +64,11 @@ describe Gitx::Cli::ReleaseCommand do
64
64
 
65
65
  expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
66
66
  expect(executor).to receive(:execute).with('git', 'update').ordered
67
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
68
- expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'master').ordered
69
- expect(executor).to receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to master\n\nConnected to #10", 'feature-branch').ordered
67
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
68
+ expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'main').ordered
69
+ expect(executor).to receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to main\n\nConnected to #10", 'feature-branch').ordered
70
70
  expect(executor).to receive(:execute).with('git', 'push', 'origin', 'HEAD').ordered
71
- expect(executor).to receive(:execute).with('git integrate').ordered
71
+ expect(executor).to receive(:execute).with('git integrate --skip-pull-request').ordered
72
72
 
73
73
  VCR.use_cassette('pull_request_does_exist_with_success_status') do
74
74
  cli.release
@@ -94,9 +94,9 @@ describe Gitx::Cli::ReleaseCommand do
94
94
 
95
95
  expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
96
96
  expect(executor).to receive(:execute).with('git', 'update').ordered
97
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
98
- expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'master').ordered
99
- expect(executor).to receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to master\n\nConnected to #10", 'feature-branch').ordered
97
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
98
+ expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'main').ordered
99
+ expect(executor).to receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to main\n\nConnected to #10", 'feature-branch').ordered
100
100
  expect(executor).to receive(:execute).with('git', 'push', 'origin', 'HEAD').ordered
101
101
  expect(executor).to receive(:execute).with('echo hello').ordered
102
102
 
@@ -117,11 +117,11 @@ describe Gitx::Cli::ReleaseCommand do
117
117
 
118
118
  expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
119
119
  expect(executor).to receive(:execute).with('git', 'update').ordered
120
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
121
- expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'master').ordered
122
- expect(executor).to receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to master\n\nConnected to #10", 'feature-branch').ordered
120
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
121
+ expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'main').ordered
122
+ expect(executor).to receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to main\n\nConnected to #10", 'feature-branch').ordered
123
123
  expect(executor).to receive(:execute).with('git', 'push', 'origin', 'HEAD').ordered
124
- expect(executor).to receive(:execute).with('git integrate').ordered
124
+ expect(executor).to receive(:execute).with('git integrate --skip-pull-request').ordered
125
125
 
126
126
  VCR.use_cassette('pull_request_does_exist_with_success_status') do
127
127
  cli.release 'feature-branch'
@@ -147,19 +147,19 @@ describe Gitx::Cli::ReleaseCommand do
147
147
  allow(cli).to receive(:authorization_token).and_return(authorization_token)
148
148
  allow(cli).to receive(:ask_editor).and_return('description')
149
149
 
150
- expect(cli).to receive(:yes?).with('Release feature-branch to master? (y/n)', :green).and_return(true)
150
+ expect(cli).to receive(:yes?).with('Release feature-branch to main? (y/n)', :green).and_return(true)
151
151
  expect(cli).to receive(:yes?).with('Branch status is currently: pending. Proceed with release? (y/n)', :red).and_return(true)
152
152
 
153
153
  expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
154
154
  expect(executor).to receive(:execute).with('git', 'update').ordered
155
155
  expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
156
156
  expect(executor).to receive(:execute).with('git', 'update').ordered
157
- expect(executor).to receive(:execute).with('git', 'log', 'origin/master...feature-branch', '--reverse', '--no-merges', '--pretty=format:* %B').and_return('2013-01-01 did some stuff').ordered
158
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
159
- expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'master').ordered
160
- expect(executor).to receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to master\n\nConnected to #10", 'feature-branch').ordered
157
+ expect(executor).to receive(:execute).with('git', 'log', 'origin/main...feature-branch', '--reverse', '--no-merges', '--pretty=format:* %B').and_return('2013-01-01 did some stuff').ordered
158
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
159
+ expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'main').ordered
160
+ expect(executor).to receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to main\n\nConnected to #10", 'feature-branch').ordered
161
161
  expect(executor).to receive(:execute).with('git', 'push', 'origin', 'HEAD').ordered
162
- expect(executor).to receive(:execute).with('git integrate').ordered
162
+ expect(executor).to receive(:execute).with('git integrate --skip-pull-request').ordered
163
163
 
164
164
  stub_request(:post, 'https://api.github.com/repos/wireframe/gitx/pulls').to_return(status: 201, body: new_pull_request.to_json, headers: { 'Content-Type' => 'application/json' })
165
165
  VCR.use_cassette('pull_request_does_not_exist') do
@@ -187,11 +187,11 @@ describe Gitx::Cli::ReleaseCommand do
187
187
 
188
188
  expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
189
189
  expect(executor).to receive(:execute).with('git', 'update').ordered
190
- expect(executor).to receive(:execute).with('git', 'checkout', 'master').ordered
191
- expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'master').ordered
192
- expect(executor).to receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to master\n\nConnected to #10", 'feature-branch').ordered
190
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
191
+ expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'main').ordered
192
+ expect(executor).to receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to main\n\nConnected to #10", 'feature-branch').ordered
193
193
  expect(executor).to receive(:execute).with('git', 'push', 'origin', 'HEAD').ordered
194
- expect(executor).to receive(:execute).with('git integrate').ordered
194
+ expect(executor).to receive(:execute).with('git integrate --skip-pull-request').ordered
195
195
  expect(executor).to receive(:execute).with('git cleanup').ordered
196
196
 
197
197
  VCR.use_cassette('pull_request_does_exist_with_success_status') do
@@ -202,7 +202,7 @@ describe Gitx::Cli::ReleaseCommand do
202
202
  should meet_expectations
203
203
  end
204
204
  end
205
- context 'when user confirms release and pull request exists with success status with release_label config' do
205
+ context 'when user confirms release with release_label config' do
206
206
  let(:gitx_config) do
207
207
  {
208
208
  'release_label' => 'release-me'
@@ -218,16 +218,16 @@ describe Gitx::Cli::ReleaseCommand do
218
218
  expect(cli).to receive(:label_pull_request).with(having_attributes(number: 10), 'release-me').and_call_original
219
219
  allow(cli).to receive(:authorization_token).and_return(authorization_token)
220
220
 
221
- expect(executor).to_not receive(:execute).with('git', 'checkout', 'master')
222
- expect(executor).to_not receive(:execute).with('git', 'pull', 'origin', 'master')
223
- expect(executor).to_not receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to master\n\nConnected to #10", 'feature-branch')
221
+ expect(executor).to_not receive(:execute).with('git', 'checkout', 'main')
222
+ expect(executor).to_not receive(:execute).with('git', 'pull', 'origin', 'main')
223
+ expect(executor).to_not receive(:execute).with('git', 'merge', '--no-ff', '--message', "[gitx] Release feature-branch to main\n\nConnected to #10", 'feature-branch')
224
224
  expect(executor).to_not receive(:execute).with('git', 'push', 'origin', 'HEAD')
225
225
 
226
226
  expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
227
227
  expect(executor).to receive(:execute).with('git', 'update').ordered
228
- expect(executor).to receive(:execute).with('git integrate').ordered
228
+ expect(executor).to receive(:execute).with('git integrate --skip-pull-request').ordered
229
229
 
230
- VCR.use_cassette('pull_request_does_exist_with_success_status_and_then_add_label') do
230
+ VCR.use_cassette('pull_request_does_exist_and_then_add_label') do
231
231
  cli.release
232
232
  end
233
233
  end
@@ -46,7 +46,7 @@ describe Gitx::Cli::ReviewCommand do
46
46
  allow(cli).to receive(:authorization_token).and_return(authorization_token)
47
47
  expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
48
48
  expect(executor).to receive(:execute).with('git', 'update').ordered
49
- expect(executor).to receive(:execute).with('git', 'log', 'origin/master...feature-branch', '--reverse', '--no-merges', '--pretty=format:* %B').and_return(changelog).ordered
49
+ expect(executor).to receive(:execute).with('git', 'log', 'origin/main...feature-branch', '--reverse', '--no-merges', '--pretty=format:* %B').and_return(changelog).ordered
50
50
  expect(cli).to receive(:ask_editor).with(changelog, hash_including(footer: Gitx::Github::PULL_REQUEST_FOOTER)).and_return('description')
51
51
 
52
52
  stub_request(:post, 'https://api.github.com/repos/wireframe/gitx/pulls').to_return(status: 201, body: new_pull_request.to_json, headers: { 'Content-Type' => 'application/json' })
@@ -63,8 +63,12 @@ describe Gitx::Cli::ReviewCommand do
63
63
  end
64
64
  end
65
65
  context 'when target branch is not nil and pull request does not exist' do
66
+ subject(:review) do
67
+ VCR.use_cassette('pull_request_does_not_exist') do
68
+ cli.review 'feature-branch'
69
+ end
70
+ end
66
71
  let(:authorization_token) { '123123' }
67
- let(:changelog) { '* made some fixes' }
68
72
  let(:fake_update_command) { double('fake update command', update: nil) }
69
73
  let(:new_pull_request) do
70
74
  {
@@ -77,21 +81,18 @@ describe Gitx::Cli::ReviewCommand do
77
81
  }
78
82
  end
79
83
  let(:changelog) { "* old commit\n\n* new commit" }
84
+ let(:pull_request_body) { changelog }
80
85
  let(:pull_request_description) { 'description' }
81
86
  before do
82
87
  allow(cli).to receive(:authorization_token).and_return(authorization_token)
83
88
  expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
84
89
  expect(executor).to receive(:execute).with('git', 'update').ordered
85
- expect(executor).to receive(:execute).with('git', 'log', 'origin/master...feature-branch', '--reverse', '--no-merges', '--pretty=format:* %B').and_return(changelog).ordered
86
- expect(cli).to receive(:ask_editor).with(changelog, hash_including(footer: Gitx::Github::PULL_REQUEST_FOOTER)).and_return(pull_request_description)
90
+ expect(executor).to receive(:execute).with('git', 'log', 'origin/main...feature-branch', '--reverse', '--no-merges', '--pretty=format:* %B').and_return(changelog).ordered
91
+ expect(cli).to receive(:ask_editor).with(pull_request_body, hash_including(footer: Gitx::Github::PULL_REQUEST_FOOTER)).and_return(pull_request_description)
87
92
 
88
93
  stub_request(:post, 'https://api.github.com/repos/wireframe/gitx/pulls')
89
- .with(body: { base: 'master', head: 'feature-branch', title: 'feature branch', body: pull_request_description }.to_json)
94
+ .with(body: { base: 'main', head: 'feature-branch', title: 'feature branch', body: pull_request_description }.to_json)
90
95
  .to_return(status: 201, body: new_pull_request.to_json, headers: { 'Content-Type' => 'application/json' })
91
-
92
- VCR.use_cassette('pull_request_does_not_exist') do
93
- cli.review 'feature-branch'
94
- end
95
96
  end
96
97
  it 'creates github pull request' do
97
98
  should meet_expectations
@@ -99,6 +100,28 @@ describe Gitx::Cli::ReviewCommand do
99
100
  it 'runs expected commands' do
100
101
  should meet_expectations
101
102
  end
103
+ context 'when PULL_REQUEST_TEMPLATE file exists' do
104
+ let(:pull_request_template) do
105
+ "## Summary\nPut your summary here\n## Artifacts\n- list\n- your\n-artifacts"
106
+ end
107
+ let(:pull_request_body) do
108
+ "#{changelog}\n#{pull_request_template}\n"
109
+ end
110
+ before do
111
+ expect(cli).to receive(:pull_request_template).and_return(pull_request_template).twice
112
+
113
+ stub_request(:post, 'https://api.github.com/repos/wireframe/gitx/pulls')
114
+ .with(body: { base: 'main', head: 'feature-branch', title: 'feature branch', body: pull_request_description }.to_json)
115
+ .to_return(status: 201, body: new_pull_request.to_json, headers: { 'Content-Type' => 'application/json' })
116
+ end
117
+
118
+ it 'creates github pull request' do
119
+ should meet_expectations
120
+ end
121
+ it 'runs expected commands' do
122
+ should meet_expectations
123
+ end
124
+ end
102
125
  end
103
126
  context 'when authorization_token is missing' do
104
127
  let(:authorization_token) { nil }
@@ -16,9 +16,9 @@ describe Gitx::Cli::StartCommand do
16
16
  describe '#start' do
17
17
  context 'when user inputs branch that is valid' do
18
18
  before do
19
- expect(cli).to receive(:checkout_branch).with('master').ordered
19
+ expect(cli).to receive(:checkout_branch).with('main').ordered
20
20
  expect(executor).to receive(:execute).with('git', 'pull').ordered
21
- expect(repo).to receive(:create_branch).with('new-branch', 'master').ordered
21
+ expect(repo).to receive(:create_branch).with('new-branch', 'main').ordered
22
22
  expect(cli).to receive(:checkout_branch).with('new-branch').ordered
23
23
  expect(executor).to receive(:execute).with('git', 'commit', '--allow-empty', '--message', '[gitx] Start work on new-branch').ordered
24
24
 
@@ -30,9 +30,9 @@ describe Gitx::Cli::StartCommand do
30
30
  end
31
31
  context 'when user inputs branch with slash' do
32
32
  before do
33
- expect(cli).to receive(:checkout_branch).with('master').ordered
33
+ expect(cli).to receive(:checkout_branch).with('main').ordered
34
34
  expect(executor).to receive(:execute).with('git', 'pull').ordered
35
- expect(repo).to receive(:create_branch).with('foo/ryan', 'master').ordered
35
+ expect(repo).to receive(:create_branch).with('foo/ryan', 'main').ordered
36
36
  expect(cli).to receive(:checkout_branch).with('foo/ryan').ordered
37
37
  expect(executor).to receive(:execute).with('git', 'commit', '--allow-empty', '--message', '[gitx] Start work on foo/ryan').ordered
38
38
 
@@ -46,9 +46,9 @@ describe Gitx::Cli::StartCommand do
46
46
  before do
47
47
  expect(cli).to receive(:ask).and_return('new-branch')
48
48
 
49
- expect(cli).to receive(:checkout_branch).with('master').ordered
49
+ expect(cli).to receive(:checkout_branch).with('main').ordered
50
50
  expect(executor).to receive(:execute).with('git', 'pull').ordered
51
- expect(repo).to receive(:create_branch).with('new-branch', 'master').ordered
51
+ expect(repo).to receive(:create_branch).with('new-branch', 'main').ordered
52
52
  expect(cli).to receive(:checkout_branch).with('new-branch').ordered
53
53
  expect(executor).to receive(:execute).with('git', 'commit', '--allow-empty', '--message', '[gitx] Start work on new-branch').ordered
54
54
 
@@ -62,9 +62,9 @@ describe Gitx::Cli::StartCommand do
62
62
  before do
63
63
  expect(cli).to receive(:ask).and_return('new-branch')
64
64
 
65
- expect(cli).to receive(:checkout_branch).with('master').ordered
65
+ expect(cli).to receive(:checkout_branch).with('main').ordered
66
66
  expect(executor).to receive(:execute).with('git', 'pull').ordered
67
- expect(repo).to receive(:create_branch).with('new-branch', 'master').ordered
67
+ expect(repo).to receive(:create_branch).with('new-branch', 'main').ordered
68
68
  expect(cli).to receive(:checkout_branch).with('new-branch').ordered
69
69
  expect(executor).to receive(:execute).with('git', 'commit', '--allow-empty', '--message', '[gitx] Start work on new-branch').ordered
70
70
 
@@ -81,9 +81,9 @@ describe Gitx::Cli::StartCommand do
81
81
 
82
82
  expect(cli).to receive(:ask).and_return('new-branch')
83
83
 
84
- expect(cli).to receive(:checkout_branch).with('master').ordered
84
+ expect(cli).to receive(:checkout_branch).with('main').ordered
85
85
  expect(executor).to receive(:execute).with('git', 'pull').ordered
86
- expect(repo).to receive(:create_branch).with('new-branch', 'master').ordered
86
+ expect(repo).to receive(:create_branch).with('new-branch', 'main').ordered
87
87
  expect(cli).to receive(:checkout_branch).with('new-branch').ordered
88
88
  expect(executor).to receive(:execute).with('git', 'commit', '--allow-empty', '--message', '[gitx] Start work on new-branch').ordered
89
89
 
@@ -100,9 +100,9 @@ describe Gitx::Cli::StartCommand do
100
100
 
101
101
  expect(cli).to receive(:ask).and_return('new-branch')
102
102
 
103
- expect(cli).to receive(:checkout_branch).with('master').ordered
103
+ expect(cli).to receive(:checkout_branch).with('main').ordered
104
104
  expect(executor).to receive(:execute).with('git', 'pull').ordered
105
- expect(repo).to receive(:create_branch).with('new-branch', 'master').ordered
105
+ expect(repo).to receive(:create_branch).with('new-branch', 'main').ordered
106
106
  expect(cli).to receive(:checkout_branch).with('new-branch').ordered
107
107
  expect(executor).to receive(:execute).with('git', 'commit', '--allow-empty', '--message', '[gitx] Start work on new-branch').ordered
108
108
 
@@ -119,9 +119,9 @@ describe Gitx::Cli::StartCommand do
119
119
  }
120
120
  end
121
121
  before do
122
- expect(cli).to receive(:checkout_branch).with('master').ordered
122
+ expect(cli).to receive(:checkout_branch).with('main').ordered
123
123
  expect(executor).to receive(:execute).with('git', 'pull').ordered
124
- expect(repo).to receive(:create_branch).with('new-branch', 'master').ordered
124
+ expect(repo).to receive(:create_branch).with('new-branch', 'main').ordered
125
125
  expect(cli).to receive(:checkout_branch).with('new-branch').ordered
126
126
  expect(executor).to receive(:execute).with('git', 'commit', '--allow-empty', '--message', "[gitx] Start work on new-branch\n\nConnected to #10").ordered
127
127
 
@@ -138,9 +138,9 @@ describe Gitx::Cli::StartCommand do
138
138
  }
139
139
  end
140
140
  before do
141
- expect(cli).to receive(:checkout_branch).with('master').ordered
141
+ expect(cli).to receive(:checkout_branch).with('main').ordered
142
142
  expect(executor).to receive(:execute).with('git', 'pull').ordered
143
- expect(repo).to receive(:create_branch).with('new-branch', 'master').ordered
143
+ expect(repo).to receive(:create_branch).with('new-branch', 'main').ordered
144
144
  expect(cli).to receive(:checkout_branch).with('new-branch').ordered
145
145
  expect(executor).to receive(:execute).with('git', 'commit', '--allow-empty', '--message', "[gitx] Start work on new-branch\n\nConnected to FOO-123").ordered
146
146
 
@@ -27,8 +27,11 @@ describe Gitx::Cli::UpdateCommand do
27
27
  before do
28
28
  allow(cli).to receive(:say)
29
29
 
30
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
31
+ expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'main').ordered
32
+ expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
30
33
  expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'feature-branch').ordered
31
- expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'master').ordered
34
+ expect(executor).to receive(:execute).with('git', 'pull', '.', 'main').ordered
32
35
  expect(executor).to receive(:execute).with('git', 'share').ordered
33
36
 
34
37
  cli.update
@@ -41,6 +44,9 @@ describe Gitx::Cli::UpdateCommand do
41
44
  before do
42
45
  allow(cli).to receive(:say)
43
46
 
47
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
48
+ expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'main').ordered
49
+ expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
44
50
  expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'feature-branch').and_raise(Gitx::Executor::ExecutionError).ordered
45
51
 
46
52
  expect { cli.update }.to raise_error(Gitx::Cli::BaseCommand::MergeError, 'Merge conflict occurred. Please fix merge conflict and rerun the command')
@@ -49,12 +55,15 @@ describe Gitx::Cli::UpdateCommand do
49
55
  should meet_expectations
50
56
  end
51
57
  end
52
- context 'when merge conflicts occur when pulling remote master branch' do
58
+ context 'when merge conflicts occur when pulling remote main branch' do
53
59
  before do
54
60
  allow(cli).to receive(:say)
55
61
 
62
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
63
+ expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'main').ordered
64
+ expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
56
65
  expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'feature-branch').ordered
57
- expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'master').and_raise(Gitx::Executor::ExecutionError).ordered
66
+ expect(executor).to receive(:execute).with('git', 'pull', '.', 'main').and_raise(Gitx::Executor::ExecutionError).ordered
58
67
 
59
68
  expect { cli.update }.to raise_error(Gitx::Cli::BaseCommand::MergeError, 'Merge conflict occurred. Please fix merge conflict and rerun the command')
60
69
  end
@@ -68,7 +77,11 @@ describe Gitx::Cli::UpdateCommand do
68
77
  allow(cli).to receive(:say)
69
78
 
70
79
  expect(executor).not_to receive(:execute).with('git', 'pull', 'origin', 'feature-branch')
71
- expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'master').ordered
80
+ expect(executor).to receive(:execute).with('git', 'checkout', 'main').ordered
81
+ expect(executor).to receive(:execute).with('git', 'pull', 'origin', 'main').ordered
82
+ expect(executor).to receive(:execute).with('git', 'checkout', 'feature-branch').ordered
83
+ expect(executor).to receive(:execute).with('git', 'pull', '.', 'main').ordered
84
+ expect(executor).to receive(:execute).with('git', 'share').ordered
72
85
 
73
86
  cli.update
74
87
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitx
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 4.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Sonnek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-12 00:00:00.000000000 Z
11
+ date: 2021-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: octokit
@@ -238,9 +238,9 @@ files:
238
238
  - lib/gitx/extensions/thor.rb
239
239
  - lib/gitx/github.rb
240
240
  - lib/gitx/version.rb
241
+ - spec/fixtures/vcr_cassettes/pull_request_does_exist_and_then_add_label.yml
241
242
  - spec/fixtures/vcr_cassettes/pull_request_does_exist_with_failure_status.yml
242
243
  - spec/fixtures/vcr_cassettes/pull_request_does_exist_with_success_status.yml
243
- - spec/fixtures/vcr_cassettes/pull_request_does_exist_with_success_status_and_then_add_label.yml
244
244
  - spec/fixtures/vcr_cassettes/pull_request_does_not_exist.yml
245
245
  - spec/gitx/cli/base_command_spec.rb
246
246
  - spec/gitx/cli/buildtag_command_spec.rb
@@ -287,9 +287,9 @@ signing_key:
287
287
  specification_version: 4
288
288
  summary: Utility scripts for Git to increase productivity for common operations
289
289
  test_files:
290
+ - spec/fixtures/vcr_cassettes/pull_request_does_exist_and_then_add_label.yml
290
291
  - spec/fixtures/vcr_cassettes/pull_request_does_exist_with_failure_status.yml
291
292
  - spec/fixtures/vcr_cassettes/pull_request_does_exist_with_success_status.yml
292
- - spec/fixtures/vcr_cassettes/pull_request_does_exist_with_success_status_and_then_add_label.yml
293
293
  - spec/fixtures/vcr_cassettes/pull_request_does_not_exist.yml
294
294
  - spec/gitx/cli/base_command_spec.rb
295
295
  - spec/gitx/cli/buildtag_command_spec.rb