github-auth 3.0.2 → 3.1.0
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/CHANGELOG.md +6 -0
- data/github-auth.gemspec +6 -6
- data/lib/github/auth/keys_client.rb +9 -7
- data/lib/github/auth/version.rb +1 -1
- data/spec/acceptance/github/auth/cli_spec.rb +5 -15
- data/spec/spec_helper.rb +2 -0
- data/spec/support/mock_github_server.rb +3 -3
- data/spec/unit/github/auth/keys_client_spec.rb +16 -14
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 866015fe862fbab302717fd2a69a8c5814b295b9
|
4
|
+
data.tar.gz: 26553482cc60a5fcfa47c488f54cb32588eb180d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 329a7874a4f041f1e5a95c63d3cf268ce7da441a2fbc03d108c76a323bbc40414f291a5eed4cc1c2479351c2b60d28aac48d73b6d96a60f5e9820c21c1345f36
|
7
|
+
data.tar.gz: efa20d0e9eeeb1f50727476704d0d30ec944f84f4af7e2f5a38fb6fad6b412d36907c18a76937a8200fe78166285d385c3952392e40742b0243dc3db2bcdc2f6
|
data/CHANGELOG.md
CHANGED
data/github-auth.gemspec
CHANGED
@@ -18,17 +18,17 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency 'bundler', '~> 1.5'
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.5.3'
|
22
22
|
spec.add_development_dependency 'cane', '~> 2.6.1'
|
23
23
|
spec.add_development_dependency 'cane-hashcheck', '~> 1.2.0'
|
24
24
|
spec.add_development_dependency 'coveralls', '~> 0.7.0'
|
25
|
-
spec.add_development_dependency 'mute', '~> 1.
|
26
|
-
spec.add_development_dependency 'pry', '~> 0.9.12.
|
25
|
+
spec.add_development_dependency 'mute', '~> 1.1.0'
|
26
|
+
spec.add_development_dependency 'pry', '~> 0.9.12.6'
|
27
27
|
spec.add_development_dependency 'rake', '~> 10.1.1'
|
28
28
|
spec.add_development_dependency 'rspec', '~> 2.14.1'
|
29
29
|
spec.add_development_dependency 'sinatra', '~> 1.4.4'
|
30
|
-
spec.add_development_dependency 'thin', '~> 1.6.
|
30
|
+
spec.add_development_dependency 'thin', '~> 1.6.2'
|
31
31
|
|
32
|
-
spec.add_runtime_dependency '
|
33
|
-
spec.add_runtime_dependency 'thor',
|
32
|
+
spec.add_runtime_dependency 'faraday', '~> 0.9.0'
|
33
|
+
spec.add_runtime_dependency 'thor', '~> 0.18.1'
|
34
34
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'cgi'
|
2
|
-
require '
|
2
|
+
require 'json'
|
3
|
+
require 'faraday'
|
3
4
|
|
4
5
|
module Github::Auth
|
5
6
|
# Client for fetching public SSH keys using the Github API
|
@@ -35,17 +36,18 @@ module Github::Auth
|
|
35
36
|
private
|
36
37
|
|
37
38
|
def github_response
|
38
|
-
response = http_client.get
|
39
|
+
response = http_client.get \
|
39
40
|
"#{hostname}/users/#{username}/keys", headers: headers
|
40
|
-
|
41
|
-
raise GithubUserDoesNotExistError if response.
|
42
|
-
|
43
|
-
|
41
|
+
|
42
|
+
raise GithubUserDoesNotExistError if response.status == 404
|
43
|
+
|
44
|
+
JSON.parse response.body
|
45
|
+
rescue Faraday::Error => e
|
44
46
|
raise GithubUnavailableError, e
|
45
47
|
end
|
46
48
|
|
47
49
|
def http_client
|
48
|
-
|
50
|
+
Faraday
|
49
51
|
end
|
50
52
|
|
51
53
|
def headers
|
data/lib/github/auth/version.rb
CHANGED
@@ -19,17 +19,13 @@ describe Github::Auth::CLI do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'adds and removes keys from the keys file' do
|
22
|
-
|
23
|
-
cli %w(add --users=chrishunt)
|
24
|
-
end
|
22
|
+
cli %w(add --users=chrishunt)
|
25
23
|
|
26
24
|
keys_file.read.tap do |keys_file_content|
|
27
25
|
keys.each { |key| expect(keys_file_content).to include key.to_s }
|
28
26
|
end
|
29
27
|
|
30
|
-
|
31
|
-
cli %w(remove --users=chrishunt)
|
32
|
-
end
|
28
|
+
cli %w(remove --users=chrishunt)
|
33
29
|
|
34
30
|
expect(keys_file.read).to be_empty
|
35
31
|
|
@@ -37,9 +33,7 @@ describe Github::Auth::CLI do
|
|
37
33
|
end
|
38
34
|
|
39
35
|
it 'lists users from the keys file' do
|
40
|
-
|
41
|
-
cli %w(add --users=chrishunt)
|
42
|
-
end
|
36
|
+
cli %w(add --users=chrishunt)
|
43
37
|
|
44
38
|
output = Mute::IO.capture_stdout do
|
45
39
|
cli %w(list)
|
@@ -49,17 +43,13 @@ describe Github::Auth::CLI do
|
|
49
43
|
end
|
50
44
|
|
51
45
|
it 'supports ssh commands' do
|
52
|
-
|
53
|
-
cli %w(add --users=chrishunt) << '--command=tmux attach'
|
54
|
-
end
|
46
|
+
cli %w(add --users=chrishunt) << '--command=tmux attach'
|
55
47
|
|
56
48
|
expect(keys_file.read).to include 'command="tmux attach"'
|
57
49
|
|
58
50
|
keys_file.rewind
|
59
51
|
|
60
|
-
|
61
|
-
cli %w(remove --users=chrishunt)
|
62
|
-
end
|
52
|
+
cli %w(remove --users=chrishunt)
|
63
53
|
|
64
54
|
expect(keys_file.read.strip).to be_empty
|
65
55
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'faraday'
|
2
2
|
require 'sinatra/base'
|
3
3
|
require 'json'
|
4
4
|
|
@@ -34,9 +34,9 @@ def with_mock_github_server
|
|
34
34
|
|
35
35
|
while true
|
36
36
|
begin
|
37
|
-
|
37
|
+
Faraday.get hostname
|
38
38
|
break
|
39
|
-
rescue
|
39
|
+
rescue Faraday::ConnectionFailed
|
40
40
|
# Do nothing, try again
|
41
41
|
end
|
42
42
|
end
|
@@ -8,11 +8,11 @@ describe Github::Auth::KeysClient do
|
|
8
8
|
let(:username) { 'chrishunt' }
|
9
9
|
let(:http_client) { double('HttpClient', get: response) }
|
10
10
|
let(:response_code) { 200 }
|
11
|
-
let(:
|
11
|
+
let(:body) { [] }
|
12
12
|
let(:response) {
|
13
|
-
double('
|
14
|
-
|
15
|
-
|
13
|
+
double('Faraday::Response', {
|
14
|
+
status: response_code,
|
15
|
+
body: JSON.generate(body)
|
16
16
|
})
|
17
17
|
}
|
18
18
|
|
@@ -55,13 +55,13 @@ describe Github::Auth::KeysClient do
|
|
55
55
|
end
|
56
56
|
|
57
57
|
context 'when the github user has keys' do
|
58
|
-
let(:
|
58
|
+
let(:body) {[
|
59
59
|
{ 'id' => 123, 'key' => 'abc123' },
|
60
60
|
{ 'id' => 456, 'key' => 'def456' }
|
61
61
|
]}
|
62
62
|
|
63
63
|
it 'returns the keys' do
|
64
|
-
expected_keys =
|
64
|
+
expected_keys = body.map do |entry|
|
65
65
|
Github::Auth::Key.new username, entry.fetch('key')
|
66
66
|
end
|
67
67
|
|
@@ -70,7 +70,7 @@ describe Github::Auth::KeysClient do
|
|
70
70
|
end
|
71
71
|
|
72
72
|
context 'when the github user does not have keys' do
|
73
|
-
let(:
|
73
|
+
let(:body) { [] }
|
74
74
|
|
75
75
|
it 'returns an empty array' do
|
76
76
|
expect(subject.keys).to eq []
|
@@ -88,14 +88,16 @@ describe Github::Auth::KeysClient do
|
|
88
88
|
end
|
89
89
|
|
90
90
|
context 'when there is an issue connecting to Github' do
|
91
|
-
|
92
|
-
|
91
|
+
before do
|
92
|
+
http_client
|
93
|
+
.stub(:get)
|
94
|
+
.and_raise Faraday::Error::ConnectionFailed.new('Oops!')
|
95
|
+
end
|
93
96
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
end
|
97
|
+
it 'raises a GithubUnavailableError' do
|
98
|
+
expect {
|
99
|
+
subject.keys
|
100
|
+
}.to raise_error Github::Auth::KeysClient::GithubUnavailableError
|
99
101
|
end
|
100
102
|
end
|
101
103
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github-auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Hunt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.5.3
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.5.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: cane
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,28 +72,28 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.
|
75
|
+
version: 1.1.0
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.
|
82
|
+
version: 1.1.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: pry
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.9.12.
|
89
|
+
version: 0.9.12.6
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - ~>
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.9.12.
|
96
|
+
version: 0.9.12.6
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rake
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,28 +142,28 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - ~>
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 1.6.
|
145
|
+
version: 1.6.2
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - ~>
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 1.6.
|
152
|
+
version: 1.6.2
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
154
|
+
name: faraday
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - ~>
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 0.
|
159
|
+
version: 0.9.0
|
160
160
|
type: :runtime
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - ~>
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 0.
|
166
|
+
version: 0.9.0
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: thor
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|