omniauth-digitalocean 0.2.1 → 0.3.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.
- checksums.yaml +5 -5
- data/.github/workflows/ci.yaml +36 -0
- data/.github/workflows/release.yaml +38 -0
- data/lib/omniauth-digitalocean/version.rb +1 -1
- data/lib/omniauth/strategies/digitalocean.rb +9 -0
- data/omniauth-digitalocean.gemspec +4 -4
- data/spec/omniauth/strategies/digitalocean_spec.rb +21 -1
- metadata +10 -10
- data/.travis.yml +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 3089eb8b19cfd8d47ac49c23190f8adcd1d9a79f3907f64fc8db8e321403170a
|
4
|
+
data.tar.gz: f956c939c0da134ef87ae28ffcd06becad2fa5ec896d289ae384fe2c8297f461
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcbc6f42cba89176ac91ecdfac794c4e3214da3bb6c2b3e1be6d9516be526027d5a2c518021e44b9859c48cbe341675f38d422be67d9a7cd543039f5ac69ec2b
|
7
|
+
data.tar.gz: 93b9bd4d4541bb162253cf23d82e656a26f6156f50cd9c7ea8146d7593cde71493b70a9dac25ae4cc1033b92b1eb1fbc9d29218ad03c33bf42dd3a7241f55b6d
|
@@ -0,0 +1,36 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ main ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ main ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
strategy:
|
12
|
+
fail-fast: true
|
13
|
+
matrix:
|
14
|
+
os: [ ubuntu-latest, macos-latest ]
|
15
|
+
ruby: [ 2.5, 2.6, 2.7 ]
|
16
|
+
runs-on: ubuntu-latest
|
17
|
+
steps:
|
18
|
+
- uses: actions/checkout@v2
|
19
|
+
- uses: ruby/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
ruby-version: ${{ matrix.ruby }}
|
22
|
+
|
23
|
+
# Cache dependencies.
|
24
|
+
- uses: actions/cache@v1
|
25
|
+
with:
|
26
|
+
path: vendor/bundle
|
27
|
+
key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }}
|
28
|
+
restore-keys: |
|
29
|
+
bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-
|
30
|
+
- name: Setup
|
31
|
+
run: |
|
32
|
+
gem install bundler
|
33
|
+
bundle install --jobs 4 --retry 3
|
34
|
+
- name: Test
|
35
|
+
run: |
|
36
|
+
bundle exec rspec ./spec
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# Publishes Ruby Gem for release when a tag is created
|
2
|
+
# that matches the pattern "v*" (ie. v0.1.0).
|
3
|
+
name: Publish Ruby Gem
|
4
|
+
|
5
|
+
on:
|
6
|
+
push:
|
7
|
+
tags:
|
8
|
+
- 'v*'
|
9
|
+
|
10
|
+
jobs:
|
11
|
+
build:
|
12
|
+
name: Build + Publish
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
|
15
|
+
steps:
|
16
|
+
- uses: actions/checkout@v2
|
17
|
+
|
18
|
+
- uses: actions/setup-ruby@v1
|
19
|
+
with:
|
20
|
+
ruby-version: 2.6
|
21
|
+
|
22
|
+
- uses: actions/cache@v1
|
23
|
+
with:
|
24
|
+
path: vendor/bundle
|
25
|
+
key: bundle-use-ruby-ubuntu-latest-2.6-${{ hashFiles('**/Gemfile.lock') }}
|
26
|
+
restore-keys: |
|
27
|
+
bundle-use-ruby-ubuntu-latest-2.6-
|
28
|
+
|
29
|
+
- name: Publish to RubyGems
|
30
|
+
run: |
|
31
|
+
mkdir -p $HOME/.gem
|
32
|
+
touch $HOME/.gem/credentials
|
33
|
+
chmod 0600 $HOME/.gem/credentials
|
34
|
+
printf -- "---\n:rubygems_api_key: ${RUBYGEMS_AUTH_TOKEN}\n" > $HOME/.gem/credentials
|
35
|
+
gem build *.gemspec
|
36
|
+
gem push *.gem
|
37
|
+
env:
|
38
|
+
RUBYGEMS_AUTH_TOKEN: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
|
@@ -11,6 +11,7 @@ module OmniAuth
|
|
11
11
|
class Digitalocean < OmniAuth::Strategies::OAuth2
|
12
12
|
AUTHENTICATION_PARAMETERS = %w(display account state scope)
|
13
13
|
BASE_URL = "https://cloud.digitalocean.com"
|
14
|
+
API_URL = "https://api.digitalocean.com"
|
14
15
|
|
15
16
|
option :name, "digitalocean"
|
16
17
|
|
@@ -30,6 +31,10 @@ module OmniAuth
|
|
30
31
|
|
31
32
|
option :authorize_options, AUTHENTICATION_PARAMETERS
|
32
33
|
|
34
|
+
extra do
|
35
|
+
raw_info.parsed['account']
|
36
|
+
end
|
37
|
+
|
33
38
|
uid do
|
34
39
|
access_token.params['info']['uuid']
|
35
40
|
end
|
@@ -58,6 +63,10 @@ module OmniAuth
|
|
58
63
|
super
|
59
64
|
end
|
60
65
|
|
66
|
+
def raw_info
|
67
|
+
@raw_info ||= access_token.get("#{API_URL}/v2/account")
|
68
|
+
end
|
69
|
+
|
61
70
|
##
|
62
71
|
# You can pass +display+, +state+ or +scope+ params to the auth request, if
|
63
72
|
# you need to set them dynamically. You can also set these options
|
@@ -5,11 +5,11 @@ require 'omniauth-digitalocean/version'
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "omniauth-digitalocean"
|
7
7
|
spec.version = Omniauth::Digitalocean::VERSION
|
8
|
-
spec.authors = ["
|
9
|
-
spec.email = ["
|
8
|
+
spec.authors = ["DigitalOcean API Engineering team"]
|
9
|
+
spec.email = ["api-engineering@digitalocean.com"]
|
10
10
|
spec.summary = %q{Official OmniAuth strategy for Digitalocean}
|
11
11
|
spec.description = %q{Official OmniAuth strategy for Digitalocean}
|
12
|
-
spec.homepage = ""
|
12
|
+
spec.homepage = "https://github.com/digitalocean/omniauth-digitalocean"
|
13
13
|
spec.license = "MIT"
|
14
14
|
|
15
15
|
spec.files = `git ls-files`.split($/)
|
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.add_dependency "omniauth", "~> 1.0"
|
21
21
|
spec.add_dependency "omniauth-oauth2", "~> 1.0"
|
22
22
|
|
23
|
-
spec.add_development_dependency "bundler", "~>
|
23
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
24
24
|
spec.add_development_dependency "rake"
|
25
25
|
spec.add_development_dependency "rspec", "~> 2.7"
|
26
26
|
spec.add_development_dependency "rack-test"
|
@@ -22,7 +22,18 @@ describe OmniAuth::Strategies::Digitalocean do
|
|
22
22
|
}
|
23
23
|
}
|
24
24
|
}
|
25
|
-
let(:
|
25
|
+
let(:account_response) {
|
26
|
+
{ 'account' =>
|
27
|
+
{
|
28
|
+
'droplet_limit' => 25,
|
29
|
+
'email' => 'foo@example.com',
|
30
|
+
'uuid' => 'b6fc48dbf6d990634ce5f3c78dc9851e757381ef',
|
31
|
+
'email_verified' => true
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}
|
35
|
+
let(:account_json) { double(:json, parsed: account_response) }
|
36
|
+
let(:access_token) { double('AccessToken', params: response_params, get: account_json) }
|
26
37
|
|
27
38
|
before do
|
28
39
|
allow(subject).to receive(:access_token).and_return(access_token)
|
@@ -33,5 +44,14 @@ describe OmniAuth::Strategies::Digitalocean do
|
|
33
44
|
expect(subject.uid).to eq(uuid)
|
34
45
|
end
|
35
46
|
end
|
47
|
+
|
48
|
+
describe '#extra' do
|
49
|
+
it 'includes the information returned from the account endpoint' do
|
50
|
+
expect(subject.extra['droplet_limit']).to eq(25)
|
51
|
+
expect(subject.extra['email']).to eq("foo@example.com")
|
52
|
+
expect(subject.extra['uuid']).to eq("b6fc48dbf6d990634ce5f3c78dc9851e757381ef")
|
53
|
+
expect(subject.extra['email_verified']).to eq(true)
|
54
|
+
end
|
55
|
+
end
|
36
56
|
end
|
37
57
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-digitalocean
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- DigitalOcean API Engineering team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '2.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '2.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -124,13 +124,14 @@ dependencies:
|
|
124
124
|
version: '0'
|
125
125
|
description: Official OmniAuth strategy for Digitalocean
|
126
126
|
email:
|
127
|
-
-
|
127
|
+
- api-engineering@digitalocean.com
|
128
128
|
executables: []
|
129
129
|
extensions: []
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
|
+
- ".github/workflows/ci.yaml"
|
133
|
+
- ".github/workflows/release.yaml"
|
132
134
|
- ".gitignore"
|
133
|
-
- ".travis.yml"
|
134
135
|
- Gemfile
|
135
136
|
- LICENSE.txt
|
136
137
|
- README.md
|
@@ -144,7 +145,7 @@ files:
|
|
144
145
|
- omniauth-digitalocean.gemspec
|
145
146
|
- spec/omniauth/strategies/digitalocean_spec.rb
|
146
147
|
- spec/spec_helper.rb
|
147
|
-
homepage:
|
148
|
+
homepage: https://github.com/digitalocean/omniauth-digitalocean
|
148
149
|
licenses:
|
149
150
|
- MIT
|
150
151
|
metadata: {}
|
@@ -163,8 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
163
164
|
- !ruby/object:Gem::Version
|
164
165
|
version: '0'
|
165
166
|
requirements: []
|
166
|
-
|
167
|
-
rubygems_version: 2.4.6
|
167
|
+
rubygems_version: 3.0.3
|
168
168
|
signing_key:
|
169
169
|
specification_version: 4
|
170
170
|
summary: Official OmniAuth strategy for Digitalocean
|