github_api 0.3.0 → 0.3.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.
- data/README.rdoc +1 -1
- data/lib/github_api/authorization.rb +17 -1
- data/lib/github_api/connection.rb +1 -2
- data/lib/github_api/request.rb +2 -2
- data/lib/github_api/request/basic_auth.rb +8 -3
- data/lib/github_api/version.rb +1 -1
- data/spec/github/authorization_spec.rb +28 -0
- data/spec/github/authorizations_spec.rb +17 -16
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -44,7 +44,23 @@ module Github
|
|
44
44
|
|
45
45
|
# Check whether authentication credentials are present
|
46
46
|
def authenticated?
|
47
|
-
|
47
|
+
basic_authed? || oauth_token?
|
48
|
+
end
|
49
|
+
|
50
|
+
# Check whether basic authentication credentials are present
|
51
|
+
def basic_authed?
|
52
|
+
basic_auth? || (login? && password?)
|
53
|
+
end
|
54
|
+
|
55
|
+
# Select authentication parameters
|
56
|
+
def authentication
|
57
|
+
if login? && password?
|
58
|
+
{ :login => login, :password => password }
|
59
|
+
elsif basic_auth?
|
60
|
+
{ :basic_auth => basic_auth }
|
61
|
+
else
|
62
|
+
{ }
|
63
|
+
end
|
48
64
|
end
|
49
65
|
|
50
66
|
private
|
@@ -36,7 +36,6 @@ module Github
|
|
36
36
|
def connection(options = {}) # :nodoc:
|
37
37
|
|
38
38
|
# parse(options['resource'], options['mime_type'] || mime_type) if options['mime_type']
|
39
|
-
debugger
|
40
39
|
# merged_options = if connection_options.empty?
|
41
40
|
# header_options.merge(options)
|
42
41
|
# else
|
@@ -57,7 +56,7 @@ module Github
|
|
57
56
|
builder.use Faraday::Response::Logger
|
58
57
|
|
59
58
|
builder.use Github::Request::OAuth2, oauth_token if oauth_token?
|
60
|
-
builder.use Github::Request::BasicAuth,
|
59
|
+
builder.use Github::Request::BasicAuth, authentication if basic_authed?
|
61
60
|
|
62
61
|
unless options[:raw]
|
63
62
|
builder.use Github::Response::Mashify
|
data/lib/github_api/request.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'base64'
|
4
4
|
require 'addressable/uri'
|
5
|
-
require '
|
5
|
+
require 'multi_json'
|
6
6
|
|
7
7
|
module Github
|
8
8
|
# Defines HTTP verbs
|
@@ -49,7 +49,7 @@ module Github
|
|
49
49
|
request.url(path, params)
|
50
50
|
when *METHODS_WITH_BODIES
|
51
51
|
request.path = path
|
52
|
-
request.body = _process_params(params) unless params.empty?
|
52
|
+
request.body = MultiJson.encode(_process_params(params)) unless params.empty?
|
53
53
|
end
|
54
54
|
end
|
55
55
|
response.body
|
@@ -9,7 +9,6 @@ module Github
|
|
9
9
|
dependency 'base64'
|
10
10
|
|
11
11
|
def call(env)
|
12
|
-
# puts "BASIC: #{@auth}"
|
13
12
|
env[:request_headers].merge!('Authorization' => "Basic #{@auth}\"")
|
14
13
|
|
15
14
|
@app.call env
|
@@ -17,8 +16,14 @@ module Github
|
|
17
16
|
|
18
17
|
def initialize(app, *args)
|
19
18
|
@app = app
|
20
|
-
|
21
|
-
|
19
|
+
credentials = ""
|
20
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
21
|
+
if options.has_key? :login
|
22
|
+
credentials = "#{options[:login]}:#{options[:password]}"
|
23
|
+
elsif options.has_key? :basic_auth
|
24
|
+
credentials = "#{options[:basic_auth]}"
|
25
|
+
end
|
26
|
+
@auth = Base64.encode64(credentials)
|
22
27
|
@auth.gsub!("\n", "")
|
23
28
|
end
|
24
29
|
end # BasicAuth
|
data/lib/github_api/version.rb
CHANGED
@@ -68,4 +68,32 @@ describe Github::Authorization do
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
|
+
context "authentication" do
|
72
|
+
it "should respond to 'authentication'" do
|
73
|
+
github.should respond_to :authentication
|
74
|
+
end
|
75
|
+
|
76
|
+
context 'basic_auth' do
|
77
|
+
before do
|
78
|
+
github = Github.new :basic_auth => 'github:pass'
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should return hash with basic auth params" do
|
82
|
+
github.authentication.should be_a Hash
|
83
|
+
github.authentication.should have_key :basic_auth
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context 'login & password' do
|
88
|
+
before do
|
89
|
+
github = Github.new :login => 'github', :password => 'pass'
|
90
|
+
end
|
91
|
+
|
92
|
+
it "should return hash with login & password params" do
|
93
|
+
github.authentication.should be_a Hash
|
94
|
+
github.authentication.should have_key :login
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end # authentication
|
98
|
+
|
71
99
|
end # Github::Authorization
|
@@ -3,9 +3,10 @@ require 'spec_helper'
|
|
3
3
|
describe Github::Authorizations do
|
4
4
|
|
5
5
|
let(:github) { Github.new }
|
6
|
+
let(:basic_auth) { 'login:password' }
|
6
7
|
|
7
8
|
before do
|
8
|
-
github.basic_auth =
|
9
|
+
github.basic_auth = basic_auth
|
9
10
|
end
|
10
11
|
|
11
12
|
after do
|
@@ -15,7 +16,7 @@ describe Github::Authorizations do
|
|
15
16
|
describe "authorizations" do
|
16
17
|
context "resource found" do
|
17
18
|
before do
|
18
|
-
stub_get("/authorizations").
|
19
|
+
stub_get("/authorizations", "https://#{basic_auth}@api.github.com").
|
19
20
|
to_return(:body => fixture('auths/authorizations.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
|
20
21
|
end
|
21
22
|
|
@@ -27,7 +28,7 @@ describe Github::Authorizations do
|
|
27
28
|
|
28
29
|
it "should get the resources" do
|
29
30
|
github.oauth.authorizations
|
30
|
-
a_get("/authorizations").should have_been_made
|
31
|
+
a_get("/authorizations", "https://#{basic_auth}@api.github.com").should have_been_made
|
31
32
|
end
|
32
33
|
|
33
34
|
it "should return array of resources" do
|
@@ -54,7 +55,7 @@ describe Github::Authorizations do
|
|
54
55
|
|
55
56
|
context "resource not found" do
|
56
57
|
before do
|
57
|
-
stub_get("/authorizations").
|
58
|
+
stub_get("/authorizations", "https://#{basic_auth}@api.github.com").
|
58
59
|
to_return(:body => "", :status => [404, "Not Found"])
|
59
60
|
end
|
60
61
|
|
@@ -69,7 +70,7 @@ describe Github::Authorizations do
|
|
69
70
|
|
70
71
|
context "resource found" do
|
71
72
|
before do
|
72
|
-
stub_get("/authorizations/#{authorization_id}").
|
73
|
+
stub_get("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").
|
73
74
|
to_return(:body => fixture('auths/authorization.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
|
74
75
|
end
|
75
76
|
|
@@ -79,7 +80,7 @@ describe Github::Authorizations do
|
|
79
80
|
|
80
81
|
it "should get the resource" do
|
81
82
|
github.oauth.authorization authorization_id
|
82
|
-
a_get("/authorizations/#{authorization_id}").should have_been_made
|
83
|
+
a_get("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").should have_been_made
|
83
84
|
end
|
84
85
|
|
85
86
|
it "should get authorization information" do
|
@@ -96,7 +97,7 @@ describe Github::Authorizations do
|
|
96
97
|
|
97
98
|
context "resource not found" do
|
98
99
|
before do
|
99
|
-
stub_get("/authorizations/#{authorization_id}").
|
100
|
+
stub_get("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").
|
100
101
|
to_return(:body => fixture('auths/authorization.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
|
101
102
|
end
|
102
103
|
|
@@ -119,13 +120,13 @@ describe Github::Authorizations do
|
|
119
120
|
end
|
120
121
|
|
121
122
|
before do
|
122
|
-
stub_post("/authorizations").with(inputs).
|
123
|
+
stub_post("/authorizations", "https://#{basic_auth}@api.github.com").with(inputs).
|
123
124
|
to_return(:body => fixture('auths/authorization.json'), :status => 201, :headers => {:content_type => "application/json; charset=utf-8"})
|
124
125
|
end
|
125
126
|
|
126
127
|
it "should create resource successfully" do
|
127
128
|
github.oauth.create_authorization inputs
|
128
|
-
a_post("/authorizations").with(inputs).should have_been_made
|
129
|
+
a_post("/authorizations", "https://#{basic_auth}@api.github.com").with(inputs).should have_been_made
|
129
130
|
end
|
130
131
|
|
131
132
|
it "should return the resource" do
|
@@ -141,7 +142,7 @@ describe Github::Authorizations do
|
|
141
142
|
|
142
143
|
context "failed to create resource" do
|
143
144
|
before do
|
144
|
-
stub_post("/authorizations").with(inputs).
|
145
|
+
stub_post("/authorizations", "https://#{basic_auth}@api.github.com").with(inputs).
|
145
146
|
to_return(:body => '', :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
|
146
147
|
|
147
148
|
end
|
@@ -166,13 +167,13 @@ describe Github::Authorizations do
|
|
166
167
|
end
|
167
168
|
|
168
169
|
before do
|
169
|
-
stub_patch("/authorizations/#{authorization_id}").with(inputs).
|
170
|
+
stub_patch("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").with(inputs).
|
170
171
|
to_return(:body => fixture('auths/authorization.json'), :status => 201, :headers => {:content_type => "application/json; charset=utf-8"})
|
171
172
|
end
|
172
173
|
|
173
174
|
it "should update resource successfully" do
|
174
175
|
github.oauth.update_authorization authorization_id, inputs
|
175
|
-
a_patch("/authorizations/#{authorization_id}").with(inputs).should have_been_made
|
176
|
+
a_patch("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").with(inputs).should have_been_made
|
176
177
|
end
|
177
178
|
|
178
179
|
it "should return the resource" do
|
@@ -188,7 +189,7 @@ describe Github::Authorizations do
|
|
188
189
|
|
189
190
|
context "failed to update resource" do
|
190
191
|
before do
|
191
|
-
stub_patch("/authorizations/#{authorization_id}").with(inputs).
|
192
|
+
stub_patch("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").with(inputs).
|
192
193
|
to_return(:body => '', :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
|
193
194
|
|
194
195
|
end
|
@@ -213,19 +214,19 @@ describe Github::Authorizations do
|
|
213
214
|
end
|
214
215
|
|
215
216
|
before do
|
216
|
-
stub_delete("/authorizations/#{authorization_id}").
|
217
|
+
stub_delete("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").
|
217
218
|
to_return(:body => '', :status => 204, :headers => {:content_type => "application/json; charset=utf-8"})
|
218
219
|
end
|
219
220
|
|
220
221
|
it "should delete resource successfully" do
|
221
222
|
github.oauth.delete_authorization authorization_id
|
222
|
-
a_delete("/authorizations/#{authorization_id}").should have_been_made
|
223
|
+
a_delete("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").should have_been_made
|
223
224
|
end
|
224
225
|
end
|
225
226
|
|
226
227
|
context "failed to create resource" do
|
227
228
|
before do
|
228
|
-
stub_delete("/authorizations/#{authorization_id}").
|
229
|
+
stub_delete("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").
|
229
230
|
to_return(:body => '', :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
|
230
231
|
|
231
232
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 1
|
9
|
+
version: 0.3.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Piotr Murach
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-11-
|
17
|
+
date: 2011-11-27 00:00:00 +00:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|