matic-jwt 1.3.0 → 1.3.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 94c73d0e6a6c70bde758e9ab351d6ac08e75de575d20fb9d0c3b8cc98db4af02
4
- data.tar.gz: f2c20ab9beb645806a5ad038815132ce8997cb8dcb7003e7921e7b2fd41944f1
3
+ metadata.gz: bef43d5997312616f50b0e39f656703075265c86ac1164281a50546bec94b5eb
4
+ data.tar.gz: 6c08125febdd3c3dbc95af1c5e27fb61fa53bfca60074103341121ee3d7a2754
5
5
  SHA512:
6
- metadata.gz: 043f8ac95959ec08a79f626a94893bf47824626b8665bdf86c1890d300b6fa9c8e1ac2a9da325b891ff07e437e857006ba1d5c3e70dc0d34676d183435f5df45
7
- data.tar.gz: 0c6d1a5a83b667b11bc02126240490bef319e7e7b80efe25f10e46de0911d6952efc5d321a81fa6c1221dfd5e4c617ff35051f01e6a89f4fb293934c61b8ee4c
6
+ metadata.gz: 63b515139bb3f8833ecd58b6362af50d94f391e9c534946309e92c894ed4173fedf6d6b647cccd40b79f341b9cd9dc9002cc3992658cb2c6001c2ea991777d73
7
+ data.tar.gz: f383d8a8238c747a33350ab00968213620e022510c5c56a4ef719e6a141688fcbf068e2e739dfb40c7ab86ecd50290041b6d41c84d28f765c69c9c8339fd78a0
@@ -21,106 +21,10 @@ jobs:
21
21
  ruby-version: ${{ matrix.ruby }}
22
22
  bundler-cache: true
23
23
 
24
+ - name: Run Rubocop
25
+ run: bundle exec rubocop
26
+
24
27
  - name: Run specs
25
28
  env:
26
29
  COVERAGE: true
27
30
  run: bundle exec rspec
28
-
29
- # release:
30
- # runs-on: ubuntu-latest
31
- # steps:
32
- # - name: Checkout
33
- # uses: actions/checkout@v4
34
- # - name: Set up Ruby
35
- # uses: ruby/setup-ruby@v1
36
- # with:
37
- # ruby-version: 3.1
38
- # bundler-cache: true
39
- # # - name: Set up credentials
40
- # # run: |
41
- # # mkdir -p $HOME/.gem
42
- # # touch $HOME/.gem/credentials
43
- # # chmod 0600 $HOME/.gem/credentials
44
- # # printf -- "---\n:rubygems_api_key: ${{secrets.RUBYGEMS_AUTH_TOKEN}}\n" > $HOME/.gem/credentials
45
-
46
- # - name: Get version
47
- # run: echo "${GITHUB_REF/refs\/tags\//}" > release.tag
48
- # - name: Set version
49
- # run: sed -i "s/0.0.0/$(<release.tag)/g" $(find . -name "version.rb")
50
-
51
- # - name: Build gem
52
- # run: gem build *.gemspec
53
- # # - name: Push gem
54
- # # run: gem push *.gem
55
-
56
-
57
- # # version: 2.1
58
-
59
- # # orbs:
60
- # # ci: matic/orb-common@0.3
61
- # # ruby: circleci/ruby@2.5.3
62
-
63
-
64
- # # release:
65
- # # parameters:
66
- # # tag:
67
- # # type: string
68
- # # default: "default-tag"
69
- # # docker:
70
- # # - image: cimg/ruby:3.1.4
71
- # # environment:
72
- # # RELEASE_TAG: << parameters.tag >>
73
- # # steps:
74
- # # - run:
75
- # # name: Checkout code via HTTPS
76
- # # command: |
77
- # # git clone https://${GITHUB_TOKEN}@github.com/matic-insurance/matic-jwt-wrapper.git .
78
- # # git checkout ${RELEASE_TAG}
79
- # # - ruby/install-deps
80
- # # - run:
81
- # # name: Set up credentials
82
- # # command: |
83
- # # mkdir -p $HOME/.gem
84
- # # echo ":rubygems_api_key: ${RUBYGEMS_API_KEY}" >> ~/.gem/credentials
85
- # # chmod 0600 $HOME/.gem/credentials
86
- # # - run:
87
- # # name: Debug credentials
88
- # # command: |
89
- # # echo "API key length: ${#RUBYGEMS_API_KEY}"
90
- # # echo "Credentials file exists: $(ls -la $HOME/.gem/credentials || echo 'NOT FOUND')"
91
- # # echo "Testing API key with current gem..."
92
- # # curl -f -H "Authorization: $RUBYGEMS_API_KEY" https://rubygems.org/api/v1/gems/matic-jwt-wrapper.json && echo "API key can access gem" || echo "API key cannot access gem"
93
- # # - run:
94
- # # name: Set version
95
- # # command: sed -i "s/[[:digit:]].[[:digit:]].[[:digit:]]/${RELEASE_TAG}/g" $(find . -name "version.rb")
96
- # # - run:
97
- # # name: Build gem
98
- # # command: gem build *.gemspec
99
- # # - run:
100
- # # name: Push gem
101
- # # command: gem push *.gem
102
-
103
- # # workflows:
104
-
105
- # # matic-jwt-wrapper.build-pull-request:
106
- # # when:
107
- # # not:
108
- # # equal: [ master, << pipeline.git.branch >> ]
109
- # # jobs:
110
-
111
- # # - release:
112
- # # tag: "1.3.0"
113
- # # context: gem-publishing
114
-
115
-
116
- # # matic-jwt-wrapper.release:
117
- # # jobs:
118
-
119
- # # - release:
120
- # # tag: << pipeline.git.tag >>
121
- # # context: gem-publishing
122
- # # filters:
123
- # # branches:
124
- # # ignore: /.*/
125
- # # tags:
126
- # # only: /\d\.\d\.\d/ # It should be [digin dot digit dot digit] format
@@ -1,13 +1,7 @@
1
- name: Release
1
+ name: Release to RubyGems
2
2
  on:
3
-
4
- # push:
5
- # tags:
6
- # - '*.*.*'
7
- push:
8
- branches: [ "master" ]
9
- pull_request:
10
- branches: [ "master" ]
3
+ release:
4
+ types: [published]
11
5
 
12
6
  jobs:
13
7
  release:
@@ -23,17 +17,16 @@ jobs:
23
17
  with:
24
18
  ruby-version: 3.1
25
19
  bundler-cache: true
26
- - name: Set version
20
+ - name: Set version from release tag
27
21
  run: |
28
- if [[ $GITHUB_REF == refs/tags/* ]]; then
29
- VERSION=${GITHUB_REF#refs/tags/}
30
- else
31
- echo " ERROR: This workflow should only run on tag pushes, though GITHUB_REF is $GITHUB_REF"
32
- VERSION="1.3.0"
33
- # exit 1
22
+ VERSION="${{ github.event.release.tag_name }}"
23
+ if [[ ! $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
24
+ echo "❌ ERROR: Version '$VERSION' is not in valid x.y.z format"
25
+ echo "Expected format: 1.2.3 (three numbers separated by dots)"
26
+ exit 1
34
27
  fi
35
28
  echo "Setting version to: $VERSION"
36
- find . -name "version.rb" -exec sed -i "s|VERSION = ['\"]0\.0\.0['\"]|VERSION = \"$VERSION\"|g" {} \;
29
+ find . -name "version.rb" -exec sed -i "s|VERSION = ['\"][^'\"]*['\"]|VERSION = \"$VERSION\"|g" {} \;
37
30
  - name: Configure RubyGems Credentials
38
31
  uses: rubygems/configure-rubygems-credentials@main
39
32
  - name: Build Gem
data/.rubocop.yml ADDED
@@ -0,0 +1,13 @@
1
+ AllCops:
2
+ NewCops: enable
3
+
4
+ Style/Documentation:
5
+ Enabled: false
6
+
7
+ Metrics/BlockLength:
8
+ Exclude:
9
+ - 'spec/**/*_spec.rb'
10
+
11
+ Naming/FileName:
12
+ Exclude:
13
+ - lib/matic-jwt.rb
data/Gemfile CHANGED
@@ -1,6 +1,19 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
5
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
6
 
5
- # Specify your gem's dependencies in matic-jwt.gemspec
6
7
  gemspec
8
+
9
+ group :development, :test do
10
+ gem 'bundler'
11
+ gem 'rake'
12
+ gem 'rspec'
13
+ end
14
+
15
+ group :test do
16
+ gem 'rubocop'
17
+ gem 'rubocop-performance', require: false
18
+ gem 'rubocop-rspec', require: false
19
+ end
data/Gemfile.lock CHANGED
@@ -21,45 +21,87 @@ GEM
21
21
  mutex_m
22
22
  securerandom (>= 0.3)
23
23
  tzinfo (~> 2.0)
24
+ ast (2.4.3)
24
25
  base64 (0.3.0)
25
26
  benchmark (0.4.1)
26
27
  bigdecimal (3.2.0)
27
28
  concurrent-ruby (1.3.5)
28
29
  connection_pool (2.5.3)
29
- diff-lcs (1.3)
30
+ diff-lcs (1.6.2)
30
31
  drb (2.2.3)
31
32
  i18n (1.14.7)
32
33
  concurrent-ruby (~> 1.0)
34
+ json (2.13.2)
33
35
  jwt (2.2.1)
36
+ language_server-protocol (3.17.0.5)
37
+ lint_roller (1.1.0)
34
38
  logger (1.7.0)
35
39
  minitest (5.25.5)
36
40
  mutex_m (0.3.0)
37
- rake (13.0.1)
38
- rspec (3.7.0)
39
- rspec-core (~> 3.7.0)
40
- rspec-expectations (~> 3.7.0)
41
- rspec-mocks (~> 3.7.0)
42
- rspec-core (3.7.0)
43
- rspec-support (~> 3.7.0)
44
- rspec-expectations (3.7.0)
41
+ parallel (1.27.0)
42
+ parser (3.3.9.0)
43
+ ast (~> 2.4.1)
44
+ racc
45
+ prism (1.4.0)
46
+ racc (1.8.1)
47
+ rainbow (3.1.1)
48
+ rake (13.3.0)
49
+ regexp_parser (2.10.0)
50
+ rspec (3.13.1)
51
+ rspec-core (~> 3.13.0)
52
+ rspec-expectations (~> 3.13.0)
53
+ rspec-mocks (~> 3.13.0)
54
+ rspec-core (3.13.5)
55
+ rspec-support (~> 3.13.0)
56
+ rspec-expectations (3.13.5)
45
57
  diff-lcs (>= 1.2.0, < 2.0)
46
- rspec-support (~> 3.7.0)
47
- rspec-mocks (3.7.0)
58
+ rspec-support (~> 3.13.0)
59
+ rspec-mocks (3.13.5)
48
60
  diff-lcs (>= 1.2.0, < 2.0)
49
- rspec-support (~> 3.7.0)
50
- rspec-support (3.7.0)
61
+ rspec-support (~> 3.13.0)
62
+ rspec-support (3.13.4)
63
+ rubocop (1.79.0)
64
+ json (~> 2.3)
65
+ language_server-protocol (~> 3.17.0.2)
66
+ lint_roller (~> 1.1.0)
67
+ parallel (~> 1.10)
68
+ parser (>= 3.3.0.2)
69
+ rainbow (>= 2.2.2, < 4.0)
70
+ regexp_parser (>= 2.9.3, < 3.0)
71
+ rubocop-ast (>= 1.46.0, < 2.0)
72
+ ruby-progressbar (~> 1.7)
73
+ tsort (>= 0.2.0)
74
+ unicode-display_width (>= 2.4.0, < 4.0)
75
+ rubocop-ast (1.46.0)
76
+ parser (>= 3.3.7.2)
77
+ prism (~> 1.4)
78
+ rubocop-performance (1.25.0)
79
+ lint_roller (~> 1.1)
80
+ rubocop (>= 1.75.0, < 2.0)
81
+ rubocop-ast (>= 1.38.0, < 2.0)
82
+ rubocop-rspec (3.6.0)
83
+ lint_roller (~> 1.1)
84
+ rubocop (~> 1.72, >= 1.72.1)
85
+ ruby-progressbar (1.13.0)
51
86
  securerandom (0.4.1)
87
+ tsort (0.2.0)
52
88
  tzinfo (2.0.6)
53
89
  concurrent-ruby (~> 1.0)
90
+ unicode-display_width (3.1.4)
91
+ unicode-emoji (~> 4.0, >= 4.0.4)
92
+ unicode-emoji (4.0.4)
54
93
 
55
94
  PLATFORMS
56
95
  ruby
57
96
 
58
97
  DEPENDENCIES
59
- bundler (~> 1.16)
98
+ bundler
60
99
  matic-jwt!
61
- rake (~> 13.0)
62
- rspec (~> 3.0)
100
+ rake
101
+ rspec
102
+ rubocop
103
+ rubocop-performance
104
+ rubocop-rspec
63
105
 
64
106
  BUNDLED WITH
65
107
  2.5.4
data/Rakefile CHANGED
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
- task :default => :spec
4
+ task default: :spec
data/bin/console CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require "bundler/setup"
4
- require "matic/jwt"
4
+ require 'bundler/setup'
5
+ require 'matic/jwt'
5
6
 
6
7
  # You can add fixtures and/or initialization code here to make experimenting
7
8
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +11,5 @@ require "matic/jwt"
10
11
  # require "pry"
11
12
  # Pry.start
12
13
 
13
- require "irb"
14
+ require 'irb'
14
15
  IRB.start(__FILE__)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module MaticJWT
2
4
  class Authenticator
3
5
  def initialize(header, scheme: SCHEME)
@@ -20,7 +22,7 @@ module MaticJWT
20
22
  private
21
23
 
22
24
  def extract_token(header)
23
- token = header&.slice(@scheme.length + 1..-1)
25
+ token = header&.slice((@scheme.length + 1)..-1)
24
26
  validate_header_presence!(token)
25
27
  token
26
28
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module MaticJWT
2
4
  class Generator
3
5
  def initialize(expiration: EXPIRATION, scheme: SCHEME)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module MaticJWT
2
4
  module Grape
3
5
  module Helper
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module MaticJWT
2
4
  module Grape
3
5
  module Middleware
@@ -50,4 +52,4 @@ module MaticJWT
50
52
  end
51
53
  end
52
54
 
53
- Grape::Middleware::Auth::Strategies.add(:jwt_auth, ::MaticJWT::Grape::Middleware::Auth, ->(options) { [options] })
55
+ Grape::Middleware::Auth::Strategies.add(:jwt_auth, MaticJWT::Grape::Middleware::Auth, ->(options) { [options] })
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module MaticJWT
2
4
  module Grape
3
5
  module Middleware
@@ -24,7 +26,7 @@ module MaticJWT
24
26
  private
25
27
 
26
28
  def auth_key
27
- @authorization_key ||= AUTHORIZATION_KEYS.detect { |key| @env.key?(key) }
29
+ @auth_key ||= AUTHORIZATION_KEYS.detect { |key| @env.key?(key) }
28
30
  end
29
31
  end
30
32
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module MaticJWT
2
- VERSION = "1.3.0".freeze
4
+ VERSION = "1.3.1"
3
5
  end
data/lib/matic-jwt.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_support'
2
4
  require 'active_support/core_ext'
3
5
  require 'jwt'
@@ -6,14 +8,14 @@ require 'matic-jwt/authenticator'
6
8
  require 'matic-jwt/generator'
7
9
  require 'matic-jwt/version'
8
10
 
9
- if Gem.loaded_specs.has_key?('grape')
11
+ if Gem.loaded_specs.key?('grape')
10
12
  require 'matic-jwt/grape/helper'
11
13
  require 'matic-jwt/grape/middleware/request'
12
14
  require 'matic-jwt/grape/middleware/auth'
13
15
  end
14
16
 
15
17
  module MaticJWT
16
- ALGORITHM = 'HS256'.freeze
18
+ ALGORITHM = 'HS256'
17
19
  EXPIRATION = 1.minute
18
- SCHEME = 'Bearer'.freeze
20
+ SCHEME = 'Bearer'
19
21
  end
data/matic-jwt.gemspec CHANGED
@@ -1,5 +1,6 @@
1
+ # frozen_string_literal: true
1
2
 
2
- lib = File.expand_path('../lib', __FILE__)
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'matic-jwt/version'
5
6
 
@@ -10,28 +11,25 @@ Gem::Specification.new do |spec|
10
11
  spec.email = ['ydanyliak@getmatic.com']
11
12
 
12
13
  spec.summary = "Matic's JWT implementation"
13
- spec.description = 'This gem contains specific implementation of JWT authentication to be used inside of Matic products.'
14
+ spec.description = 'This gem contains specific implementation of JWT authentication ' \
15
+ 'to be used inside of Matic products.'
14
16
  spec.homepage = 'https://github.com/matic-insurance/matic-jwt-wrapper'
15
17
 
16
18
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
17
19
  # to allow pushing to a single host or delete this section to allow pushing to any host.
18
- if spec.respond_to?(:metadata)
19
- spec.metadata['allowed_push_host'] = 'https://rubygems.org'
20
- else
21
- raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
22
- end
20
+ raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.' unless spec.respond_to?(:metadata)
21
+
22
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
23
+ spec.metadata['rubygems_mfa_required'] = 'true'
23
24
 
24
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
25
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
25
26
  f.match(%r{^(test|spec|features)/})
26
27
  end
27
28
  spec.bindir = 'exe'
28
29
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
30
  spec.require_paths = ['lib']
31
+ spec.required_ruby_version = '>= 3.0'
30
32
 
31
- spec.add_dependency 'jwt'
32
33
  spec.add_dependency 'activesupport'
33
-
34
- spec.add_development_dependency 'bundler', '~> 1.16'
35
- spec.add_development_dependency 'rake', '~> 13.0'
36
- spec.add_development_dependency 'rspec', '~> 3.0'
34
+ spec.add_dependency 'jwt'
37
35
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: matic-jwt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yurii Danyliak
@@ -11,7 +11,7 @@ cert_chain: []
11
11
  date: 2025-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: jwt
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: activesupport
28
+ name: jwt
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -38,48 +38,6 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.16'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.16'
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '13.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '13.0'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '3.0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '3.0'
83
41
  description: This gem contains specific implementation of JWT authentication to be
84
42
  used inside of Matic products.
85
43
  email:
@@ -91,6 +49,7 @@ files:
91
49
  - ".github/workflows/check.yml"
92
50
  - ".github/workflows/release.yml"
93
51
  - ".gitignore"
52
+ - ".rubocop.yml"
94
53
  - Gemfile
95
54
  - Gemfile.lock
96
55
  - LICENSE
@@ -110,6 +69,7 @@ homepage: https://github.com/matic-insurance/matic-jwt-wrapper
110
69
  licenses: []
111
70
  metadata:
112
71
  allowed_push_host: https://rubygems.org
72
+ rubygems_mfa_required: 'true'
113
73
  post_install_message:
114
74
  rdoc_options: []
115
75
  require_paths:
@@ -118,7 +78,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
118
78
  requirements:
119
79
  - - ">="
120
80
  - !ruby/object:Gem::Version
121
- version: '0'
81
+ version: '3.0'
122
82
  required_rubygems_version: !ruby/object:Gem::Requirement
123
83
  requirements:
124
84
  - - ">="