thegarage-gitx 2.8.1 → 2.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/thegarage/gitx/cli/release_command.rb +4 -0
- data/lib/thegarage/gitx/github.rb +7 -0
- data/lib/thegarage/gitx/version.rb +1 -1
- data/spec/fixtures/vcr_cassettes/pull_request_does_exist_with_failure_status.yml +135 -0
- data/spec/fixtures/vcr_cassettes/{pull_request_does_exist.yml → pull_request_does_exist_with_success_status.yml} +68 -0
- data/spec/fixtures/vcr_cassettes/pull_request_does_not_exist.yml +68 -0
- data/spec/thegarage/gitx/cli/integrate_command_spec.rb +5 -5
- data/spec/thegarage/gitx/cli/release_command_spec.rb +30 -8
- data/spec/thegarage/gitx/cli/review_command_spec.rb +4 -4
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 967ed00a8d2bd8e358dc56481a1eeab9a96fc552
|
4
|
+
data.tar.gz: 71ef71cd36da70a4da6b07787d2d2342c8dfb280
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec87914ebce4c62a3891e1d60b76033e601f13a9a57d7ab692ca49da2d165e2a56f9f35f8e5f83300ed47e0e0a05d464dc35174dc630a48a517f4face59311e3
|
7
|
+
data.tar.gz: 6fc4ea416852c8aec5af068cf3a5b2e4a66a5dc55aee9fdef99baa29e22fd76b6523758561fcbb55fbd72043a3166893079affe1d4f64137cfc91c79d1665f1e
|
@@ -22,6 +22,10 @@ module Thegarage
|
|
22
22
|
execute_command(UpdateCommand, :update)
|
23
23
|
|
24
24
|
find_or_create_pull_request(branch)
|
25
|
+
status = branch_status(branch)
|
26
|
+
if status != 'success'
|
27
|
+
return unless yes?("Branch status is currently: #{status}. Proceed with release? (y/n)", :red)
|
28
|
+
end
|
25
29
|
|
26
30
|
checkout_branch Thegarage::Gitx::BASE_BRANCH
|
27
31
|
run_cmd "git pull origin #{Thegarage::Gitx::BASE_BRANCH}"
|
@@ -39,6 +39,13 @@ module Thegarage
|
|
39
39
|
pull_requests.first
|
40
40
|
end
|
41
41
|
|
42
|
+
# Get the current commit status of a branch
|
43
|
+
# @see https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref
|
44
|
+
def branch_status(branch)
|
45
|
+
response = github_client.status(github_slug, branch)
|
46
|
+
response.state
|
47
|
+
end
|
48
|
+
|
42
49
|
# @see http://developer.github.com/v3/pulls/
|
43
50
|
def create_pull_request(branch)
|
44
51
|
say "Creating pull request for "
|
@@ -0,0 +1,135 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.github.com/repos/thegarage/thegarage-gitx/pulls?head=thegarage:feature-branch&state=open
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/vnd.github.v3+json
|
12
|
+
User-Agent:
|
13
|
+
- Octokit Ruby Gem 3.4.0
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
Authorization:
|
17
|
+
- token 123123
|
18
|
+
Accept-Encoding:
|
19
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- GitHub.com
|
27
|
+
Date:
|
28
|
+
- Wed, 10 Dec 2014 19:14:11 GMT
|
29
|
+
Content-Type:
|
30
|
+
- application/json; charset=utf-8
|
31
|
+
Status:
|
32
|
+
- 200 OK
|
33
|
+
X-Github-Media-Type:
|
34
|
+
- github.v3; format=json
|
35
|
+
X-Ratelimit-Limit:
|
36
|
+
- '60'
|
37
|
+
X-Ratelimit-Remaining:
|
38
|
+
- '58'
|
39
|
+
X-Ratelimit-Reset:
|
40
|
+
- '1418242282'
|
41
|
+
X-Xss-Protection:
|
42
|
+
- 1; mode=block
|
43
|
+
X-Frame-Options:
|
44
|
+
- deny
|
45
|
+
Content-Security-Policy:
|
46
|
+
- default-src 'none'
|
47
|
+
Content-Length:
|
48
|
+
- '83'
|
49
|
+
Access-Control-Allow-Credentials:
|
50
|
+
- 'true'
|
51
|
+
Access-Control-Expose-Headers:
|
52
|
+
- ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
|
53
|
+
X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
|
54
|
+
Access-Control-Allow-Origin:
|
55
|
+
- "*"
|
56
|
+
X-Github-Request-Id:
|
57
|
+
- C6CBAFAF:141F:450BDAC:54889B83
|
58
|
+
Strict-Transport-Security:
|
59
|
+
- max-age=31536000; includeSubdomains; preload
|
60
|
+
X-Content-Type-Options:
|
61
|
+
- nosniff
|
62
|
+
body:
|
63
|
+
encoding: UTF-8
|
64
|
+
string: '[{"html_url":"https://path/to/html/pull/request","issue_url":"https://api/path/to/issue/url","number":10,"head":{"ref":"branch_name"}}]'
|
65
|
+
http_version:
|
66
|
+
recorded_at: Wed, 10 Dec 2014 19:14:11 GMT
|
67
|
+
- request:
|
68
|
+
method: get
|
69
|
+
uri: https://api.github.com/repos/thegarage/thegarage-gitx/commits/feature-branch/status
|
70
|
+
body:
|
71
|
+
encoding: US-ASCII
|
72
|
+
string: ''
|
73
|
+
headers:
|
74
|
+
Accept:
|
75
|
+
- application/vnd.github.v3+json
|
76
|
+
User-Agent:
|
77
|
+
- Octokit Ruby Gem 3.4.0
|
78
|
+
Content-Type:
|
79
|
+
- application/json
|
80
|
+
Authorization:
|
81
|
+
- token 123123
|
82
|
+
Accept-Encoding:
|
83
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
84
|
+
response:
|
85
|
+
status:
|
86
|
+
code: 200
|
87
|
+
message: OK
|
88
|
+
headers:
|
89
|
+
Server:
|
90
|
+
- GitHub.com
|
91
|
+
Date:
|
92
|
+
- Wed, 10 Dec 2014 19:01:27 GMT
|
93
|
+
Content-Type:
|
94
|
+
- application/json; charset=utf-8
|
95
|
+
Transfer-Encoding:
|
96
|
+
- chunked
|
97
|
+
Status:
|
98
|
+
- 200 OK
|
99
|
+
X-Ratelimit-Limit:
|
100
|
+
- '5000'
|
101
|
+
X-Ratelimit-Remaining:
|
102
|
+
- '4993'
|
103
|
+
X-Ratelimit-Reset:
|
104
|
+
- '1418241620'
|
105
|
+
X-Oauth-Scopes:
|
106
|
+
- repo
|
107
|
+
X-Accepted-Oauth-Scopes:
|
108
|
+
- repo, repo:status
|
109
|
+
X-Github-Media-Type:
|
110
|
+
- github.v3; format=json
|
111
|
+
X-Xss-Protection:
|
112
|
+
- 1; mode=block
|
113
|
+
X-Frame-Options:
|
114
|
+
- deny
|
115
|
+
Content-Security-Policy:
|
116
|
+
- default-src 'none'
|
117
|
+
Access-Control-Allow-Credentials:
|
118
|
+
- 'true'
|
119
|
+
Access-Control-Expose-Headers:
|
120
|
+
- ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
|
121
|
+
X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
|
122
|
+
Access-Control-Allow-Origin:
|
123
|
+
- "*"
|
124
|
+
X-Github-Request-Id:
|
125
|
+
- C6CBAFAF:141D:2F27072:54889887
|
126
|
+
Strict-Transport-Security:
|
127
|
+
- max-age=31536000; includeSubdomains; preload
|
128
|
+
X-Content-Type-Options:
|
129
|
+
- nosniff
|
130
|
+
body:
|
131
|
+
encoding: UTF-8
|
132
|
+
string: '{"state":"failure"}'
|
133
|
+
http_version:
|
134
|
+
recorded_at: Wed, 10 Dec 2014 19:14:11 GMT
|
135
|
+
recorded_with: VCR 2.9.2
|
@@ -78,4 +78,72 @@ 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"}}]'
|
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/thegarage/thegarage-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: Wed, 10 Dec 2014 19:14:11 GMT
|
81
149
|
recorded_with: VCR 2.9.2
|
@@ -62,4 +62,72 @@ http_interactions:
|
|
62
62
|
string: '[]'
|
63
63
|
http_version:
|
64
64
|
recorded_at: Tue, 05 Aug 2014 17:14:02 GMT
|
65
|
+
- request:
|
66
|
+
method: get
|
67
|
+
uri: https://api.github.com/repos/thegarage/thegarage-gitx/commits/feature-branch/status
|
68
|
+
body:
|
69
|
+
encoding: US-ASCII
|
70
|
+
string: ''
|
71
|
+
headers:
|
72
|
+
Accept:
|
73
|
+
- application/vnd.github.v3+json
|
74
|
+
User-Agent:
|
75
|
+
- Octokit Ruby Gem 3.4.0
|
76
|
+
Content-Type:
|
77
|
+
- application/json
|
78
|
+
Authorization:
|
79
|
+
- token 123123
|
80
|
+
Accept-Encoding:
|
81
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
82
|
+
response:
|
83
|
+
status:
|
84
|
+
code: 200
|
85
|
+
message: OK
|
86
|
+
headers:
|
87
|
+
Server:
|
88
|
+
- GitHub.com
|
89
|
+
Date:
|
90
|
+
- Wed, 10 Dec 2014 19:01:27 GMT
|
91
|
+
Content-Type:
|
92
|
+
- application/json; charset=utf-8
|
93
|
+
Transfer-Encoding:
|
94
|
+
- chunked
|
95
|
+
Status:
|
96
|
+
- 200 OK
|
97
|
+
X-Ratelimit-Limit:
|
98
|
+
- '5000'
|
99
|
+
X-Ratelimit-Remaining:
|
100
|
+
- '4993'
|
101
|
+
X-Ratelimit-Reset:
|
102
|
+
- '1418241620'
|
103
|
+
X-Oauth-Scopes:
|
104
|
+
- repo
|
105
|
+
X-Accepted-Oauth-Scopes:
|
106
|
+
- repo, repo:status
|
107
|
+
X-Github-Media-Type:
|
108
|
+
- github.v3; format=json
|
109
|
+
X-Xss-Protection:
|
110
|
+
- 1; mode=block
|
111
|
+
X-Frame-Options:
|
112
|
+
- deny
|
113
|
+
Content-Security-Policy:
|
114
|
+
- default-src 'none'
|
115
|
+
Access-Control-Allow-Credentials:
|
116
|
+
- 'true'
|
117
|
+
Access-Control-Expose-Headers:
|
118
|
+
- ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
|
119
|
+
X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
|
120
|
+
Access-Control-Allow-Origin:
|
121
|
+
- "*"
|
122
|
+
X-Github-Request-Id:
|
123
|
+
- C6CBAFAF:141D:2F27072:54889887
|
124
|
+
Strict-Transport-Security:
|
125
|
+
- max-age=31536000; includeSubdomains; preload
|
126
|
+
X-Content-Type-Options:
|
127
|
+
- nosniff
|
128
|
+
body:
|
129
|
+
encoding: UTF-8
|
130
|
+
string: '{"state":"pending"}'
|
131
|
+
http_version:
|
132
|
+
recorded_at: Wed, 10 Dec 2014 19:14:11 GMT
|
65
133
|
recorded_with: VCR 2.9.2
|
@@ -40,7 +40,7 @@ describe Thegarage::Gitx::Cli::IntegrateCommand do
|
|
40
40
|
|
41
41
|
stub_request(:post, /.*api.github.com.*/).to_return(:status => 201)
|
42
42
|
|
43
|
-
VCR.use_cassette('
|
43
|
+
VCR.use_cassette('pull_request_does_exist_with_success_status') do
|
44
44
|
cli.integrate
|
45
45
|
end
|
46
46
|
end
|
@@ -139,7 +139,7 @@ describe Thegarage::Gitx::Cli::IntegrateCommand do
|
|
139
139
|
|
140
140
|
stub_request(:post, /.*api.github.com.*/).to_return(:status => 201)
|
141
141
|
|
142
|
-
VCR.use_cassette('
|
142
|
+
VCR.use_cassette('pull_request_does_exist_with_success_status') do
|
143
143
|
cli.integrate
|
144
144
|
end
|
145
145
|
end
|
@@ -166,7 +166,7 @@ describe Thegarage::Gitx::Cli::IntegrateCommand do
|
|
166
166
|
|
167
167
|
stub_request(:post, /.*api.github.com.*/).to_return(:status => 201)
|
168
168
|
|
169
|
-
VCR.use_cassette('
|
169
|
+
VCR.use_cassette('pull_request_does_exist_with_success_status') do
|
170
170
|
cli.integrate 'prototype'
|
171
171
|
end
|
172
172
|
end
|
@@ -228,7 +228,7 @@ describe Thegarage::Gitx::Cli::IntegrateCommand do
|
|
228
228
|
|
229
229
|
stub_request(:post, /.*api.github.com.*/).to_return(:status => 201)
|
230
230
|
|
231
|
-
VCR.use_cassette('
|
231
|
+
VCR.use_cassette('pull_request_does_exist_with_success_status') do
|
232
232
|
cli.integrate
|
233
233
|
end
|
234
234
|
end
|
@@ -257,7 +257,7 @@ describe Thegarage::Gitx::Cli::IntegrateCommand do
|
|
257
257
|
expect(cli).to receive(:run_cmd).with("git checkout feature-branch").ordered
|
258
258
|
|
259
259
|
stub_request(:post, /.*api.github.com.*/).to_return(:status => 201)
|
260
|
-
VCR.use_cassette('
|
260
|
+
VCR.use_cassette('pull_request_does_exist_with_success_status') do
|
261
261
|
cli.integrate
|
262
262
|
end
|
263
263
|
end
|
@@ -9,8 +9,9 @@ describe Thegarage::Gitx::Cli::ReleaseCommand do
|
|
9
9
|
pretend: true
|
10
10
|
}
|
11
11
|
end
|
12
|
-
let(:cli) {
|
12
|
+
let(:cli) { described_class.new(args, options, config) }
|
13
13
|
let(:branch) { double('fake branch', name: 'feature-branch') }
|
14
|
+
let(:authorization_token) { '123123' }
|
14
15
|
|
15
16
|
before do
|
16
17
|
allow(cli).to receive(:current_branch).and_return(branch)
|
@@ -28,8 +29,30 @@ describe Thegarage::Gitx::Cli::ReleaseCommand do
|
|
28
29
|
should meet_expectations
|
29
30
|
end
|
30
31
|
end
|
31
|
-
context 'when user confirms release and pull request exists' do
|
32
|
-
|
32
|
+
context 'when user confirms release and pull request exists with non-success status' do
|
33
|
+
before do
|
34
|
+
expect(cli).to receive(:execute_command).with(Thegarage::Gitx::Cli::UpdateCommand, :update)
|
35
|
+
expect(cli).to_not receive(:execute_command).with(Thegarage::Gitx::Cli::IntegrateCommand, :integrate, 'staging')
|
36
|
+
expect(cli).to_not receive(:execute_command).with(Thegarage::Gitx::Cli::CleanupCommand, :cleanup)
|
37
|
+
|
38
|
+
expect(cli).to receive(:yes?).with('Release feature-branch to production? (y/n)', :green).and_return(true)
|
39
|
+
expect(cli).to receive(:yes?).with('Branch status is currently: failure. Proceed with release? (y/n)', :red).and_return(false)
|
40
|
+
allow(cli).to receive(:authorization_token).and_return(authorization_token)
|
41
|
+
|
42
|
+
expect(cli).to_not receive(:run_cmd).with("git checkout master")
|
43
|
+
expect(cli).to_not receive(:run_cmd).with("git pull origin master")
|
44
|
+
expect(cli).to_not receive(:run_cmd).with("git merge --no-ff feature-branch")
|
45
|
+
expect(cli).to_not receive(:run_cmd).with("git push origin HEAD")
|
46
|
+
|
47
|
+
VCR.use_cassette('pull_request_does_exist_with_failure_status') do
|
48
|
+
cli.release
|
49
|
+
end
|
50
|
+
end
|
51
|
+
it 'runs expected commands' do
|
52
|
+
should meet_expectations
|
53
|
+
end
|
54
|
+
end
|
55
|
+
context 'when user confirms release and pull request exists with success status' do
|
33
56
|
before do
|
34
57
|
expect(cli).to receive(:execute_command).with(Thegarage::Gitx::Cli::UpdateCommand, :update)
|
35
58
|
expect(cli).to receive(:execute_command).with(Thegarage::Gitx::Cli::IntegrateCommand, :integrate, 'staging')
|
@@ -43,7 +66,7 @@ describe Thegarage::Gitx::Cli::ReleaseCommand do
|
|
43
66
|
expect(cli).to receive(:run_cmd).with("git merge --no-ff feature-branch").ordered
|
44
67
|
expect(cli).to receive(:run_cmd).with("git push origin HEAD").ordered
|
45
68
|
|
46
|
-
VCR.use_cassette('
|
69
|
+
VCR.use_cassette('pull_request_does_exist_with_success_status') do
|
47
70
|
cli.release
|
48
71
|
end
|
49
72
|
end
|
@@ -52,7 +75,6 @@ describe Thegarage::Gitx::Cli::ReleaseCommand do
|
|
52
75
|
end
|
53
76
|
end
|
54
77
|
context 'when user confirms release and pull request does not exist' do
|
55
|
-
let(:authorization_token) { '123123' }
|
56
78
|
let(:new_pull_request) do
|
57
79
|
{
|
58
80
|
html_url: "https://path/to/html/pull/request",
|
@@ -71,7 +93,8 @@ describe Thegarage::Gitx::Cli::ReleaseCommand do
|
|
71
93
|
expect(cli).to receive(:execute_command).with(Thegarage::Gitx::Cli::IntegrateCommand, :integrate, 'staging')
|
72
94
|
expect(cli).to_not receive(:execute_command).with(Thegarage::Gitx::Cli::CleanupCommand, :cleanup)
|
73
95
|
|
74
|
-
expect(cli).to receive(:yes?).and_return(true)
|
96
|
+
expect(cli).to receive(:yes?).with('Release feature-branch to production? (y/n)', :green).and_return(true)
|
97
|
+
expect(cli).to receive(:yes?).with('Branch status is currently: pending. Proceed with release? (y/n)', :red).and_return(true)
|
75
98
|
|
76
99
|
expect(cli).to receive(:run_cmd).with("git log master...feature-branch --reverse --no-merges --pretty=format:'* %s%n%b'").and_return("2013-01-01 did some stuff").ordered
|
77
100
|
expect(cli).to receive(:run_cmd).with("git checkout master").ordered
|
@@ -97,7 +120,6 @@ describe Thegarage::Gitx::Cli::ReleaseCommand do
|
|
97
120
|
cleanup: true
|
98
121
|
}
|
99
122
|
end
|
100
|
-
let(:authorization_token) { '123123' }
|
101
123
|
before do
|
102
124
|
expect(cli).to receive(:execute_command).with(Thegarage::Gitx::Cli::UpdateCommand, :update)
|
103
125
|
expect(cli).to receive(:execute_command).with(Thegarage::Gitx::Cli::IntegrateCommand, :integrate, 'staging')
|
@@ -111,7 +133,7 @@ describe Thegarage::Gitx::Cli::ReleaseCommand do
|
|
111
133
|
expect(cli).to receive(:run_cmd).with("git merge --no-ff feature-branch").ordered
|
112
134
|
expect(cli).to receive(:run_cmd).with("git push origin HEAD").ordered
|
113
135
|
|
114
|
-
VCR.use_cassette('
|
136
|
+
VCR.use_cassette('pull_request_does_exist_with_success_status') do
|
115
137
|
cli.release
|
116
138
|
end
|
117
139
|
end
|
@@ -71,7 +71,7 @@ describe Thegarage::Gitx::Cli::ReviewCommand do
|
|
71
71
|
allow(cli).to receive(:authorization_token).and_return(authorization_token)
|
72
72
|
expect(cli).to_not receive(:create_pull_request)
|
73
73
|
|
74
|
-
VCR.use_cassette('
|
74
|
+
VCR.use_cassette('pull_request_does_exist_with_success_status') do
|
75
75
|
cli.review
|
76
76
|
end
|
77
77
|
end
|
@@ -91,7 +91,7 @@ describe Thegarage::Gitx::Cli::ReviewCommand do
|
|
91
91
|
|
92
92
|
stub_request(:patch, /.*api.github.com.*/).to_return(:status => 200)
|
93
93
|
|
94
|
-
VCR.use_cassette('
|
94
|
+
VCR.use_cassette('pull_request_does_exist_with_success_status') do
|
95
95
|
cli.review
|
96
96
|
end
|
97
97
|
end
|
@@ -109,7 +109,7 @@ describe Thegarage::Gitx::Cli::ReviewCommand do
|
|
109
109
|
before do
|
110
110
|
allow(cli).to receive(:authorization_token).and_return(authorization_token)
|
111
111
|
expect(cli).to receive(:run_cmd).with("open https://path/to/html/pull/request").ordered
|
112
|
-
VCR.use_cassette('
|
112
|
+
VCR.use_cassette('pull_request_does_exist_with_success_status') do
|
113
113
|
cli.review
|
114
114
|
end
|
115
115
|
end
|
@@ -129,7 +129,7 @@ describe Thegarage::Gitx::Cli::ReviewCommand do
|
|
129
129
|
expect(cli).to receive(:ask_editor).and_return('comment description')
|
130
130
|
stub_request(:post, /.*api.github.com.*/).to_return(:status => 201)
|
131
131
|
|
132
|
-
VCR.use_cassette('
|
132
|
+
VCR.use_cassette('pull_request_does_exist_with_success_status') do
|
133
133
|
cli.review
|
134
134
|
end
|
135
135
|
end
|
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.
|
4
|
+
version: 2.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Sonnek
|
@@ -275,7 +275,8 @@ files:
|
|
275
275
|
- lib/thegarage/gitx/extensions/thor.rb
|
276
276
|
- lib/thegarage/gitx/github.rb
|
277
277
|
- lib/thegarage/gitx/version.rb
|
278
|
-
- spec/fixtures/vcr_cassettes/
|
278
|
+
- spec/fixtures/vcr_cassettes/pull_request_does_exist_with_failure_status.yml
|
279
|
+
- spec/fixtures/vcr_cassettes/pull_request_does_exist_with_success_status.yml
|
279
280
|
- spec/fixtures/vcr_cassettes/pull_request_does_not_exist.yml
|
280
281
|
- spec/spec_helper.rb
|
281
282
|
- spec/support/matchers/meet_expectations_matcher.rb
|
@@ -320,7 +321,8 @@ signing_key:
|
|
320
321
|
specification_version: 4
|
321
322
|
summary: Utility scripts for Git to increase productivity for common operations
|
322
323
|
test_files:
|
323
|
-
- spec/fixtures/vcr_cassettes/
|
324
|
+
- spec/fixtures/vcr_cassettes/pull_request_does_exist_with_failure_status.yml
|
325
|
+
- spec/fixtures/vcr_cassettes/pull_request_does_exist_with_success_status.yml
|
324
326
|
- spec/fixtures/vcr_cassettes/pull_request_does_not_exist.yml
|
325
327
|
- spec/spec_helper.rb
|
326
328
|
- spec/support/matchers/meet_expectations_matcher.rb
|