graphql_devise 1.5.0 → 2.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4aa3fd3cb5393aea5b9cedc4bbe4742fb5f89d5730c40b66b3c0d16ffde93704
4
- data.tar.gz: ef7ab750655d0ad87b9c84c17653af2046e0479dabc1603528670e7737a97ca8
3
+ metadata.gz: 6ab4ca463ad9fa1ac86b68eabd1e7feac2f5327e5600163004b4f971e6b2c537
4
+ data.tar.gz: a4dba314911133664abeb4cee515e59dcf655a6188fa73a785c23a5bbfd8936b
5
5
  SHA512:
6
- metadata.gz: f18ec6dc3779ad66dd3950b8768e013108f5208b17c0dc21e7197aca2872d8fdb2dcd95ef1f78d1138f773eb98584a9c7bf0668bc516e56c3f7e56b8b5832a11
7
- data.tar.gz: 6511feb415cfdb50b3b784feb874f1fba9ac695207fd7e9a48aeaa9b531894da1de4849729059aa36957e228e4f7ad2dc07396ecc25c4e953e341ace990a728d
6
+ metadata.gz: cf7c1c21fdf5a8e1604cc7b2bbbfc6b47a29c8b74514ab9e0f09155342cb6e2a4c1acb3fcfc3b4dce2446c6a452744bdbb9ad524192cb478aad743573367cf8f
7
+ data.tar.gz: c88d025814544ed547d97ecc9d05c748a3c271b67f9587f7fecaba501f69b6a2a1a11cd18bb736543d4b9b6694183d1551e5c6408699ec841cc6835af424762a
data/.circleci/config.yml CHANGED
@@ -13,12 +13,12 @@ jobs:
13
13
  - image: 'ruby:<< parameters.ruby-version >>'
14
14
  environment:
15
15
  BUNDLE_GEMFILE: << parameters.gemfile >>
16
- COVERALLS_PARALLEL: true
16
+ COVERALLS_PARALLEL: 'true'
17
17
  EAGER_LOAD: 'true'
18
18
  RUBYOPT: '-rostruct'
19
19
  steps:
20
20
  - checkout
21
- - run: gem install bundler -v '1.17'
21
+ - run: ruby bin/install_bundler.rb
22
22
  - run:
23
23
  name: Install dependencies
24
24
  command: bundle install
@@ -40,117 +40,71 @@ workflows:
40
40
  matrix:
41
41
  parameters:
42
42
  ruby-version:
43
- - '2.5'
44
- - '2.6'
45
- - '2.7'
46
43
  - '3.0'
44
+ - '3.1'
45
+ - '3.2'
46
+ - '3.3'
47
+ - '3.4'
47
48
  gemfile:
48
- - gemfiles/rails4.2_graphql1.8.gemfile
49
- - gemfiles/rails5.0_graphql1.8.gemfile
50
- - gemfiles/rails5.0_graphql1.9.gemfile
51
- - gemfiles/rails5.1_graphql1.8.gemfile
52
- - gemfiles/rails5.1_graphql1.9.gemfile
53
- - gemfiles/rails5.2_graphql1.8.gemfile
54
- - gemfiles/rails5.2_graphql1.9.gemfile
55
- - gemfiles/rails5.2_graphql1.10.gemfile
56
- - gemfiles/rails5.2_graphql1.11.gemfile
57
- - gemfiles/rails6.0_graphql1.11.gemfile
58
- - gemfiles/rails6.0_graphql1.12.gemfile
59
- - gemfiles/rails6.0_graphql1.13.gemfile
60
49
  - gemfiles/rails6.1_graphql1.11.gemfile
61
50
  - gemfiles/rails6.1_graphql1.12.gemfile
62
51
  - gemfiles/rails6.1_graphql1.13.gemfile
63
52
  - gemfiles/rails6.1_graphql2.0.gemfile
64
- - gemfiles/rails7.0_graphql1.11.gemfile
65
- - gemfiles/rails7.0_graphql1.12.gemfile
66
- - gemfiles/rails7.0_graphql1.13.gemfile
67
53
  - gemfiles/rails7.0_graphql2.0.gemfile
68
54
  - gemfiles/rails7.0_graphql2.1.gemfile
69
55
  - gemfiles/rails7.0_graphql2.2.gemfile
70
56
  - gemfiles/rails7.0_graphql2.3.gemfile
57
+ - gemfiles/rails7.0_graphql2.4.gemfile
71
58
  - gemfiles/rails7.1_graphql2.0.gemfile
72
59
  - gemfiles/rails7.1_graphql2.1.gemfile
73
60
  - gemfiles/rails7.1_graphql2.2.gemfile
74
61
  - gemfiles/rails7.1_graphql2.3.gemfile
62
+ - gemfiles/rails7.1_graphql2.4.gemfile
63
+ - gemfiles/rails7.2_graphql2.0.gemfile
64
+ - gemfiles/rails7.2_graphql2.1.gemfile
65
+ - gemfiles/rails7.2_graphql2.2.gemfile
66
+ - gemfiles/rails7.2_graphql2.3.gemfile
67
+ - gemfiles/rails7.2_graphql2.4.gemfile
68
+ - gemfiles/rails7.2_graphql2.5.gemfile
69
+ - gemfiles/rails8.0_graphql2.2.gemfile
70
+ - gemfiles/rails8.0_graphql2.3.gemfile
71
+ - gemfiles/rails8.0_graphql2.4.gemfile
72
+ - gemfiles/rails8.0_graphql2.5.gemfile
75
73
  exclude:
