oauth2 2.0.14 → 2.0.15

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: 13b8d56f68c6dae03cbb3313aecb30978d9a117e7c91e309348719457311aed7
4
- data.tar.gz: 025577c1281bccd732da31fed3afe3441df27756d034795fad92eca8fd145d74
3
+ metadata.gz: 340909e9eea17737a90fc8c0604368bb883d214940dca855b37d029553650a6a
4
+ data.tar.gz: 9c2892b5a9c5a80bfcc71708144a66286c22a179a13dcc5e3acdc571bac89710
5
5
  SHA512:
6
- metadata.gz: 7613aac3b16430f7c1631f951ab1781fff833712b5e919b6a98208019e6d9fd441693b7632d618de373cadc9b5a540213f57f37efc3153d65a1e076062065899
7
- data.tar.gz: 8dc846f69cb0f8ad230759ab53a0ee6f5a68a1dd11f0948c7de3a6ffe858b15fb4d46f5120329c6398883c751d79caba391e37c29a7c067f7864e0fa9ae6f323
6
+ metadata.gz: bef9daa3bfb90c12b8b13a2b812fc7791aaab6fe88ffdb87d93924d0908489bf7bbe36db47b1be7c6033cddb8c78b82766c4df6ae4871043c0a0fd96be9c1150
7
+ data.tar.gz: 9fe20ddb2b737be25a8322f762f6f15a4894333c56b4a27c58328af885abbdf71723a305bb94b6aeda8d744640373d9ef6f2ab09dbb6a6100e2b653095c73ca4
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -24,6 +24,32 @@ Please file a bug if you notice a violation of semantic versioning.
24
24
  ### Fixed
25
25
  ### Security
26
26
 
27
+ ## [2.0.15] - 2025-09-08
28
+ - TAG: [v2.0.15][2.0.15t]
29
+ - COVERAGE: 100.00% -- 519/519 lines in 14 files
30
+ - BRANCH COVERAGE: 100.00% -- 174/174 branches in 14 files
31
+ - 90.48% documented
32
+ ### Added
33
+ - [gh!671][gh!671] - Complete documentation example for Instagram by @pboling
34
+ - .env.local.example for contributor happiness
35
+ - note lack of builds for JRuby 9.2, 9.3 & Truffleruby 22.3, 23.0
36
+ - [actions/runner - issues/2347][GHA-continue-on-error-ui]
37
+ - [community/discussions/15452][GHA-allow-failure]
38
+ - [gh!670][gh!670] - AccessToken: verb-dependent token transmission mode by @mrj
39
+ - e.g., Instagram GET=:query, POST/DELETE=:header
40
+ ### Changed
41
+ - [gh!669][gh!669] - Upgrade to kettle-dev v1.1.9 by @pboling
42
+ ### Fixed
43
+ - Remove accidentally duplicated lines, and fix typos in CHANGELOG.md
44
+ - point badge to the correct workflow for Ruby 2.3 (caboose.yml)
45
+ ### Security
46
+
47
+ [gh!669]: https://github.com/ruby-oauth/oauth2/pull/669
48
+ [gh!670]: https://github.com/ruby-oauth/oauth2/pull/670
49
+ [gh!671]: https://github.com/ruby-oauth/oauth2/pull/671
50
+ [GHA-continue-on-error-ui]: https://github.com/actions/runner/issues/2347
51
+ [GHA-allow-failure]: https://github.com/orgs/community/discussions/15452
52
+
27
53
  ## [2.0.14] - 2025-08-31
28
54
  - TAG: [v2.0.14][2.0.14t]
29
55
  - COVERAGE: 100.00% -- 519/519 lines in 14 files
@@ -31,25 +57,25 @@ Please file a bug if you notice a violation of semantic versioning.
31
57
  - 90.48% documented
32
58
  ### Added
33
59
  - improved documentation by @pboling
34
- - [gh665][gh665] - Document Mutual TLS (mTLS) usage with example in README (connection_opts.ssl client_cert/client_key and auth_scheme: :tls_client_auth) by @pboling
35
- - [gh666][gh666] - Document usage of flat query params using Faraday::FlatParamsEncoder, with example URI, in README by @pboling
60
+ - [gh!665][gh!665] - Document Mutual TLS (mTLS) usage with example in README (connection_opts.ssl client_cert/client_key and auth_scheme: :tls_client_auth) by @pboling
61
+ - [gh!666][gh!666] - Document usage of flat query params using Faraday::FlatParamsEncoder, with example URI, in README by @pboling
36
62
  - Spec: verify flat params are preserved with Faraday::FlatParamsEncoder (skips on Faraday without FlatParamsEncoder)
37
- - [gh662][gh662] - documentation notes in code comments and README highlighting OAuth 2.1 differences, with references, such as: by @pboling
63
+ - [gh!662][gh!662] - documentation notes in code comments and README highlighting OAuth 2.1 differences, with references, by @pboling
38
64
  - PKCE required for auth code,
39
65
  - exact redirect URI match,
40
66
  - implicit/password grants omitted,
41
67
  - avoid bearer tokens in query,
42
68
  - refresh token guidance for public clients,
43
- - simplified client definitions)
44
- - [gh663][gh663] - document how to implement an OIDC client with this gem in OIDC.md by @pboling
69
+ - simplified client definitions
70
+ - [gh!663][gh!663] - document how to implement an OIDC client with this gem in OIDC.md by @pboling
45
71
  - also, list libraries built on top of the oauth2 gem that implement OIDC
46
- - [gh664][gh664] - README: Add example for JHipster UAA (Spring Cloud) password grant, converted from Postman/Net::HTTP by @pboling
72
+ - [gh!664][gh!664] - README: Add example for JHipster UAA (Spring Cloud) password grant, converted from Postman/Net::HTTP by @pboling
47
73
 
48
- [gh662]: https://github.com/ruby-oauth/oauth2/pull/662
49
- [gh663]: https://github.com/ruby-oauth/oauth2/pull/663
50
- [gh664]: https://github.com/ruby-oauth/oauth2/pull/664
51
- [gh665]: https://github.com/ruby-oauth/oauth2/pull/665
52
- [gh666]: https://github.com/ruby-oauth/oauth2/pull/666
74
+ [gh!662]: https://github.com/ruby-oauth/oauth2/pull/662
75
+ [gh!663]: https://github.com/ruby-oauth/oauth2/pull/663
76
+ [gh!664]: https://github.com/ruby-oauth/oauth2/pull/664
77
+ [gh!665]: https://github.com/ruby-oauth/oauth2/pull/665
78
+ [gh!666]: https://github.com/ruby-oauth/oauth2/pull/666
53
79
 
54
80
  ## [2.0.13] - 2025-08-30
55
81
  - TAG: [v2.0.13][2.0.13t]
@@ -57,23 +83,23 @@ Please file a bug if you notice a violation of semantic versioning.
57
83
  - BRANCH COVERAGE: 100.00% -- 174/174 branches in 14 files
58
84
  - 90.48% documented
59
85
  ### Added
60
- - [gh656][gh656] - Support revocation with URL-encoded parameters
61
- - [gh660][gh660] - Inline yard documentation by @pboling
62
- - [gh660][gh660] - Complete RBS types documentation by @pboling
63
- - [gh660][gh660]- (more) Comprehensive documentation / examples by @pboling
64
- - [gh657][gh657] - Updated documentation for org-rename by @pboling
86
+ - [gh!656][gh!656] - Support revocation with URL-encoded parameters
87
+ - [gh!660][gh!660] - Inline yard documentation by @pboling
88
+ - [gh!660][gh!660] - Complete RBS types documentation by @pboling
89
+ - [gh!660][gh!660]- (more) Comprehensive documentation / examples by @pboling
90
+ - [gh!657][gh!657] - Updated documentation for org-rename by @pboling
65
91
  - More funding links by @Aboling0
66
92
  - Documentation: Added docs/OIDC.md with OIDC 1.0 overview, example, and references
67
93
  ### Changed
68
94
  - Upgrade Code of Conduct to Contributor Covenant 2.1 by @pboling
69
- - [gh660][gh660] - Shrink post-install message by 4 lines by @pboling
95
+ - [gh!660][gh!660] - Shrink post-install message by 4 lines by @pboling
70
96
  ### Fixed
71
- - [gh660][gh660] - Links in README (including link to HEAD documentation) by @pboling
97
+ - [gh!660][gh!660] - Links in README (including link to HEAD documentation) by @pboling
72
98
  ### Security
73
99
 
74
- [gh660]: https://github.com/ruby-oauth/oauth2/pull/660
75
- [gh657]: https://github.com/ruby-oauth/oauth2/pull/657
76
- [gh656]: https://github.com/ruby-oauth/oauth2/pull/656
100
+ [gh!660]: https://github.com/ruby-oauth/oauth2/pull/660
101
+ [gh!657]: https://github.com/ruby-oauth/oauth2/pull/657
102
+ [gh!656]: https://github.com/ruby-oauth/oauth2/pull/656
77
103
 
78
104
  ## [2.0.12] - 2025-05-31
79
105
  - TAG: [v2.0.12][2.0.12t]
@@ -81,7 +107,7 @@ Please file a bug if you notice a violation of semantic versioning.
81
107
  - Branch Coverage: 100.0% (174 / 174)
82
108
  - 80.00% documented
83
109
  ### Added
84
- - [gh652][gh652] - Support IETF rfc7515 JSON Web Signature - JWS by @mridang
110
+ - [gh!652][gh!652] - Support IETF rfc7515 JSON Web Signature - JWS by @mridang
85
111
  - Support JWT `kid` for key discovery and management
86
112
  - More Documentation by @pboling
87
113
  - Documented Serialization Extensions
@@ -89,14 +115,11 @@ Please file a bug if you notice a violation of semantic versioning.
89
115
  - Documentation site @ https://oauth2.galtzo.com now complete
90
116
  ### Changed
91
117
  - Updates to gemspec (email, funding url, post install message)
92
- ### Deprecated
93
- ### Removed
94
118
  ### Fixed
95
119
  - Documentation Typos by @pboling
96
- ### Security
97
120
 
98
- [gh652]: https://github.com/oauth-xx/oauth2/pull/652
99
- [gh652]: https://github.com/ruby-oauth/oauth2/pull/652
121
+
122
+ [gh!652]: https://github.com/ruby-oauth/oauth2/pull/652
100
123
 
101
124
  ## [2.0.11] - 2025-05-23
102
125
  - TAG: [v2.0.11][2.0.11t]
@@ -104,11 +127,9 @@ Please file a bug if you notice a violation of semantic versioning.
104
127
  - BRANCH COVERAGE: 100.00% -- 172/172 branches in 14 files
105
128
  - 80.00% documented
106
129
  ### Added
