omniauth-gitlab 1.0.1 → 3.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 +5 -5
- data/README.md +33 -6
- data/Rakefile +2 -2
- data/lib/omniauth-gitlab.rb +1 -1
- data/lib/omniauth-gitlab/version.rb +1 -1
- data/lib/omniauth/strategies/gitlab.rb +13 -11
- data/omniauth-gitlab.gemspec +7 -8
- data/spec/omniauth/strategies/gitlab_spec.rb +20 -16
- data/spec/spec_helper.rb +2 -12
- metadata +11 -27
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: 9f47d5dde46b9dc356bd1ec717ba0b7dc87b49e188b84dcf1617d366709f390f
         | 
| 4 | 
            +
              data.tar.gz: 6661be3cca493f7891e4663fead785e36639e121c4dde78b7b61de281dd3b08d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 8c25c70c310391102a0c594ab09b1122e2ca4d8d761a631a7460e04ecce9120bdaa17bc29c3cd40cfbc17b62936c85973c8a10e63d1f6c37d6bbc268175ef33f
         | 
| 7 | 
            +
              data.tar.gz: 91165b4ffb9b274608f91a131c4514611536626384ed7ddcfe356bf4b0049bc8b4fb143b6cc159d974d1657a1e5f084d32b4985d215727c15d7d6f45ec12b449
         | 
    
        data/README.md
    CHANGED
    
    | @@ -31,12 +31,39 @@ Or install it yourself as: | |
| 31 31 | 
             
            ## Standalone Usage
         | 
| 32 32 |  | 
| 33 33 | 
             
                use OmniAuth::Builder do
         | 
| 34 | 
            -
                  provider :gitlab, ENV['GITLAB_KEY'], ENV['GITLAB_SECRET'], | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 34 | 
            +
                  provider :gitlab, ENV['GITLAB_KEY'], ENV['GITLAB_SECRET'],
         | 
| 35 | 
            +
                    {
         | 
| 36 | 
            +
                       client_options: {
         | 
| 37 | 
            +
                         site: 'https://gitlab.YOURDOMAIN.com/api/v4'
         | 
| 38 | 
            +
                       }
         | 
| 39 | 
            +
                    }
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            ## Custom scopes
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            By default, the `api` scope is requested and must be allowed in GitLab's application configuration. To use different scopes:
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                use OmniAuth::Builder do
         | 
| 47 | 
            +
                  provider :gitlab, ENV['GITLAB_KEY'], ENV['GITLAB_SECRET'], scope: 'read_user openid'
         | 
| 48 | 
            +
                end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            Requesting a scope that is not configured will result the error "The requested scope is invalid, unknown, or malformed.".
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            ## Old API version
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            API V3 will be unsupported from GitLab 9.5 and will be removed in GitLab 9.5 or later.
         | 
| 55 | 
            +
             | 
| 56 | 
            +
            [https://gitlab.com/help/api/v3_to_v4.md](https://gitlab.com/help/api/v3_to_v4.md)
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            If you use GitLab 9.0 and below you could configure V3 API:
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                use OmniAuth::Builder do
         | 
| 61 | 
            +
                  provider :gitlab, ENV['GITLAB_KEY'], ENV['GITLAB_SECRET'],
         | 
| 62 | 
            +
                    {
         | 
| 63 | 
            +
                       client_options: {
         | 
| 64 | 
            +
                         site: 'https://gitlab.YOURDOMAIN.com/api/v3'
         | 
| 65 | 
            +
                       }
         | 
| 66 | 
            +
                    }
         | 
| 40 67 | 
             
                end
         | 
| 41 68 |  | 
| 42 69 | 
             
            ## Contributing
         | 
    
        data/Rakefile
    CHANGED
    
    
    
        data/lib/omniauth-gitlab.rb
    CHANGED
    
    | @@ -1,2 +1,2 @@ | |
| 1 | 
            -
            require  | 
| 1 | 
            +
            require 'omniauth-gitlab/version'
         | 
| 2 2 | 
             
            require 'omniauth/strategies/gitlab'
         | 
| @@ -4,21 +4,18 @@ require 'omniauth-oauth2' | |
| 4 4 | 
             
            module OmniAuth
         | 
| 5 5 | 
             
              module Strategies
         | 
| 6 6 | 
             
                class GitLab < OmniAuth::Strategies::OAuth2
         | 
| 7 | 
            +
                  option :client_options, site: 'https://gitlab.com/api/v4'
         | 
| 7 8 |  | 
| 8 | 
            -
                  option : | 
| 9 | 
            -
                      site: 'https://gitlab.com',
         | 
| 10 | 
            -
                      authorize_url: '/oauth/authorize',
         | 
| 11 | 
            -
                      token_url: '/oauth/token'
         | 
| 12 | 
            -
                  }
         | 
