github-auth 1.1.0 → 1.2.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/.gitignore +1 -0
- data/CHANGELOG.md +9 -0
- data/README.md +5 -5
- data/github-auth.gemspec +8 -8
- data/lib/github/auth/key.rb +1 -0
- data/lib/github/auth/keys_client.rb +1 -1
- data/lib/github/auth/keys_file.rb +7 -5
- data/lib/github/auth/version.rb +1 -1
- data/spec/unit/github/auth/keys_client_spec.rb +2 -2
- data/spec/unit/github/auth/keys_file_spec.rb +12 -8
- metadata +39 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac13ba0c9755deb71801dffec21aba397f70d81f
|
4
|
+
data.tar.gz: b2fdba9a799045734f7673ee78bd91f00b8e1682
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 781c7170d3eee79cb1ceb64fb8a216c09ba23c37c679c26fd0bdb1052c6fa2a3bfb86ff70401a710e123bfb24b3f6c977410a73089300351a4576189e3e6fa8e
|
7
|
+
data.tar.gz: 2cdc629713e926a4ffb4681188c0401df9de7749d582284021451f100f9a2adcbb7fccb537f2da0bbf4a83facdadb0678acd30b0ab90e67af308c835eb669d37
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
##v1.2.0
|
4
|
+
*2013-08-20*
|
5
|
+
|
6
|
+
[\[18 commits\]](https://github.com/chrishunt/github-auth/compare/v1.1.0...v1.2.0)
|
7
|
+
|
8
|
+
- [Add a newline at the very end of the keys file](https://github.com/chrishunt/github-auth/pull/9)
|
9
|
+
- [Fix RSpec deprecation warnings](https://github.com/chrishunt/github-auth/pull/11)
|
10
|
+
- [Add gem versions to gemspec](https://github.com/chrishunt/github-auth/commit/1296e2ebd4e4e13d80775c81ec8ca2ac3710d20c)
|
11
|
+
|
3
12
|
##v1.1.0
|
4
13
|
*2013-05-29*
|
5
14
|
|
data/README.md
CHANGED
@@ -126,8 +126,8 @@ $ chmod 600 ~/.ssh/authorized_keys
|
|
126
126
|
If you'd like to verify that everything is working as expected, you can test
|
127
127
|
locally on your own machine.
|
128
128
|
|
129
|
-
First,
|
130
|
-
*your*
|
129
|
+
First, authorize yourself for ssh. (Make sure to replace 'chrishunt' with
|
130
|
+
*your* GitHub username)
|
131
131
|
|
132
132
|
```bash
|
133
133
|
$ gh-auth add chrishunt
|
@@ -150,7 +150,7 @@ $ gh-auth remove chrishunt
|
|
150
150
|
Removing 2 key(s) from '/Users/chris/.ssh/authorized_keys'
|
151
151
|
```
|
152
152
|
|
153
|
-
|
153
|
+
Now that you've removed your keys, verify that you can no longer log in to your
|
154
154
|
machine with public key authentication:
|
155
155
|
|
156
156
|
```bash
|
@@ -193,7 +193,7 @@ $ curl http://remote-ip.herokuapp.com
|
|
193
193
|
### It's still not working! :(
|
194
194
|
|
195
195
|
In almost all cases, your laptop is not directly plugged into your modem.
|
196
|
-
You're on a
|
196
|
+
You're on a wireless network or plugged directly into a router or switch. This
|
197
197
|
means the external IP address that your pair is connecting to is not your
|
198
198
|
machine, it's actually your router.
|
199
199
|
|
@@ -214,7 +214,7 @@ ssh -p <port> username@external-ip-address
|
|
214
214
|
Yes! A nice solution to this is to have a machine **somewhere else** that both
|
215
215
|
of you can ssh into. Place this machine on a network that you *do* have the
|
216
216
|
ability to forward ports. Maybe this machine is at home, a friend's house, or
|
217
|
-
at a company
|
217
|
+
at a company you worked for in the past that forgot to turn it off.
|
218
218
|
|
219
219
|
If this isn't possible, then you can use a VPS provider like
|
220
220
|
[Linode](http://www.linode.com) to setup a pairing machine in the cloud or a
|
data/github-auth.gemspec
CHANGED
@@ -19,13 +19,13 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
21
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
22
|
-
spec.add_development_dependency '
|
23
|
-
spec.add_development_dependency '
|
24
|
-
spec.add_development_dependency '
|
25
|
-
spec.add_development_dependency '
|
26
|
-
spec.add_development_dependency '
|
27
|
-
spec.add_development_dependency 'sinatra'
|
28
|
-
spec.add_development_dependency 'thin'
|
22
|
+
spec.add_development_dependency 'cane', '~> 2.6.0'
|
23
|
+
spec.add_development_dependency 'cane-hashcheck', '~> 1.2.0'
|
24
|
+
spec.add_development_dependency 'coveralls', '~> 0.6.7'
|
25
|
+
spec.add_development_dependency 'rake', '~> 10.1.0'
|
26
|
+
spec.add_development_dependency 'rspec', '~> 2.14'
|
27
|
+
spec.add_development_dependency 'sinatra', '~> 1.4.3'
|
28
|
+
spec.add_development_dependency 'thin', '~> 1.5.1'
|
29
29
|
|
30
|
-
spec.add_runtime_dependency 'httparty'
|
30
|
+
spec.add_runtime_dependency 'httparty', '~> 0.11.0'
|
31
31
|
end
|
data/lib/github/auth/key.rb
CHANGED
@@ -16,8 +16,10 @@ module Github::Auth
|
|
16
16
|
Array(keys).each do |key|
|
17
17
|
unless keys_file_content.include? key.key
|
18
18
|
append_keys_file do |keys_file|
|
19
|
-
|
20
|
-
|
19
|
+
unless keys_file_content.empty? || keys_file_content.end_with?("\n")
|
20
|
+
keys_file.write "\n"
|
21
|
+
end
|
22
|
+
keys_file.write "#{key}\n"
|
21
23
|
end
|
22
24
|
end
|
23
25
|
end
|
@@ -46,9 +48,9 @@ module Github::Auth
|
|
46
48
|
def with_keys_file(mode, block)
|
47
49
|
File.open(path, mode) { |keys_file| block.call keys_file }
|
48
50
|
rescue Errno::EACCES => e
|
49
|
-
raise PermissionDeniedError
|
51
|
+
raise PermissionDeniedError, e
|
50
52
|
rescue Errno::ENOENT => e
|
51
|
-
raise FileDoesNotExistError
|
53
|
+
raise FileDoesNotExistError, e
|
52
54
|
end
|
53
55
|
|
54
56
|
def keys_file_content_without(keys)
|
@@ -57,7 +59,7 @@ module Github::Auth
|
|
57
59
|
content.gsub! /#{Regexp.escape key.key}( .*)?$\n?/, ''
|
58
60
|
end
|
59
61
|
|
60
|
-
content.
|
62
|
+
content << "\n" unless content.empty? || content.end_with?("\n")
|
61
63
|
end
|
62
64
|
end
|
63
65
|
end
|
data/lib/github/auth/version.rb
CHANGED
@@ -6,11 +6,11 @@ describe Github::Auth::KeysClient do
|
|
6
6
|
subject { described_class.new username: username }
|
7
7
|
|
8
8
|
let(:username) { 'chrishunt' }
|
9
|
-
let(:http_client) {
|
9
|
+
let(:http_client) { double('HttpClient', get: response) }
|
10
10
|
let(:response_code) { 200 }
|
11
11
|
let(:parsed_response) { nil }
|
12
12
|
let(:response) {
|
13
|
-
|
13
|
+
double('HTTParty::Response', {
|
14
14
|
code: response_code,
|
15
15
|
parsed_response: parsed_response
|
16
16
|
})
|
@@ -49,12 +49,16 @@ describe Github::Auth::KeysFile do
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
-
it 'does not
|
52
|
+
it 'does not include a blank before the first key' do
|
53
53
|
subject.write! keys
|
54
54
|
|
55
|
-
expect(
|
56
|
-
|
57
|
-
|
55
|
+
expect(keys_file.read).to_not start_with("\n")
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'includes a newline after the last key' do
|
59
|
+
subject.write! keys
|
60
|
+
|
61
|
+
expect(keys_file.read).to end_with("\n")
|
58
62
|
end
|
59
63
|
end
|
60
64
|
|
@@ -80,6 +84,7 @@ describe Github::Auth::KeysFile do
|
|
80
84
|
|
81
85
|
before do
|
82
86
|
keys_file.write existing_keys.join("\n")
|
87
|
+
keys_file.write "\n"
|
83
88
|
keys_file.rewind
|
84
89
|
end
|
85
90
|
|
@@ -132,6 +137,7 @@ describe Github::Auth::KeysFile do
|
|
132
137
|
|
133
138
|
before do
|
134
139
|
keys_file.write keys.join("\n")
|
140
|
+
keys_file.write "\n"
|
135
141
|
keys_file.rewind
|
136
142
|
end
|
137
143
|
|
@@ -152,12 +158,10 @@ describe Github::Auth::KeysFile do
|
|
152
158
|
end
|
153
159
|
end
|
154
160
|
|
155
|
-
it '
|
161
|
+
it 'includes a newline after the last key' do
|
156
162
|
subject.delete! key
|
157
163
|
|
158
|
-
expect(
|
159
|
-
keys_file.readlines.select { |line| line =~ /^$\n/ }
|
160
|
-
).to be_empty
|
164
|
+
expect(keys_file.read).to end_with("\n")
|
161
165
|
end
|
162
166
|
end
|
163
167
|
|
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: 1.
|
4
|
+
version: 1.2.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: 2013-
|
11
|
+
date: 2013-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -25,117 +25,117 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: cane
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.6.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.6.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: cane-hashcheck
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.2.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 1.2.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: coveralls
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 0.6.7
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 0.6.7
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 10.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:
|
82
|
+
version: 10.1.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rspec
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '2.14'
|
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: '
|
96
|
+
version: '2.14'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: sinatra
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ~>
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 1.4.3
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ~>
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: 1.4.3
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: thin
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ~>
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: 1.5.1
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ~>
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
124
|
+
version: 1.5.1
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: httparty
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - ~>
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
131
|
+
version: 0.11.0
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- -
|
136
|
+
- - ~>
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
138
|
+
version: 0.11.0
|
139
139
|
description: SSH key management for Github users
|
140
140
|
email:
|
141
141
|
- c@chrishunt.co
|