omniauth-github 1.3.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/ruby.yml +22 -0
- data/README.md +8 -0
- data/lib/omniauth-github/version.rb +1 -1
- data/lib/omniauth/strategies/github.rb +7 -3
- data/spec/omniauth/strategies/github_spec.rb +23 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1f88c8d62903eb54ee19e957aea594380734acdf20943ea24817919659d1caa1
|
4
|
+
data.tar.gz: 2343a7c819ef367eebda314e3d3dfab4b0801f2c0165d72249b3a2ed0a5e5c4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3081908b47df5e1dbe4c1241910643d61949f9a2692cb1c9436d04a44e122d0096f01560a8666bf8c0d56e937c93a78e98be9eafb0270e0f6addb835dc99ccd0
|
7
|
+
data.tar.gz: 2162fbeb8c660834bd9cd09053ed77fa48f32f8b705a8d30d3128165c1144116731f22bdb8859ed07f2d1a520c6308e287ee76f02378876bde63450a85402863
|
@@ -0,0 +1,22 @@
|
|
1
|
+
name: Ruby
|
2
|
+
|
3
|
+
on: [push]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
ruby-version: ['2.4', '2.5', '2.6']
|
11
|
+
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v2
|
14
|
+
- name: Set up Ruby ${{ matrix.ruby-version }}
|
15
|
+
uses: actions/setup-ruby@v1
|
16
|
+
with:
|
17
|
+
ruby-version: ${{ matrix.ruby-version }}
|
18
|
+
- name: Build and test with Rake
|
19
|
+
run: |
|
20
|
+
gem install bundler
|
21
|
+
bundle install --jobs 4 --retry 3
|
22
|
+
bundle exec rake
|
data/README.md
CHANGED
@@ -1,9 +1,17 @@
|
|
1
|
+
![Ruby](https://github.com/omniauth/omniauth-github/workflows/Ruby/badge.svg?branch=master)
|
2
|
+
|
1
3
|
# OmniAuth GitHub
|
2
4
|
|
3
5
|
This is the official OmniAuth strategy for authenticating to GitHub. To
|
4
6
|
use it, you'll need to sign up for an OAuth2 Application ID and Secret
|
5
7
|
on the [GitHub Applications Page](https://github.com/settings/applications).
|
6
8
|
|
9
|
+
## Installation
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'omniauth-github', github: 'omniauth/omniauth-github', branch: 'master'
|
13
|
+
```
|
14
|
+
|
7
15
|
## Basic Usage
|
8
16
|
|
9
17
|
```ruby
|
@@ -39,11 +39,11 @@ module OmniAuth
|
|
39
39
|
end
|
40
40
|
|
41
41
|
extra do
|
42
|
-
{:raw_info => raw_info, :all_emails => emails}
|
42
|
+
{:raw_info => raw_info, :all_emails => emails, :scope => scope }
|
43
43
|
end
|
44
44
|
|
45
45
|
def raw_info
|
46
|
-
access_token.options[:mode] = :
|
46
|
+
access_token.options[:mode] = :header
|
47
47
|
@raw_info ||= access_token.get('user').parsed
|
48
48
|
end
|
49
49
|
|
@@ -51,6 +51,10 @@ module OmniAuth
|
|
51
51
|
(email_access_allowed?) ? primary_email : raw_info['email']
|
52
52
|
end
|
53
53
|
|
54
|
+
def scope
|
55
|
+
access_token['scope']
|
56
|
+
end
|
57
|
+
|
54
58
|
def primary_email
|
55
59
|
primary = emails.find{ |i| i['primary'] && i['verified'] }
|
56
60
|
primary && primary['email'] || nil
|
@@ -59,7 +63,7 @@ module OmniAuth
|
|
59
63
|
# The new /user/emails API - http://developer.github.com/v3/users/emails/#future-response
|
60
64
|
def emails
|
61
65
|
return [] unless email_access_allowed?
|
62
|
-
access_token.options[:mode] = :
|
66
|
+
access_token.options[:mode] = :header
|
63
67
|
@emails ||= access_token.get('user/emails', :headers => { 'Accept' => 'application/vnd.github.v3' }).parsed
|
64
68
|
end
|
65
69
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe OmniAuth::Strategies::GitHub do
|
4
|
-
let(:access_token) { instance_double('AccessToken', :options => {}) }
|
4
|
+
let(:access_token) { instance_double('AccessToken', :options => {}, :[] => 'user') }
|
5
5
|
let(:parsed_response) { instance_double('ParsedResponse') }
|
6
6
|
let(:response) { instance_double('Response', :parsed => parsed_response) }
|
7
7
|
|
@@ -122,6 +122,12 @@ describe OmniAuth::Strategies::GitHub do
|
|
122
122
|
expect(access_token).to receive(:get).with('user').and_return(response)
|
123
123
|
expect(subject.raw_info).to eq(parsed_response)
|
124
124
|
end
|
125
|
+
|
126
|
+
it 'should use the header auth mode' do
|
127
|
+
expect(access_token).to receive(:get).with('user').and_return(response)
|
128
|
+
subject.raw_info
|
129
|
+
expect(access_token.options[:mode]).to eq(:header)
|
130
|
+
end
|
125
131
|
end
|
126
132
|
|
127
133
|
context '#emails' do
|
@@ -133,6 +139,16 @@ describe OmniAuth::Strategies::GitHub do
|
|
133
139
|
subject.options['scope'] = 'user'
|
134
140
|
expect(subject.emails).to eq(parsed_response)
|
135
141
|
end
|
142
|
+
|
143
|
+
it 'should use the header auth mode' do
|
144
|
+
expect(access_token).to receive(:get).with('user/emails', :headers => {
|
145
|
+
'Accept' => 'application/vnd.github.v3'
|
146
|
+
}).and_return(response)
|
147
|
+
|
148
|
+
subject.options['scope'] = 'user'
|
149
|
+
subject.emails
|
150
|
+
expect(access_token.options[:mode]).to eq(:header)
|
151
|
+
end
|
136
152
|
end
|
137
153
|
|
138
154
|
context '#info.email' do
|
@@ -150,6 +166,12 @@ describe OmniAuth::Strategies::GitHub do
|
|
150
166
|
end
|
151
167
|
end
|
152
168
|
|
169
|
+
context '#extra.scope' do
|
170
|
+
it 'returns the scope on the returned access_token' do
|
171
|
+
expect(subject.scope).to eq('user')
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
153
175
|
describe '#callback_url' do
|
154
176
|
it 'is a combination of host, script name, and callback path' do
|
155
177
|
allow(subject).to receive(:full_host).and_return('https://example.com')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-github
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Bleigh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth
|
@@ -107,6 +107,7 @@ executables: []
|
|
107
107
|
extensions: []
|
108
108
|
extra_rdoc_files: []
|
109
109
|
files:
|
110
|
+
- ".github/workflows/ruby.yml"
|
110
111
|
- ".gitignore"
|
111
112
|
- ".rspec"
|
112
113
|
- Gemfile
|
@@ -139,8 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
140
|
- !ruby/object:Gem::Version
|
140
141
|
version: '0'
|
141
142
|
requirements: []
|
142
|
-
|
143
|
-
rubygems_version: 2.6.11
|
143
|
+
rubygems_version: 3.0.3
|
144
144
|
signing_key:
|
145
145
|
specification_version: 4
|
146
146
|
summary: Official OmniAuth strategy for GitHub.
|