sinatra_auth_github 0.13.3 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -5,3 +5,4 @@ pkg
5
5
  Gemfile.lock
6
6
  *.gem
7
7
  vendor
8
+ .ruby-version
data/README.md CHANGED
@@ -28,11 +28,11 @@ There's an example app in [spec/app.rb](/spec/app.rb).
28
28
  Example App Functionality
29
29
  =========================
30
30
 
31
- You can simply authenticate via GitHub by hitting http://localhost:9292
31
+ You can simply authenticate via GitHub by hitting http://localhost:9393
32
32
 
33
- You can check organization membership by hitting http://localhost:9292/orgs/github
33
+ You can check organization membership by hitting http://localhost:9393/orgs/github
34
34
 
35
- You can check team membership by hitting http://localhost:9292/teams/42
35
+ You can check team membership by hitting http://localhost:9393/teams/42
36
36
 
37
37
  All unsuccessful authentication requests get sent to the securocat denied page.
38
38
 
@@ -56,4 +56,11 @@ Extension Options
56
56
  * `:client_id` - The client id that GitHub provides
57
57
  * `:failure_app` - A Sinatra::Base class that has a route for `/unauthenticated`, Useful for overriding the securocat default page.
58
58
  * `:callback_url` - The path that GitHub posts back to, defaults to `/auth/github/callback`.
59
- * `:oauth_domain` - The scheme and host that's GitHub's endpoint, defaults to `https://github.com`
59
+
60
+ Enterprise Authentication
61
+ =========================
62
+
63
+ Under the hood, the `warden-github` portion is powered by octokit. If you find yourself wanting to connect to a GitHub Enterprise installation you'll need to export two environmental variables.
64
+
65
+ * OCTOKIT_WEB_ENDPOINT - The web endpoint for OAuth, defaults to https://github.com
66
+ * OCTOKIT_API_ENDPOINT - The API endpoint for authenticated requests, defaults to https://api.github.com
data/Rakefile CHANGED
@@ -1,19 +1,12 @@
1
- require 'rake/gempackagetask'
1
+ require 'rubygems/package_task'
2
2
  require 'rubygems/specification'
3
3
  require 'date'
4
- require 'bundler/setup'
4
+ require 'bundler'
5
5
 
6
6
  task :default => [:spec]
7
7
 
8
- require 'spec/rake/spectask'
8
+ require 'rspec/core/rake_task'
9
9
  desc "Run specs"
10
- Spec::Rake::SpecTask.new do |t|
11
- t.spec_files = FileList['spec/**/*_spec.rb']
12
- t.spec_opts = %w(-fs --color)
13
- t.spec_opts << '--loadby' << 'random'
14
-
15
- t.rcov_opts << '--exclude' << 'spec,.bundle'
16
- t.rcov = ENV.has_key?('NO_RCOV') ? ENV['NO_RCOV'] != 'true' : true
17
- t.rcov_opts << '--text-summary'
18
- t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
10
+ RSpec::Core::RakeTask.new do |t|
11
+ t.pattern = 'spec/**/*_spec.rb'
19
12
  end
@@ -18,7 +18,8 @@ module Sinatra
18
18
  'name' => "Test User",
19
19
  'email' => "test@example.com",
20
20
  'company' => "GitHub",
21
- 'gravatar_id' => 'https://a249.e.akamai.net/assets.github.com/images/gravatars/gravatar-140.png'
21
+ 'gravatar_id' => 'a'*32,
22
+ 'avatar_url' => 'https://a249.e.akamai.net/assets.github.com/images/gravatars/gravatar-140.png?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'
22
23
  }
23
24
  default_attrs.merge! attrs
24
25
  User.new(default_attrs)
@@ -1,7 +1,7 @@
1
1
  module Sinatra
2
2
  module Auth
3
3
  module Github
4
- VERSION = "0.13.3"
4
+ VERSION = "0.14.0"
5
5
  end
6
6
  end
7
7
  end
@@ -146,16 +146,17 @@ module Sinatra
146
146
 
147
147
  def self.registered(app)
148
148
  app.use AccessDenied
149
+ app.use BadAuthentication
150
+
149
151
  app.use Warden::Manager do |manager|
150
152
  manager.default_strategies :github
151
153
 
152
- manager.failure_app = app.github_options[:failure_app] || BadAuthentication
154
+ manager.failure_app = app.github_options[:failure_app] || BadAuthentication
153
155
 
