thegarage-gitx 1.2.0 → 1.2.1
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.
- checksums.yaml +4 -4
- data/.travis.yml +1 -6
- data/lib/thegarage/gitx/git.rb +1 -1
- data/lib/thegarage/gitx/github.rb +3 -4
- data/lib/thegarage/gitx/version.rb +1 -1
- data/spec/thegarage/gitx/cli_spec.rb +51 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 80aafd556ae6dca4c266fe24a0bdfb5800b35f14
|
4
|
+
data.tar.gz: 3832c3bc543af63458d8e3aa903c01f4b6cda9ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63a56af292e550422d1cce4160cf4dd85185cb3a7ea0af4c8a56c4f200644e386a3317d17c9c59fc546f937ad207ec38c1f93480a3c582d568bfaa286c07c129
|
7
|
+
data.tar.gz: 37c2ce8e2a6919ab9f9ea8ab7581e1af0f86d436862763cd59fe68d1703ea0357ef052297c3551d5fc6a9bff2ae09132365edc7372bec1b03ebcecdc0905ab18
|
data/.travis.yml
CHANGED
data/lib/thegarage/gitx/git.rb
CHANGED
@@ -25,7 +25,7 @@ module Thegarage
|
|
25
25
|
# ex: git@github.com:socialcast/thegarage/gitx.git OR https://github.com/socialcast/thegarage/gitx.git
|
26
26
|
def current_remote_repo
|
27
27
|
repo = current_repo.config['remote.origin.url']
|
28
|
-
repo.gsub(/\.git$/,'').split(/[:\/]/).last(2).join('/')
|
28
|
+
repo.to_s.gsub(/\.git$/,'').split(/[:\/]/).last(2).join('/')
|
29
29
|
end
|
30
30
|
|
31
31
|
# @returns [String] github username (ex: 'wireframe') of the current github.user
|
@@ -19,9 +19,8 @@ module Thegarage
|
|
19
19
|
auth_token = github_auth_token
|
20
20
|
return auth_token unless auth_token.to_s.blank?
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
password = ask("Github password for #{username}: ", :echo => false)
|
22
|
+
raise "Github user not configured. Run: `git config --global github.user 'me@email.com'`" unless current_user
|
23
|
+
password = ask("Github password for #{current_user}: ", :echo => false)
|
25
24
|
|
26
25
|
payload = {
|
27
26
|
:scopes => ['repo'],
|
@@ -31,7 +30,7 @@ module Thegarage
|
|
31
30
|
response = RestClient::Request.new({
|
32
31
|
:url => "https://api.github.com/authorizations",
|
33
32
|
:method => "POST",
|
34
|
-
:user =>
|
33
|
+
:user => current_user,
|
35
34
|
:password => password,
|
36
35
|
:payload => payload,
|
37
36
|
:headers => {
|
@@ -276,6 +276,57 @@ describe Thegarage::Gitx::CLI do
|
|
276
276
|
end
|
277
277
|
|
278
278
|
describe '#reviewrequest' do
|
279
|
+
context 'when github.user is not configured' do
|
280
|
+
it 'raises error' do
|
281
|
+
expect(cli).to receive(:run).with("git pull origin feature-branch", capture: true).ordered
|
282
|
+
expect(cli).to receive(:run).with("git pull origin master", capture: true).ordered
|
283
|
+
expect(cli).to receive(:run).with("git push origin HEAD", capture: true).ordered
|
284
|
+
|
285
|
+
expect do
|
286
|
+
cli.reviewrequest
|
287
|
+
end.to raise_error /Github user not configured/
|
288
|
+
end
|
289
|
+
end
|
290
|
+
context 'when authorization_token is nil' do
|
291
|
+
let(:options) { {description: 'testing'} }
|
292
|
+
let(:current_user) { 'ryan@codecrate.com' }
|
293
|
+
let(:github_password) { 'secretz' }
|
294
|
+
let(:authorization_token) { 'auth_token' }
|
295
|
+
let(:expected_auth_body) do
|
296
|
+
JSON.dump({
|
297
|
+
scopes: ["repo"],
|
298
|
+
note: "The Garage Git eXtensions",
|
299
|
+
note_url: "https://github.com/thegarage/thegarage-gitx"
|
300
|
+
})
|
301
|
+
end
|
302
|
+
before do
|
303
|
+
stub_request(:post, "https://#{current_user}:#{github_password}@api.github.com/authorizations").
|
304
|
+
with(:body => expected_auth_body).
|
305
|
+
to_return(:status => 200, :body => JSON.dump(token: authorization_token), :headers => {})
|
306
|
+
|
307
|
+
stub_request(:post, "https://api.github.com/repos/thegarage/thegarage-gitx/pulls").
|
308
|
+
to_return(:status => 200, :body => %q({"html_url": "http://github.com/repo/project/pulls/1"}), :headers => {})
|
309
|
+
|
310
|
+
allow(cli).to receive(:current_user).and_return(current_user)
|
311
|
+
expect(cli).to receive(:ask).with('Github password for ryan@codecrate.com: ', {:echo => false}).and_return(github_password)
|
312
|
+
expect(cli).to receive(:github_auth_token=).with(authorization_token)
|
313
|
+
|
314
|
+
expect(cli).to receive(:run).with("git pull origin feature-branch", capture: true).ordered
|
315
|
+
expect(cli).to receive(:run).with("git pull origin master", capture: true).ordered
|
316
|
+
expect(cli).to receive(:run).with("git push origin HEAD", capture: true).ordered
|
317
|
+
|
318
|
+
cli.reviewrequest
|
319
|
+
end
|
320
|
+
it 'creates authorization_token' do
|
321
|
+
should meet_expectations
|
322
|
+
end
|
323
|
+
it 'should create github pull request' do
|
324
|
+
should meet_expectations
|
325
|
+
end
|
326
|
+
it 'should run expected commands' do
|
327
|
+
should meet_expectations
|
328
|
+
end
|
329
|
+
end
|
279
330
|
context 'when description != null and there is an existing authorization_token' do
|
280
331
|
let(:options) { {description: 'testing'} }
|
281
332
|
let(:authorization_token) { '123981239123' }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thegarage-gitx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.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: 2013-
|
11
|
+
date: 2013-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: grit
|
@@ -204,7 +204,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
204
204
|
version: '0'
|
205
205
|
requirements: []
|
206
206
|
rubyforge_project:
|
207
|
-
rubygems_version: 2.0.
|
207
|
+
rubygems_version: 2.0.3
|
208
208
|
signing_key:
|
209
209
|
specification_version: 4
|
210
210
|
summary: Utility scripts for Git to increase productivity for common operations
|