warden-github 0.14.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +5 -0
- data/lib/warden/github/oauth.rb +1 -1
- data/lib/warden/github/user.rb +10 -19
- data/lib/warden/github/version.rb +1 -1
- data/spec/unit/config_spec.rb +2 -2
- data/spec/unit/oauth_spec.rb +1 -1
- data/spec/unit/user_spec.rb +6 -8
- data/warden-github.gemspec +1 -1
- metadata +7 -6
data/CHANGELOG.md
ADDED
data/lib/warden/github/oauth.rb
CHANGED
data/lib/warden/github/user.rb
CHANGED
@@ -6,8 +6,12 @@ module Warden
|
|
6
6
|
ATTRIBUTES = %w[id login name gravatar_id email company site_admin].freeze
|
7
7
|
|
8
8
|
def self.load(access_token)
|
9
|
-
api
|
10
|
-
data =
|
9
|
+
api = Octokit::Client.new(:access_token => access_token)
|
10
|
+
data = { }
|
11
|
+
|
12
|
+
api.user.to_hash.each do |k,v|
|
13
|
+
data[k.to_s] = v if ATTRIBUTES.include?(k.to_s)
|
14
|
+
end
|
11
15
|
|
12
16
|
new(data, access_token)
|
13
17
|
end
|
@@ -55,40 +59,27 @@ module Warden
|
|
55
59
|
#
|
56
60
|
# Returns: true if the user has access, false otherwise
|
57
61
|
def team_member?(team_id)
|
58
|
-
|
59
|
-
# TODO: Use next line as method body once pengwynn/octokit#206 is public.
|
60
|
-
# api.team_member?(team_id, login)
|
61
|
-
|
62
|
-
begin
|
63
|
-
# A user is only able to query for team members if they're a member.
|
64
|
-
# Thus, if querying does succeed, they will be in the list and
|
65
|
-
# checking the list won't be necessary.
|
66
|
-
api.team_members(team_id)
|
67
|
-
true
|
68
|
-
rescue Octokit::NotFound
|
69
|
-
false
|
70
|
-
end
|
71
|
-
end
|
62
|
+
api.team_member?(team_id, login)
|
72
63
|
end
|
73
64
|
|
74
65
|
# Identify GitHub employees/staff members.
|
75
66
|
#
|
76
67
|
# Returns: true if the authenticated user is a GitHub employee, false otherwise
|
77
68
|
def site_admin?
|
78
|
-
site_admin
|
69
|
+
!!site_admin
|
79
70
|
end
|
80
71
|
|
81
72
|
# Access the GitHub API from Octokit
|
82
73
|
#
|
83
74
|
# Octokit is a robust client library for the GitHub API
|
84
|
-
# https://github.com/
|
75
|
+
# https://github.com/octokit/octokit.rb
|
85
76
|
#
|
86
77
|
# Returns a cached client object for easy use
|
87
78
|
def api
|
88
79
|
# Don't cache instance for now because of a ruby marshaling bug present
|
89
80
|
# in MRI 1.9.3 (Bug #7627) that causes instance variables to be
|
90
81
|
# marshaled even when explicitly specifying #marshal_dump.
|
91
|
-
Octokit::Client.new(:login => login, :
|
82
|
+
Octokit::Client.new(:login => login, :access_token => token)
|
92
83
|
end
|
93
84
|
|
94
85
|
private
|
data/spec/unit/config_spec.rb
CHANGED
@@ -4,7 +4,7 @@ describe Warden::GitHub::Config do
|
|
4
4
|
let(:warden_scope) { :test_scope }
|
5
5
|
|
6
6
|
let(:env) do
|
7
|
-
{ 'warden' =>
|
7
|
+
{ 'warden' => double(:config => warden_config) }
|
8
8
|
end
|
9
9
|
|
10
10
|
let(:warden_config) do
|
@@ -16,7 +16,7 @@ describe Warden::GitHub::Config do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
let(:request) do
|
19
|
-
|
19
|
+
double(:url => 'http://example.com/the/path', :path => '/the/path')
|
20
20
|
end
|
21
21
|
|
22
22
|
subject(:config) do
|
data/spec/unit/oauth_spec.rb
CHANGED
@@ -15,7 +15,7 @@ describe Warden::GitHub::OAuth do
|
|
15
15
|
describe '#authorize_uri' do
|
16
16
|
it 'contains the base uri' do
|
17
17
|
oauth.authorize_uri.to_s.should \
|
18
|
-
include Octokit
|
18
|
+
include Octokit.web_endpoint
|
19
19
|
end
|
20
20
|
|
21
21
|
%w[ client_id state redirect_uri ].each do |name|
|
data/spec/unit/user_spec.rb
CHANGED
@@ -34,7 +34,7 @@ describe Warden::GitHub::User do
|
|
34
34
|
|
35
35
|
api.should be_an Octokit::Client
|
36
36
|
api.login.should eq user.login
|
37
|
-
api.
|
37
|
+
api.access_token.should eq user.token
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -65,11 +65,10 @@ describe Warden::GitHub::User do
|
|
65
65
|
describe '#team_member?' do
|
66
66
|
context 'when user is not member' do
|
67
67
|
it 'returns false' do
|
68
|
-
api = double
|
68
|
+
api = double()
|
69
69
|
user.stub(:api => api)
|
70
70
|
|
71
|
-
|
72
|
-
api.stub(:team_members, [123]).and_raise(Octokit::NotFound.new({}))
|
71
|
+
api.stub(:team_member?).with(123, user.login).and_return(false)
|
73
72
|
|
74
73
|
user.should_not be_team_member(123)
|
75
74
|
end
|
@@ -77,10 +76,9 @@ describe Warden::GitHub::User do
|
|
77
76
|
|
78
77
|
context 'when user is member' do
|
79
78
|
it 'returns true' do
|
80
|
-
api = double
|
79
|
+
api = double()
|
81
80
|
user.stub(:api => api)
|
82
|
-
|
83
|
-
api.stub(:team_members, [123])
|
81
|
+
api.stub(:team_member?).with(123, user.login).and_return(true)
|
84
82
|
|
85
83
|
user.should be_team_member(123)
|
86
84
|
end
|
@@ -94,7 +92,7 @@ describe Warden::GitHub::User do
|
|
94
92
|
|
95
93
|
Octokit::Client.
|
96
94
|
should_receive(:new).
|
97
|
-
with(:
|
95
|
+
with(:access_token => token).
|
98
96
|
and_return(client)
|
99
97
|
client.should_receive(:user).and_return(attrs)
|
100
98
|
|
data/warden-github.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.rubyforge_project = "warden-github"
|
15
15
|
|
16
16
|
s.add_dependency "warden", ">1.0"
|
17
|
-
s.add_dependency "octokit", "
|
17
|
+
s.add_dependency "octokit", ">2.1.0"
|
18
18
|
|
19
19
|
s.add_development_dependency "rack", "~>1.4.1"
|
20
20
|
s.add_development_dependency "rake"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: warden-github
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-04
|
12
|
+
date: 2013-09-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: warden
|
@@ -32,17 +32,17 @@ dependencies:
|
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
|
-
- - ! '
|
35
|
+
- - ! '>'
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 1.
|
37
|
+
version: 2.1.0
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- - ! '
|
43
|
+
- - ! '>'
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 1.
|
45
|
+
version: 2.1.0
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: rack
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -213,6 +213,7 @@ files:
|
|
213
213
|
- .gitignore
|
214
214
|
- .rspec
|
215
215
|
- .travis.yml
|
216
|
+
- CHANGELOG.md
|
216
217
|
- Gemfile
|
217
218
|
- LICENSE.md
|
218
219
|
- README.md
|