107
- - [gh651](https://github.com/oauth-xx/oauth2/pull/651) - `:snaky_hash_klass` option (@pboling)
108
- - [gh651](https://github.com/ruby-oauth/oauth2/pull/651) - `:snaky_hash_klass` option (@pboling)
130
+ - [gh!651](https://github.com/ruby-oauth/oauth2/pull/651) - `:snaky_hash_klass` option (@pboling)
109
131
  - More documentation
110
132
  - Codeberg as ethical mirror (@pboling)
111
- - https://codeberg.org/oauth-xx/oauth2
112
133
  - https://codeberg.org/ruby-oauth/oauth2
113
134
  - Don't check for cert if SKIP_GEM_SIGNING is set (@pboling)
114
135
  - All runtime deps, including oauth-xx sibling gems, are now tested against HEAD (@pboling)
@@ -116,19 +137,15 @@ Please file a bug if you notice a violation of semantic versioning.
116
137
  - YARD config, GFM compatible with relative file links (@pboling)
117
138
  - Documentation site on GitHub Pages (@pboling)
118
139
  - [oauth2.galtzo.com](https://oauth2.galtzo.com)
119
- - [!649](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/649) - Test compatibility with all key minor versions of Hashie v0, v1, v2, v3, v4, v5, HEAD (@pboling)
120
- - [gh651](https://github.com/oauth-xx/oauth2/pull/651) - Mock OAuth2 server for testing (@pboling)
121
140
  - [!649](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/649) - Test compatibility with all key minor versions of Hashie v0, v1, v2, v3, v4, v5, HEAD (@pboling)
122
- - [gh651](https://github.com/ruby-oauth/oauth2/pull/651) - Mock OAuth2 server for testing (@pboling)
141
+ - [gh!651](https://github.com/ruby-oauth/oauth2/pull/651) - Mock OAuth2 server for testing (@pboling)
123
142
  - https://github.com/navikt/mock-oauth2-server
124
143
  ### Changed
125
- - [gh651](https://github.com/oauth-xx/oauth2/pull/651) - Upgraded to snaky_hash v2.0.3 (@pboling)
126
- - [gh651](https://github.com/ruby-oauth/oauth2/pull/651) - Upgraded to snaky_hash v2.0.3 (@pboling)
144
+ - [gh!651](https://github.com/ruby-oauth/oauth2/pull/651) - Upgraded to snaky_hash v2.0.3 (@pboling)
127
145
  - Provides solution for serialization issues
128
146
  - Updated `spec.homepage_uri` in gemspec to GitHub Pages YARD documentation site (@pboling)
129
147
  ### Fixed
130
- - [gh650](https://github.com/oauth-xx/oauth2/pull/650) - Regression in return type of `OAuth2::Response#parsed` (@pboling)
131
- - [gh650](https://github.com/ruby-oauth/oauth2/pull/650) - Regression in return type of `OAuth2::Response#parsed` (@pboling)
148
+ - [gh!650](https://github.com/ruby-oauth/oauth2/pull/650) - Regression in return type of `OAuth2::Response#parsed` (@pboling)
132
149
  - Incorrect documentation related to silencing warnings (@pboling)
133
150
 
134
151
  ## [2.0.10] - 2025-05-17
@@ -137,10 +154,6 @@ Please file a bug if you notice a violation of semantic versioning.
137
154
  - BRANCH COVERAGE: 100.00% -- 170/170 branches in 14 files
138
155
  - 79.05% documented
139
156
  ### Added
140
- - [gh!632](https://github.com/oauth-xx/oauth2/pull/632) - Added `funding.yml` (@Aboling0)
141
- - [!635](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/635) - Added `.gitlab-ci.yml` (@jessieay)
142
- - [#638](https://gitlab.com/oauth-xx/oauth2/-/issues/638) - Documentation of support for **ILO Fundamental Principles of Rights at Work** (@pboling)
143
- - [!642](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/642) - 20-year certificate for signing gem releases, expires 2045-04-29 (@pboling)
144
157
  - [gh!632](https://github.com/ruby-oauth/oauth2/pull/632) - Added `funding.yml` (@Aboling0)
145
158
  - [!635](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/635) - Added `.gitlab-ci.yml` (@jessieay)
146
159
  - [#638](https://gitlab.com/ruby-oauth/oauth2/-/issues/638) - Documentation of support for **ILO Fundamental Principles of Rights at Work** (@pboling)
@@ -150,47 +163,26 @@ Please file a bug if you notice a violation of semantic versioning.
150
163
  - news_uri
151
164
  - mailing_list_uri
152
165
  - SHA256 and SHA512 Checksums for release
153
- - [!643](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/643) - Add `token_name` option (@pboling)
154
166
  - [!643](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/643) - Add `token_name` option (@pboling)
155
167
  - Specify the parameter name that identifies the access token
156
- - [!645](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/645) - Add `OAuth2::OAUTH_DEBUG` constant, based on `ENV["OAUTH_DEBUG"] (@pboling)
157
- - [!646](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/646) - Add `OAuth2.config.silence_extra_tokens_warning`, default: false (@pboling)
158
- - [!647](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/647) - Add IETF RFC 7009 Token Revocation compliant (@pboling)
159
168
  - [!645](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/645) - Add `OAuth2::OAUTH_DEBUG` constant, based on `ENV["OAUTH_DEBUG"] (@pboling)
160
169
  - [!646](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/646) - Add `OAuth2.config.silence_extra_tokens_warning`, default: false (@pboling)
161
170
  - [!647](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/647) - Add IETF RFC 7009 Token Revocation compliant (@pboling)
162
171
  - `OAuth2::Client#revoke_token`
163
172
  - `OAuth2::AccessToken#revoke`
164
173
  - See: https://datatracker.ietf.org/doc/html/rfc7009
165
- - [gh!644](https://github.com/oauth-xx/oauth2/pull/644), [gh!645](https://github.com/oauth-xx/oauth2/pull/645) - Added CITATION.cff (@Aboling0)
166
- - [!648](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/648) - Improved documentation (@pboling)
167
174
  - [gh!644](https://github.com/ruby-oauth/oauth2/pull/644), [gh!645](https://github.com/ruby-oauth/oauth2/pull/645) - Added CITATION.cff (@Aboling0)
168
175
  - [!648](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/648) - Improved documentation (@pboling)
169
176
  ### Changed
170
177
  - Default value of `OAuth2.config.silence_extra_tokens_warning` was `false`, now `true` (@pboling)
171
178
  - Gem releases are now cryptographically signed, with a 20-year cert (@pboling)
172
179
  - Allow linux distros to build release without signing, as their package managers sign independently
173
- - [!647](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/647) - `OAuth2::AccessToken#refresh` now supports block param pass through (@pboling)
174
- - [!647](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/647) - `OAuth2.config` is no longer writable (@pboling)
175
- - [!647](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/647) - Errors raised by `OAuth2::AccessToken` are now always `OAuth2::Error` and have better metadata (@pboling)
176
180
  - [!647](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/647) - `OAuth2::AccessToken#refresh` now supports block param pass through (@pboling)
177
181
  - [!647](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/647) - `OAuth2.config` is no longer writable (@pboling)
178
182
  - [!647](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/647) - Errors raised by `OAuth2::AccessToken` are now always `OAuth2::Error` and have better metadata (@pboling)
179
183
  ### Fixed
180
- - [#95](https://gitlab.com/oauth-xx/oauth2/-/issues/95) - restoring an access token via `AccessToken#from_hash` (@pboling)
181
184
  - [#95](https://gitlab.com/ruby-oauth/oauth2/-/issues/95) - restoring an access token via `AccessToken#from_hash` (@pboling)
182
185
  - This was a 13 year old bug report. 😘
183
- - [#619](https://gitlab.com/oauth-xx/oauth2/-/issues/619) - Internal options (like `snaky`, `raise_errors`, and `parse`) are no longer included in request (@pboling)
184
- - [!633](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/633) - Spaces will now be encoded as `%20` instead of `+` (@nov.matake)
185
- - [!634](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/634) - `CHANGELOG.md` documentation fix (@skuwa229)
186
- - [!638](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/638) - fix `expired?` when `expires_in` is `0` (@disep)
187
- - [!639](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/639) - Only instantiate `OAuth2::Error` if `raise_errors` option is `true` (@glytch2)
188
- - [#639](https://gitlab.com/oauth-xx/oauth2/-/issues/639) - `AccessToken#to_hash` is now serializable, just a regular Hash (@pboling)
189
- - [!640](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/640) - `README.md` documentation fix (@martinezcoder)
190
- - [!641](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/641) - Do not include sensitive information in the `inspect` (@manuelvanrijn)
191
- - [#641](https://gitlab.com/oauth-xx/oauth2/-/issues/641) - Made default JSON response parser more resilient (@pboling)
192
- - [#645](https://gitlab.com/oauth-xx/oauth2/-/issues/645) - Response no longer becomes a snaky hash (@pboling)
193
- - [gh!646](https://github.com/oauth-xx/oauth2/pull/646) - Change `require` to `require_relative` (improve performance) (@Aboling0)
194
186
  - [#619](https://gitlab.com/ruby-oauth/oauth2/-/issues/619) - Internal options (like `snaky`, `raise_errors`, and `parse`) are no longer included in request (@pboling)
195
187
  - [!633](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/633) - Spaces will now be encoded as `%20` instead of `+` (@nov.matake)
196
188
  - [!634](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/634) - `CHANGELOG.md` documentation fix (@skuwa229)
@@ -214,35 +206,27 @@ Please file a bug if you notice a violation of semantic versioning.
214
206
  ## [2.0.8] - 2022-09-01
215
207
  - TAG: [v2.0.8][2.0.8t]
216
208
  ### Changed
217
- - [!630](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/630) - Extract snaky_hash to external dependency (@pboling)
218
209
  - [!630](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/630) - Extract snaky_hash to external dependency (@pboling)
219
210
  ### Added
220
- - [!631](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/631) - New global configuration option OAuth2.config.silence_extra_tokens_warning (default: false) fixes [#628](https://gitlab.com/oauth-xx/oauth2/-/issues/628)
221
211
  - [!631](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/631) - New global configuration option OAuth2.config.silence_extra_tokens_warning (default: false) fixes [#628](https://gitlab.com/ruby-oauth/oauth2/-/issues/628)
222
212
 
223
213
  ## [2.0.7] - 2022-08-22
224
214
  - TAG: [v2.0.7][2.0.7t]
225
215
  ### Added
226
- - [!629](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/629) - Allow POST of JSON to get token (@pboling, @terracatta)
227
216
  - [!629](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/629) - Allow POST of JSON to get token (@pboling, @terracatta)
228
217
  ### Fixed
229
- - [!626](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/626) - Fixes a regression in 2.0.6. Will now prefer the key order from the lookup, not the hash keys (@rickselby)
230
218
  - [!626](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/626) - Fixes a regression in 2.0.6. Will now prefer the key order from the lookup, not the hash keys (@rickselby)
231
219
  - Note: This fixes compatibility with `omniauth-oauth2` and AWS
232
- - [!625](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/625) - Fixes the printed version in the post install message (@hasghari)
233
220
  - [!625](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/625) - Fixes the printed version in the post install message (@hasghari)
234
221
 
235
222
  ## [2.0.6] - 2022-07-13
236
223
  - TAG: [v2.0.6][2.0.6t]
237
224
  ### Fixed
238
- - [!624](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/624) - Fixes a [regression](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/623) in v2.0.5, where an error would be raised in refresh_token flows due to (legitimate) lack of access_token (@pboling)
239
225
  - [!624](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/624) - Fixes a [regression](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/623) in v2.0.5, where an error would be raised in refresh_token flows due to (legitimate) lack of access_token (@pboling)
240
226
 
241
227
  ## [2.0.5] - 2022-07-07
242
228
  - TAG: [v2.0.5][2.0.5t]
243
229
  ### Fixed
244
- - [!620](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/620) - Documentation improvements, to help with upgrading (@swanson)
245
- - [!621](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/621) - Fixed [#528](https://gitlab.com/oauth-xx/oauth2/-/issues/528) and [#619](https://gitlab.com/oauth-xx/oauth2/-/issues/619) (@pboling)
246
230
  - [!620](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/620) - Documentation improvements, to help with upgrading (@swanson)
247
231
  - [!621](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/621) - Fixed [#528](https://gitlab.com/ruby-oauth/oauth2/-/issues/528) and [#619](https://gitlab.com/ruby-oauth/oauth2/-/issues/619) (@pboling)
248
232
  - All data in responses is now returned, with the access token removed and set as `token`
@@ -254,28 +238,20 @@ Please file a bug if you notice a violation of semantic versioning.
254
238
  ## [2.0.4] - 2022-07-01
255
239
  - TAG: [v2.0.4][2.0.4t]
256
240
  ### Fixed
257
- - [!618](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/618) - In some scenarios the `snaky` option default value was not applied (@pboling)
258
241
  - [!618](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/618) - In some scenarios the `snaky` option default value was not applied (@pboling)
259
242
 
260
243
  ## [2.0.3] - 2022-06-28
261
244
  - TAG: [v2.0.3][2.0.3t]
262
245
  ### Added
263
- - [!611](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/611) - Proper deprecation warnings for `extract_access_token` argument (@pboling)
264
- - [!612](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/612) - Add `snaky: false` option to skip conversion to `OAuth2::SnakyHash` (default: true) (@pboling)
265
246
  - [!611](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/611) - Proper deprecation warnings for `extract_access_token` argument (@pboling)
266
247
  - [!612](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/612) - Add `snaky: false` option to skip conversion to `OAuth2::SnakyHash` (default: true) (@pboling)
267
248
  ### Fixed
268
- - [!608](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/608) - Wrap `Faraday::TimeoutError` in `OAuth2::TimeoutError` (@nbibler)
269
- - [!615](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/615) - Fix support for requests with blocks, see `Faraday::Connection#run_request` (@pboling)
270
249
  - [!608](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/608) - Wrap `Faraday::TimeoutError` in `OAuth2::TimeoutError` (@nbibler)
271
250
  - [!615](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/615) - Fix support for requests with blocks, see `Faraday::Connection#run_request` (@pboling)
272
251
 
273
252
  ## [2.0.2] - 2022-06-24
274
253
  - TAG: [v2.0.2][2.0.2t]
275
254
  ### Fixed
276
- - [!604](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/604) - Wrap `Faraday::TimeoutError` in `OAuth2::TimeoutError` (@stanhu)
277
- - [!606](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/606) - Ruby 2.7 deprecation warning fix: Move `access_token_class` parameter into `Client` constructor (@stanhu)
278
- - [!607](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/607) - CHANGELOG correction, reference to `OAuth2::ConnectionError` (@zavan)
279
255
  - [!604](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/604) - Wrap `Faraday::TimeoutError` in `OAuth2::TimeoutError` (@stanhu)
280
256
  - [!606](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/606) - Ruby 2.7 deprecation warning fix: Move `access_token_class` parameter into `Client` constructor (@stanhu)
281
257
  - [!607](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/607) - CHANGELOG correction, reference to `OAuth2::ConnectionError` (@zavan)
@@ -289,32 +265,6 @@ Please file a bug if you notice a violation of semantic versioning.
289
265
  ## [2.0.0] - 2022-06-21
290
266
  - TAG: [v2.0.0][2.0.0t]
291
267
  ### Added
292
- - [!158](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/158), [!344](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/344) - Optionally pass raw response to parsers (@niels)
293
- - [!190](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/190), [!332](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/332), [!334](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/334), [!335](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/335), [!360](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/360), [!426](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/426), [!427](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/427), [!461](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/461) - Documentation (@josephpage, @pboling, @meganemura, @joshRpowell, @elliotcm)
294
- - [!220](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/220) - Support IETF rfc7523 JWT Bearer Tokens Draft 04+ (@jhmoore)
295
- - [!298](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/298) - Set the response object on the access token on Client#get_token for debugging (@cpetschnig)
296
- - [!305](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/305) - Option: `OAuth2::Client#get_token` - `:access_token_class` (`AccessToken`); user specified class to use for all calls to `get_token` (@styd)
297
- - [!346](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/571) - Modern gem structure (@pboling)
298
- - [!351](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/351) - Support Jruby 9k (@pboling)
299
- - [!362](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/362) - Support SemVer release version scheme (@pboling)
300
- - [!363](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/363) - New method `OAuth2::AccessToken#refresh!` same as old `refresh`, with backwards compatibility alias (@pboling)
301
- - [!364](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/364) - Support `application/hal+json` format (@pboling)
302
- - [!365](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/365) - Support `application/vnd.collection+json` format (@pboling)
303
- - [!376](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/376) - _Documentation_: Example / Test for Google 2-legged JWT (@jhmoore)
304
- - [!381](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/381) - Spec for extra header params on client credentials (@nikz)
305
- - [!394](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/394) - Option: `OAuth2::AccessToken#initialize` - `:expires_latency` (`nil`); number of seconds by which AccessToken validity will be reduced to offset latency (@klippx)
306
- - [!412](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/412) - Support `application/vdn.api+json` format (from jsonapi.org) (@david-christensen)
307
- - [!413](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/413) - _Documentation_: License scan and report (@meganemura)
308
- - [!442](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/442) - Option: `OAuth2::Client#initialize` - `:logger` (`::Logger.new($stdout)`) logger to use when OAUTH_DEBUG is enabled (for parity with `1-4-stable` branch) (@rthbound)
309
- - [!494](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/494) - Support [OIDC 1.0 Private Key JWT](https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication); based on the OAuth JWT assertion specification [(RFC 7523)](https://tools.ietf.org/html/rfc7523) (@SteveyblamWork)
310
- - [!549](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/549) - Wrap `Faraday::ConnectionFailed` in `OAuth2::ConnectionError` (@nikkypx)
311
- - [!550](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/550) - Raise error if location header not present when redirecting (@stanhu)
312
- - [!552](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/552) - Add missing `version.rb` require (@ahorek)
313
- - [!553](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/553) - Support `application/problem+json` format (@janz93)
314
- - [!560](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/560) - Support IETF rfc6749, section 2.3.1 - don't set auth params when `nil` (@bouk)
315
- - [!571](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/571) - Support Ruby 3.1 (@pboling)
316
- - [!575](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/575) - Support IETF rfc7231, section 7.1.2 - relative location in redirect (@pboling)
317
- - [!581](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/581) - _Documentation_: of breaking changes (@pboling)
318
268
  - [!158](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/158), [!344](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/344) - Optionally pass raw response to parsers (@niels)
319
269
  - [!190](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/190), [!332](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/332), [!334](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/334), [!335](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/335), [!360](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/360), [!426](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/426), [!427](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/427), [!461](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/461) - Documentation (@josephpage, @pboling, @meganemura, @joshRpowell, @elliotcm)
320
270
  - [!220](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/220) - Support IETF rfc7523 JWT Bearer Tokens Draft 04+ (@jhmoore)
@@ -342,16 +292,6 @@ Please file a bug if you notice a violation of semantic versioning.
342
292
  - [!575](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/575) - Support IETF rfc7231, section 7.1.2 - relative location in redirect (@pboling)
343
293
  - [!581](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/581) - _Documentation_: of breaking changes (@pboling)
344
294
  ### Changed
345
- - [!191](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/191) - **BREAKING**: Token is expired if `expired_at` time is `now` (@davestevens)
346
- - [!312](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/312) - **BREAKING**: Set `:basic_auth` as default for `:auth_scheme` instead of `:request_body`. This was default behavior before 1.3.0. (@tetsuya, @wy193777)
347
- - [!317](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/317) - _Dependency_: Upgrade `jwt` to 2.x.x (@travisofthenorth)
348
- - [!338](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/338) - _Dependency_: Switch from `Rack::Utils.escape` to `CGI.escape` (@josephpage)
349
- - [!339](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/339), [!368](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/368), [!424](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/424), [!479](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/479), [!493](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/493), [!539](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/539), [!542](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/542), [!553](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/553) - CI Updates, code coverage, linting, spelling, type fixes, New VERSION constant (@pboling, @josephpage, @ahorek)
350
- - [!410](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/410) - **BREAKING**: Removed the ability to call .error from an OAuth2::Response object (@jhmoore)
351
- - [!414](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/414) - Use Base64.strict_encode64 instead of custom internal logic (@meganemura)
352
- - [!469](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/469) - **BREAKING**: Default value for option `OAuth2::Client` - `:authorize_url` removed leading slash to work with relative paths by default (`'oauth/authorize'`) (@ghost)
353
- - [!469](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/469) - **BREAKING**: Default value for option `OAuth2::Client` - `:token_url` removed leading slash to work with relative paths by default (`'oauth/token'`) (@ghost)
354
- - [!507](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/507), [!575](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/575) - **BREAKING**: Transform keys to snake case, always, by default (ultimately via `rash_alt` gem)
355
295
  - [!191](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/191) - **BREAKING**: Token is expired if `expired_at` time is `now` (@davestevens)
356
296
  - [!312](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/312) - **BREAKING**: Set `:basic_auth` as default for `:auth_scheme` instead of `:request_body`. This was default behavior before 1.3.0. (@tetsuya, @wy193777)
357
297
  - [!317](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/317) - _Dependency_: Upgrade `jwt` to 2.x.x (@travisofthenorth)
@@ -365,29 +305,9 @@ Please file a bug if you notice a violation of semantic versioning.
365
305
  - Original keys will still work as previously, in most scenarios, thanks to `rash_alt` gem.
366
306
  - However, this is a _breaking_ change if you rely on `response.parsed.to_h`, as the keys in the result will be snake case.
367
307
  - As of version 2.0.4 you can turn key transformation off with the `snaky: false` option.
368
- - [!576](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/576) - **BREAKING**: Stop rescuing parsing errors (@pboling)
369
- - [!591](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/576) - _DEPRECATION_: `OAuth2::Client` - `:extract_access_token` option is deprecated
370
308
  - [!576](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/576) - **BREAKING**: Stop rescuing parsing errors (@pboling)
371
309
  - [!591](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/576) - _DEPRECATION_: `OAuth2::Client` - `:extract_access_token` option is deprecated
372
310
  ### Fixed
373
- - [!158](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/158), [!344](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/344) - Handling of errors when using `omniauth-facebook` (@niels)
374
- - [!294](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/294) - Fix: "Unexpected middleware set" issue with Faraday when `OAUTH_DEBUG=true` (@spectator, @gafrom)
375
- - [!300](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/300) - _Documentation_: `Oauth2::Error` - Error codes are strings, not symbols (@NobodysNightmare)
376
- - [!318](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/318), [!326](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/326), [!343](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/343), [!347](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/347), [!397](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/397), [!464](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/464), [!561](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/561), [!565](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/565) - _Dependency_: Support all versions of `faraday` (see [gemfiles/README.md][gemfiles/readme] for compatibility matrix with Ruby engines & versions) (@pboling, @raimondasv, @zacharywelch, @Fudoshiki, @ryogift, @sj26, @jdelStrother)
377
- - [!322](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/322), [!331](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/331), [!337](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/337), [!361](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/361), [!371](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/371), [!377](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/377), [!383](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/383), [!392](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/392), [!395](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/395), [!400](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/400), [!401](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/401), [!403](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/403), [!415](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/415), [!567](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/567) - Updated Rubocop, Rubocop plugins and improved code style (@pboling, @bquorning, @lautis, @spectator)
378
- - [!328](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/328) - _Documentation_: Homepage URL is SSL (@amatsuda)
379
- - [!339](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/339), [!479](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/479) - Update testing infrastructure for all supported Rubies (@pboling and @josephpage)
380
- - [!366](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/366) - **Security**: Fix logging to `$stdout` of request and response bodies via Faraday's logger and `ENV["OAUTH_DEBUG"] == 'true'` (@pboling)
381
- - [!380](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/380) - Fix: Stop attempting to encode non-encodable objects in `Oauth2::Error` (@jhmoore)
382
- - [!399](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/399) - Fix: Stop duplicating `redirect_uri` in `get_token` (@markus)
383
- - [!410](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/410) - Fix: `SystemStackError` caused by circular reference between Error and Response classes (@jhmoore)
384
- - [!460](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/460) - Fix: Stop throwing errors when `raise_errors` is set to `false`; analog of [!524](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/524) for `1-4-stable` branch (@joaolrpaulo)
385
- - [!472](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/472) - **Security**: Add checks to enforce `client_secret` is *never* passed in authorize_url query params for `implicit` and `auth_code` grant types (@dfockler)
386
- - [!482](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/482) - _Documentation_: Update last of `intridea` links to `oauth-xx` (@pboling)
387
- - [!536](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/536) - **Security**: Compatibility with more (and recent) Ruby OpenSSL versions, Github Actions, Rubocop updated, analogous to [!535](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/535) on `1-4-stable` branch (@pboling)
388
- - [!595](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/595) - Graceful handling of empty responses from `Client#get_token`, respecting `:raise_errors` config (@stanhu)
389
- - [!596](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/596) - Consistency between `AccessToken#refresh` and `Client#get_token` named arguments (@stanhu)
390
- - [!598](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/598) - Fix unparseable data not raised as error in `Client#get_token`, respecting `:raise_errors` config (@stanhu)
391
311
  - [!158](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/158), [!344](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/344) - Handling of errors when using `omniauth-facebook` (@niels)
392
312
  - [!294](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/294) - Fix: "Unexpected middleware set" issue with Faraday when `OAUTH_DEBUG=true` (@spectator, @gafrom)
393
313
  - [!300](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/300) - _Documentation_: `Oauth2::Error` - Error codes are strings, not symbols (@NobodysNightmare)
@@ -407,12 +327,6 @@ Please file a bug if you notice a violation of semantic versioning.
407
327
  - [!596](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/596) - Consistency between `AccessToken#refresh` and `Client#get_token` named arguments (@stanhu)
408
328
  - [!598](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/598) - Fix unparseable data not raised as error in `Client#get_token`, respecting `:raise_errors` config (@stanhu)
409
329
  ### Removed
410
- - [!341](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/341) - Remove Rdoc & Jeweler related files (@josephpage)
411
- - [!342](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/342) - **BREAKING**: Dropped support for Ruby 1.8 (@josephpage)
412
- - [!539](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/539) - Remove reliance on globally included OAuth2 in tests, analog of [!538](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/538) for 1-4-stable (@anderscarling)
413
- - [!566](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/566) - _Dependency_: Removed `wwtd` (@bquorning)
414
- - [!589](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/589), [!593](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/593) - Remove support for expired MAC token draft spec (@stanhu)
415
- - [!590](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/590) - _Dependency_: Removed `multi_json` (@stanhu)
416
330
  - [!341](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/341) - Remove Rdoc & Jeweler related files (@josephpage)
417
331
  - [!342](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/342) - **BREAKING**: Dropped support for Ruby 1.8 (@josephpage)
418
332
  - [!539](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/539) - Remove reliance on globally included OAuth2 in tests, analog of [!538](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/538) for 1-4-stable (@anderscarling)
@@ -427,12 +341,10 @@ Please file a bug if you notice a violation of semantic versioning.
427
341
 
428
342
  ## [1.4.10] - 2022-07-01
429
343
  - TAG: [v1.4.10][1.4.10t]
430
- - FIPS Compatibility [!587](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/587) (@akostadinov)
431
344
  - FIPS Compatibility [!587](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/587) (@akostadinov)
432
345
 
433
346
  ## [1.4.9] - 2022-02-20
434
347
  - TAG: [v1.4.9][1.4.9t]
435
- - Fixes compatibility with Faraday v2 [572](https://gitlab.com/oauth-xx/oauth2/-/issues/572)
436
348
  - Fixes compatibility with Faraday v2 [572](https://gitlab.com/ruby-oauth/oauth2/-/issues/572)
437
349
  - Includes supported versions of Faraday in test matrix:
438
350
  - Faraday ~> 2.2.0 with Ruby >= 2.6
@@ -444,34 +356,24 @@ Please file a bug if you notice a violation of semantic versioning.
444
356
  - TAG: [v1.4.8][1.4.8t]
445
357
  - MFA is now required to push new gem versions (@pboling)
446
358
  - README overhaul w/ new Ruby Version and Engine compatibility policies (@pboling)
447
- - [!569](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/569) Backport fixes ([!561](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/561) by @ryogift), and add more fixes, to allow faraday 1.x and 2.x (@jrochkind)
448
359
  - [!569](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/569) Backport fixes ([!561](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/561) by @ryogift), and add more fixes, to allow faraday 1.x and 2.x (@jrochkind)
449
360
  - Improve Code Coverage tracking (Coveralls, CodeCov, CodeClimate), and enable branch coverage (@pboling)
450
361
  - Add CodeQL, Security Policy, Funding info (@pboling)
451
362
  - Added Ruby 3.1, jruby, jruby-head, truffleruby, truffleruby-head to build matrix (@pboling)
452
- - [!543](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/543) - Support for more modern Open SSL libraries (@pboling)
453
363
  - [!543](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/543) - Support for more modern Open SSL libraries (@pboling)
454
364
 
455
365
  ## [1.4.7] - 2021-03-19
456
366
  - TAG: [v1.4.7][1.4.7t]
457
- - [!541](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/541) - Backport fix to expires_at handling [!533](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/533) to 1-4-stable branch. (@dobon)
458
367
  - [!541](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/541) - Backport fix to expires_at handling [!533](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/533) to 1-4-stable branch. (@dobon)
459
368
 
460
369
  ## [1.4.6] - 2021-03-19
461
370
  - TAG: [v1.4.6][1.4.6t]
462
- - [!540](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/540) - Add VERSION constant (@pboling)
463
- - [!537](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/537) - Fix crash in OAuth2::Client#get_token (@anderscarling)
464
- - [!538](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/538) - Remove reliance on globally included OAuth2 in tests, analogous to [!539](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/539) on main branch (@anderscarling)
465
371
  - [!540](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/540) - Add VERSION constant (@pboling)
466
372
  - [!537](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/537) - Fix crash in OAuth2::Client#get_token (@anderscarling)
467
373
  - [!538](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/538) - Remove reliance on globally included OAuth2 in tests, analogous to [!539](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/539) on main branch (@anderscarling)
468
374
 
469
375
  ## [1.4.5] - 2021-03-18
470
376
  - TAG: [v1.4.5][1.4.5t]
471
- - [!535](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/535) - Compatibility with range of supported Ruby OpenSSL versions, Rubocop updates, Github Actions, analogous to [!536](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/536) on main branch (@pboling)
472
- - [!518](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/518) - Add extract_access_token option to OAuth2::Client (@jonspalmer)
473
- - [!507](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/507) - Fix camel case content type, response keys (@anvox)
474
- - [!500](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/500) - Fix YARD documentation formatting (@olleolleolle)
475
377
  - [!535](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/535) - Compatibility with range of supported Ruby OpenSSL versions, Rubocop updates, Github Actions, analogous to [!536](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/536) on main branch (@pboling)
476
378
  - [!518](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/518) - Add extract_access_token option to OAuth2::Client (@jonspalmer)
477
379
  - [!507](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/507) - Fix camel case content type, response keys (@anvox)
@@ -479,34 +381,22 @@ Please file a bug if you notice a violation of semantic versioning.
479
381
 
480
382
  ## [1.4.4] - 2020-02-12
481
383
  - TAG: [v1.4.4][1.4.4t]
482
- - [!408](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/408) - Fixed expires_at for formatted time (@Lomey)
483
384
  - [!408](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/408) - Fixed expires_at for formatted time (@Lomey)
484
385
 
485
386
  ## [1.4.3] - 2020-01-29
486
387
  - TAG: [v1.4.3][1.4.3t]
487
- - [!483](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/483) - add project metadata to gemspec (@orien)
488
- - [!495](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/495) - support additional types of access token requests (@SteveyblamFreeagent, @thomcorley, @dgholz)
489
388
  - [!483](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/483) - add project metadata to gemspec (@orien)
490
389
  - [!495](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/495) - support additional types of access token requests (@SteveyblamFreeagent, @thomcorley, @dgholz)
491
390
  - Adds support for private_key_jwt and tls_client_auth
492
- - [!433](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/433) - allow field names with square brackets and numbers in params (@asm256)
493
391
  - [!433](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/433) - allow field names with square brackets and numbers in params (@asm256)
494
392
 
495
393
  ## [1.4.2] - 2019-10-01
496
394
  - TAG: [v1.4.2][1.4.2t]
497
- - [!478](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/478) - support latest version of faraday & fix build (@pboling)
498
395
  - [!478](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/478) - support latest version of faraday & fix build (@pboling)
499
396
  - Officially support Ruby 2.6 and truffleruby
500
397
 
501
398
  ## [1.4.1] - 2018-10-13
502
399
  - TAG: [v1.4.1][1.4.1t]
503
- - [!417](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/417) - update jwt dependency (@thewoolleyman)
504
- - [!419](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/419) - remove rubocop dependency (temporary, added back in [!423](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/423)) (@pboling)
505
- - [!418](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/418) - update faraday dependency (@pboling)
506
- - [!420](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/420) - update [oauth2.gemspec](https://gitlab.com/oauth-xx/oauth2/-/blob/1-4-stable/oauth2.gemspec) (@pboling)
507
- - [!421](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/421) - fix [CHANGELOG.md](https://gitlab.com/oauth-xx/oauth2/-/blob/1-4-stable/CHANGELOG.md) for previous releases (@pboling)
508
- - [!422](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/422) - update [LICENSE](https://gitlab.com/oauth-xx/oauth2/-/blob/1-4-stable/LICENSE) and [README.md](https://gitlab.com/oauth-xx/oauth2/-/blob/1-4-stable/README.md) (@pboling)
509
- - [!423](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/423) - update [builds](https://travis-ci.org/oauth-xx/oauth2/builds), [Rakefile](https://gitlab.com/oauth-xx/oauth2/-/blob/1-4-stable/Rakefile) (@pboling)
510
400
  - [!417](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/417) - update jwt dependency (@thewoolleyman)
511
401
  - [!419](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/419) - remove rubocop dependency (temporary, added back in [!423](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/423)) (@pboling)
512
402
  - [!418](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/418) - update faraday dependency (@pboling)
@@ -640,7 +530,9 @@ Please file a bug if you notice a violation of semantic versioning.
640
530
 
641
531
  [gemfiles/readme]: gemfiles/README.md
642
532
 
643
- [Unreleased]: https://github.com/ruby-oauth/oauth2/compare/v2.0.14...HEAD
533
+ [Unreleased]: https://github.com/ruby-oauth/oauth2/compare/v2.0.15...HEAD
534
+ [2.0.15]: https://github.com/ruby-oauth/oauth2/compare/v2.0.14...v2.0.15
535
+ [2.0.15t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.15
644
536
  [2.0.14]: https://github.com/ruby-oauth/oauth2/compare/v2.0.13...v2.0.14
645
537
  [2.0.14t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.14
646
538
  [2.0.13]: https://github.com/ruby-oauth/oauth2/compare/v2.0.12...v2.0.13
data/CONTRIBUTING.md CHANGED
@@ -22,6 +22,35 @@ Follow these instructions:
22
22
  6. Make sure to add tests for it. This is important, so it doesn't break in a future release.
23
23
  7. Create new Pull Request.
24
24
 
25
+ ## Executables vs Rake tasks
26
+
27
+ Executables shipped by oauth2 can be used with or without generating the binstubs.
28
+ They will work when oauth2 is installed globally (i.e., `gem install oauth2`) and do not require that oauth2 be in your bundle.
29
+
30
+ - kettle-changelog
31
+ - kettle-commit-msg
32
+ - oauth2-setup
33
+ - kettle-dvcs
34
+ - kettle-pre-release
35
+ - kettle-readme-backers
36
+ - kettle-release
37
+
38
+ However, the rake tasks provided by oauth2 do require oauth2 to be added as a development dependency and loaded in your Rakefile.
39
+ See the full list of rake tasks in head of Rakefile
40
+
41
+ **Gemfile**
42
+ ```ruby
43
+ group :development do
44
+ gem "oauth2", require: false
45
+ end
46
+ ```
47
+
48
+ **Rakefile**
49
+ ```ruby
50
+ # Rakefile
51
+ require "oauth2"
52
+ ```
53
+
25
54
  ## Environment Variables for Local Development
26
55
 
27
56
  Below are the primary environment variables recognized by stone_checksums (and its integrated tools). Unless otherwise noted, set boolean values to the string "true" to enable.
@@ -89,9 +118,10 @@ bundle exec rake test
89
118
 
90
119
  ### Spec organization (required)
91
120
 
92
- - For each class or module under `lib/`, keep all of its unit tests in a single spec file under `spec/` that mirrors the path and file name (e.g., specs for `lib/oauth2/release_cli.rb` live in `spec/oauth2/release_cli_spec.rb`).
93
- - Do not create ad-hoc "_more" or split spec files for the same class/module. Consolidate all unit tests into the main spec file for that class/module.
94
- - Only integration scenarios that intentionally span multiple classes belong in `spec/integration/`.
121
+ - One spec file per class/module. For each class or module under `lib/`, keep all of its unit tests in a single spec file under `spec/` that mirrors the path and file name exactly: `lib/oauth2/release_cli.rb` -> `spec/oauth2/release_cli_spec.rb`.
122
+ - Never add a second spec file for the same class/module. Examples of disallowed names: `*_more_spec.rb`, `*_extra_spec.rb`, `*_status_spec.rb`, or any other suffix that still targets the same class. If you find yourself wanting a second file, merge those examples into the canonical spec file for that class/module.
123
+ - Exception: Integration specs that intentionally span multiple classes. Place these under `spec/integration/` (or a clearly named integration folder), and do not directly mirror a single class. Name them after the scenario, not a class.
124
+ - Migration note: If a duplicate spec file exists, move all examples into the canonical file and delete the duplicate. Do not leave stubs or empty files behind.
95
125
 
96
126
  ## Lint It
97
127
 
@@ -146,7 +176,9 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
146
176
 
147
177
  #### Automated process
148
178
 
149
- Run `bundle exec kettle-release`.
179
+ 1. Update version.rb to contian the correct version-to-be-released.
180
+ 2. Run `bundle exec kettle-changelog`.
181
+ 3. Run `bundle exec kettle-release`.
150
182
 
151
183
  #### Manual process
152
184
 
data/FUNDING.md CHANGED
@@ -18,11 +18,11 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
18
18
  [🖇sponsor]: https://github.com/sponsors/pboling
19
19
  [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
20
20
  [🖇polar]: https://polar.sh/pboling
21
- [🖇kofi-img]: https://img.shields.io/badge/ko--fi-✓-a51611.svg?style=flat
21
+ [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
22
22
  [🖇kofi]: https://ko-fi.com/O5O86SNP4
23
23
  [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
24
24
  [🖇patreon]: https://patreon.com/galtzo
25
- [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-✓-a51611.svg?style=flat
25
+ [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
26
26
  [🖇buyme]: https://www.buymeacoffee.com/pboling
27
27
  [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
28
28
  [🖇paypal]: https://www.paypal.com/paypalme/peterboling
data/README.md CHANGED
@@ -1,23 +1,23 @@
1
1
  [![Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0][🖼️galtzo-i]][🖼️galtzo-discord] [![ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5][🖼️ruby-lang-i]][🖼️ruby-lang] [![oauth2 Logo by Chris Messina, CC BY-SA 3.0][🖼️oauth2-i]][🖼️oauth2]
2
2
 
3
- [🖼️oauth2-i]: https://logos.galtzo.com/assets/images/oauth/oauth2/avatar-192px.svg
4
- [🖼️oauth2]: https://github.com/ruby-oauth/oauth2
5
- [🖼️ruby-lang-i]: https://logos.galtzo.com/assets/images/ruby-lang/avatar-192px.svg
6
- [🖼️ruby-lang]: https://www.ruby-lang.org/
7
3
  [🖼️galtzo-i]: https://logos.galtzo.com/assets/images/galtzo-floss/avatar-192px.svg
8
4
  [🖼️galtzo-discord]: https://discord.gg/3qme4XHNKN
5
+ [🖼️ruby-lang-i]: https://logos.galtzo.com/assets/images/ruby-lang/avatar-192px.svg
6
+ [🖼️ruby-lang]: https://www.ruby-lang.org/
7
+ [🖼️oauth2-i]: https://logos.galtzo.com/assets/images/oauth/oauth2/avatar-192px.svg
8
+ [🖼️oauth2]: https://github.com/ruby-oauth/oauth2
9
9
 
10
10
  # 🔐 OAuth 2.0 Authorization Framework
11
11
 
12
12
  ⭐️ including OAuth 2.1 draft spec & OpenID Connect (OIDC)
13
13
 
14
- [![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license-ref] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![Open Source Helpers][👽oss-helpi]][👽oss-help] [![Coveralls Test Coverage][🔑coveralls-img]][🔑coveralls] [![QLTY Test Coverage][🔑qlty-covi]][🔑qlty-cov] [![QLTY Maintainability][🔑qlty-mnti]][🔑qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Supported][🚎6-s-wfi]][🚎6-s-wf] [![CI Legacy][🚎4-lg-wfi]][🚎4-lg-wf] [![CI Unsupported][🚎7-us-wfi]][🚎7-us-wf] [![CI Ancient][🚎1-an-wfi]][🚎1-an-wf] [![CI Caboose is an absolute WAGON][🚎13-cbs-wfi]][🚎13-cbs-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![CodeQL][🖐codeQL-img]][🖐codeQL]
14
+ [![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license-ref] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![Open Source Helpers][👽oss-helpi]][👽oss-help] [![Coveralls Test Coverage][🔑coveralls-img]][🔑coveralls] [![QLTY Test Coverage][🔑qlty-covi]][🔑qlty-cov] [![QLTY Maintainability][🔑qlty-mnti]][🔑qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Supported][🚎6-s-wfi]][🚎6-s-wf] [![CI Legacy][🚎4-lg-wfi]][🚎4-lg-wf] [![CI Unsupported][🚎7-us-wfi]][🚎7-us-wf] [![CI Ancient][🚎1-an-wfi]][🚎1-an-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![CodeQL][🖐codeQL-img]][🖐codeQL]
15
15
 
16
- If ☝️ `ci_badges.map(&:color).detect { it != "green"}` [let me know][🖼️galtzo-discord], as I may have missed the [discord notification][🖼️galtzo-discord].
16
+ `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][🖼️galtzo-discord], as I may have missed the [discord notification][🖼️galtzo-discord].
17
17
 
18
18
  ---
19
19
 
20
- OTOH, if `ci_badges.map(&:color).all? { it == "green"}` 👇️ send money so I can do more of this. FLOSS maintenance is now my full-time job.
20
+ `if ci_badges.map(&:color).all? { it == "green"}` 👇️ send money so I can do more of this. FLOSS maintenance is now my full-time job.
21
21
 
22
22
  [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS or refugee efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS or refugee efforts using Patreon][🖇patreon-img]][🖇patreon]
23
23
 
@@ -78,7 +78,7 @@ If it seems like you are in the wrong place, you might try one of these:
78
78
  | Works with JRuby | ![JRuby 9.1 Compat][💎jruby-9.1i] ![JRuby 9.2 Compat][💎jruby-9.2i] ![JRuby 9.3 Compat][💎jruby-9.3i] <br/> [![JRuby 9.4 Compat][💎jruby-9.4i]][🚎10-j-wf] [![JRuby 10.0 Compat][💎jruby-c-i]][🚎11-c-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf] |
79
79
  | Works with Truffle Ruby | ![Truffle Ruby 22.3 Compat][💎truby-22.3i] ![Truffle Ruby 23.0 Compat][💎truby-23.0i] <br/> [![Truffle Ruby 23.1 Compat][💎truby-23.1i]][🚎9-t-wf] [![Truffle Ruby 24.1 Compat][💎truby-c-i]][🚎11-c-wf] |
80
80
  | Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎4-lg-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎6-s-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎6-s-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎6-s-wf] [![Ruby 3.4 Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf] |
81
- | Works with MRI Ruby 2 | ![Ruby 2.2 Compat][💎ruby-2.2i] <br/> [![Ruby 2.3 Compat][💎ruby-2.3i]][🚎1-an-wf] [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎1-an-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎1-an-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎7-us-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎7-us-wf] |
81
+ | Works with MRI Ruby 2 | ![Ruby 2.2 Compat][💎ruby-2.2i] <br/> [![Ruby 2.3 Compat][💎ruby-2.3i]][🚎13-cbs-wf] [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎1-an-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎1-an-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎7-us-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎7-us-wf] |
82
82
  | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
83
83
  | Documentation | [![Discussion][⛳gg-discussions-img]][⛳gg-discussions] [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![Wiki][📜wiki-img]][📜wiki] |
84
84
  | Compliance | [![License: MIT][📄license-img]][📄license-ref] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
@@ -91,9 +91,11 @@ If it seems like you are in the wrong place, you might try one of these:
91
91
 
92
92
  * Operating Systems: Linux, MacOS, Windows
93
93
  * MRI Ruby @ v2.3, v2.4, v2.5, v2.6, v2.7, v3.0, v3.1, v3.2, v3.3, v3.4, HEAD
94
- * NOTE: This gem will still install on ruby v2.2, but vanilla GitHub Actions no longer supports testing against it, so YMMV.
95
- * JRuby @ v9.2, v9.3, v9.4, v10.0, HEAD
94
+ * NOTE: This gem may still _install_ and _run_ on ruby v2.2, but vanilla GitHub Actions no longer supports testing against it, so YMMV. Accept patches so long as they don't break the platforms that do run in CI.
95
+ * JRuby @ v9.4, v10.0, HEAD
96
+ * NOTE: This gem may still _install_ and _run_ on JRuby v9.2 and v9.3, but they are EOL, builds are flaky, and GitHub Actions [doesn't have][GHA-continue-on-error-ui] a proper [`allow-failures` feature][GHA-allow-failure], and until they do flaky EOL-platform builds get dropped, so YMMV. Accept patches so long as they don't break the platforms that do run in CI.
96
97
  * TruffleRuby @ v23.1, v24.1, HEAD
98
+ * NOTE: This gem may still _install_ and _run_ on Truffleruby v22.3 and v23.0, but they are EOL, builds are flaky, and GitHub Actions [doesn't have][GHA-continue-on-error-ui] a proper [`allow-failures` feature][GHA-allow-failure], and until they do flaky EOL-platform builds get dropped, so YMMV. Accept patches so long as they don't break the platforms that do run in CI.
97
99
  * gem `faraday` @ v0, v1, v2, HEAD ⏩️ [lostisland/faraday](https://github.com/lostisland/faraday)
98
100
  * gem `jwt` @ v1, v2, v3, HEAD ⏩️ [jwt/ruby-jwt](https://github.com/jwt/ruby-jwt)
99
101
  * gem `logger` @ v1.2, v1.5, v1.7, HEAD ⏩️ [ruby/logger](https://github.com/ruby/logger)
@@ -109,6 +111,9 @@ Also, where reasonable, tested against the runtime dependencies of those depende
109
111
 
110
112
  * gem `hashie` @ v0, v1, v2, v3, v4, v5, HEAD ⏩️ [hashie/hashie](https://github.com/hashie/hashie)
111
113
 
114
+ [GHA-continue-on-error-ui]: https://github.com/actions/runner/issues/2347#issuecomment-2653479732
115
+ [GHA-allow-failure]: https://github.com/orgs/community/discussions/15452
116
+
112
117
  #### Upgrading Runtime Gem Dependencies
113
118
 
114
119
  This project sits underneath a large portion of the authorization systems on the internet.
@@ -123,12 +128,12 @@ leading versions per each minor version of Ruby of all the runtime dependencies
123
128
 
124
129
  What does that mean specifically for the runtime dependencies?
125
130
 
126
- We have 100% test coverage of lines and branches, and this test suite runs across a large matrix
127
- covering the latest patch for each of the following minor versions:
131
+ We have 100% test coverage of lines and branches, and this test suite runs across a very large matrix.
132
+ It wouldn't be possible without appraisal2.
128
133
 
129
- | 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 |
130
- |------------------------------------------------|--------------------------------------------------------------------------------------|
131
- | 👟 Check it out! | ✨ [github.com/appraisal-rb/appraisal2](https://github.com/appraisal-rb/appraisal2) ✨ |
134
+ | 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 and the color 💚 green 💚 |
135
+ |------------------------------------------------|--------------------------------------------------------|
136
+ | 👟 Check it out! | ✨ [github.com/appraisal-rb/appraisal2][💎appraisal2] ✨ |
132
137
 
133
138
  #### You should upgrade this gem with confidence\*.
134
139
 
@@ -138,7 +143,7 @@ covering the latest patch for each of the following minor versions:
138
143
  - You should upgrade the dependencies of this gem with confidence\*.
139
144
  - Please do upgrade, and then, when it goes smooth as butter [please sponsor me][🖇sponsor]. Thanks!
140
145
 
141
- [sv-pub-api]: #-is-platform-support-part-of-the-public-api
146
+ [sv-pub-api]: #-versioning
142
147
 
143
148
  \* MIT license; The only guarantees I make are for [enterprise support](#enterprise-support).
144
149
 
@@ -160,7 +165,7 @@ If you use a gem version of a core Ruby library it should work fine!
160
165
  ### Federated DVCS
161
166
 
162
167
  <details>
163
- <summary>Find this repo on other forges (Coming soon!)</summary>
168
+ <summary>Find this repo on other forges</summary>
164
169
 
165
170
  | Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI | Discussions |
166
171
  |-----------------------------------------------|-----------------------------------------------------------------------|---------------------------|--------------------------|---------------------------|--------------------------|------------------------------|
@@ -678,6 +683,18 @@ using various class methods including the standard new, `from_hash` (if you have
678
683
  a hash of the values), or `from_kvform` (if you have an
679
684
  `application/x-www-form-urlencoded` encoded string of the values).
680
685
 
686
+ Options (since v2.0.x unless noted):
687
+ - expires_latency (Integer | nil): Seconds to subtract from expires_in when computing #expired? to offset latency.
688
+ - token_name (String | Symbol | nil): When multiple token-like fields exist in responses, select the field name to use as the access token (since v2.0.10).
689
+ - mode (Symbol | Proc | Hash): Controls how the token is transmitted on requests made via this AccessToken instance.
690
+ - :header — Send as Authorization: Bearer <token> header (default and preferred by OAuth 2.1 draft guidance).
691
+ - :query — Send as access_token query parameter (discouraged in general, but required by some providers).
692
+ - Verb-dependent (since v2.0.15): Provide either:
693
+ - a Proc taking |verb| and returning :header or :query, or
694
+ - a Hash with verb symbols as keys, for example: {get: :query, post: :header, delete: :header}.
695
+
696
+ Note: Verb-dependent mode was added in v2.0.15 to support providers like Instagram that require query mode for GET and header mode for POST/DELETE.
697
+
681
698
  ### OAuth2::Error
682
699
 
683
700
  On 400+ status code responses, an `OAuth2::Error` will be raised. If it is a
@@ -847,6 +864,76 @@ Notes:
847
864
 
848
865
  </details>
849
866
 
867
+ ### Instagram API (verb‑dependent token mode)
868
+
869
+ Providers like Instagram require the access token to be sent differently depending on the HTTP verb:
870
+ - GET requests: token must be in the query string (?access_token=...)
871
+ - POST/DELETE requests: token must be in the Authorization header (Bearer ...)
872
+
873
+ Since v2.0.15, you can configure an AccessToken with a verb‑dependent mode. The gem will choose how to send the token based on the request method.
874
+
875
+ Example: exchanging and refreshing long‑lived Instagram tokens, and making API calls
876
+
877
+ ```ruby
878
+ require "oauth2"
879
+
880
+ # NOTE: Users authenticate via Facebook Login to obtain a short‑lived user token (not shown here).
881
+ # See Facebook Login docs for obtaining the initial short‑lived token.
882
+
883
+ client = OAuth2::Client.new(nil, nil, site: "https://graph.instagram.com")
884
+
885
+ # Start with a short‑lived token you already obtained via Facebook Login
886
+ short_lived = OAuth2::AccessToken.new(
887
+ client,
888
+ ENV["IG_SHORT_LIVED_TOKEN"],
889
+ # Key part: verb‑dependent mode
890
+ mode: {get: :query, post: :header, delete: :header},
891
+ )
892
+
893
+ # 1) Exchange for a long‑lived token (Instagram requires GET with access_token in query)
894
+ # Endpoint: GET https://graph.instagram.com/access_token
895
+ # Params: grant_type=ig_exchange_token, client_secret=APP_SECRET
896
+ exchange = short_lived.get(
897
+ "/access_token",
898
+ params: {
899
+ grant_type: "ig_exchange_token",
900
+ client_secret: ENV["IG_APP_SECRET"],
901
+ # access_token param will be added automatically by the AccessToken (mode => :query for GET)
902
+ },
903
+ )
904
+ long_lived_token_value = exchange.parsed["access_token"]
905
+
906
+ long_lived = OAuth2::AccessToken.new(
907
+ client,
908
+ long_lived_token_value,
909
+ mode: {get: :query, post: :header, delete: :header},
910
+ )
911
+
912
+ # 2) Refresh the long‑lived token (Instagram uses GET with token in query)
913
+ # Endpoint: GET https://graph.instagram.com/refresh_access_token
914
+ refresh_resp = long_lived.get(
915
+ "/refresh_access_token",
916
+ params: {grant_type: "ig_refresh_token"},
917
+ )
918
+ long_lived = OAuth2::AccessToken.new(
919
+ client,
920
+ refresh_resp.parsed["access_token"],
921
+ mode: {get: :query, post: :header, delete: :header},
922
+ )
923
+
924
+ # 3) Typical API GET request (token in query automatically)
925
+ me = long_lived.get("/me", params: {fields: "id,username"}).parsed
926
+
927
+ # 4) Example POST (token sent via Bearer header automatically)
928
+ # Note: Replace the path/params with a real Instagram Graph API POST you need,
929
+ # such as publishing media via the Graph API endpoints.
930
+ # long_lived.post("/me/media", body: {image_url: "https://...", caption: "hello"})
931
+ ```
932
+
933
+ Tips:
934
+ - Avoid query‑string bearer tokens unless required by your provider. Instagram explicitly requires it for GET.
935
+ - If you need a custom rule, you can pass a Proc for mode, e.g. mode: ->(verb) { verb == :get ? :query : :header }.
936
+
850
937
  ### Refresh Tokens
851
938
 
852
939
  When the server issues a refresh_token, you can refresh manually or implement an auto-refresh wrapper.
@@ -1279,7 +1366,7 @@ To join the community or get help 👇️ Join the Discord.
1279
1366
 
1280
1367
  [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
1281
1368
 
1282
- To say "thanks for maintaining such a great tool" ☝️ Join the Discord or 👇️ send money.
1369
+ To say "thanks!" ☝️ Join the Discord or 👇️ send money.
1283
1370
 
1284
1371
  [![Sponsor ruby-oauth/oauth2 on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay-img] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal-img]
1285
1372
 
@@ -1306,11 +1393,11 @@ Thanks for RTFM. ☺️
1306
1393
  [🖇sponsor]: https://github.com/sponsors/pboling
1307
1394
  [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
1308
1395
  [🖇polar]: https://polar.sh/pboling
1309
- [🖇kofi-img]: https://img.shields.io/badge/ko--fi-✓-a51611.svg?style=flat
1396
+ [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
1310
1397
  [🖇kofi]: https://ko-fi.com/O5O86SNP4
1311
1398
  [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
1312
1399
  [🖇patreon]: https://patreon.com/galtzo
1313
- [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-✓-a51611.svg?style=flat
1400
+ [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
1314
1401
  [🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
1315
1402
  [🖇buyme]: https://www.buymeacoffee.com/pboling
1316
1403
  [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
@@ -1342,7 +1429,7 @@ Thanks for RTFM. ☺️
1342
1429
  [💖💲crunchbase]: https://www.crunchbase.com/person/peter-boling
1343
1430
  [💖💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=flat&logo=crunchbase
1344
1431
  [💖🐘ruby-mast]: https://ruby.social/@galtzo
1345
- [💖🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https%3A%2F%2Fruby.social&style=flat&logo=mastodon&label=Ruby%20%40galtzo
1432
+ [💖🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https://ruby.social&style=flat&logo=mastodon&label=Ruby%20@galtzo
1346
1433
  [💖🦋bluesky]: https://bsky.app/profile/galtzo.com
1347
1434
  [💖🦋bluesky-img]: https://img.shields.io/badge/@galtzo.com-0285FF?style=flat&logo=bluesky&logoColor=white
1348
1435
  [💖🌳linktree]: https://linktr.ee/galtzo
@@ -1412,8 +1499,8 @@ Thanks for RTFM. ☺️
1412
1499
  [🚎10-j-wfi]: https://github.com/ruby-oauth/oauth2/actions/workflows/jruby.yml/badge.svg
1413
1500
  [🚎11-c-wf]: https://github.com/ruby-oauth/oauth2/actions/workflows/current.yml
1414
1501
  [🚎11-c-wfi]: https://github.com/ruby-oauth/oauth2/actions/workflows/current.yml/badge.svg
1415
- [🚎12-crh-wf]: https://github.com/ruby-oauth/oauth2/actions/workflows/current-runtime-heads.yml
1416
- [🚎12-crh-wfi]: https://github.com/ruby-oauth/oauth2/actions/workflows/current-runtime-heads.yml/badge.svg
1502
+ [🚎12-crh-wf]: https://github.com/ruby-oauth/oauth2/actions/workflows/dep-heads.yml
1503
+ [🚎12-crh-wfi]: https://github.com/ruby-oauth/oauth2/actions/workflows/dep-heads.yml/badge.svg
1417
1504
  [🚎13-cbs-wf]: https://github.com/ruby-oauth/oauth2/actions/workflows/caboose.yml
1418
1505
  [🚎13-cbs-wfi]: https://github.com/ruby-oauth/oauth2/actions/workflows/caboose.yml/badge.svg
1419
1506
  [🚎13-🔒️-wf]: https://github.com/ruby-oauth/oauth2/actions/workflows/locked_deps.yml
@@ -1467,7 +1554,7 @@ Thanks for RTFM. ☺️
1467
1554
  [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
1468
1555
  [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
1469
1556
  [📌gitmoji]:https://gitmoji.dev
1470
- [📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20😜%20😍-34495e.svg?style=flat-square
1557
+ [📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
1471
1558
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
1472
1559
  [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.519-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1473
1560
  [🔐security]: SECURITY.md
@@ -1483,7 +1570,7 @@ Thanks for RTFM. ☺️
1483
1570
  [💎stone_checksums]: https://github.com/galtzo-floss/stone_checksums
1484
1571
  [💎SHA_checksums]: https://gitlab.com/ruby-oauth/oauth2/-/tree/main/checksums
1485
1572
  [💎rlts]: https://github.com/rubocop-lts/rubocop-lts
1486
- [💎rlts-img]: https://img.shields.io/badge/code_style_%26_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white
1573
+ [💎rlts-img]: https://img.shields.io/badge/code_style_&_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white
1487
1574
  [💎appraisal2]: https://github.com/appraisal-rb/appraisal2
1488
1575
  [💎appraisal2-img]: https://img.shields.io/badge/appraised_by-appraisal2-34495e.svg?plastic&logo=ruby&logoColor=white
1489
1576
  [💎d-in-dvcs]: https://railsbling.com/posts/dvcs/put_the_d_in_dvcs/
@@ -1493,8 +1580,8 @@ Thanks for RTFM. ☺️
1493
1580
  rel="me" Social Proofs
1494
1581
  </summary>
1495
1582
 
1496
- <a rel="me" alt="Follow me on Ruby.social" href="https://ruby.social/@galtzo"><img src="https://img.shields.io/mastodon/follow/109447111526622197?domain=https%3A%2F%2Fruby.social&style=social&label=Follow%20%40galtzo%20on%20Ruby.social"></a>
1497
- <a rel="me" alt="Follow me on FLOSS.social" href="https://floss.social/@galtzo"><img src="https://img.shields.io/mastodon/follow/110304921404405715?domain=https%3A%2F%2Ffloss.social&style=social&label=Follow%20%40galtzo%20on%20Floss.social"></a>
1583
+ <a rel="me" alt="Follow me on Ruby.social" href="https://ruby.social/@galtzo"><img src="https://img.shields.io/mastodon/follow/109447111526622197?domain=https://ruby.social&style=social&label=Follow%20@galtzo%20on%20Ruby.social"></a>
1584
+ <a rel="me" alt="Follow me on FLOSS.social" href="https://floss.social/@galtzo"><img src="https://img.shields.io/mastodon/follow/110304921404405715?domain=https://floss.social&style=social&label=Follow%20@galtzo%20on%20Floss.social"></a>
1498
1585
 
1499
1586
  </details>
1500
1587
 
data/SECURITY.md CHANGED
@@ -2,15 +2,9 @@
2
2
 
3
3
  ## Supported Versions
4
4
 
5
- | Version | Supported | Post-EOL / Enterprise |
6
- |----------|-----------|---------------------------------------|
7
- | 2.latest | ✅ | [Tidelift Subscription][tidelift-ref] |
8
- | 1.latest | ✅ | [Tidelift Subscription][tidelift-ref] |
9
- | <= 1 | ⛔ | ⛔ |
10
-
11
- ### EOL Policy
12
-
13
- Non-commercial support for the oldest version of Ruby (which itself is going EOL) will be dropped each year in April.
5
+ | Version | Supported |
6
+ |----------|-----------|
7
+ | 1.latest | ✅ |
14
8
 
15
9
  ## Security contact information
16
10
 
@@ -25,11 +19,3 @@ please consider sponsoring the project / maintainer @ https://liberapay.com/pbol
25
19
  or find other sponsorship links in the [README].
26
20
 
27
21
  [README]: README.md
28
-
29
- ## Enterprise Support
30
-
31
- Available as part of the Tidelift Subscription.
32
-
33
- The maintainers of this library and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use. [Learn more.][tidelift-ref]
34
-
35
- [tidelift-ref]: https://tidelift.com/subscription/pkg/rubygems-oauth2?utm_source=rubygems-oauth2&utm_medium=referral&utm_campaign=enterprise&utm_term=repo
@@ -132,8 +132,9 @@ You may need to set `snaky: false`. See inline documentation for more info.
132
132
  # @option opts [FixNum, String] :expires_in (nil) the number of seconds in which the AccessToken will expire
133
133
  # @option opts [FixNum, String] :expires_at (nil) the epoch time in seconds in which AccessToken will expire
134
134
  # @option opts [FixNum, String] :expires_latency (nil) the number of seconds by which AccessToken validity will be reduced to offset latency, @version 2.0+
135
- # @option opts [Symbol] :mode (:header) the transmission mode of the Access Token parameter value
136
- # one of :header, :body or :query
135
+ # @option opts [Symbol or callable] :mode (:header) the transmission mode of the Access Token parameter value:
136
+ # either one of :header, :body or :query, or a callable that accepts a request-verb parameter
137
+ # and returns one of these three symbols.
137
138
  # @option opts [String] :header_format ('Bearer %s') the string format to use for the Authorization header
138
139
  # @option opts [String] :param_name ('access_token') the parameter name to use for transmission of the
139
140
  # Access Token value in :body or :query transmission mode
@@ -324,7 +325,7 @@ You may need to set `snaky: false`. See inline documentation for more info.
324
325
  #
325
326
  # @see OAuth2::Client#request
326
327
  def request(verb, path, opts = {}, &block)
327
- configure_authentication!(opts)
328
+ configure_authentication!(opts, verb)
328
329
  @client.request(verb, path, opts, &block)
329
330
  end
330
331
 
@@ -370,8 +371,9 @@ You may need to set `snaky: false`. See inline documentation for more info.
370
371
 
371
372
  private
372
373
 
373
- def configure_authentication!(opts)
374
- case options[:mode]
374
+ def configure_authentication!(opts, verb)
375
+ mode = options[:mode].respond_to?(:call) ? options[:mode].call(verb) : options[:mode]
376
+ case mode
375
377
  when :header
376
378
  opts[:headers] ||= {}
377
379
  opts[:headers].merge!(headers)
@@ -389,7 +391,7 @@ You may need to set `snaky: false`. See inline documentation for more info.
389
391
  end
390
392
  # @todo support for multi-part (file uploads)
391
393
  else
392
- raise("invalid :mode option of #{options[:mode]}")
394
+ raise("invalid :mode option of #{mode}")
393
395
  end
394
396
  end
395
397
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OAuth2
4
4
  module Version
5
- VERSION = "2.0.14"
5
+ VERSION = "2.0.15"
6
6
  end
7
7
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauth2
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.14
4
+ version: 2.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Boling
@@ -207,8 +207,90 @@ dependencies:
207
207
  - - ">="
208
208
  - !ruby/object:Gem::Version
209
209
  version: 3.25.1
210
+ - !ruby/object:Gem::Dependency
211
+ name: nkf
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - "~>"
215
+ - !ruby/object:Gem::Version
216
+ version: '0.2'
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - "~>"
222
+ - !ruby/object:Gem::Version
223
+ version: '0.2'
224
+ - !ruby/object:Gem::Dependency
225
+ name: rexml
226
+ requirement: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - "~>"
229
+ - !ruby/object:Gem::Version
230
+ version: '3.2'
231
+ - - ">="
232
+ - !ruby/object:Gem::Version
233
+ version: 3.2.5
234
+ type: :development
235
+ prerelease: false
236
+ version_requirements: !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - "~>"
239
+ - !ruby/object:Gem::Version
240
+ version: '3.2'
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: 3.2.5
210
244
  - !ruby/object:Gem::Dependency
211
245
  name: kettle-dev
246
+ requirement: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '1.1'
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ version: 1.1.9
254
+ type: :development
255
+ prerelease: false
256
+ version_requirements: !ruby/object:Gem::Requirement
257
+ requirements:
258
+ - - "~>"
259
+ - !ruby/object:Gem::Version
260
+ version: '1.1'
261
+ - - ">="
262
+ - !ruby/object:Gem::Version
263
+ version: 1.1.9
264
+ - !ruby/object:Gem::Dependency
265
+ name: bundler-audit
266
+ requirement: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - "~>"
269
+ - !ruby/object:Gem::Version
270
+ version: 0.9.2
271
+ type: :development
272
+ prerelease: false
273
+ version_requirements: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - "~>"
276
+ - !ruby/object:Gem::Version
277
+ version: 0.9.2
278
+ - !ruby/object:Gem::Dependency
279
+ name: rake
280
+ requirement: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - "~>"
283
+ - !ruby/object:Gem::Version
284
+ version: '13.0'
285
+ type: :development
286
+ prerelease: false
287
+ version_requirements: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - "~>"
290
+ - !ruby/object:Gem::Version
291
+ version: '13.0'
292
+ - !ruby/object:Gem::Dependency
293
+ name: require_bench
212
294
  requirement: !ruby/object:Gem::Requirement
213
295
  requirements:
214
296
  - - "~>"
@@ -216,7 +298,7 @@ dependencies:
216
298
  version: '1.0'
217
299
  - - ">="
218
300
  - !ruby/object:Gem::Version
219
- version: 1.0.24
301
+ version: 1.0.4
220
302
  type: :development
221
303
  prerelease: false
222
304
  version_requirements: !ruby/object:Gem::Requirement
@@ -226,45 +308,114 @@ dependencies:
226
308
  version: '1.0'
227
309
  - - ">="
228
310
  - !ruby/object:Gem::Version
229
- version: 1.0.24
311
+ version: 1.0.4
230
312
  - !ruby/object:Gem::Dependency
231
- name: nkf
313
+ name: appraisal2
232
314
  requirement: !ruby/object:Gem::Requirement
233
315
  requirements:
234
316
  - - "~>"
235
317
  - !ruby/object:Gem::Version
236
- version: '0.2'
318
+ version: '3.0'
237
319
  type: :development
238
320
  prerelease: false
239
321
  version_requirements: !ruby/object:Gem::Requirement
240
322
  requirements:
241
323
  - - "~>"
242
324
  - !ruby/object:Gem::Version
243
- version: '0.2'
325
+ version: '3.0'
244
326
  - !ruby/object:Gem::Dependency
245
- name: rexml
327
+ name: kettle-test
246
328
  requirement: !ruby/object:Gem::Requirement
247
329
  requirements:
248
330
  - - "~>"
249
331
  - !ruby/object:Gem::Version
250
- version: '3.2'
332
+ version: '1.0'
333
+ type: :development
334
+ prerelease: false
335
+ version_requirements: !ruby/object:Gem::Requirement
336
+ requirements:
337
+ - - "~>"
338
+ - !ruby/object:Gem::Version
339
+ version: '1.0'
340
+ - !ruby/object:Gem::Dependency
341
+ name: rspec-pending_for
342
+ requirement: !ruby/object:Gem::Requirement
343
+ requirements:
344
+ - - "~>"
345
+ - !ruby/object:Gem::Version
346
+ version: '0.0'
251
347
  - - ">="
252
348
  - !ruby/object:Gem::Version
253
- version: 3.2.5
349
+ version: 0.0.17
254
350
  type: :development
255
351
  prerelease: false
256
352
  version_requirements: !ruby/object:Gem::Requirement
257
353
  requirements:
258
354
  - - "~>"
259
355
  - !ruby/object:Gem::Version
260
- version: '3.2'
356
+ version: '0.0'
261
357
  - - ">="
262
358
  - !ruby/object:Gem::Version
263
- version: 3.2.5
359
+ version: 0.0.17
360
+ - !ruby/object:Gem::Dependency
361
+ name: ruby-progressbar
362
+ requirement: !ruby/object:Gem::Requirement
363
+ requirements:
364
+ - - "~>"
365
+ - !ruby/object:Gem::Version
366
+ version: '1.13'
367
+ type: :development
368
+ prerelease: false
369
+ version_requirements: !ruby/object:Gem::Requirement
370
+ requirements:
371
+ - - "~>"
372
+ - !ruby/object:Gem::Version
373
+ version: '1.13'
374
+ - !ruby/object:Gem::Dependency
375
+ name: stone_checksums
376
+ requirement: !ruby/object:Gem::Requirement
377
+ requirements:
378
+ - - "~>"
379
+ - !ruby/object:Gem::Version
380
+ version: '1.0'
381
+ - - ">="
382
+ - !ruby/object:Gem::Version
383
+ version: 1.0.2
384
+ type: :development
385
+ prerelease: false
386
+ version_requirements: !ruby/object:Gem::Requirement
387
+ requirements:
388
+ - - "~>"
389
+ - !ruby/object:Gem::Version
390
+ version: '1.0'
391
+ - - ">="
392
+ - !ruby/object:Gem::Version
393
+ version: 1.0.2
394
+ - !ruby/object:Gem::Dependency
395
+ name: gitmoji-regex
396
+ requirement: !ruby/object:Gem::Requirement
397
+ requirements:
398
+ - - "~>"
399
+ - !ruby/object:Gem::Version
400
+ version: '1.0'
401
+ - - ">="
402
+ - !ruby/object:Gem::Version
403
+ version: 1.0.3
404
+ type: :development
405
+ prerelease: false
406
+ version_requirements: !ruby/object:Gem::Requirement
407
+ requirements:
408
+ - - "~>"
409
+ - !ruby/object:Gem::Version
410
+ version: '1.0'
411
+ - - ">="
412
+ - !ruby/object:Gem::Version
413
+ version: 1.0.3
264
414
  description: "\U0001F510 A Ruby wrapper for the OAuth 2.0 Authorization Framework,
265
415
  including the OAuth 2.1 draft spec, and OpenID Connect (OIDC)"
266
416
  email:
267
417
  - floss@galtzo.com
418
+ - oauth-ruby@googlegroups.com
268
419
  executables: []
269
420
  extensions: []
270
421
  extra_rdoc_files:
@@ -319,10 +470,10 @@ licenses:
319
470
  - MIT
320
471
  metadata:
321
472
  homepage_uri: https://oauth2.galtzo.com/
322
- source_code_uri: https://github.com/ruby-oauth/oauth2/tree/v2.0.14
323
- changelog_uri: https://github.com/ruby-oauth/oauth2/blob/v2.0.14/CHANGELOG.md
473
+ source_code_uri: https://github.com/ruby-oauth/oauth2/tree/v2.0.15
474
+ changelog_uri: https://github.com/ruby-oauth/oauth2/blob/v2.0.15/CHANGELOG.md
324
475
  bug_tracker_uri: https://github.com/ruby-oauth/oauth2/issues
325
- documentation_uri: https://www.rubydoc.info/gems/oauth2/2.0.14
476
+ documentation_uri: https://www.rubydoc.info/gems/oauth2/2.0.15
326
477
  mailing_list_uri: https://groups.google.com/g/oauth-ruby
327
478
  funding_uri: https://github.com/sponsors/pboling
328
479
  wiki_uri: https://gitlab.com/ruby-oauth/oauth2/-/wiki
@@ -331,11 +482,11 @@ metadata:
331
482
  rubygems_mfa_required: 'true'
332
483
  post_install_message: |2
333
484
 
334
- ---+++--- oauth2 v2.0.14 ---+++---
485
+ ---+++--- oauth2 v2.0.15 ---+++---
335
486
 
336
487
  (minor) ⚠️ BREAKING CHANGES ⚠️ when upgrading from < v2
337
488
  • Summary of breaking changes: https://gitlab.com/ruby-oauth/oauth2#what-is-new-for-v20
338
- • Changes in this patch: https://gitlab.com/ruby-oauth/oauth2/-/blob/v2.0.14/CHANGELOG.md#200-2022-06-21-tag
489
+ • Changes in this patch: https://gitlab.com/ruby-oauth/oauth2/-/blob/v2.0.15/CHANGELOG.md#2015-2025-09-08
339
490
 
340
491
  News:
341
492
  1. New documentation website, including for OAuth 2.1 and OIDC: https://oauth2.galtzo.com
@@ -343,7 +494,7 @@ post_install_message: |2
343
494
  3. New org name "ruby-oauth" on Open Source Collective, GitHub, GitLab, Codeberg (update git remotes!)
344
495
  4. Non-commercial support for the 2.x series will end by April, 2026. Please make a plan to upgrade to the next version prior to that date.
345
496
  Support will be dropped for Ruby 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 3.0, 3.1 and any other Ruby versions which will also have reached EOL by then.
346
- 5. Gem releases are cryptographically signed with a 20-year cert, with checksums by stone_checksums.
497
+ 5. Gem releases are cryptographically signed with a 20-year cert; SHA-256 & SHA-512 checksums by stone_checksums.
347
498
  6. Please consider supporting this project:
348
499
  • https://opencollective.com/ruby-oauth (new!)
349
500
  • https://liberapay.com/pboling
metadata.gz.sig CHANGED
Binary file