| 9 | 
            +
                  option :redirect_url
         | 
| 13 10 |  | 
| 14 11 | 
             
                  uid { raw_info['id'].to_s }
         | 
| 15 12 |  | 
| 16 13 | 
             
                  info do
         | 
| 17 14 | 
             
                    {
         | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 15 | 
            +
                      name: raw_info['name'],
         | 
| 16 | 
            +
                      username: raw_info['username'],
         | 
| 17 | 
            +
                      email: raw_info['email'],
         | 
| 18 | 
            +
                      image: raw_info['avatar_url']
         | 
| 22 19 | 
             
                    }
         | 
| 23 20 | 
             
                  end
         | 
| 24 21 |  | 
| @@ -27,11 +24,16 @@ module OmniAuth | |
| 27 24 | 
             
                  end
         | 
| 28 25 |  | 
| 29 26 | 
             
                  def raw_info
         | 
| 30 | 
            -
                    @raw_info ||= access_token.get(' | 
| 27 | 
            +
                    @raw_info ||= access_token.get('user').parsed
         | 
| 28 | 
            +
                  end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                  private
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                  def callback_url
         | 
| 33 | 
            +
                    options.redirect_url || (full_host + script_name + callback_path)
         | 
| 31 34 | 
             
                  end
         | 
| 32 35 | 
             
                end
         | 
| 33 36 | 
             
              end
         | 
| 34 37 | 
             
            end
         | 
| 35 38 |  | 
| 36 | 
            -
             | 
| 37 39 | 
             
            OmniAuth.config.add_camelization 'gitlab', 'GitLab'
         | 
    
        data/omniauth-gitlab.gemspec
    CHANGED
    
    | @@ -6,22 +6,21 @@ require 'omniauth-gitlab/version' | |
| 6 6 | 
             
            Gem::Specification.new do |gem|
         | 
| 7 7 | 
             
              gem.name          = 'omniauth-gitlab'
         | 
| 8 8 | 
             
              gem.version       = Omniauth::Gitlab::VERSION
         | 
| 9 | 
            -
              gem.authors       = [' | 
| 9 | 
            +
              gem.authors       = ['Sergey Sein']
         | 
| 10 10 | 
             
              gem.email         = ['linchus@gmail.com']
         | 
| 11 | 
            -
              gem.description   =  | 
| 12 | 
            -
              gem.summary       =  | 
| 11 | 
            +
              gem.description   = 'This is the strategy for authenticating to your GitLab service'
         | 
| 12 | 
            +
              gem.summary       = 'This is the strategy for authenticating to your GitLab service'
         | 
| 13 13 | 
             
              gem.homepage      = 'https://github.com/linchus/omniauth-gitlab'
         | 
| 14 14 |  | 
| 15 15 | 
             
              gem.files         = `git ls-files`.split($/)
         | 
| 16 | 
            -
              gem.executables   = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
         | 
| 16 | 
            +
              gem.executables   = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
         | 
| 17 17 | 
             
              gem.test_files    = gem.files.grep(%r{^(test|spec|features)/})
         | 
| 18 18 | 
             
              gem.require_paths = ['lib']
         | 
| 19 19 |  | 
| 20 | 
            -
              gem.add_dependency 'omniauth', '~>  | 
| 21 | 
            -
              gem.add_dependency 'omniauth-oauth2', '~> 1. | 
| 20 | 
            +
              gem.add_dependency 'omniauth', '~> 2.0'
         | 
| 21 | 
            +
              gem.add_dependency 'omniauth-oauth2', '~> 1.7.1'
         | 
| 22 22 | 
             
              gem.add_development_dependency 'rspec', '~> 3.1'
         | 
| 23 23 | 
             
              gem.add_development_dependency 'rspec-its', '~> 1.0'
         | 
| 24 | 
            -
              gem.add_development_dependency 'rack-test'
         | 
| 25 24 | 
             
              gem.add_development_dependency 'simplecov'
         | 
| 26 | 
            -
              gem.add_development_dependency ' | 
| 25 | 
            +
              gem.add_development_dependency 'rake', '>= 12.0'
         | 
| 27 26 | 
             
            end
         | 
| @@ -1,23 +1,19 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe OmniAuth::Strategies::GitLab do
         | 
| 4 | 
            -
             | 
| 5 4 | 
             
              let(:access_token) { double('AccessToken') }
         | 
| 6 5 | 
             
              let(:parsed_response) { double('ParsedResponse') }
         | 
| 7 6 | 
             
              let(:response) { double('Response', parsed: parsed_response) }
         | 
| 8 7 |  | 
| 9 | 
            -
              let(:enterprise_site) | 
| 10 | 
            -
              let(:enterprise_authorize_url)  { '/oauth/authorize' }
         | 
| 11 | 
            -
              let(:enterprise_token_url)      { '/oauth/access_token' }
         | 
| 8 | 
            +
              let(:enterprise_site) { 'https://some.other.site.com/api/v3' }
         | 
| 12 9 |  | 
| 13 10 | 
             
              let(:gitlab_service) { OmniAuth::Strategies::GitLab.new({}) }
         | 
| 14 11 | 
             
              let(:enterprise) do
         | 
| 15 | 
            -
                OmniAuth::Strategies::GitLab.new( | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
                                                     }
         | 
| 12 | 
            +
                OmniAuth::Strategies::GitLab.new(
         | 
| 13 | 
            +
                  'GITLAB_KEY',
         | 
| 14 | 
            +
                  'GITLAB_SECRET',
         | 
| 15 | 
            +
                  client_options: { site: enterprise_site },
         | 
| 16 | 
            +
                  redirect_url: 'http://localhost:9292/callback_url'
         | 
| 21 17 | 
             
                )
         | 
| 22 18 | 
             
              end
         | 
| 23 19 |  | 
| @@ -31,23 +27,31 @@ describe OmniAuth::Strategies::GitLab do | |
| 31 27 | 
             
                context 'with defaults' do
         | 
| 32 28 | 
             
                  subject { gitlab_service.options.client_options }
         | 
| 33 29 |  | 
| 34 | 
            -
                  its(:site) { is_expected.to eq 'https://gitlab.com' }
         | 
| 35 | 
            -
                  its(:authorize_url) { is_expected.to eq '/oauth/authorize' }
         | 
| 36 | 
            -
                  its(:token_url) { is_expected.to eq '/oauth/token' }
         | 
| 30 | 
            +
                  its(:site) { is_expected.to eq 'https://gitlab.com/api/v4' }
         | 
| 37 31 | 
             
                end
         | 
| 38 32 |  | 
| 39 33 | 
             
                context 'with override' do
         | 
| 40 34 | 
             
                  subject { enterprise.options.client_options }
         | 
| 41 35 |  | 
| 42 36 | 
             
                  its(:site) { is_expected.to eq enterprise_site }
         | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
              describe 'redirect_url' do
         | 
| 41 | 
            +
                context 'with defaults' do
         | 
| 42 | 
            +
                  subject { gitlab_service.options }
         | 
| 43 | 
            +
                  its(:redirect_url) { is_expected.to be_nil }
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                context 'with customs' do
         | 
| 47 | 
            +
                  subject { enterprise.options }
         | 
| 48 | 
            +
                  its(:redirect_url) { is_expected.to eq 'http://localhost:9292/callback_url' }
         | 
| 45 49 | 
             
                end
         | 
| 46 50 | 
             
              end
         | 
| 47 51 |  | 
| 48 52 | 
             
              describe '#raw_info' do
         | 
| 49 53 | 
             
                it 'sent request to current user endpoint' do
         | 
| 50 | 
            -
                  expect(access_token).to receive(:get).with(' | 
| 54 | 
            +
                  expect(access_token).to receive(:get).with('user').and_return(response)
         | 
| 51 55 | 
             
                  expect(subject.raw_info).to eq(parsed_response)
         | 
| 52 56 | 
             
                end
         | 
| 53 57 | 
             
              end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -1,18 +1,8 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 1 | 
            +
            $LOAD_PATH.unshift File.expand_path('..', __FILE__)
         | 
| 2 | 
            +
            $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
         | 
| 3 3 | 
             
            require 'simplecov'
         | 
| 4 4 | 
             
            SimpleCov.start
         | 
| 5 5 | 
             
            require 'rspec'
         | 
| 6 6 | 
             
            require 'rspec/its'
         | 
| 7 | 
            -
            require 'rack/test'
         | 
| 8 | 
            -
            require 'webmock/rspec'
         | 
| 9 7 | 
             
            require 'omniauth'
         | 
| 10 8 | 
             
            require 'omniauth-gitlab'
         | 
| 11 | 
            -
             | 
| 12 | 
            -
            RSpec.configure do |config|
         | 
| 13 | 
            -
              config.include WebMock::API
         | 
| 14 | 
            -
              config.include Rack::Test::Methods
         | 
| 15 | 
            -
              config.extend  OmniAuth::Test::StrategyMacros, :type => :strategy
         | 
| 16 | 
            -
            end
         | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: omniauth-gitlab
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 3.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 | 
            -
            -  | 
| 7 | 
            +
            - Sergey Sein
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2021-03-12 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: omniauth
         | 
| @@ -16,28 +16,28 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: ' | 
| 19 | 
            +
                    version: '2.0'
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 24 | 
             
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: ' | 
| 26 | 
            +
                    version: '2.0'
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: omniauth-oauth2
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 31 | 
             
                - - "~>"
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version:  | 
| 33 | 
            +
                    version: 1.7.1
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 38 | 
             
                - - "~>"
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version:  | 
| 40 | 
            +
                    version: 1.7.1
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: rspec
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -66,20 +66,6 @@ dependencies: | |
| 66 66 | 
             
                - - "~>"
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 68 | 
             
                    version: '1.0'
         | 
| 69 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            -
              name: rack-test
         | 
| 71 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 | 
            -
                requirements:
         | 
| 73 | 
            -
                - - ">="
         | 
| 74 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version: '0'
         | 
| 76 | 
            -
              type: :development
         | 
| 77 | 
            -
              prerelease: false
         | 
| 78 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 | 
            -
                requirements:
         | 
| 80 | 
            -
                - - ">="
         | 
| 81 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                    version: '0'
         | 
| 83 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 70 | 
             
              name: simplecov
         | 
| 85 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -95,19 +81,19 @@ dependencies: | |
| 95 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 96 82 | 
             
                    version: '0'
         | 
| 97 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 98 | 
            -
              name:  | 
| 84 | 
            +
              name: rake
         | 
| 99 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 86 | 
             
                requirements:
         | 
| 101 87 | 
             
                - - ">="
         | 
| 102 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            -
                    version: '0'
         | 
| 89 | 
            +
                    version: '12.0'
         | 
| 104 90 | 
             
              type: :development
         | 
| 105 91 | 
             
              prerelease: false
         | 
| 106 92 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 93 | 
             
                requirements:
         | 
| 108 94 | 
             
                - - ">="
         | 
| 109 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            -
                    version: '0'
         | 
| 96 | 
            +
                    version: '12.0'
         | 
| 111 97 | 
             
            description: This is the strategy for authenticating to your GitLab service
         | 
| 112 98 | 
             
            email:
         | 
| 113 99 | 
             
            - linchus@gmail.com
         | 
| @@ -146,12 +132,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 146 132 | 
             
                - !ruby/object:Gem::Version
         | 
| 147 133 | 
             
                  version: '0'
         | 
| 148 134 | 
             
            requirements: []
         | 
| 149 | 
            -
             | 
| 150 | 
            -
            rubygems_version: 2.2.2
         | 
| 135 | 
            +
            rubygems_version: 3.0.3
         | 
| 151 136 | 
             
            signing_key: 
         | 
| 152 137 | 
             
            specification_version: 4
         | 
| 153 138 | 
             
            summary: This is the strategy for authenticating to your GitLab service
         | 
| 154 139 | 
             
            test_files:
         | 
| 155 140 | 
             
            - spec/omniauth/strategies/gitlab_spec.rb
         | 
| 156 141 | 
             
            - spec/spec_helper.rb
         | 
| 157 | 
            -
            has_rdoc: 
         |