76
- - ruby-version: '2.5'
77
- gemfile: gemfiles/rails7.0_graphql1.11.gemfile
78
- - ruby-version: '2.5'
79
- gemfile: gemfiles/rails6.0_graphql1.13.gemfile
80
- - ruby-version: '2.5'
81
- gemfile: gemfiles/rails6.1_graphql1.13.gemfile
82
- - ruby-version: '2.5'
83
- gemfile: gemfiles/rails7.0_graphql1.12.gemfile
84
- - ruby-version: '2.5'
85
- gemfile: gemfiles/rails7.0_graphql1.13.gemfile
86
- - ruby-version: '2.5'
87
- gemfile: gemfiles/rails6.1_graphql2.0.gemfile
88
- - ruby-version: '2.5'
89
- gemfile: gemfiles/rails6.1_graphql1.12.gemfile
90
- - ruby-version: '2.5'
91
- gemfile: gemfiles/rails6.1_graphql1.11.gemfile
92
- - ruby-version: '2.5'
93
- gemfile: gemfiles/rails6.0_graphql1.12.gemfile
94
- - ruby-version: '2.5'
95
- gemfile: gemfiles/rails6.0_graphql1.11.gemfile
96
- - ruby-version: '2.5'
97
- gemfile: gemfiles/rails7.0_graphql2.0.gemfile
98
- - ruby-version: '2.5'
99
- gemfile: gemfiles/rails7.0_graphql2.1.gemfile
100
- - ruby-version: '2.5'
101
- gemfile: gemfiles/rails7.0_graphql2.2.gemfile
102
- - ruby-version: '2.5'
103
- gemfile: gemfiles/rails7.0_graphql2.3.gemfile
104
- - ruby-version: '2.5'
105
- gemfile: gemfiles/rails7.1_graphql2.0.gemfile
106
- - ruby-version: '2.5'
107
- gemfile: gemfiles/rails7.1_graphql2.1.gemfile
108
- - ruby-version: '2.5'
109
- gemfile: gemfiles/rails7.1_graphql2.2.gemfile
110
- - ruby-version: '2.5'
111
- gemfile: gemfiles/rails7.1_graphql2.3.gemfile
112
- - ruby-version: '2.6'
113
- gemfile: gemfiles/rails7.0_graphql1.11.gemfile
114
- - ruby-version: '2.6'
115
- gemfile: gemfiles/rails7.0_graphql1.12.gemfile
116
- - ruby-version: '2.6'
117
- gemfile: gemfiles/rails7.0_graphql1.13.gemfile
118
- - ruby-version: '2.6'
119
- gemfile: gemfiles/rails7.0_graphql2.0.gemfile
120
- - ruby-version: '2.6'
121
- gemfile: gemfiles/rails7.0_graphql2.1.gemfile
122
- - ruby-version: '2.6'
123
- gemfile: gemfiles/rails7.0_graphql2.2.gemfile
124
- - ruby-version: '2.6'
125
- gemfile: gemfiles/rails7.0_graphql2.3.gemfile
126
- - ruby-version: '2.6'
127
- gemfile: gemfiles/rails7.1_graphql2.0.gemfile
128
- - ruby-version: '2.6'
129
- gemfile: gemfiles/rails7.1_graphql2.1.gemfile
130
- - ruby-version: '2.6'
131
- gemfile: gemfiles/rails7.1_graphql2.2.gemfile
132
- - ruby-version: '2.6'
133
- gemfile: gemfiles/rails7.1_graphql2.3.gemfile
134
- - ruby-version: '2.7'
135
- gemfile: gemfiles/rails4.2_graphql1.8.gemfile
136
74
  - ruby-version: '3.0'
137
- gemfile: gemfiles/rails4.2_graphql1.8.gemfile
75
+ gemfile: gemfiles/rails7.2_graphql2.0.gemfile
76
+ - ruby-version: '3.0'
77
+ gemfile: gemfiles/rails7.2_graphql2.1.gemfile
138
78
  - ruby-version: '3.0'
139
- gemfile: gemfiles/rails5.0_graphql1.8.gemfile
79
+ gemfile: gemfiles/rails7.2_graphql2.2.gemfile
140
80
  - ruby-version: '3.0'
141
- gemfile: gemfiles/rails5.0_graphql1.9.gemfile
81
+ gemfile: gemfiles/rails7.2_graphql2.3.gemfile
142
82
  - ruby-version: '3.0'
143
- gemfile: gemfiles/rails5.1_graphql1.8.gemfile
83
+ gemfile: gemfiles/rails7.2_graphql2.4.gemfile
144
84
  - ruby-version: '3.0'
145
- gemfile: gemfiles/rails5.1_graphql1.9.gemfile
85
+ gemfile: gemfiles/rails7.2_graphql2.5.gemfile
146
86
  - ruby-version: '3.0'
147
- gemfile: gemfiles/rails5.2_graphql1.8.gemfile
87
+ gemfile: gemfiles/rails8.0_graphql2.2.gemfile
148
88
  - ruby-version: '3.0'
149
- gemfile: gemfiles/rails5.2_graphql1.9.gemfile
89
+ gemfile: gemfiles/rails8.0_graphql2.3.gemfile
150
90
  - ruby-version: '3.0'
151
- gemfile: gemfiles/rails5.2_graphql1.10.gemfile
91
+ gemfile: gemfiles/rails8.0_graphql2.4.gemfile
152
92
  - ruby-version: '3.0'
