warden-github 0.14.0 → 1.0.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.
- 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
|