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 
     | 
    
         
             
              - - ">="
         
     |