153
- gemfile: gemfiles/rails5.2_graphql1.11.gemfile
93
+ gemfile: gemfiles/rails8.0_graphql2.5.gemfile
94
+ - ruby-version: '3.1'
95
+ gemfile: gemfiles/rails8.0_graphql2.2.gemfile
96
+ - ruby-version: '3.1'
97
+ gemfile: gemfiles/rails8.0_graphql2.3.gemfile
98
+ - ruby-version: '3.1'
99
+ gemfile: gemfiles/rails8.0_graphql2.4.gemfile
100
+ - ruby-version: '3.1'
101
+ gemfile: gemfiles/rails8.0_graphql2.5.gemfile
102
+ - ruby-version: '3.2'
103
+ gemfile: gemfiles/rails6.1_graphql1.11.gemfile
104
+ - ruby-version: '3.3'
105
+ gemfile: gemfiles/rails6.1_graphql1.11.gemfile
106
+ - ruby-version: '3.4'
107
+ gemfile: gemfiles/rails6.1_graphql1.11.gemfile
154
108
  - report-coverage:
155
109
  requires:
156
110
  - test
data/.rubocop.yml CHANGED
@@ -4,7 +4,7 @@ require:
4
4
  - rubocop-rails
5
5
 
6
6
  AllCops:
7
- TargetRubyVersion: 2.4.4
7
+ TargetRubyVersion: 2.7
8
8
  DisplayCopNames: true
9
9
  Exclude:
10
10
  - bin/**/*
data/Appraisals CHANGED
@@ -1,132 +1,3 @@
1
- appraise 'rails4.2-graphql1.8' do
2
- gem 'sqlite3', '~> 1.3.6'
3
- gem 'bundler', '~> 1.17'
4
- gem 'rails', git: 'https://github.com/rails/rails', branch: '4-2-stable'
5
- gem 'graphql', '~> 1.8.0'
6
- gem 'devise_token_auth', '< 1.2'
7
- gem 'rspec-rails', '< 4.0'
8
- gem 'bigdecimal', '1.3.5'
9
- gem 'factory_bot', '<= 6.4.4'
10
- end
11
-
12
- appraise 'rails5.0-graphql1.8' do
13
- gem 'sqlite3', '~> 1.3.6'
14
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-0-stable'
15
- gem 'graphql', '~> 1.8.0'
16
- gem 'devise_token_auth', '0.1.43'
17
- gem 'devise', '>= 4.0'
18
- gem 'rspec-rails', '< 4.0'
19
- gem 'factory_bot', '<= 6.4.4'
20
- end
21
-
22
- appraise 'rails5.0-graphql1.9' do
23
- gem 'sqlite3', '~> 1.3.6'
24
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-0-stable'
25
- gem 'graphql', '~> 1.9.0'
26
- gem 'devise_token_auth', '< 1.2'
27
- gem 'rspec-rails', '< 4.0'
28
- gem 'factory_bot', '<= 6.4.4'
29
- end
30
-
31
- appraise 'rails5.1-graphql1.8' do
32
- gem 'sqlite3', '~> 1.3.6'
33
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-1-stable'
34
- gem 'graphql', '~> 1.8.0'
35
- gem 'devise_token_auth', '0.1.43'
36
- gem 'devise', '>= 4.3'
37
- gem 'rspec-rails', '< 4.0'
38
- gem 'factory_bot', '<= 6.4.4'
39
- end
40
-
41
- appraise 'rails5.1-graphql1.9' do
42
- gem 'sqlite3', '~> 1.3.6'
43
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-1-stable'
44
- gem 'graphql', '~> 1.9.0'
45
- gem 'devise_token_auth', '< 1.2'
46
- gem 'rspec-rails', '< 4.0'
47
- gem 'factory_bot', '<= 6.4.4'
48
- end
49
-
50
- appraise 'rails5.2-graphql1.8' do
51
- gem 'sqlite3', '~> 1.3.6'
52
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-2-stable'
53
- gem 'graphql', '~> 1.8.0'
54
- gem 'devise_token_auth', '0.1.43'
55
- gem 'devise', '>= 4.4.2'
56
- gem 'rspec-rails', '< 4.0'
57
- gem 'factory_bot', '<= 6.4.4'
58
- end
59
-
60
- appraise 'rails5.2-graphql1.9' do
61
- gem 'sqlite3', '~> 1.3.6'
62
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-2-stable'
63
- gem 'graphql', '~> 1.9.0'
64
- gem 'devise_token_auth', '< 1.2'
65
- gem 'rspec-rails', '< 4.0'
66
- gem 'factory_bot', '<= 6.4.4'
67
- end
68
-
69
- appraise 'rails5.2-graphql1.10' do
70
- gem 'sqlite3', '~> 1.3.6'
71
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-2-stable'
72
- gem 'graphql', '~> 1.10.0'
73
- gem 'devise_token_auth', '< 1.2'
74
- gem 'rspec-rails', '< 4.0'
75
- gem 'factory_bot', '<= 6.4.4'
76
- end
77
-
78
- appraise 'rails5.2-graphql1.11' do
79
- gem 'sqlite3', '~> 1.3.6'
80
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-2-stable'
81
- gem 'graphql', '~> 1.11.0'
82
- gem 'devise_token_auth', '< 1.2'
83
- gem 'rspec-rails', '< 4.0'
84
- gem 'factory_bot', '<= 6.4.4'
85
- end
86
-
87
- appraise 'rails5.2-graphql1.12' do
88
- gem 'sqlite3', '~> 1.3.6'
89
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-2-stable'
90
- gem 'graphql', '~> 1.12.0'
91
- gem 'devise_token_auth', '< 1.2'
92
- gem 'rspec-rails', '< 4.0'
93
- gem 'factory_bot', '<= 6.4.4'
94
- end
95
-
96
- appraise 'rails6.0-graphql1.10' do
97
- gem 'sqlite3', '~> 1.5.4'
98
- gem 'devise', '>= 4.7'
99
- gem 'rails', git: 'https://github.com/rails/rails', branch: '6-0-stable'
100
- gem 'graphql', '~> 1.10.0'
101
- gem 'factory_bot', '<= 6.4.4'
102
- end
103
-
104
- appraise 'rails6.0-graphql1.11' do
105
- gem 'sqlite3', '~> 1.5.4'
106
- gem 'public_suffix', '< 5'
107
- gem 'devise', '>= 4.7'
108
- gem 'rails', git: 'https://github.com/rails/rails', branch: '6-0-stable'
109
- gem 'graphql', '~> 1.11.0'
110
- gem 'factory_bot', '<= 6.4.4'
111
- end
112
-
113
- appraise 'rails6.0-graphql1.12' do
114
- gem 'sqlite3', '~> 1.5.4'
115
- gem 'public_suffix', '< 5'
116
- gem 'devise', '>= 4.7'
117
- gem 'rails', git: 'https://github.com/rails/rails', branch: '6-0-stable'
118
- gem 'graphql', '~> 1.12.0'
119
- gem 'factory_bot', '<= 6.4.4'
120
- end
121
-
122
- appraise 'rails6.0-graphql1.13' do
123
- gem 'sqlite3', '~> 1.5.4'
124
- gem 'devise', '>= 4.7'
125
- gem 'rails', git: 'https://github.com/rails/rails', branch: '6-0-stable'
126
- gem 'graphql', '~> 1.13.0'
127
- gem 'factory_bot', '<= 6.4.4'
128
- end
129
-
130
1
  appraise 'rails6.1-graphql1.10' do
