omniauth-heroku 0.4.1 → 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.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +29 -0
- data/.gitignore +17 -0
- data/.rspec +3 -0
- data/CHANGELOG.md +43 -0
- data/Gemfile +3 -0
- data/Gemfile-omniauth1 +5 -0
- data/Gemfile-omniauth2 +5 -0
- data/README.md +29 -7
- data/Rakefile +10 -0
- data/bin/rake +29 -0
- data/bin/rspec +29 -0
- data/lib/omniauth-heroku.rb +2 -1
- data/lib/omniauth/heroku/version.rb +7 -0
- data/lib/omniauth/strategies/heroku.rb +35 -27
- data/omniauth-heroku.gemspec +39 -0
- metadata +92 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e748c5250cbb5edbba46f40b0f38d4a8cf54cd5c266b6df4deaebc57637e9d1
|
4
|
+
data.tar.gz: 4a5af940242e0cfb0a51ba7d73983303264846bb9278839cabadaaa890cf0227
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a623e6356f151b83eb7e370f8039e51012c9a76adf17187fe279aff23c10744b03514c46195198fd6261b9bcc206639ab7a15ea48875f6c06b300e3d8c72e45c
|
7
|
+
data.tar.gz: 61a1c1b3114cbf737de9de020572c98db82d3c29a180e0b135f3188ec6938123dc29766685475eff28e833d4d58ae600435411392b0a84579396757edccf5e19
|
@@ -0,0 +1,29 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
|
9
|
+
strategy:
|
10
|
+
fail-fast: false
|
11
|
+
matrix:
|
12
|
+
ruby: [ 2.3, 2.4, 2.5, 2.6, 2.7, 3.0 ]
|
13
|
+
gemfile: ["omniauth1", "omniauth2"]
|
14
|
+
|
15
|
+
env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
|
16
|
+
BUNDLE_GEMFILE: Gemfile-${{ matrix.gemfile }}
|
17
|
+
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v2
|
20
|
+
|
21
|
+
- name: Setup Ruby
|
22
|
+
uses: ruby/setup-ruby@v1
|
23
|
+
with:
|
24
|
+
ruby-version: ${{ matrix.ruby }}
|
25
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
26
|
+
|
27
|
+
- name: Build and test
|
28
|
+
run: bin/rspec
|
29
|
+
|
data/.gitignore
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# Ignore all logfiles and tempfiles
|
2
|
+
/coverage/
|
3
|
+
/log/
|
4
|
+
/spec/reports
|
5
|
+
/spec/rspec-status.txt
|
6
|
+
/tmp/
|
7
|
+
/tags
|
8
|
+
|
9
|
+
# Package and dependency caches
|
10
|
+
/.bundle
|
11
|
+
/Gemfile.lock
|
12
|
+
/pkg/
|
13
|
+
|
14
|
+
# Generated documentation
|
15
|
+
/doc/
|
16
|
+
/.yardoc
|
17
|
+
/_yardoc/
|
data/.rspec
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
5
|
+
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## [Unreleased]
|
8
|
+
|
9
|
+
## [1.0.0] 2021-07-14
|
10
|
+
|
11
|
+
### Changed
|
12
|
+
|
13
|
+
- Support `omniauth` versions `>= 1.9` but `< 3`.
|
14
|
+
i.e., support version `2` which addresses some CVEs.
|
15
|
+
- Standardize syntax and style via [Standard.rb](https://github.com/testdouble/standard)
|
16
|
+
|
17
|
+
### Breaking
|
18
|
+
|
19
|
+
- Loosen `omniauth-oauth2` requirement to allow `>= 1.7.0`.
|
20
|
+
With this change, blocks give to dynamically determine the `:scope` argument will be passed the Rack `env`, rather than an instance of the `Rack::Request`.
|
21
|
+
See the [Upgrading to 1.0 docs](README.md#upgrading-to-10) for more.
|
22
|
+
- Remove `AuthUrl` and `ApiUrl` constants from `OmniAuth::Strategies::Heroku`.
|
23
|
+
These were internal details, not meant to be part of the public API.
|
24
|
+
- Require Ruby `>= 2.3.0`.
|
25
|
+
We were only supporting that anyway, but now it's explicit.
|
26
|
+
However, we do recommend only running on [actively supported Rubies](https://www.ruby-lang.org/en/downloads/branches/).
|
27
|
+
|
28
|
+
## [0.4.1] 2021-07-06
|
29
|
+
|
30
|
+
### Changed
|
31
|
+
- Lock to `omniauth-oauth2 ~> 1.6.0` to fix regression in dynamic `:scope` option.
|
32
|
+
With `omniauth-oauth2 >= 1.7.0`, the block is passed the Rack `env` as the parameter.
|
33
|
+
This breaks our expectation the will receive a `Rack::Request` instance as the argument to dynamically determine the `:scope` option.
|
34
|
+
i.e., this broken:
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
use OmniAuth::Builder do
|
38
|
+
provider :heroku, ENV.fetch("HEROKU_OAUTH_ID"), ENV.fetch("HEROKU_OAUTH_SECRET"),
|
39
|
+
scope: ->(request) { request.params["scope"] || "identity" }
|
40
|
+
end
|
41
|
+
```
|
42
|
+
|
43
|
+
See [PR #22](https://github.com/heroku/omniauth-heroku/pull/22) for more context, workaround, etc...
|
data/Gemfile
ADDED
data/Gemfile-omniauth1
ADDED
data/Gemfile-omniauth2
ADDED
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# OmniAuth Heroku
|
2
2
|
|
3
3
|
[](https://github.com/heroku/omniauth-heroku/actions)
|
4
|
+
[](https://badge.fury.io/rb/omniauth-heroku)
|
4
5
|
|
5
6
|
[OmniAuth](https://github.com/intridea/omniauth) strategy for authenticating
|
6
7
|
Heroku users.
|
@@ -89,20 +90,41 @@ use OmniAuth::Builder do
|
|
89
90
|
end
|
90
91
|
```
|
91
92
|
|
92
|
-
This will trim down the permissions associated to the access token given back
|
93
|
-
to you.
|
93
|
+
This will trim down the permissions associated to the access token given back to you.
|
94
94
|
|
95
|
-
The
|
96
|
-
could use a `scope`
|
97
|
-
if it does not:
|
95
|
+
The OAuth scope can also be decided dynamically at runtime.
|
96
|
+
For example, you could use a `scope` parameter from the request, if it exists, with a default value if it does not:
|
98
97
|
|
99
98
|
```ruby
|
100
99
|
use OmniAuth::Builder do
|
101
100
|
provider :heroku, ENV.fetch("HEROKU_OAUTH_ID"), ENV.fetch("HEROKU_OAUTH_SECRET"),
|
102
|
-
scope: ->(
|
101
|
+
scope: ->(env) { Rack::Request.new(env).params["scope"] || "identity" }
|
103
102
|
end
|
104
103
|
```
|
105
104
|
|
105
|
+
#### Upgrading to 1.0+
|
106
|
+
|
107
|
+
Versions before `1.0` allowed you to pass `:scope` option as a block, just as today.
|
108
|
+
However, that block received a `Rack::Request` instance, rather than the `Rack` `env`.
|
109
|
+
If you used the `Rack::Request` argument in your `:scope` block you can update your code to create a new instance, from the `env`.
|
110
|
+
|
111
|
+
For example, `< 1.0` code that looked like this:
|
112
|
+
|
113
|
+
```ruby
|
114
|
+
use OmniAuth::Builder do
|
115
|
+
provider :heroku, ENV.fetch("HEROKU_OAUTH_ID"), ENV.fetch("HEROKU_OAUTH_SECRET"),
|
116
|
+
scope: ->(request) { request.params["scope"] }
|
117
|
+
end
|
118
|
+
```
|
119
|
+
|
120
|
+
need to be updated to something like this:
|
121
|
+
|
122
|
+
```ruby
|
123
|
+
use OmniAuth::Builder do
|
124
|
+
provider :heroku, ENV.fetch("HEROKU_OAUTH_ID"), ENV.fetch("HEROKU_OAUTH_SECRET"),
|
125
|
+
scope: ->(env) { Rack::Request.new(env).params["scope"] }
|
126
|
+
end
|
127
|
+
```
|
106
128
|
|
107
129
|
## Example - Sinatra
|
108
130
|
|
@@ -162,7 +184,7 @@ class SessionsController < ApplicationController
|
|
162
184
|
end
|
163
185
|
|
164
186
|
def create
|
165
|
-
access_token = request.env[
|
187
|
+
access_token = request.env["omniauth.auth"]["credentials"]["token"]
|
166
188
|
# DO NOT store this token in an unencrypted cookie session
|
167
189
|
# Please read "A note on security" below!
|
168
190
|
heroku = PlatformAPI.connect_oauth(access_token)
|
data/Rakefile
ADDED
data/bin/rake
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rake' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require "pathname"
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require "rubygems"
|
27
|
+
require "bundler/setup"
|
28
|
+
|
29
|
+
load Gem.bin_path("rake", "rake")
|
data/bin/rspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rspec' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require "pathname"
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require "rubygems"
|
27
|
+
require "bundler/setup"
|
28
|
+
|
29
|
+
load Gem.bin_path("rspec-core", "rspec")
|
data/lib/omniauth-heroku.rb
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
require
|
1
|
+
require "omniauth/heroku/version"
|
2
|
+
require "omniauth/strategies/heroku"
|
@@ -1,20 +1,25 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "omniauth-oauth2"
|
2
4
|
|
3
5
|
module OmniAuth
|
4
6
|
module Strategies
|
5
7
|
class Heroku < OmniAuth::Strategies::OAuth2
|
6
|
-
|
7
|
-
|
8
|
+
# This style of overriding the default means it can only be done when the class is loaded.
|
9
|
+
# Which is problematic for testing, and a bit against the grain of how the base class
|
10
|
+
# expects this to work, where consumers would explicitly override by passing in the option.
|
11
|
+
AUTH_URL = ENV.fetch("HEROKU_AUTH_URL", "https://id.heroku.com")
|
12
|
+
private_constant :AUTH_URL
|
8
13
|
|
9
|
-
option
|
10
|
-
site:
|
11
|
-
authorize_url: "#{
|
12
|
-
token_url:
|
13
|
-
}
|
14
|
+
option(:client_options, {
|
15
|
+
site: AUTH_URL,
|
16
|
+
authorize_url: "#{AUTH_URL}/oauth/authorize",
|
17
|
+
token_url: "#{AUTH_URL}/oauth/token"
|
18
|
+
})
|
14
19
|
|
15
|
-
# whether we
|
20
|
+
# Configure whether we make another API call to Heroku to fetch
|
16
21
|
# additional account info like the real user name and email
|
17
|
-
option :fetch_info
|
22
|
+
option :fetch_info, false
|
18
23
|
|
19
24
|
uid do
|
20
25
|
access_token.params["user_id"]
|
@@ -22,17 +27,16 @@ module OmniAuth
|
|
22
27
|
|
23
28
|
info do
|
24
29
|
if options.fetch_info
|
25
|
-
email_hash
|
26
|
-
|
27
|
-
image_url = "https://secure.gravatar.com/avatar/#{email_hash}.png?d=#{default_image_url}"
|
30
|
+
email_hash = Digest::MD5.hexdigest(account_info["email"].to_s)
|
31
|
+
image_url = "https://secure.gravatar.com/avatar/#{email_hash}.png?d=#{DEFAULT_IMAGE_URL}"
|
28
32
|
|
29
33
|
{
|
30
|
-
name:
|
34
|
+
name: account_info["name"],
|
31
35
|
email: account_info["email"],
|
32
|
-
image: image_url
|
36
|
+
image: image_url
|
33
37
|
}
|
34
38
|
else
|
35
|
-
{
|
39
|
+
{name: "Heroku user"} # only mandatory field
|
36
40
|
end
|
37
41
|
end
|
38
42
|
|
@@ -56,26 +60,30 @@ module OmniAuth
|
|
56
60
|
end
|
57
61
|
end
|
58
62
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
end
|
63
|
+
private
|
64
|
+
|
65
|
+
DEFAULT_API_URL = "https://api.heroku.com"
|
66
|
+
private_constant :DEFAULT_API_URL
|
67
|
+
|
68
|
+
DEFAULT_IMAGE_URL = "https://dashboard.heroku.com/ninja-avatar-48x48.png"
|
69
|
+
private_constant :DEFAULT_IMAGE_URL
|
67
70
|
|
68
71
|
def account_info
|
69
72
|
@account_info ||= MultiJson.decode(heroku_api.get("/account").body)
|
70
73
|
end
|
71
74
|
|
75
|
+
def api_url
|
76
|
+
@api_url ||= ENV.fetch("HEROKU_API_URL", DEFAULT_API_URL)
|
77
|
+
end
|
78
|
+
|
72
79
|
def heroku_api
|
73
80
|
@heroku_api ||= Faraday.new(
|
74
|
-
url:
|
81
|
+
url: api_url,
|
75
82
|
headers: {
|
76
83
|
"Accept" => "application/vnd.heroku+json; version=3",
|
77
|
-
"Authorization" => "Bearer #{access_token.token}"
|
78
|
-
}
|
84
|
+
"Authorization" => "Bearer #{access_token.token}"
|
85
|
+
}
|
86
|
+
)
|
79
87
|
end
|
80
88
|
|
81
89
|
def missing_client_id?
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require File.expand_path("lib/omniauth/heroku/version", __dir__)
|
2
|
+
|
3
|
+
Gem::Specification.new do |spec|
|
4
|
+
spec.name = "omniauth-heroku"
|
5
|
+
spec.version = OmniAuth::Heroku::VERSION
|
6
|
+
spec.authors = ["Pedro Belo"]
|
7
|
+
spec.email = ["pedro@heroku.com"]
|
8
|
+
|
9
|
+
spec.summary = "OmniAuth strategy for Heroku."
|
10
|
+
spec.description = "OmniAuth strategy for Heroku, for apps already using OmniAuth that authenticate against more than one service (eg: Heroku and GitHub), or apps that have specific needs on session management."
|
11
|
+
spec.homepage = "https://github.com/heroku/omniauth-heroku"
|
12
|
+
spec.license = "MIT"
|
13
|
+
|
14
|
+
spec.metadata = {
|
15
|
+
"homepage_uri" => spec.homepage,
|
16
|
+
"source_code_uri" => spec.homepage,
|
17
|
+
"bug_tracker_uri" => "#{spec.homepage}/issues",
|
18
|
+
"changelog_uri" => "#{spec.homepage}/blob/master/CHANGELOG.md"
|
19
|
+
}
|
20
|
+
|
21
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
22
|
+
|
23
|
+
# Specify which files should be added to the gem when it is released.
|
24
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
25
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
26
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
27
|
+
end
|
28
|
+
spec.bindir = "exe"
|
29
|
+
spec.executables = []
|
30
|
+
spec.require_paths = ["lib"]
|
31
|
+
|
32
|
+
spec.add_runtime_dependency("omniauth", [">= 1.9", "< 3"])
|
33
|
+
spec.add_runtime_dependency("omniauth-oauth2", "~> 1.7")
|
34
|
+
|
35
|
+
spec.add_development_dependency("multi_json", "~> 1.12")
|
36
|
+
spec.add_development_dependency("rake", "~> 13.0")
|
37
|
+
spec.add_development_dependency("rspec", "~> 3.4")
|
38
|
+
spec.add_development_dependency("webmock", "~> 3.13")
|
39
|
+
end
|
metadata
CHANGED
@@ -1,58 +1,138 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-heroku
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pedro Belo
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-07-
|
11
|
+
date: 2021-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.9'
|
20
|
+
- - "<"
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
22
|
+
version: '3'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.9
|
29
|
+
version: '1.9'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: omniauth-oauth2
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - "~>"
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
39
|
+
version: '1.7'
|
34
40
|
type: :runtime
|
35
41
|
prerelease: false
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
37
43
|
requirements:
|
38
44
|
- - "~>"
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
41
|
-
|
46
|
+
version: '1.7'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: multi_json
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.12'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '1.12'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rake
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '13.0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '13.0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rspec
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '3.4'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '3.4'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: webmock
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '3.13'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '3.13'
|
103
|
+
description: 'OmniAuth strategy for Heroku, for apps already using OmniAuth that authenticate
|
104
|
+
against more than one service (eg: Heroku and GitHub), or apps that have specific
|
105
|
+
needs on session management.'
|
42
106
|
email:
|
43
107
|
- pedro@heroku.com
|
44
108
|
executables: []
|
45
109
|
extensions: []
|
46
110
|
extra_rdoc_files: []
|
47
111
|
files:
|
112
|
+
- ".github/workflows/ci.yml"
|
113
|
+
- ".gitignore"
|
114
|
+
- ".rspec"
|
115
|
+
- CHANGELOG.md
|
116
|
+
- Gemfile
|
117
|
+
- Gemfile-omniauth1
|
118
|
+
- Gemfile-omniauth2
|
48
119
|
- LICENSE
|
49
120
|
- README.md
|
121
|
+
- Rakefile
|
122
|
+
- bin/rake
|
123
|
+
- bin/rspec
|
50
124
|
- lib/omniauth-heroku.rb
|
125
|
+
- lib/omniauth/heroku/version.rb
|
51
126
|
- lib/omniauth/strategies/heroku.rb
|
127
|
+
- omniauth-heroku.gemspec
|
52
128
|
homepage: https://github.com/heroku/omniauth-heroku
|
53
129
|
licenses:
|
54
130
|
- MIT
|
55
|
-
metadata:
|
131
|
+
metadata:
|
132
|
+
homepage_uri: https://github.com/heroku/omniauth-heroku
|
133
|
+
source_code_uri: https://github.com/heroku/omniauth-heroku
|
134
|
+
bug_tracker_uri: https://github.com/heroku/omniauth-heroku/issues
|
135
|
+
changelog_uri: https://github.com/heroku/omniauth-heroku/blob/master/CHANGELOG.md
|
56
136
|
post_install_message:
|
57
137
|
rdoc_options: []
|
58
138
|
require_paths:
|
@@ -61,7 +141,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
61
141
|
requirements:
|
62
142
|
- - ">="
|
63
143
|
- !ruby/object:Gem::Version
|
64
|
-
version:
|
144
|
+
version: 2.3.0
|
65
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
146
|
requirements:
|
67
147
|
- - ">="
|