github-auth 1.1.0 → 1.2.0

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
  SHA1:
3
- metadata.gz: 352463830e9bd640ff3d636b5ee5053b0be27518
4
- data.tar.gz: 9f2ccad8abf686958c2c0a49b99bf838b271ffc2
3
+ metadata.gz: ac13ba0c9755deb71801dffec21aba397f70d81f
4
+ data.tar.gz: b2fdba9a799045734f7673ee78bd91f00b8e1682
5
5
  SHA512:
6
- metadata.gz: 059b81934b81695ba445ba47427c6058c6a1c9e4d185ef7de8674df0c104820544e3d9d100899a7d738bd867cebbaaced781faff952e8c0c15aed3ed2d1b97fa
7
- data.tar.gz: ac44f88144f64084e91f1ef74c69bf1ba8e731bd821063583f5886516910740576f0242f628d505db4ab6b3bd6a02bdba94401acdd1491414094a9b91ed078c9
6
+ metadata.gz: 781c7170d3eee79cb1ceb64fb8a216c09ba23c37c679c26fd0bdb1052c6fa2a3bfb86ff70401a710e123bfb24b3f6c977410a73089300351a4576189e3e6fa8e
7
+ data.tar.gz: 2cdc629713e926a4ffb4681188c0401df9de7749d582284021451f100f9a2adcbb7fccb537f2da0bbf4a83facdadb0678acd30b0ab90e67af308c835eb669d37
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ spec/reports
16
16
  test/tmp
17
17
  test/version_tmp
18
18
  tmp
19
+ .ruby-version
@@ -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, authorized yourself for ssh. (Make sure to replace 'chrishunt' with
130
- *your* Github username)
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
- Since you've removed your keys, verify now that you can no longer login to your
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 wirelress network or plugged directly into a router or switch. This
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 your worked for in the past that forgot to turn it off.
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
@@ -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 'rake'
23
- spec.add_development_dependency 'rspec'
24
- spec.add_development_dependency 'cane'
25
- spec.add_development_dependency 'cane-hashcheck'
26
- spec.add_development_dependency 'coveralls'
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
@@ -1,3 +1,4 @@
1
+ # :nodoc:
1
2
  module Github::Auth
2
3
  # Represents a username/key pair from GitHub
3
4
  Key = Struct.new(:username, :key) do
@@ -40,7 +40,7 @@ module Github::Auth
40
40
  raise GithubUserDoesNotExistError if response.code == 404
41
41
  response.parsed_response
42
42
  rescue SocketError, Errno::ECONNREFUSED => e
43
- raise GithubUnavailableError.new e
43
+ raise GithubUnavailableError, e
44
44
  end
45
45
 
46
46
  def http_client
@@ -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
- keys_file.write "\n" unless keys_file_content.empty?
20
- keys_file.write key
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.new e
51
+ raise PermissionDeniedError, e
50
52
  rescue Errno::ENOENT => e
51
- raise FileDoesNotExistError.new e
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.strip!
62
+ content << "\n" unless content.empty? || content.end_with?("\n")
61
63
  end
62
64
  end
63
65
  end
@@ -1,5 +1,5 @@
1
1
  module Github
2
2
  module Auth
3
- VERSION = "1.1.0"
3
+ VERSION = "1.2.0"
4
4
  end
5
5
  end
@@ -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) { stub('HttpClient', get: response) }
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
- stub('HTTParty::Response', {
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 leave a blank line' do
52
+ it 'does not include a blank before the first key' do
53
53
  subject.write! keys
54
54
 
55
- expect(
56
- keys_file.readlines.select { |line| line =~ /^$\n/ }
57
- ).to be_empty
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 'does not leave a blank line' do
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.1.0
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-05-29 00:00:00.000000000 Z
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: rake
28
+ name: cane
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
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: '0'
40
+ version: 2.6.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: cane-hashcheck
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
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: '0'
54
+ version: 1.2.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: cane
56
+ name: coveralls
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
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: '0'
68
+ version: 0.6.7
69
69
  - !ruby/object:Gem::Dependency
70
- name: cane-hashcheck
70
+ name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
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: '0'
82
+ version: 10.1.0
83
83
  - !ruby/object:Gem::Dependency
84
- name: coveralls
84
+ name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ~>
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
138
+ version: 0.11.0
139
139
  description: SSH key management for Github users
140
140
  email:
141
141
  - c@chrishunt.co