154
- manager[:github_secret] = app.github_options[:secret] || ENV['GITHUB_CLIENT_SECRET']
155
- manager[:github_scopes] = app.github_options[:scopes] || ''
156
- manager[:github_client_id] = app.github_options[:client_id] || ENV['GITHUB_CLIENT_ID']
157
- manager[:github_oauth_domain] = app.github_options[:oauth_domain] || ENV['GITHUB_OAUTH_DOMAIN'] || 'https://github.com'
158
- manager[:github_callback_url] = app.github_options[:callback_url] || '/auth/github/callback'
156
+ manager[:client_secret] = app.github_options[:secret] || ENV['GITHUB_CLIENT_SECRET']
157
+ manager[:scopes] = app.github_options[:scopes] || ''
158
+ manager[:client_id] = app.github_options[:client_id] || ENV['GITHUB_CLIENT_ID']
159
+ manager[:redirect_uri] = app.github_options[:callback_url] || '/auth/github/callback'
159
160
  end
160
161
 
161
162
  app.helpers Helpers
@@ -15,14 +15,13 @@ Gem::Specification.new do |s|
15
15
  s.rubyforge_project = "sinatra_auth_github"
16
16
 
17
17
  s.add_dependency "sinatra", "~>1.0"
18
- s.add_dependency "warden-github", "~>0.13.1"
18
+ s.add_dependency "warden-github", "~>0.14.0"
19
19
 
20
20
  s.add_development_dependency "rake"
21
- s.add_development_dependency "rspec", "~>2.0.0"
21
+ s.add_development_dependency "rspec", "~>2.4.0"
22
22
  s.add_development_dependency "shotgun"
23
23
  s.add_development_dependency "randexp", "~>0.1.5"
24
24
  s.add_development_dependency "rack-test", "~>0.5.3"
25
- s.add_development_dependency "debugger"
26
25
 
27
26
  s.files = `git ls-files`.split("\n")
28
27
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
data/spec/app.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'pp'
2
- require 'debugger'
3
2
 
4
3
  module Example
5
4
  class App < Sinatra::Base
data/spec/login_spec.rb CHANGED
@@ -22,4 +22,10 @@ describe "Logged in users" do
22
22
  last_response.status.should eql(302)
23
23
  last_response.headers['Location'].should =~ %r{^https://github\.com/login/oauth/authorize}
24
24
  end
25
+
26
+ it "shows the securocat when github returns an oauth error" do
27
+ get "/auth/github/callback?error=redirect_uri_mismatch"
28
+ follow_redirect!
29
+ last_response.body.should =~ %r{securocat\.png}
30
+ end
25
31
  end
data/spec/quality_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper'
2
2
 
3
3
  describe "The library itself" do
4
- Rspec::Matchers.define :have_no_tab_characters do
4
+ RSpec::Matchers.define :have_no_tab_characters do
5
5
  match do |filename|
6
6
  @failing_lines = []
7
7
  File.readlines(filename).each_with_index do |line,number|
@@ -15,7 +15,7 @@ describe "The library itself" do
15
15
  end
16
16
  end
17
17
 
18
- Rspec::Matchers.define :have_no_extraneous_spaces do
18
+ RSpec::Matchers.define :have_no_extraneous_spaces do
19
19
  match do |filename|
20
20
  @failing_lines = []
21
21
  File.readlines(filename).each_with_index do |line,number|
data/spec/spec_helper.rb CHANGED
@@ -3,9 +3,6 @@ require "bundler/setup"
3
3
  $:.push File.join(File.dirname(__FILE__), '..', 'lib')
4
4
 
5
5
  require 'pp'
6
- require 'rack/test'
7
- require 'ruby-debug'
8
-
9
6
  require 'rack/test'
10
7
 
11
8
  require 'sinatra/auth/github'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra_auth_github
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.3
4
+ version: 0.14.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-02-19 00:00:00.000000000 Z
12
+ date: 2013-08-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: 0.13.1
37
+ version: 0.14.0
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: 0.13.1
45
+ version: 0.14.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rake
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +66,7 @@ dependencies:
66
66
  requirements:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
- version: 2.0.0
69
+ version: 2.4.0
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,7 +74,7 @@ dependencies:
74
74
  requirements:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
- version: 2.0.0
77
+ version: 2.4.0
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: shotgun
80
80
  requirement: !ruby/object:Gem::Requirement
@@ -123,22 +123,6 @@ dependencies:
123
123
  - - ~>
124
124
  - !ruby/object:Gem::Version
125
125
  version: 0.5.3
126
- - !ruby/object:Gem::Dependency
127
- name: debugger
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ! '>='
132
- - !ruby/object:Gem::Version
133
- version: '0'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ! '>='
140
- - !ruby/object:Gem::Version
141
- version: '0'
142
126
  description: A sinatra extension for easy oauth integration with github
143
127
  email:
144
128
  - atmos@atmos.org