131
2
  gem 'sqlite3', '~> 1.5.4'
132
3
  gem 'devise', '>= 4.7'
@@ -233,6 +104,15 @@ appraise 'rails7.0-graphql2.3' do
233
104
  gem 'graphql', '>= 2.3', '< 2.4'
234
105
  end
235
106
 
107
+ appraise 'rails7.0-graphql2.4' do
108
+ gem 'sassc-rails'
109
+ gem 'sqlite3', '~> 1.5.4'
110
+ gem 'devise_token_auth', '>= 1.2.1'
111
+ gem 'devise', '>= 4.7'
112
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-0-stable'
113
+ gem 'graphql', '>= 2.4', '< 2.5'
114
+ end
115
+
236
116
  appraise 'rails7.1-graphql2.0' do
237
117
  gem 'sassc-rails'
238
118
  gem 'sqlite3', '~> 1.5.4'
@@ -268,3 +148,77 @@ appraise 'rails7.1-graphql2.3' do
268
148
  gem 'rails', git: 'https://github.com/rails/rails', branch: '7-1-stable'
269
149
  gem 'graphql', '>= 2.3', '< 2.4'
270
150
  end
151
+
152
+ appraise 'rails7.1-graphql2.4' do
153
+ gem 'sassc-rails'
154
+ gem 'sqlite3', '~> 1.5.4'
155
+ gem 'devise_token_auth', '>= 1.2.1'
156
+ gem 'devise', '>= 4.7'
157
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-1-stable'
158
+ gem 'graphql', '>= 2.4', '< 2.5'
159
+ end
160
+
161
+ appraise 'rails7.2-graphql2.0' do
162
+ gem 'sassc-rails'
163
+ gem 'devise_token_auth', '>= 1.2.1'
164
+ gem 'devise', '>= 4.7'
165
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-2-stable'
166
+ gem 'graphql', '>= 2.0', '< 2.1'
167
+ end
168
+
169
+ appraise 'rails7.2-graphql2.1' do
170
+ gem 'sassc-rails'
171
+ gem 'devise_token_auth', '>= 1.2.1'
172
+ gem 'devise', '>= 4.7'
173
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-2-stable'
174
+ gem 'graphql', '>= 2.1', '< 2.2'
175
+ end
176
+
177
+ appraise 'rails7.2-graphql2.2' do
178
+ gem 'sassc-rails'
179
+ gem 'devise_token_auth', '>= 1.2.1'
180
+ gem 'devise', '>= 4.7'
181
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-2-stable'
182
+ gem 'graphql', '>= 2.2', '< 2.3'
183
+ end
184
+
185
+ appraise 'rails7.2-graphql2.3' do
186
+ gem 'sassc-rails'
187
+ gem 'devise_token_auth', '>= 1.2.1'
188
+ gem 'devise', '>= 4.7'
189
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-2-stable'
190
+ gem 'graphql', '>= 2.3', '< 2.4'
191
+ end
192
+
193
+ appraise 'rails7.2-graphql2.4' do
194
+ gem 'sassc-rails'
195
+ gem 'devise_token_auth', '>= 1.2.1'
196
+ gem 'devise', '>= 4.7'
197
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-2-stable'
198
+ gem 'graphql', '>= 2.4', '< 2.5'
199
+ end
200
+
201
+ appraise 'rails7.2-graphql2.5' do
202
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-2-stable'
203
+ gem 'graphql', '>= 2.5', '< 2.6'
204
+ end
205
+
206
+ appraise 'rails8.0-graphql2.2' do
207
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '8-0-stable'
208
+ gem 'graphql', '>= 2.2', '< 2.3'
209
+ end
210
+
211
+ appraise 'rails8.0-graphql2.3' do
212
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '8-0-stable'
213
+ gem 'graphql', '>= 2.3', '< 2.4'
214
+ end
215
+
216
+ appraise 'rails8.0-graphql2.4' do
217
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '8-0-stable'
218
+ gem 'graphql', '>= 2.4', '< 2.5'
219
+ end
220
+
221
+ appraise 'rails8.0-graphql2.5' do
222
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '8-0-stable'
223
+ gem 'graphql', '>= 2.5', '< 2.6'
224
+ end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## [v2.1.0](https://github.com/graphql-devise/graphql_devise/tree/v2.1.0) (2025-07-28)
4
+
5
+ [Full Changelog](https://github.com/graphql-devise/graphql_devise/compare/v2.0.0...v2.1.0)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - Add graphql 2.5 support [\#288](https://github.com/graphql-devise/graphql_devise/pull/288) ([mcelicalderon](https://github.com/mcelicalderon))
10
+ - Add Rails 8.0 support [\#287](https://github.com/graphql-devise/graphql_devise/pull/287) ([mcelicalderon](https://github.com/mcelicalderon))
11
+
12
+ ## [v2.0.0](https://github.com/graphql-devise/graphql_devise/tree/v2.0.0) (2024-12-10)
13
+
14
+ [Full Changelog](https://github.com/graphql-devise/graphql_devise/compare/v1.5.0...v2.0.0)
15
+
16
+ **Breaking changes:**
17
+
18
+ - Drop support for Rails \< 6.0 and Ruby \< 2.7 [\#276](https://github.com/graphql-devise/graphql_devise/pull/276) ([HeyNonster](https://github.com/HeyNonster))
19
+
20
+ **Implemented enhancements:**
21
+
22
+ - Add support for GraphQL 2.4 [\#281](https://github.com/graphql-devise/graphql_devise/pull/281) ([mcelicalderon](https://github.com/mcelicalderon))
23
+ - Test with Ruby 3.2 and 3.3 [\#279](https://github.com/graphql-devise/graphql_devise/pull/279) ([mcelicalderon](https://github.com/mcelicalderon))
24
+ - Add support for Rails 7.2 [\#278](https://github.com/graphql-devise/graphql_devise/pull/278) ([mcelicalderon](https://github.com/mcelicalderon))
25
+
3
26
  ## [v1.5.0](https://github.com/graphql-devise/graphql_devise/tree/v1.5.0) (2024-05-16)
4
27
 
5
28
  [Full Changelog](https://github.com/graphql-devise/graphql_devise/compare/v1.4.0...v1.5.0)
data/README.md CHANGED
@@ -460,6 +460,8 @@ Here is a list of the available mutations and queries assuming your mounted mode
460
460
  #### Introspection query
461
461
  If you are using the schema plugin, you can require authentication before doing an introspection query by modifying the `public_introspection` option of the plugin. Check the [plugin config section](#mounting-operations-into-your-own-schema) for more information.
462
462
 
463
+ If you want to completely disable introspection queries, refer to [Disable Introspection](#disable-introspection)
464
+
463
465
  #### Mutations
464
466
 
465
467
  Operation | Description | Example
@@ -569,6 +571,12 @@ information you can check [this answer here](https://github.com/lynndylanhurley/
569
571
  This gem supports the same and should be easier to handle email templates due to the fact we don't override
570
572
  standard Devise templates.
571
573
 
574
+ ### Disable Introspection
575
+ `GraphqlDevise::Schema` extends from `GraphQL::Schema`, which allows it to utilize the `disable_introspection_entry_points` method. By calling this method, you can disable introspection entry points in your schema. You can read more about it
576
+ [here](https://github.com/rmosolgo/graphql-ruby/blob/master/guides/schema/introspection.md#disabling-introspection).
577
+
578
+ If you are using the schema plugin and prefer to make introspection queries available only to authenticated users, you can do so by modifying the `public_introspection` option of the plugin. Check the [plugin config section](#mounting-operations-into-your-own-schema) for more information.
579
+
572
580
  ## Changelog
573
581
  Full list of changes in [CHANGELOG.md](CHANGELOG.md)
574
582
 
@@ -1,9 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GraphqlDevise
4
- ApplicationController = if Rails::VERSION::MAJOR >= 5
5
- Class.new(ActionController::API)
6
- else
7
- Class.new(ActionController::Base)
8
- end
4
+ ApplicationController = Class.new(ActionController::API)
9
5
  end
@@ -0,0 +1,11 @@
1
+ #!ruby
2
+
3
+ ruby_version = Gem::Version.new(RUBY_VERSION)
4
+
5
+ if ruby_version < Gem::Version.new('2.6')
6
+ system('gem install bundler -v 2.3.27')
7
+ elsif ruby_version >= Gem::Version.new('2.6') && ruby_version < Gem::Version.new('3.0')
8
+ system('gem install bundler -v 2.4.22')
9
+ else
10
+ system('gem install bundler')
11
+ end
@@ -25,11 +25,11 @@ Gem::Specification.new do |spec|
25
25
  `git ls-files -z`.split("\x0").select { |f| f.match(%r{^spec/}) }
26
26
  end
27
27
 
28
- spec.required_ruby_version = '>= 2.4.4'
28
+ spec.required_ruby_version = '>= 2.7.0'
29
29
 
30
30
  spec.add_dependency 'devise_token_auth', '>= 0.1.43', '< 2.0'
31
- spec.add_dependency 'graphql', '>= 1.8', '< 2.4'
32
- spec.add_dependency 'rails', '>= 4.2', '< 7.2'
31
+ spec.add_dependency 'graphql', '>= 1.8', '< 2.6'
32
+ spec.add_dependency 'rails', '>= 6.0', '< 8.1'
33
33
  spec.add_dependency 'zeitwerk'
34
34
 
35
35
  spec.add_development_dependency 'appraisal'
@@ -38,13 +38,13 @@ Gem::Specification.new do |spec|
38
38
  spec.add_development_dependency 'faker'
39
39
  spec.add_development_dependency 'generator_spec'
40
40
  spec.add_development_dependency 'github_changelog_generator'
41
- spec.add_development_dependency 'pry', '~> 0.12.2'
41
+ spec.add_development_dependency 'pry', '>= 0.14.2'
42
42
  spec.add_development_dependency 'pry-byebug'
43
43
  spec.add_development_dependency 'rake', '>= 12.3.3'
44
- spec.add_development_dependency 'rspec-rails', '~> 4.0'
44
+ spec.add_development_dependency 'rspec-rails'
45
45
  spec.add_development_dependency 'rubocop', '< 0.82.0'
46
46
  spec.add_development_dependency 'rubocop-performance', '< 1.6.0'
47
47
  spec.add_development_dependency 'rubocop-rails', '< 2.6.0'
48
48
  spec.add_development_dependency 'rubocop-rspec', '< 1.39.0'
49
- spec.add_development_dependency 'sqlite3', '~> 1.3'
49
+ spec.add_development_dependency 'sqlite3'
50
50
  end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GraphqlDevise
4
+ module FieldAuthTracer
5
+ def initialize(authenticate_default:, public_introspection:, unauthenticated_proc:, **_rest)
6
+ @authenticate_default = authenticate_default
7
+ @public_introspection = public_introspection
8
+ @unauthenticated_proc = unauthenticated_proc
9
+
10
+ super
11
+ end
12
+
13
+ def execute_field(field:, query:, ast_node:, arguments:, object:)
14
+ # Authenticate only root level queries
15
+ return super unless query.context.current_path.count == 1
16
+
17
+ auth_required = authenticate_option(field)
18
+
19
+ if auth_required && !(public_introspection && introspection_field?(field.name))
20
+ raise_on_missing_resource(query.context, field, auth_required)
21
+ end
22
+
23
+ super
24
+ end
25
+
26
+ private
27
+
28
+ attr_reader :public_introspection
29
+
30
+ def authenticate_option(field)
31
+ auth_required = field.try(:authenticate)
32
+
33
+ auth_required.nil? ? @authenticate_default : auth_required
34
+ end
35
+
36
+ def introspection_field?(field_name)
37
+ SchemaPlugin::INTROSPECTION_FIELDS.include?(field_name.downcase)
38
+ end
39
+
40
+ def raise_on_missing_resource(context, field, auth_required)
41
+ @unauthenticated_proc.call(field.name) if context[:current_resource].blank?
42
+
43
+ if auth_required.respond_to?(:call) && !auth_required.call(context[:current_resource])
44
+ @unauthenticated_proc.call(field.name)
45
+ end
46
+ end
47
+ end
48
+ end
@@ -52,11 +52,7 @@ module GraphqlDevise
52
52
  end
53
53
 
54
54
  def email_in_database
55
- if Devise.activerecord51?
56
- @resource.email_in_database
57
- else
58
- @resource.email_was
59
- end
55
+ @resource.email_in_database
60
56
  end
61
57
 
62
58
  def confirmation_method_params
@@ -19,7 +19,16 @@ module GraphqlDevise
19
19
  end
20
20
 
21
21
  def use(schema_definition)
22
- schema_definition.tracer(self)
22
+ if Gem::Version.new(GraphQL::VERSION) >= Gem::Version.new('2.3')
23
+ schema_definition.trace_with(
24
+ FieldAuthTracer,
25
+ authenticate_default: @authenticate_default,
26
+ public_introspection: public_introspection,
27
+ unauthenticated_proc: @unauthenticated_proc
28
+ )
29
+ else
30
+ schema_definition.tracer(self)
31
+ end
23
32
  end
24
33
 
25
34
  def trace(event, trace_data)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GraphqlDevise
4
- VERSION = '1.5.0'
4
+ VERSION = '2.1.0'
5
5
  end
@@ -27,9 +27,5 @@ module Dummy
27
27
  # Middleware like session, flash, cookies can be added back manually.
28
28
  # Skip views, helpers and assets when generating a new resource.
29
29
  # config.api_only = true
30
-
31
- if Rails::VERSION::MAJOR >= 5 && Rails::VERSION::MINOR > 1
32
- config.active_record.sqlite3.represent_boolean_as_integer = true
33
- end
34
30
  end
35
31
  end
@@ -15,13 +15,8 @@ Rails.application.configure do
15
15
  config.eager_load = ENV['EAGER_LOAD'].present?
16
16
 
17
17
  # Configure public file server for tests with Cache-Control for performance.
18
- if Rails::VERSION::MAJOR >= 5
19
- config.public_file_server.enabled = true
20
- config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
21
- else
22
- config.serve_static_files = true
23
- config.static_cache_control = 'public, max-age=3600'
24
- end
18
+ config.public_file_server.enabled = true
19
+ config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
25
20
 
26
21
  # Show full error reports and disable caching.
27
22
  config.consider_all_requests_local = true
@@ -86,6 +86,9 @@ RSpec.describe GraphqlDevise::InstallGenerator, type: :generator, skip: skip_gen
86
86
  FileUtils.cd(File.join(destination_root, '..')) do
87
87
  `rails new gqld_dummy -S -C --skip-action-mailbox --skip-action-text -T --skip-spring --skip-bundle --skip-keeps -G --skip-active-storage -J --skip-listen --skip-bootsnap`
88
88
  end
89
+ FileUtils.cd(File.join(destination_root, '../gqld_dummy')) do
90
+ `rm -f config/initializers/assets.rb`
91
+ end
89
92
  FileUtils.cd(File.join(destination_root, '../gqld_dummy')) do
90
93
  `rails generate graphql:install`
91
94
  end
data/spec/rails_helper.rb CHANGED
@@ -29,8 +29,6 @@ rescue ActiveRecord::PendingMigrationError => e
29
29
  exit 1
30
30
  end
31
31
  RSpec.configure do |config|
32
- config.fixture_path = "#{GQL_DEVISE_ROOT}/spec/fixtures"
33
-
34
32
  config.use_transactional_fixtures = true
35
33
 
36
34
  config.infer_spec_type_from_file_location!
@@ -33,17 +33,6 @@ RSpec.describe GraphqlDevise::GraphqlController do
33
33
  end
34
34
  end
35
35
 
36
- context 'when variables are not a string or hash' do
37
- let(:variables) { 1 }
38
- let(:query) { "mutation($email: String!) { userLogin(email: $email, password: \"#{password}\") { user { email name signInCount } } }" }
39
-
40
- it 'raises an error' do
41
- expect do
42
- post_request('/api/v1/graphql_auth')
43
- end.to raise_error(ArgumentError)
44
- end
45
- end
46
-
47
36
  context 'when multiplexing queries' do
48
37
  let(:params) do
49
38
  {
@@ -74,10 +63,6 @@ RSpec.describe GraphqlDevise::GraphqlController do
74
63
  end
75
64
 
76
65
  def post_request(path)
77
- if Rails::VERSION::MAJOR >= 5
78
- post(path, params: params)
79
- else
80
- post(path, params)
81
- end
66
+ post(path, params: params)
82
67
  end
83
68
  end
@@ -128,7 +128,7 @@ RSpec.describe 'Registration process' do
128
128
 
129
129
  it 'skips the register mutation' do
130
130
  expect(json_response[:errors]).to contain_exactly(
131
- hash_including(message: "Field 'adminRegister' doesn't exist on type 'Mutation'")
131
+ hash_including(message: a_string_including("Field 'adminRegister' doesn't exist on type 'Mutation'"))
132
132
  )
133
133
  end
134
134
  end
@@ -116,7 +116,13 @@ RSpec.describe 'Login Requests' do
116
116
 
117
117
  context 'and introspection is set to require auth' do
118
118
  before do
119
- allow_any_instance_of(GraphqlDevise::SchemaPlugin).to(
119
+ target_class = if Gem::Version.new(GraphQL::VERSION) >= Gem::Version.new('2.3')
120
+ GraphqlDevise::FieldAuthTracer
121
+ else
122
+ GraphqlDevise::SchemaPlugin
123
+ end
124
+
125
+ allow_any_instance_of(target_class).to(
120
126
  receive(:public_introspection).and_return(false)
121
127
  )
122
128
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- if ENV['CI'] && !ENV['SKIP_COVERALLS'] && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.5')
3
+ if ENV['CI'] && !ENV['SKIP_COVERALLS']
4
4
  require 'simplecov'
5
5
  require 'coveralls'
6
6
 
@@ -4,11 +4,7 @@ RSpec.shared_context 'with graphql query request' do
4
4
  let(:headers) { {} }
5
5
  let(:variables) { {} }
6
6
  let(:graphql_params) do
7
- if Rails::VERSION::MAJOR >= 5
8
- { params: { query: query, variables: variables }, headers: headers }
9
- else
10
- [{ query: query, variables: variables }, headers]
11
- end
7
+ { params: { query: query, variables: variables }, headers: headers }
12
8
  end
13
9
 
14
10
  def post_request(path = '/api/v1/graphql_auth')
@@ -20,10 +16,6 @@ RSpec.shared_context 'with graphql query request' do
20
16
  end
21
17
 
22
18
  def send_request(path, method)
23
- if Rails::VERSION::MAJOR >= 5
24
- public_send(method, path, **graphql_params)
25
- else
26
- public_send(method, path, *graphql_params)
27
- end
19
+ public_send(method, path, **graphql_params)
28
20
  end
29
21
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql_devise
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Celi
8
8
  - David Revelo
9
- autorequire:
10
9
  bindir: exe
11
10
  cert_chain: []
12
- date: 2024-05-16 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: devise_token_auth
@@ -40,7 +39,7 @@ dependencies:
40
39
  version: '1.8'
41
40
  - - "<"
42
41
  - !ruby/object:Gem::Version
43
- version: '2.4'
42
+ version: '2.6'
44
43
  type: :runtime
45
44
  prerelease: false
46
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -50,27 +49,27 @@ dependencies:
50
49
  version: '1.8'
51
50
  - - "<"
52
51
  - !ruby/object:Gem::Version
53
- version: '2.4'
52
+ version: '2.6'
54
53
  - !ruby/object:Gem::Dependency
55
54
  name: rails
56
55
  requirement: !ruby/object:Gem::Requirement
57
56
  requirements:
58
57
  - - ">="
59
58
  - !ruby/object:Gem::Version
60
- version: '4.2'
59
+ version: '6.0'
61
60
  - - "<"
62
61
  - !ruby/object:Gem::Version
63
- version: '7.2'
62
+ version: '8.1'
64
63
  type: :runtime
65
64
  prerelease: false
66
65
  version_requirements: !ruby/object:Gem::Requirement
67
66
  requirements:
68
67
  - - ">="
69
68
  - !ruby/object:Gem::Version
70
- version: '4.2'
69
+ version: '6.0'
71
70
  - - "<"
72
71
  - !ruby/object:Gem::Version
73
- version: '7.2'
72
+ version: '8.1'
74
73
  - !ruby/object:Gem::Dependency
75
74
  name: zeitwerk
76
75
  requirement: !ruby/object:Gem::Requirement
@@ -173,16 +172,16 @@ dependencies:
173
172
  name: pry
174
173
  requirement: !ruby/object:Gem::Requirement
175
174
  requirements:
176
- - - "~>"
175
+ - - ">="
177
176
  - !ruby/object:Gem::Version
178
- version: 0.12.2
177
+ version: 0.14.2
179
178
  type: :development
180
179
  prerelease: false
181
180
  version_requirements: !ruby/object:Gem::Requirement
182
181
  requirements:
183
- - - "~>"
182
+ - - ">="
184
183
  - !ruby/object:Gem::Version
185
- version: 0.12.2
184
+ version: 0.14.2
186
185
  - !ruby/object:Gem::Dependency
187
186
  name: pry-byebug
188
187
  requirement: !ruby/object:Gem::Requirement
@@ -215,16 +214,16 @@ dependencies:
215
214
  name: rspec-rails
216
215
  requirement: !ruby/object:Gem::Requirement
217
216
  requirements:
218
- - - "~>"
217
+ - - ">="
219
218
  - !ruby/object:Gem::Version
220
- version: '4.0'
219
+ version: '0'
221
220
  type: :development
222
221
  prerelease: false
223
222
  version_requirements: !ruby/object:Gem::Requirement
224
223
  requirements:
225
- - - "~>"
224
+ - - ">="
226
225
  - !ruby/object:Gem::Version
227
- version: '4.0'
226
+ version: '0'
228
227
  - !ruby/object:Gem::Dependency
229
228
  name: rubocop
230
229
  requirement: !ruby/object:Gem::Requirement
@@ -285,16 +284,16 @@ dependencies:
285
284
  name: sqlite3
286
285
  requirement: !ruby/object:Gem::Requirement
287
286
  requirements:
288
- - - "~>"
287
+ - - ">="
289
288
  - !ruby/object:Gem::Version
290
- version: '1.3'
289
+ version: '0'
291
290
  type: :development
292
291
  prerelease: false
293
292
  version_requirements: !ruby/object:Gem::Requirement
294
293
  requirements:
295
- - - "~>"
294
+ - - ">="
296
295
  - !ruby/object:Gem::Version
297
- version: '1.3'
296
+ version: '0'
298
297
  description: GraphQL queries and mutations on top of devise_token_auth
299
298
  email:
300
299
  - mcelicalderon@gmail.com
@@ -323,6 +322,7 @@ files:
323
322
  - app/views/graphql_devise/mailer/confirmation_instructions.html.erb
324
323
  - app/views/graphql_devise/mailer/reset_password_instructions.html.erb
325
324
  - bin/console
325
+ - bin/install_bundler.rb
326
326
  - bin/rails
327
327
  - bin/setup
328
328
  - config/locales/en.yml
@@ -346,6 +346,7 @@ files:
346
346
  - lib/graphql_devise/errors/error_codes.rb
347
347
  - lib/graphql_devise/errors/execution_error.rb
348
348
  - lib/graphql_devise/errors/user_error.rb
349
+ - lib/graphql_devise/field_auth_tracer.rb
349
350
  - lib/graphql_devise/model/with_email_updater.rb
350
351
  - lib/graphql_devise/mount_method/operation_preparer.rb
351
352
  - lib/graphql_devise/mount_method/operation_preparers/custom_operation_preparer.rb
@@ -514,7 +515,6 @@ licenses:
514
515
  metadata:
515
516
  homepage_uri: https://github.com/graphql-devise/graphql_devise
516
517
  source_code_uri: https://github.com/graphql-devise/graphql_devise
517
- post_install_message:
518
518
  rdoc_options: []
519
519
  require_paths:
520
520
  - lib
@@ -522,15 +522,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
522
522
  requirements:
523
523
  - - ">="
524
524
  - !ruby/object:Gem::Version
525
- version: 2.4.4
525
+ version: 2.7.0
526
526
  required_rubygems_version: !ruby/object:Gem::Requirement
527
527
  requirements:
528
528
  - - ">="
529
529
  - !ruby/object:Gem::Version
530
530
  version: '0'
531
531
  requirements: []
532
- rubygems_version: 3.1.6
533
- signing_key:
532
+ rubygems_version: 3.6.7
534
533
  specification_version: 4
535
534
  summary: GraphQL queries and mutations on top of devise_token_auth
536
535
  test_files: