diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml new file mode 100644 index 0000000..4a91e36 --- /dev/null +++ b/.github/workflows/ruby.yml @@ -0,0 +1,24 @@ +name: Ruby + +on: + push: + branches: + - main + pull_request: + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + ruby-version: ['2.7', '3.0', '3.1', '3.2'] + + steps: + - uses: actions/checkout@v4 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version }} + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + - name: Run tests + run: bundle exec rspec diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3756708..0000000 --- a/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: ruby -rvm: - - 2.3 - - 2.4 - - 2.5 - - 2.6 - - 3.2 -script: bundle exec rspec diff --git a/README.md b/README.md index 94de091..d328060 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,7 @@ Omniauth strategy for using Citadele as an authentication service provider. -[![Build Status](https://travis-ci.org/mitigate-dev/omniauth-citadele.svg?branch=master)](https://travis-ci.org/mitigate-dev/omniauth-citadele) - -Supported Ruby versions: 2.3+ +Supported Ruby versions: 2.7+ ## Related projects diff --git a/omniauth-citadele.gemspec b/omniauth-citadele.gemspec index 785570b..edb89b1 100644 --- a/omniauth-citadele.gemspec +++ b/omniauth-citadele.gemspec @@ -18,16 +18,17 @@ Gem::Specification.new do |spec| spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) spec.require_paths = ['lib'] - spec.required_ruby_version = '>= 2.3.0' + spec.required_ruby_version = '>= 2.7' spec.add_runtime_dependency 'omniauth', '~> 2.1' spec.add_runtime_dependency 'i18n' - spec.add_development_dependency 'rack', '~> 2.0' + spec.add_development_dependency 'rack' spec.add_development_dependency 'rack-test' spec.add_development_dependency 'rspec' spec.add_development_dependency 'bundler' spec.add_development_dependency 'rake' + spec.add_development_dependency 'rack-session' spec.add_dependency 'xmldsig' spec.add_dependency 'nokogiri' diff --git a/spec/omniauth/strategies/citadele_spec.rb b/spec/omniauth/strategies/citadele_spec.rb index 103a13f..5e12fcf 100644 --- a/spec/omniauth/strategies/citadele_spec.rb +++ b/spec/omniauth/strategies/citadele_spec.rb @@ -1,5 +1,6 @@ require 'spec_helper' require 'rack-protection' +require 'rack/session' describe OmniAuth::Strategies::Citadele do PRIVATE_KEY = File.read(File.join(RSpec.configuration.cert_folder, 'request.key')) @@ -7,7 +8,7 @@ PUBLIC_CRT = File.read(File.join(RSpec.configuration.cert_folder, 'response.crt')) let(:app){ Rack::Builder.new do |b| - b.use Rack::Session::Cookie, {secret: 'abc123'} + b.use Rack::Session::Cookie, {secret: '5242e6bd9daf0e9645c2d4e22b11ba8cee0bed44439906d5f1bd5dad409d8637'} b.use(OmniAuth::Strategies::Citadele, PRIVATE_KEY, PRIVATE_CRT, PUBLIC_CRT, 'MY_FROM') b.run lambda{|env| [404, {}, ['Not Found']]} end.to_app } @@ -87,7 +88,7 @@ context 'with custom options' do let(:app){ Rack::Builder.new do |b| - b.use Rack::Session::Cookie, {secret: 'abc123'} + b.use Rack::Session::Cookie, {secret: '5242e6bd9daf0e9645c2d4e22b11ba8cee0bed44439906d5f1bd5dad409d8637'} b.use(OmniAuth::Strategies::Citadele, PRIVATE_KEY, PRIVATE_CRT, PUBLIC_CRT, 'MY_FROM', site: 'https://test.lv/banklink') b.run lambda{|env| [404, {}, ['Not Found']]} @@ -101,7 +102,7 @@ context 'with non-existant private key file' do let(:app){ Rack::Builder.new do |b| - b.use Rack::Session::Cookie, {secret: 'abc123'} + b.use Rack::Session::Cookie, {secret: '5242e6bd9daf0e9645c2d4e22b11ba8cee0bed44439906d5f1bd5dad409d8637'} b.use(OmniAuth::Strategies::Citadele, 'missing-private-key-file.pem', PRIVATE_CRT, PUBLIC_CRT, 'MY_FROM') b.run lambda{|env| [404, {}, ['Not Found']]} end.to_app } @@ -115,7 +116,7 @@ context 'with non-existant private certificate file' do let(:app){ Rack::Builder.new do |b| - b.use Rack::Session::Cookie, {secret: 'abc123'} + b.use Rack::Session::Cookie, {secret: '5242e6bd9daf0e9645c2d4e22b11ba8cee0bed44439906d5f1bd5dad409d8637'} b.use(OmniAuth::Strategies::Citadele, PRIVATE_KEY, 'missing-private-crt-file.pem', PUBLIC_CRT, 'MY_FROM') b.run lambda{|env| [404, {}, ['Not Found']]} end.to_app } @@ -161,7 +162,7 @@ def post_to_request_phase_path context 'with non-existant public key file' do let(:app){ Rack::Builder.new do |b| - b.use Rack::Session::Cookie, {secret: 'abc123'} + b.use Rack::Session::Cookie, {secret: '5242e6bd9daf0e9645c2d4e22b11ba8cee0bed44439906d5f1bd5dad409d8637'} b.use(OmniAuth::Strategies::Citadele, PRIVATE_KEY, PRIVATE_CRT, 'missing-public-key-file.pem' ) b.run lambda{|env| [404, {}, ['Not Found']]} end.to_app }