oauth2 2.0.9 → 2.0.25

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.
data/CHANGELOG.md CHANGED
@@ -1,215 +1,789 @@
1
1
  # Changelog
2
+
3
+ [![SemVer 2.0.0][📌semver-img]][📌semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog]
4
+
2
5
  All notable changes to this project will be documented in this file.
3
6
 
4
- The format (since v2) is based on [Keep a Changelog v1](https://keepachangelog.com/en/1.0.0/),
5
- and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.0.0.html).
7
+ The format is based on [Keep a Changelog][📗keep-changelog],
8
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
9
+ and [yes][📌major-versions-not-sacred], platform and engine support are part of the [public API][📌semver-breaking].
10
+ Please file a bug if you notice a violation of semantic versioning.
11
+
12
+ [📌semver]: https://semver.org/spec/v2.0.0.html
13
+ [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-FFDD67.svg?style=flat
14
+ [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
15
+ [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
16
+ [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
17
+ [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
6
18
 
7
19
  ## [Unreleased]
20
+
21
+ ### Added
22
+
23
+ ### Changed
24
+
25
+ ### Deprecated
26
+
27
+ ### Removed
28
+
29
+ ### Fixed
30
+
31
+ ### Security
32
+
33
+ ## [2.0.25] - 2026-07-14
34
+
35
+ - TAG: [v2.0.25][2.0.25t]
36
+ - COVERAGE: 100.00% -- 558/558 lines in 15 files
37
+ - BRANCH COVERAGE: 97.89% -- 186/190 branches in 15 files
38
+ - 88.35% documented
39
+
40
+ ### Added
41
+
42
+ - Added support for JRuby 10.1 and TruffleRuby 34.0.
43
+
44
+ ### Changed
45
+
46
+ - Raised the `anonymous_loader` runtime dependency floor to `>= 0.1.3`.
47
+ - Raised the `auth-sanitizer` runtime dependency floor to `>= 0.2.3`.
48
+ - Retemplated generated project metadata, support documentation, CI workflows,
49
+ binstubs, and development dependency floors with `kettle-jem` v7.0.0.
50
+
51
+ ### Fixed
52
+
53
+ - Package configured license files in gem release file lists.
54
+
55
+ ## [2.0.24] - 2026-06-18
56
+
57
+ - TAG: [v2.0.24][2.0.24t]
58
+ - COVERAGE: 100.00% -- 558/558 lines in 15 files
59
+ - BRANCH COVERAGE: 97.89% -- 186/190 branches in 15 files
60
+ - 88.35% documented
61
+
62
+ ### Changed
63
+
64
+ - Raised the `anonymous_loader` runtime dependency floor to `>= 0.1.1`.
65
+ - Raised the `auth-sanitizer` runtime dependency floor to `>= 0.2.2` and
66
+ switched isolated sanitizer loading to the released `anonymous_loader` gem,
67
+ including local workspace wiring for the new runtime dependency.
68
+
69
+ ### Fixed
70
+
71
+ - Fixed isolated `auth-sanitizer` loading when Bundler standalone setup makes
72
+ `auth_sanitizer/loader.rb` available on `$LOAD_PATH` without adding
73
+ `auth-sanitizer` to `Gem.loaded_specs` or `GEM_PATH`.
74
+
75
+ ## [2.0.23] - 2026-06-13
76
+
77
+ - TAG: [v2.0.23][2.0.23t]
78
+ - COVERAGE: 100.00% -- 562/562 lines in 15 files
79
+ - BRANCH COVERAGE: 97.89% -- 186/190 branches in 15 files
80
+ - 88.35% documented
81
+
82
+ ### Changed
83
+
84
+ - Upgraded to snaky_hash v2.0.6 by @pboling
85
+ - Refreshed generated GHA workflow action SHA pins by @pboling
86
+
87
+ ### Fixed
88
+
89
+ - Addressed Reek code-quality checks with targeted cleanup and documented compatibility exclusions by @pboling
90
+ - Fixed deprecation warning from MultiXML by @robzolkos
91
+
92
+ [gh!733]: https://github.com/ruby-oauth/oauth2/pull/733
93
+
94
+ - Fixed head appraisal dependency conflicts and Ruby 2.4 protocol-relative redirect handling by @pboling
95
+
96
+ ## [2.0.22] - 2026-06-07
97
+
98
+ - TAG: [v2.0.22][2.0.22t]
99
+ - COVERAGE: 100.00% -- 542/542 lines in 15 files
100
+ - BRANCH COVERAGE: 100.00% -- 180/180 branches in 15 files
101
+ - 88.35% documented
102
+
103
+ ### Changed
104
+
105
+ - Raised generated development tooling floors to `kettle-dev` >= 2.1.1 and
106
+ `version_gem` >= 1.1.11.
107
+ - Raised the runtime dependency floor for `snaky_hash` to `>= 2.0.5`.
108
+
109
+ ### Security
110
+
111
+ - [GHSA-pp92-crg2-gfv9][GHSA-pp92-crg2-gfv9] Prevent protocol-relative redirect `Location` values from changing request authority, and strip `Authorization` headers from cross-origin redirects by @tonghuaroot and @pboling
112
+
113
+ [GHSA-pp92-crg2-gfv9]: https://github.com/ruby-oauth/oauth2/security/advisories/GHSA-pp92-crg2-gfv9
114
+
115
+ ## [2.0.21] - 2026-06-06
116
+
117
+ - TAG: [v2.0.21][2.0.21t]
118
+ - COVERAGE: 100.00% -- 525/525 lines in 15 files
119
+ - BRANCH COVERAGE: 100.00% -- 174/174 branches in 15 files
120
+ - 88.35% documented
121
+
122
+ ### Added
123
+
124
+ - [gh!730][gh!730] - Alternatives section to README by @jonathangrinstead
125
+ - Updates to alternatives section - by @pboling
126
+
127
+ [gh!730]: https://github.com/ruby-oauth/oauth2/pull/730
128
+
129
+ - Added conditional `appraisal2-rubocop` Appraisal root loading on modern Ruby
130
+ so generated Appraisal gemfiles are normalized during generation - by @pboling
131
+
132
+ ### Changed
133
+
134
+ - Raised generated `version_gem` dependency floor to `version_gem` >= 1.1.10 - by @pboling
135
+ - Raised the runtime dependency floor for `auth-sanitizer` to `>= 0.2.1` so
136
+ OAuth2 consumers get hash and nested-attribute inspect redaction fixes plus
137
+ downstream RBS duplicate-declaration fixes - by @pboling
138
+ - Refreshed generated package metadata, support documentation, CI workflows,
139
+ and development dependency floors from the current kettle-jem template - by @pboling
140
+ - Documented the current per-version Ruby, JRuby, and TruffleRuby CI matrix in
141
+ generated README badges and compatibility tables - by @pboling
142
+ - Removed the post-install message from the gemspec to keep installs quieter - by @pboling
143
+ - Refreshed generated README support badges so Ruby 2.3 is listed as
144
+ supported but untested - by @pboling
145
+ - Refreshed generated project metadata from the current kettle-jem template - by @pboling
146
+ - Raised development tooling floors to `kettle-dev` >= 2.1.0 and
147
+ `appraisal2` >= 3.1.1 for Appraisal2's split generate/install/update
148
+ command semantics.
149
+ - Refreshed generated Appraisal and CI templates to appraisal2-rubocop 0.2.0 - by @pboling
150
+
151
+ ### Removed
152
+
153
+ - Dropped the obsolete Ruby 2.3 Caboose workflow and its Hashie appraisal
154
+ gemfiles; development tooling now requires Ruby 2.4 or newer, and Ruby 2.4
155
+ coverage is already handled by the standard Ruby 2.4 workflow - by @pboling
156
+
157
+ ### Fixed
158
+
159
+ - Updated CI workflow maintenance: QLTY uploads now use OIDC and harden-runner
160
+ is pinned to v2.19.4 - by @pboling
161
+ - Replaced stale platform CI `rake magic` commands with portable spec commands - by @pboling
162
+ - Pinned `multi_xml` below 0.9 for TruffleRuby compatibility - by @pboling
163
+ - Marked EOL TruffleRuby 22.3, 23.0, and 23.1 CI as experimental because they can crash inside the interpreter during Bundler setup - by @pboling
164
+ - Improved gemspec version loading for older Rubies and isolated load-path
165
+ contexts - by @pboling
166
+ - Constrained `json` in TruffleRuby and Ruby 3.2 appraisal bundles so generated
167
+ CI dependency resolution remains compatible with those Ruby targets - by @pboling
168
+ - Pinned generated GitHub Actions `actions/checkout` steps to the peeled
169
+ v6.0.3 commit SHA so OSSF Scorecard workflow verification accepts them - by @pboling
170
+ - Marked generated EOL TruffleRuby 22.3, 23.0, and 23.1 matrix entries
171
+ experimental so native extension build failures do not fail the whole
172
+ workflow - by @pboling
173
+ - Pinned `json` only for EOL TruffleRuby appraisal bundles, matching the
174
+ default `json` gem shipped with each TruffleRuby release instead of
175
+ constraining MRI Ruby appraisal bundles - by @pboling
176
+
177
+ ## [2.0.20] - 2026-05-20
178
+
179
+ - TAG: [v2.0.20][2.0.20t]
180
+ - COVERAGE: 99.62% -- 525/527 lines in 15 files
181
+ - BRANCH COVERAGE: 98.88% -- 176/178 branches in 15 files
182
+ - 88.35% documented
183
+
8
184
  ### Added
185
+
186
+ - OAuth2::VERSION (Traditional Constant Location) - by @pboling
187
+
9
188
  ### Changed
189
+
190
+ - auth-sanitizer v0.1.3 - by @pboling
191
+
10
192
  ### Fixed
193
+
194
+ - [gh!721][gh!721] Load `auth-sanitizer` through an internal isolated loader so requiring `oauth2` does not add top-level `Auth` or `AuthSanitizer` constants that may collide with downstream applications by @pboling
195
+
196
+ ### Security
197
+
198
+ [gh!721]: https://github.com/ruby-oauth/oauth2/pull/721
199
+
200
+ ## [2.0.19] - 2026-05-15
201
+
202
+ - TAG: [v2.0.19][2.0.19t]
203
+ - COVERAGE: 100.00% -- 515/515 lines in 14 files
204
+ - BRANCH COVERAGE: 100.00% -- 174/174 branches in 14 files
205
+ - 89.11% documented
206
+
207
+ ### Added
208
+
209
+ - [gh!707][gh!707] Add `OAuth2.config[:filtered_label]` to configure the placeholder used for filtered sensitive values in inspected objects and debug logging output by @pboling
210
+ - [gh!707][gh!707] Add `OAuth2.config[:filtered_debug_keys]` to configure which key names have their values redacted from debug logging output by @pboling
211
+
212
+ ### Changed
213
+
214
+ - [gh!707][gh!707] Make inspect-time and debug-log filters snapshot their configuration at initialization time rather than tracking later config changes by @pboling
215
+ - [gh!714][gh!714]Refactor sensitive-value filtering to use `auth-sanitizer` while preserving `OAuth2::FilteredAttributes` as a permanent API alias by @pboling
216
+
11
217
  ### Removed
12
218
 
219
+ - Remove the internal `OAuth2::ThingFilter` and `OAuth2::SanitizedLogger` implementations now provided by `auth-sanitizer` by @pboling
220
+
221
+ ### Security
222
+
223
+ - [gh!707][gh!707] Redact sensitive values from debug logging output, including Authorization headers and common token/secret fields in headers, query strings, form bodies, and JSON payloads by @pboling
224
+ - NOTE: debug logging has always been, and remains, opt-in. It is turned off by default.
225
+
226
+ [gh!707]: https://github.com/ruby-oauth/oauth2/pull/707
227
+ [gh!714]: https://github.com/ruby-oauth/oauth2/pull/714
228
+
229
+ ## [2.0.18] - 2025-11-08
230
+
231
+ - TAG: [v2.0.18][2.0.18t]
232
+ - COVERAGE: 100.00% -- 526/526 lines in 14 files
233
+ - BRANCH COVERAGE: 100.00% -- 178/178 branches in 14 files
234
+ - 90.48% documented
235
+
236
+ ### Added
237
+
238
+ - [gh!683][gh!683], [gh!684][gh!684] - Improve documentation by @pboling
239
+ - [gh!686][gh!686]- Add Incident Response Plan by @pboling
240
+ - [gh!687][gh!687]- Add Threat Model by @pboling
241
+
242
+ ### Changed
243
+
244
+ - [gh!685][gh!685] - upgrade kettle-dev v1.1.24 by @pboling
245
+ - upgrade kettle-dev v1.1.52 by @pboling
246
+ - Add open collective donors to README
247
+
248
+ ### Fixed
249
+
250
+ - [gh!690][gh!690], [gh!691][gh!691], [gh!692][gh!692] - Add yard-fence
251
+ - handle braces within code fences in markdown properly by @pboling
252
+
253
+ [gh!683]: https://github.com/ruby-oauth/oauth2/pull/683
254
+ [gh!684]: https://github.com/ruby-oauth/oauth2/pull/684
255
+ [gh!685]: https://github.com/ruby-oauth/oauth2/pull/685
256
+ [gh!686]: https://github.com/ruby-oauth/oauth2/pull/686
257
+ [gh!687]: https://github.com/ruby-oauth/oauth2/pull/687
258
+ [gh!690]: https://github.com/ruby-oauth/oauth2/pull/690
259
+ [gh!691]: https://github.com/ruby-oauth/oauth2/pull/691
260
+ [gh!692]: https://github.com/ruby-oauth/oauth2/pull/692
261
+
262
+ ## [2.0.17] - 2025-09-15
263
+
264
+ - TAG: [v2.0.17][2.0.17t]
265
+ - COVERAGE: 100.00% -- 526/526 lines in 14 files
266
+ - BRANCH COVERAGE: 100.00% -- 178/178 branches in 14 files
267
+ - 90.48% documented
268
+
269
+ ### Added
270
+
271
+ - [gh!682][gh!682] - AccessToken: support Hash-based verb-dependent token transmission mode (e.g., `{get: :query, post: :header}`)
272
+
273
+ [gh!682]: https://github.com/ruby-oauth/oauth2/pull/682
274
+
275
+ ## [2.0.16] - 2025-09-14
276
+
277
+ - TAG: [v2.0.16][2.0.16t]
278
+ - COVERAGE: 100.00% -- 520/520 lines in 14 files
279
+ - BRANCH COVERAGE: 100.00% -- 176/176 branches in 14 files
280
+ - 90.48% documented
281
+
282
+ ### Added
283
+
284
+ - [gh!680][gh!680] - E2E example using mock test server added in v2.0.11 by @pboling
285
+ - mock-oauth2-server upgraded to v2.3.0
286
+ - https://github.com/navikt/mock-oauth2-server
287
+ - `docker compose -f docker-compose-ssl.yml up -d --wait`
288
+ - `ruby examples/e2e.rb`
289
+ - `docker compose -f docker-compose-ssl.yml down`
290
+ - mock server readiness wait is 90s
291
+ - override via E2E_WAIT_TIMEOUT
292
+ - [gh!676][gh!676], [gh!679][gh!679] - Apache SkyWalking Eyes dependency license check by @pboling
293
+
294
+ ### Changed
295
+
296
+ - [gh!678][gh!678] - Many improvements to make CI more resilient (past/future proof) by @pboling
297
+ - [gh!681][gh!681] - Upgrade to kettle-dev v1.1.19
298
+
299
+ [gh!676]: https://github.com/ruby-oauth/oauth2/pull/676
300
+ [gh!678]: https://github.com/ruby-oauth/oauth2/pull/678
301
+ [gh!679]: https://github.com/ruby-oauth/oauth2/pull/679
302
+ [gh!680]: https://github.com/ruby-oauth/oauth2/pull/680
303
+ [gh!681]: https://github.com/ruby-oauth/oauth2/pull/681
304
+
305
+ ## [2.0.15] - 2025-09-08
306
+
307
+ - TAG: [v2.0.15][2.0.15t]
308
+ - COVERAGE: 100.00% -- 519/519 lines in 14 files
309
+ - BRANCH COVERAGE: 100.00% -- 174/174 branches in 14 files
310
+ - 90.48% documented
311
+
312
+ ### Added
313
+
314
+ - [gh!671][gh!671] - Complete documentation example for Instagram by @pboling
315
+ - .env.local.example for contributor happiness
316
+ - note lack of builds for JRuby 9.2, 9.3 & Truffleruby 22.3, 23.0
317
+ - [actions/runner - issues/2347][GHA-continue-on-error-ui]
318
+ - [community/discussions/15452][GHA-allow-failure]
319
+ - [gh!670][gh!670] - AccessToken: verb-dependent token transmission mode by @mrj
320
+ - e.g., Instagram GET=:query, POST/DELETE=:header
321
+
322
+ ### Changed
323
+
324
+ - [gh!669][gh!669] - Upgrade to kettle-dev v1.1.9 by @pboling
325
+
326
+ ### Fixed
327
+
328
+ - Remove accidentally duplicated lines, and fix typos in CHANGELOG.md
329
+ - point badge to the correct workflow for Ruby 2.3 (caboose.yml)
330
+
331
+ [gh!669]: https://github.com/ruby-oauth/oauth2/pull/669
332
+ [gh!670]: https://github.com/ruby-oauth/oauth2/pull/670
333
+ [gh!671]: https://github.com/ruby-oauth/oauth2/pull/671
334
+ [GHA-continue-on-error-ui]: https://github.com/actions/runner/issues/2347
335
+ [GHA-allow-failure]: https://github.com/orgs/community/discussions/15452
336
+
337
+ ## [2.0.14] - 2025-08-31
338
+
339
+ - TAG: [v2.0.14][2.0.14t]
340
+ - COVERAGE: 100.00% -- 519/519 lines in 14 files
341
+ - BRANCH COVERAGE: 100.00% -- 174/174 branches in 14 files
342
+ - 90.48% documented
343
+
344
+ ### Added
345
+
346
+ - improved documentation by @pboling
347
+ - [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
348
+ - [gh!666][gh!666] - Document usage of flat query params using Faraday::FlatParamsEncoder, with example URI, in README by @pboling
349
+ - Spec: verify flat params are preserved with Faraday::FlatParamsEncoder (skips on Faraday without FlatParamsEncoder)
350
+ - [gh!662][gh!662] - documentation notes in code comments and README highlighting OAuth 2.1 differences, with references, by @pboling
351
+ - PKCE required for auth code,
352
+ - exact redirect URI match,
353
+ - implicit/password grants omitted,
354
+ - avoid bearer tokens in query,
355
+ - refresh token guidance for public clients,
356
+ - simplified client definitions
357
+ - [gh!663][gh!663] - document how to implement an OIDC client with this gem in OIDC.md by @pboling
358
+ - also, list libraries built on top of the oauth2 gem that implement OIDC
359
+ - [gh!664][gh!664] - README: Add example for JHipster UAA (Spring Cloud) password grant, converted from Postman/Net::HTTP by @pboling
360
+
361
+ [gh!662]: https://github.com/ruby-oauth/oauth2/pull/662
362
+ [gh!663]: https://github.com/ruby-oauth/oauth2/pull/663
363
+ [gh!664]: https://github.com/ruby-oauth/oauth2/pull/664
364
+ [gh!665]: https://github.com/ruby-oauth/oauth2/pull/665
365
+ [gh!666]: https://github.com/ruby-oauth/oauth2/pull/666
366
+
367
+ ## [2.0.13] - 2025-08-30
368
+
369
+ - TAG: [v2.0.13][2.0.13t]
370
+ - COVERAGE: 100.00% -- 519/519 lines in 14 files
371
+ - BRANCH COVERAGE: 100.00% -- 174/174 branches in 14 files
372
+ - 90.48% documented
373
+
374
+ ### Added
375
+
376
+ - [gh!656][gh!656] - Support revocation with URL-encoded parameters
377
+ - [gh!660][gh!660] - Inline yard documentation by @pboling
378
+ - [gh!660][gh!660] - Complete RBS types documentation by @pboling
379
+ - [gh!660][gh!660]- (more) Comprehensive documentation / examples by @pboling
380
+ - [gh!657][gh!657] - Updated documentation for org-rename by @pboling
381
+ - More funding links by @Aboling0
382
+ - Documentation: Added docs/OIDC.md with OIDC 1.0 overview, example, and references
383
+
384
+ ### Changed
385
+
386
+ - Upgrade Code of Conduct to Contributor Covenant 2.1 by @pboling
387
+ - [gh!660][gh!660] - Shrink post-install message by 4 lines by @pboling
388
+
389
+ ### Fixed
390
+
391
+ - [gh!660][gh!660] - Links in README (including link to HEAD documentation) by @pboling
392
+
393
+ [gh!660]: https://github.com/ruby-oauth/oauth2/pull/660
394
+ [gh!657]: https://github.com/ruby-oauth/oauth2/pull/657
395
+ [gh!656]: https://github.com/ruby-oauth/oauth2/pull/656
396
+
397
+ ## [2.0.12] - 2025-05-31
398
+
399
+ - TAG: [v2.0.12][2.0.12t]
400
+ - Line Coverage: 100.0% (520 / 520)
401
+ - Branch Coverage: 100.0% (174 / 174)
402
+ - 80.00% documented
403
+
404
+ ### Added
405
+
406
+ - [gh!652][gh!652] - Support IETF rfc7515 JSON Web Signature - JWS by @mridang
407
+ - Support JWT `kid` for key discovery and management
408
+ - More Documentation by @pboling
409
+ - Documented Serialization Extensions
410
+ - Added Gatzo.com FLOSS logo by @Aboling0, CC BY-SA 4.0
411
+ - Documentation site @ https://oauth2.galtzo.com now complete
412
+
413
+ ### Changed
414
+
415
+ - Updates to gemspec (email, funding url, post install message)
416
+
417
+ ### Fixed
418
+
419
+ - Documentation Typos by @pboling
420
+
421
+ [gh!652]: https://github.com/ruby-oauth/oauth2/pull/652
422
+
423
+ ## [2.0.11] - 2025-05-23
424
+
425
+ - TAG: [v2.0.11][2.0.11t]
426
+ - COVERAGE: 100.00% -- 518/518 lines in 14 files
427
+ - BRANCH COVERAGE: 100.00% -- 172/172 branches in 14 files
428
+ - 80.00% documented
429
+
430
+ ### Added
431
+
432
+ - [gh!651](https://github.com/ruby-oauth/oauth2/pull/651) - `:snaky_hash_klass` option (@pboling)
433
+ - More documentation
434
+ - Codeberg as ethical mirror (@pboling)
435
+ - https://codeberg.org/ruby-oauth/oauth2
436
+ - Don't check for cert if SKIP_GEM_SIGNING is set (@pboling)
437
+ - All runtime deps, including oauth-xx sibling gems, are now tested against HEAD (@pboling)
438
+ - All runtime deps, including ruby-oauth sibling gems, are now tested against HEAD (@pboling)
439
+ - YARD config, GFM compatible with relative file links (@pboling)
440
+ - Documentation site on GitHub Pages (@pboling)
441
+ - [oauth2.galtzo.com](https://oauth2.galtzo.com)
442
+ - [!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)
443
+ - [gh!651](https://github.com/ruby-oauth/oauth2/pull/651) - Mock OAuth2 server for testing (@pboling)
444
+ - https://github.com/navikt/mock-oauth2-server
445
+
446
+ ### Changed
447
+
448
+ - [gh!651](https://github.com/ruby-oauth/oauth2/pull/651) - Upgraded to snaky_hash v2.0.3 (@pboling)
449
+ - Provides solution for serialization issues
450
+ - Updated `spec.homepage_uri` in gemspec to GitHub Pages YARD documentation site (@pboling)
451
+
452
+ ### Fixed
453
+
454
+ - [gh!650](https://github.com/ruby-oauth/oauth2/pull/650) - Regression in return type of `OAuth2::Response#parsed` (@pboling)
455
+ - Incorrect documentation related to silencing warnings (@pboling)
456
+
457
+ ## [2.0.10] - 2025-05-17
458
+
459
+ - TAG: [v2.0.10][2.0.10t]
460
+ - COVERAGE: 100.00% -- 518/518 lines in 14 files
461
+ - BRANCH COVERAGE: 100.00% -- 170/170 branches in 14 files
462
+ - 79.05% documented
463
+
464
+ ### Added
465
+
466
+ - [gh!632](https://github.com/ruby-oauth/oauth2/pull/632) - Added `funding.yml` (@Aboling0)
467
+ - [!635](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/635) - Added `.gitlab-ci.yml` (@jessieay)
468
+ - [#638](https://gitlab.com/ruby-oauth/oauth2/-/issues/638) - Documentation of support for **ILO Fundamental Principles of Rights at Work** (@pboling)
469
+ - [!642](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/642) - 20-year certificate for signing gem releases, expires 2045-04-29 (@pboling)
470
+ - Gemspec metadata
471
+ - funding_uri
472
+ - news_uri
473
+ - mailing_list_uri
474
+ - SHA256 and SHA512 Checksums for release
475
+ - [!643](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/643) - Add `token_name` option (@pboling)
476
+ - Specify the parameter name that identifies the access token
477
+ - [!645](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/645) - Add `OAuth2::OAUTH_DEBUG` constant, based on `ENV["OAUTH_DEBUG"] (@pboling)
478
+ - [!646](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/646) - Add `OAuth2.config.silence_extra_tokens_warning`, default: false (@pboling)
479
+ - [!647](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/647) - Add IETF RFC 7009 Token Revocation compliant (@pboling)
480
+ - `OAuth2::Client#revoke_token`
481
+ - `OAuth2::AccessToken#revoke`
482
+ - See: https://datatracker.ietf.org/doc/html/rfc7009
483
+ - [gh!644](https://github.com/ruby-oauth/oauth2/pull/644), [gh!645](https://github.com/ruby-oauth/oauth2/pull/645) - Added CITATION.cff (@Aboling0)
484
+ - [!648](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/648) - Improved documentation (@pboling)
485
+
486
+ ### Changed
487
+
488
+ - Default value of `OAuth2.config.silence_extra_tokens_warning` was `false`, now `true` (@pboling)
489
+ - Gem releases are now cryptographically signed, with a 20-year cert (@pboling)
490
+ - Allow linux distros to build release without signing, as their package managers sign independently
491
+ - [!647](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/647) - `OAuth2::AccessToken#refresh` now supports block param pass through (@pboling)
492
+ - [!647](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/647) - `OAuth2.config` is no longer writable (@pboling)
493
+ - [!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)
494
+
495
+ ### Fixed
496
+
497
+ - [#95](https://gitlab.com/ruby-oauth/oauth2/-/issues/95) - restoring an access token via `AccessToken#from_hash` (@pboling)
498
+ - This was a 13 year old bug report. 😘
499
+ - [#619](https://gitlab.com/ruby-oauth/oauth2/-/issues/619) - Internal options (like `snaky`, `raise_errors`, and `parse`) are no longer included in request (@pboling)
500
+ - [!633](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/633) - Spaces will now be encoded as `%20` instead of `+` (@nov.matake)
501
+ - [!634](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/634) - `CHANGELOG.md` documentation fix (@skuwa229)
502
+ - [!638](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/638) - fix `expired?` when `expires_in` is `0` (@disep)
503
+ - [!639](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/639) - Only instantiate `OAuth2::Error` if `raise_errors` option is `true` (@glytch2)
504
+ - [#639](https://gitlab.com/ruby-oauth/oauth2/-/issues/639) - `AccessToken#to_hash` is now serializable, just a regular Hash (@pboling)
505
+ - [!640](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/640) - `README.md` documentation fix (@martinezcoder)
506
+ - [!641](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/641) - Do not include sensitive information in the `inspect` (@manuelvanrijn)
507
+ - [#641](https://gitlab.com/ruby-oauth/oauth2/-/issues/641) - Made default JSON response parser more resilient (@pboling)
508
+ - [#645](https://gitlab.com/ruby-oauth/oauth2/-/issues/645) - Response no longer becomes a snaky hash (@pboling)
509
+ - [gh!646](https://github.com/ruby-oauth/oauth2/pull/646) - Change `require` to `require_relative` (improve performance) (@Aboling0)
510
+
13
511
  ## [2.0.9] - 2022-09-16
512
+
513
+ - TAG: [v2.0.9][2.0.9t]
514
+
14
515
  ### Added
516
+
15
517
  - More specs (@pboling)
518
+
16
519
  ### Changed
520
+
17
521
  - Complete migration to main branch as default (@pboling)
18
522
  - Complete migration to Gitlab, updating all links, and references in VCS-managed files (@pboling)
19
523
 
20
524
  ## [2.0.8] - 2022-09-01
525
+
526
+ - TAG: [v2.0.8][2.0.8t]
527
+
21
528
  ### Changed
22
- - [!630](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/630) - Extract snaky_hash to external dependency (@pboling)
529
+
530
+ - [!630](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/630) - Extract snaky_hash to external dependency (@pboling)
531
+
23
532
  ### Added
24
- - [!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)
533
+
534
+ - [!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)
25
535
 
26
536
  ## [2.0.7] - 2022-08-22
537
+
538
+ - TAG: [v2.0.7][2.0.7t]
539
+
27
540
  ### Added
28
- - [#629](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/629) - Allow POST of JSON to get token (@pboling, @terracatta)
541
+
542
+ - [!629](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/629) - Allow POST of JSON to get token (@pboling, @terracatta)
543
+
29
544
  ### Fixed
30
- - [#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)
31
- - Note: This fixes compatibility with `omniauth-oauth2` and AWS
32
- - [#625](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/625) - Fixes the printed version in the post install message (@hasghari)
545
+
546
+ - [!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)
547
+ - Note: This fixes compatibility with `omniauth-oauth2` and AWS
548
+ - [!625](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/625) - Fixes the printed version in the post install message (@hasghari)
33
549
 
34
550
  ## [2.0.6] - 2022-07-13
551
+
552
+ - TAG: [v2.0.6][2.0.6t]
553
+
35
554
  ### Fixed
36
- - [#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)
555
+
556
+ - [!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)
37
557
 
38
558
  ## [2.0.5] - 2022-07-07
559
+
560
+ - TAG: [v2.0.5][2.0.5t]
561
+
39
562
  ### Fixed
40
- - [#620](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/620) - Documentation improvements, to help with upgrading (@swanson)
41
- - [#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)
42
- - All data in responses is now returned, with the access token removed and set as `token`
43
- - `refresh_token` is no longer dropped
44
- - **BREAKING**: Microsoft's `id_token` is no longer left as `access_token['id_token']`, but moved to the standard `access_token.token` that all other strategies use
45
- - Remove `parse` and `snaky` from options so they don't get included in response
46
- - There is now 100% test coverage, for lines _and_ branches, and it will stay that way.
563
+
564
+ - [!620](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/620) - Documentation improvements, to help with upgrading (@swanson)
565
+ - [!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)
566
+ - All data in responses is now returned, with the access token removed and set as `token`
567
+ - `refresh_token` is no longer dropped
568
+ - **BREAKING**: Microsoft's `id_token` is no longer left as `access_token['id_token']`, but moved to the standard `access_token.token` that all other strategies use
569
+ - Remove `parse` and `snaky` from options so they don't get included in response
570
+ - There is now 100% test coverage, for lines _and_ branches, and it will stay that way.
47
571
 
48
572
  ## [2.0.4] - 2022-07-01
573
+
574
+ - TAG: [v2.0.4][2.0.4t]
575
+
49
576
  ### Fixed
50
- - [#618](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/618) - In some scenarios the `snaky` option default value was not applied (@pboling)
577
+
578
+ - [!618](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/618) - In some scenarios the `snaky` option default value was not applied (@pboling)
51
579
 
52
580
  ## [2.0.3] - 2022-06-28
581
+
582
+ - TAG: [v2.0.3][2.0.3t]
583
+
53
584
  ### Added
54
- - [#611](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/611) - Proper deprecation warnings for `extract_access_token` argument (@pboling)
55
- - [#612](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/612) - Add `snaky: false` option to skip conversion to `OAuth2::SnakyHash` (default: true) (@pboling)
585
+
586
+ - [!611](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/611) - Proper deprecation warnings for `extract_access_token` argument (@pboling)
587
+ - [!612](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/612) - Add `snaky: false` option to skip conversion to `OAuth2::SnakyHash` (default: true) (@pboling)
588
+
56
589
  ### Fixed
57
- - [#608](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/608) - Wrap `Faraday::TimeoutError` in `OAuth2::TimeoutError` (@nbibler)
58
- - [#615](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/615) - Fix support for requests with blocks, see `Faraday::Connection#run_request` (@pboling)
590
+
591
+ - [!608](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/608) - Wrap `Faraday::TimeoutError` in `OAuth2::TimeoutError` (@nbibler)
592
+ - [!615](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/615) - Fix support for requests with blocks, see `Faraday::Connection#run_request` (@pboling)
59
593
 
60
594
  ## [2.0.2] - 2022-06-24
595
+
596
+ - TAG: [v2.0.2][2.0.2t]
597
+
61
598
  ### Fixed
62
- - [#604](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/604) - Wrap `Faraday::TimeoutError` in `OAuth2::TimeoutError` (@stanhu)
63
- - [#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)
64
- - [#607](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/607) - CHANGELOG correction, reference to `OAuth2::ConnectionError` (@zavan)
599
+
600
+ - [!604](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/604) - Wrap `Faraday::TimeoutError` in `OAuth2::TimeoutError` (@stanhu)
601
+ - [!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)
602
+ - [!607](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/607) - CHANGELOG correction, reference to `OAuth2::ConnectionError` (@zavan)
65
603
 
66
604
  ## [2.0.1] - 2022-06-22
605
+
606
+ - TAG: [v2.0.1][2.0.1t]
607
+
67
608
  ### Added
609
+
68
610
  - Documentation improvements (@pboling)
69
611
  - Increased test coverage to 99% (@pboling)
70
612
 
71
613
  ## [2.0.0] - 2022-06-21
614
+
615
+ - TAG: [v2.0.0][2.0.0t]
616
+
72
617
  ### Added
73
- - [#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)
74
- - [#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)
75
- - [#220](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/220) - Support IETF rfc7523 JWT Bearer Tokens Draft 04+ (@jhmoore)
76
- - [#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)
77
- - [#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)
78
- - [#346](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/571) - Modern gem structure (@pboling)
79
- - [#351](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/351) - Support Jruby 9k (@pboling)
80
- - [#362](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/362) - Support SemVer release version scheme (@pboling)
81
- - [#363](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/363) - New method `OAuth2::AccessToken#refresh!` same as old `refresh`, with backwards compatibility alias (@pboling)
82
- - [#364](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/364) - Support `application/hal+json` format (@pboling)
83
- - [#365](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/365) - Support `application/vnd.collection+json` format (@pboling)
84
- - [#376](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/376) - _Documentation_: Example / Test for Google 2-legged JWT (@jhmoore)
85
- - [#381](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/381) - Spec for extra header params on client credentials (@nikz)
86
- - [#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)
87
- - [#412](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/412) - Support `application/vdn.api+json` format (from jsonapi.org) (@david-christensen)
88
- - [#413](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/413) - _Documentation_: License scan and report (@meganemura)
89
- - [#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)
90
- - [#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)
91
- - [#549](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/549) - Wrap `Faraday::ConnectionFailed` in `OAuth2::ConnectionError` (@nikkypx)
92
- - [#550](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/550) - Raise error if location header not present when redirecting (@stanhu)
93
- - [#552](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/552) - Add missing `version.rb` require (@ahorek)
94
- - [#553](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/553) - Support `application/problem+json` format (@janz93)
95
- - [#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)
96
- - [#571](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/571) - Support Ruby 3.1 (@pboling)
97
- - [#575](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/575) - Support IETF rfc7231, section 7.1.2 - relative location in redirect (@pboling)
98
- - [#581](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/581) - _Documentation_: of breaking changes (@pboling)
618
+
619
+ - [!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)
620
+ - [!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)
621
+ - [!220](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/220) - Support IETF rfc7523 JWT Bearer Tokens Draft 04+ (@jhmoore)
622
+ - [!298](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/298) - Set the response object on the access token on Client#get_token for debugging (@cpetschnig)
623
+ - [!305](https://gitlab.com/ruby-oauth/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)
624
+ - [!346](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/571) - Modern gem structure (@pboling)
625
+ - [!351](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/351) - Support Jruby 9k (@pboling)
626
+ - [!362](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/362) - Support SemVer release version scheme (@pboling)
627
+ - [!363](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/363) - New method `OAuth2::AccessToken#refresh!` same as old `refresh`, with backwards compatibility alias (@pboling)
628
+ - [!364](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/364) - Support `application/hal+json` format (@pboling)
629
+ - [!365](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/365) - Support `application/vnd.collection+json` format (@pboling)
630
+ - [!376](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/376) - _Documentation_: Example / Test for Google 2-legged JWT (@jhmoore)
631
+ - [!381](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/381) - Spec for extra header params on client credentials (@nikz)
632
+ - [!394](https://gitlab.com/ruby-oauth/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)
633
+ - [!412](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/412) - Support `application/vdn.api+json` format (from jsonapi.org) (@david-christensen)
634
+ - [!413](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/413) - _Documentation_: License scan and report (@meganemura)
635
+ - [!442](https://gitlab.com/ruby-oauth/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)
636
+ - [!494](https://gitlab.com/ruby-oauth/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)
637
+ - [!549](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/549) - Wrap `Faraday::ConnectionFailed` in `OAuth2::ConnectionError` (@nikkypx)
638
+ - [!550](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/550) - Raise error if location header not present when redirecting (@stanhu)
639
+ - [!552](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/552) - Add missing `version.rb` require (@ahorek)
640
+ - [!553](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/553) - Support `application/problem+json` format (@janz93)
641
+ - [!560](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/560) - Support IETF rfc6749, section 2.3.1 - don't set auth params when `nil` (@bouk)
642
+ - [!571](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/571) - Support Ruby 3.1 (@pboling)
643
+ - [!575](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/575) - Support IETF rfc7231, section 7.1.2 - relative location in redirect (@pboling)
644
+ - [!581](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/581) - _Documentation_: of breaking changes (@pboling)
645
+
99
646
  ### Changed
100
- - [#191](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/191) - **BREAKING**: Token is expired if `expired_at` time is `now` (@davestevens)
101
- - [#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)
102
- - [#317](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/317) - _Dependency_: Upgrade `jwt` to 2.x.x (@travisofthenorth)
103
- - [#338](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/338) - _Dependency_: Switch from `Rack::Utils.escape` to `CGI.escape` (@josephpage)
104
- - [#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)
105
- - [#410](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/410) - **BREAKING**: Removed the ability to call .error from an OAuth2::Response object (@jhmoore)
106
- - [#414](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/414) - Use Base64.strict_encode64 instead of custom internal logic (@meganemura)
107
- - [#489](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/489) - **BREAKING**: Default value for option `OAuth2::Client` - `:authorize_url` removed leading slash to work with relative paths by default (`'oauth/authorize'`) (@ghost)
108
- - [#489](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/489) - **BREAKING**: Default value for option `OAuth2::Client` - `:token_url` removed leading slash to work with relative paths by default (`'oauth/token'`) (@ghost)
109
- - [#507](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/507), [#575](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/575) - **BREAKING**: Transform keys to camel case, always, by default (ultimately via `rash_alt` gem)
110
- - Original keys will still work as previously, in most scenarios, thanks to `rash_alt` gem.
111
- - However, this is a _breaking_ change if you rely on `response.parsed.to_h`, as the keys in the result will be camel case.
112
- - As of version 2.0.4 you can turn key transformation off with the `snaky: false` option.
113
- - [#576](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/576) - **BREAKING**: Stop rescuing parsing errors (@pboling)
114
- - [#591](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/576) - _DEPRECATION_: `OAuth2::Client` - `:extract_access_token` option is deprecated
647
+
648
+ - [!191](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/191) - **BREAKING**: Token is expired if `expired_at` time is `now` (@davestevens)
649
+ - [!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)
650
+ - [!317](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/317) - _Dependency_: Upgrade `jwt` to 2.x.x (@travisofthenorth)
651
+ - [!338](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/338) - _Dependency_: Switch from `Rack::Utils.escape` to `CGI.escape` (@josephpage)
652
+ - [!339](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/339), [!368](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/368), [!424](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/424), [!479](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/479), [!493](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/493), [!539](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/539), [!542](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/542), [!553](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/553) - CI Updates, code coverage, linting, spelling, type fixes, New VERSION constant (@pboling, @josephpage, @ahorek)
653
+ - [!410](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/410) - **BREAKING**: Removed the ability to call .error from an OAuth2::Response object (@jhmoore)
654
+ - [!414](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/414) - Use Base64.strict_encode64 instead of custom internal logic (@meganemura)
655
+ - [!469](https://gitlab.com/ruby-oauth/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)
656
+ - [!469](https://gitlab.com/ruby-oauth/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)
657
+ - [!507](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/507), [!575](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/575) - **BREAKING**: Transform keys to snake case, always, by default (ultimately via `rash_alt` gem)
658
+ - Original keys will still work as previously, in most scenarios, thanks to `rash_alt` gem.
659
+ - However, this is a _breaking_ change if you rely on `response.parsed.to_h`, as the keys in the result will be snake case.
660
+ - As of version 2.0.4 you can turn key transformation off with the `snaky: false` option.
661
+ - [!576](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/576) - **BREAKING**: Stop rescuing parsing errors (@pboling)
662
+ - [!591](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/576) - _DEPRECATION_: `OAuth2::Client` - `:extract_access_token` option is deprecated
663
+
115
664
  ### Fixed
116
- - [#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)
117
- - [#294](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/294) - Fix: "Unexpected middleware set" issue with Faraday when `OAUTH_DEBUG=true` (@spectator, @gafrom)
118
- - [#300](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/300) - _Documentation_: `Oauth2::Error` - Error codes are strings, not symbols (@NobodysNightmare)
119
- - [#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)
120
- - [#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)
121
- - [#328](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/328) - _Documentation_: Homepage URL is SSL (@amatsuda)
122
- - [#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)
123
- - [#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)
124
- - [#380](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/380) - Fix: Stop attempting to encode non-encodable objects in `Oauth2::Error` (@jhmoore)
125
- - [#399](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/399) - Fix: Stop duplicating `redirect_uri` in `get_token` (@markus)
126
- - [#410](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/410) - Fix: `SystemStackError` caused by circular reference between Error and Response classes (@jhmoore)
127
- - [#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)
128
- - [#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)
129
- - [#482](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/482) - _Documentation_: Update last of `intridea` links to `oauth-xx` (@pboling)
130
- - [#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)
131
- - [#595](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/595) - Graceful handling of empty responses from `Client#get_token`, respecting `:raise_errors` config (@stanhu)
132
- - [#596](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/596) - Consistency between `AccessToken#refresh` and `Client#get_token` named arguments (@stanhu)
133
- - [#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)
665
+
666
+ - [!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)
667
+ - [!294](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/294) - Fix: "Unexpected middleware set" issue with Faraday when `OAUTH_DEBUG=true` (@spectator, @gafrom)
668
+ - [!300](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/300) - _Documentation_: `Oauth2::Error` - Error codes are strings, not symbols (@NobodysNightmare)
669
+ - [!318](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/318), [!326](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/326), [!343](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/343), [!347](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/347), [!397](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/397), [!464](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/464), [!561](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/561), [!565](https://gitlab.com/ruby-oauth/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)
670
+ - [!322](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/322), [!331](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/331), [!337](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/337), [!361](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/361), [!371](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/371), [!377](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/377), [!383](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/383), [!392](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/392), [!395](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/395), [!400](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/400), [!401](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/401), [!403](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/403), [!415](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/415), [!567](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/567) - Updated Rubocop, Rubocop plugins and improved code style (@pboling, @bquorning, @lautis, @spectator)
671
+ - [!328](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/328) - _Documentation_: Homepage URL is SSL (@amatsuda)
672
+ - [!339](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/339), [!479](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/479) - Update testing infrastructure for all supported Rubies (@pboling and @josephpage)
673
+ - [!366](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/366) - **Security**: Fix logging to `$stdout` of request and response bodies via Faraday's logger and `ENV["OAUTH_DEBUG"] == 'true'` (@pboling)
674
+ - [!380](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/380) - Fix: Stop attempting to encode non-encodable objects in `Oauth2::Error` (@jhmoore)
675
+ - [!399](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/399) - Fix: Stop duplicating `redirect_uri` in `get_token` (@markus)
676
+ - [!410](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/410) - Fix: `SystemStackError` caused by circular reference between Error and Response classes (@jhmoore)
677
+ - [!460](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/460) - Fix: Stop throwing errors when `raise_errors` is set to `false`; analog of [!524](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/524) for `1-4-stable` branch (@joaolrpaulo)
678
+ - [!472](https://gitlab.com/ruby-oauth/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)
679
+ - [!482](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/482) - _Documentation_: Update last of `intridea` links to `ruby-oauth` (@pboling)
680
+ - [!536](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/536) - **Security**: Compatibility with more (and recent) Ruby OpenSSL versions, Github Actions, Rubocop updated, analogous to [!535](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/535) on `1-4-stable` branch (@pboling)
681
+ - [!595](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/595) - Graceful handling of empty responses from `Client#get_token`, respecting `:raise_errors` config (@stanhu)
682
+ - [!596](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/596) - Consistency between `AccessToken#refresh` and `Client#get_token` named arguments (@stanhu)
683
+ - [!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)
684
+
134
685
  ### Removed
135
- - [#341](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/341) - Remove Rdoc & Jeweler related files (@josephpage)
136
- - [#342](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/342) - **BREAKING**: Dropped support for Ruby 1.8 (@josephpage)
137
- - [#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)
138
- - [#566](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/566) - _Dependency_: Removed `wwtd` (@bquorning)
139
- - [#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)
140
- - [#590](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/590) - _Dependency_: Removed `multi_json` (@stanhu)
686
+
687
+ - [!341](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/341) - Remove Rdoc & Jeweler related files (@josephpage)
688
+ - [!342](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/342) - **BREAKING**: Dropped support for Ruby 1.8 (@josephpage)
689
+ - [!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)
690
+ - [!566](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/566) - _Dependency_: Removed `wwtd` (@bquorning)
691
+ - [!589](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/589), [!593](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/593) - Remove support for expired MAC token draft spec (@stanhu)
692
+ - [!590](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/590) - _Dependency_: Removed `multi_json` (@stanhu)
141
693
 
142
694
  ## [1.4.11] - 2022-09-16
695
+
696
+ - TAG: [v1.4.11][1.4.11t]
143
697
  - Complete migration to main branch as default (@pboling)
144
698
  - Complete migration to Gitlab, updating all links, and references in VCS-managed files (@pboling)
145
699
 
146
700
  ## [1.4.10] - 2022-07-01
147
- - FIPS Compatibility [#587](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/587) (@akostadinov)
701
+
702
+ - TAG: [v1.4.10][1.4.10t]
703
+ - FIPS Compatibility [!587](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/587) (@akostadinov)
148
704
 
149
705
  ## [1.4.9] - 2022-02-20
150
- - Fixes compatibility with Faraday v2 [572](https://gitlab.com/oauth-xx/oauth2/-/issues/572)
706
+
707
+ - TAG: [v1.4.9][1.4.9t]
708
+ - Fixes compatibility with Faraday v2 [572](https://gitlab.com/ruby-oauth/oauth2/-/issues/572)
151
709
  - Includes supported versions of Faraday in test matrix:
152
- - Faraday ~> 2.2.0 with Ruby >= 2.6
153
- - Faraday ~> 1.10 with Ruby >= 2.4
154
- - Faraday ~> 0.17.3 with Ruby >= 1.9
710
+ - Faraday ~> 2.2.0 with Ruby >= 2.6
711
+ - Faraday ~> 1.10 with Ruby >= 2.4
712
+ - Faraday ~> 0.17.3 with Ruby >= 1.9
155
713
  - Add Windows and MacOS to test matrix
156
714
 
157
715
  ## [1.4.8] - 2022-02-18
716
+
717
+ - TAG: [v1.4.8][1.4.8t]
158
718
  - MFA is now required to push new gem versions (@pboling)
159
719
  - README overhaul w/ new Ruby Version and Engine compatibility policies (@pboling)
160
- - [#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)
720
+ - [!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)
161
721
  - Improve Code Coverage tracking (Coveralls, CodeCov, CodeClimate), and enable branch coverage (@pboling)
162
722
  - Add CodeQL, Security Policy, Funding info (@pboling)
163
723
  - Added Ruby 3.1, jruby, jruby-head, truffleruby, truffleruby-head to build matrix (@pboling)
164
- - [#543](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/543) - Support for more modern Open SSL libraries (@pboling)
724
+ - [!543](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/543) - Support for more modern Open SSL libraries (@pboling)
165
725
 
166
726
  ## [1.4.7] - 2021-03-19
167
- - [#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)
727
+
728
+ - TAG: [v1.4.7][1.4.7t]
729
+ - [!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)
168
730
 
169
731
  ## [1.4.6] - 2021-03-19
170
- - [#540](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/540) - Add VERSION constant (@pboling)
171
- - [#537](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/537) - Fix crash in OAuth2::Client#get_token (@anderscarling)
172
- - [#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)
732
+
733
+ - TAG: [v1.4.6][1.4.6t]
734
+ - [!540](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/540) - Add VERSION constant (@pboling)
735
+ - [!537](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/537) - Fix crash in OAuth2::Client#get_token (@anderscarling)
736
+ - [!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)
173
737
 
174
738
  ## [1.4.5] - 2021-03-18
175
- - [#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)
176
- - [#518](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/518) - Add extract_access_token option to OAuth2::Client (@jonspalmer)
177
- - [#507](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/507) - Fix camel case content type, response keys (@anvox)
178
- - [#500](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/500) - Fix YARD documentation formatting (@olleolleolle)
739
+
740
+ - TAG: [v1.4.5][1.4.5t]
741
+ - [!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)
742
+ - [!518](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/518) - Add extract_access_token option to OAuth2::Client (@jonspalmer)
743
+ - [!507](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/507) - Fix camel case content type, response keys (@anvox)
744
+ - [!500](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/500) - Fix YARD documentation formatting (@olleolleolle)
179
745
 
180
746
  ## [1.4.4] - 2020-02-12
181
- - [#408](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/408) - Fixed expires_at for formatted time (@Lomey)
747
+
748
+ - TAG: [v1.4.4][1.4.4t]
749
+ - [!408](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/408) - Fixed expires_at for formatted time (@Lomey)
182
750
 
183
751
  ## [1.4.3] - 2020-01-29
184
- - [#483](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/483) - add project metadata to gemspec (@orien)
185
- - [#495](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/495) - support additional types of access token requests (@SteveyblamFreeagent, @thomcorley, @dgholz)
186
- - Adds support for private_key_jwt and tls_client_auth
187
- - [#433](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/433) - allow field names with square brackets and numbers in params (@asm256)
752
+
753
+ - TAG: [v1.4.3][1.4.3t]
754
+ - [!483](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/483) - add project metadata to gemspec (@orien)
755
+ - [!495](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/495) - support additional types of access token requests (@SteveyblamFreeagent, @thomcorley, @dgholz)
756
+ - Adds support for private_key_jwt and tls_client_auth
757
+ - [!433](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/433) - allow field names with square brackets and numbers in params (@asm256)
188
758
 
189
759
  ## [1.4.2] - 2019-10-01
190
- - [#478](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/478) - support latest version of faraday & fix build (@pboling)
191
- - Officially support Ruby 2.6 and truffleruby
760
+
761
+ - TAG: [v1.4.2][1.4.2t]
762
+ - [!478](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/478) - support latest version of faraday & fix build (@pboling)
763
+ - Officially support Ruby 2.6 and truffleruby
192
764
 
193
765
  ## [1.4.1] - 2018-10-13
194
- - [#417](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/417) - update jwt dependency (@thewoolleyman)
195
- - [#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)
196
- - [#418](https://gitlab.com/oauth-xx/oauth2/-/merge_requests/418) - update faraday dependency (@pboling)
197
- - [#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)
198
- - [#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)
199
- - [#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)
200
- - [#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)
201
- - officially document supported Rubies
202
- * Ruby 1.9.3
203
- * Ruby 2.0.0
204
- * Ruby 2.1
205
- * Ruby 2.2
206
- * [JRuby 1.7][jruby-1.7] (targets MRI v1.9)
207
- * [JRuby 9.0][jruby-9.0] (targets MRI v2.0)
208
- * Ruby 2.3
209
- * Ruby 2.4
210
- * Ruby 2.5
211
- * [JRuby 9.1][jruby-9.1] (targets MRI v2.3)
212
- * [JRuby 9.2][jruby-9.2] (targets MRI v2.5)
766
+
767
+ - TAG: [v1.4.1][1.4.1t]
768
+ - [!417](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/417) - update jwt dependency (@thewoolleyman)
769
+ - [!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)
770
+ - [!418](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/418) - update faraday dependency (@pboling)
771
+ - [!420](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/420) - update [oauth2.gemspec](https://gitlab.com/ruby-oauth/oauth2/-/blob/1-4-stable/oauth2.gemspec) (@pboling)
772
+ - [!421](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/421) - fix [CHANGELOG.md](https://gitlab.com/ruby-oauth/oauth2/-/blob/1-4-stable/CHANGELOG.md) for previous releases (@pboling)
773
+ - [!422](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/422) - update [LICENSE](https://gitlab.com/ruby-oauth/oauth2/-/blob/1-4-stable/LICENSE) and [README.md](https://gitlab.com/ruby-oauth/oauth2/-/blob/1-4-stable/README.md) (@pboling)
774
+ - [!423](https://gitlab.com/ruby-oauth/oauth2/-/merge_requests/423) - update [builds](https://travis-ci.org/ruby-oauth/oauth2/builds), [Rakefile](https://gitlab.com/ruby-oauth/oauth2/-/blob/1-4-stable/Rakefile) (@pboling)
775
+ - officially document supported Rubies
776
+ * Ruby 1.9.3
777
+ * Ruby 2.0.0
778
+ * Ruby 2.1
779
+ * Ruby 2.2
780
+ * [JRuby 1.7][jruby-1.7] (targets MRI v1.9)
781
+ * [JRuby 9.0][jruby-9.0] (targets MRI v2.0)
782
+ * Ruby 2.3
783
+ * Ruby 2.4
784
+ * Ruby 2.5
785
+ * [JRuby 9.1][jruby-9.1] (targets MRI v2.3)
786
+ * [JRuby 9.2][jruby-9.2] (targets MRI v2.5)
213
787
 
214
788
  [jruby-1.7]: https://www.jruby.org/2017/05/11/jruby-1-7-27.html
215
789
  [jruby-9.0]: https://www.jruby.org/2016/01/26/jruby-9-0-5-0.html
@@ -217,16 +791,22 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
217
791
  [jruby-9.2]: https://www.jruby.org/2018/05/24/jruby-9-2-0-0.html
218
792
 
219
793
  ## [1.4.0] - 2017-06-09
794
+
795
+ - TAG: [v1.4.0][1.4.0t]
220
796
  - Drop Ruby 1.8.7 support (@sferik)
221
797
  - Fix some RuboCop offenses (@sferik)
222
798
  - _Dependency_: Remove Yardstick (@sferik)
223
799
  - _Dependency_: Upgrade Faraday to 0.12 (@sferik)
224
800
 
225
801
  ## [1.3.1] - 2017-03-03
802
+
803
+ - TAG: [v1.3.1][1.3.1t]
226
804
  - Add support for Ruby 2.4.0 (@pschambacher)
227
805
  - _Dependency_: Upgrade Faraday to Faraday 0.11 (@mcfiredrill, @rhymes, @pschambacher)
228
806
 
229
807
  ## [1.3.0] - 2016-12-28
808
+
809
+ - TAG: [v1.3.0][1.3.0t]
230
810
  - Add support for header-based authentication to the `Client` so it can be used across the library (@bjeanes)
231
811
  - Default to header-based authentication when getting a token from an authorisation code (@maletor)
232
812
  - **Breaking**: Allow an `auth_scheme` (`:basic_auth` or `:request_body`) to be set on the client, defaulting to `:request_body` to maintain backwards compatibility (@maletor, @bjeanes)
@@ -236,22 +816,36 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
236
816
  - Add support for Faraday 0.10 (@rhymes)
237
817
 
238
818
  ## [1.2.0] - 2016-07-01
819
+
820
+ - TAG: [v1.2.0][1.2.0t]
239
821
  - Properly handle encoding of error responses (so we don't blow up, for example, when Google's response includes a ∞) (@Motoshi-Nishihira)
240
822
  - Make a copy of the options hash in `AccessToken#from_hash` to avoid accidental mutations (@Linuus)
241
823
  - Use `raise` rather than `fail` to throw exceptions (@sferik)
242
824
 
243
825
  ## [1.1.0] - 2016-01-30
826
+
827
+ - TAG: [v1.1.0][1.1.0t]
244
828
  - Various refactors (eliminating `Hash#merge!` usage in `AccessToken#refresh!`, use `yield` instead of `#call`, freezing mutable objects in constants, replacing constants with class variables) (@sferik)
245
829
  - Add support for Rack 2, and bump various other dependencies (@sferik)
246
830
 
247
831
  ## [1.0.0] - 2014-07-09
832
+
833
+ - TAG: [v1.0.0][1.0.0t]
834
+
248
835
  ### Added
836
+
249
837
  - Add an implementation of the MAC token spec.
838
+
250
839
  ### Fixed
840
+
251
841
  - Fix Base64.strict_encode64 incompatibility with Ruby 1.8.7.
252
842
 
253
843
  ## [0.5.0] - 2011-07-29
844
+
845
+ - TAG: [v0.5.0][0.5.0t]
846
+
254
847
  ### Changed
848
+
255
849
  - *breaking* `oauth_token` renamed to `oauth_bearer`.
256
850
  - *breaking* `authorize_path` Client option renamed to `authorize_url`.
257
851
  - *breaking* `access_token_path` Client option renamed to `token_url`.
@@ -260,76 +854,206 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
260
854
 
261
855
  ## [0.4.1] - 2011-04-20
262
856
 
857
+ - TAG: [v0.4.1][0.4.1t]
858
+
263
859
  ## [0.4.0] - 2011-04-20
264
860
 
861
+ - TAG: [v0.4.0][0.4.0t]
862
+
265
863
  ## [0.3.0] - 2011-04-08
266
864
 
865
+ - TAG: [v0.3.0][0.3.0t]
866
+
267
867
  ## [0.2.0] - 2011-04-01
268
868
 
869
+ - TAG: [v0.2.0][0.2.0t]
870
+
269
871
  ## [0.1.1] - 2011-01-12
270
872
 
873
+ - TAG: [v0.1.1][0.1.1t]
874
+
271
875
  ## [0.1.0] - 2010-10-13
272
876
 
273
- ## [0.0.13] + [0.0.12] + [0.0.11] - 2010-08-17
877
+ - TAG: [v0.1.0][0.1.0t]
878
+
879
+ ## [0.0.13] - 2010-08-17
880
+
881
+ - TAG: [v0.0.13][0.0.13t]
882
+
883
+ ## [0.0.12] - 2010-08-17
884
+
885
+ - TAG: [v0.0.12][0.0.12t]
886
+
887
+ ## [0.0.11] - 2010-08-17
888
+
889
+ - TAG: [v0.0.11][0.0.11t]
274
890
 
275
891
  ## [0.0.10] - 2010-06-19
276
892
 
893
+ - TAG: [v0.0.10][0.0.10t]
894
+
277
895
  ## [0.0.9] - 2010-06-18
278
896
 
279
- ## [0.0.8] + [0.0.7] - 2010-04-27
897
+ - TAG: [v0.0.9][0.0.9t]
898
+
899
+ ## [0.0.8] - 2010-04-27
900
+
901
+ - TAG: [v0.0.8][0.0.8t]
902
+
903
+ ## [0.0.7] - 2010-04-27
904
+
905
+ - TAG: [v0.0.7][0.0.7t]
280
906
 
281
907
  ## [0.0.6] - 2010-04-25
282
908
 
909
+ - TAG: [v0.0.6][0.0.6t]
910
+
283
911
  ## [0.0.5] - 2010-04-23
284
912
 
285
- ## [0.0.4] + [0.0.3] + [0.0.2] + [0.0.1] - 2010-04-22
286
-
287
- [0.0.1]: https://gitlab.com/oauth-xx/oauth2/-/compare/311d9f4...v0.0.1
288
- [0.0.2]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.0.1...v0.0.2
289
- [0.0.3]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.0.2...v0.0.3
290
- [0.0.4]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.0.3...v0.0.4
291
- [0.0.5]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.0.4...v0.0.5
292
- [0.0.6]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.0.5...v0.0.6
293
- [0.0.7]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.0.6...v0.0.7
294
- [0.0.8]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.0.7...v0.0.8
295
- [0.0.9]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.0.8...v0.0.9
296
- [0.0.10]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.0.9...v0.0.10
297
- [0.0.11]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.0.10...v0.0.11
298
- [0.0.12]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.0.11...v0.0.12
299
- [0.0.13]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.0.12...v0.0.13
300
- [0.1.0]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.0.13...v0.1.0
301
- [0.1.1]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.1.0...v0.1.1
302
- [0.2.0]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.1.1...v0.2.0
303
- [0.3.0]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.2.0...v0.3.0
304
- [0.4.0]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.3.0...v0.4.0
305
- [0.4.1]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.4.0...v0.4.1
306
- [0.5.0]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.4.1...v0.5.0
307
- [1.0.0]: https://gitlab.com/oauth-xx/oauth2/-/compare/v0.9.4...v1.0.0
308
- [1.1.0]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.0.0...v1.1.0
309
- [1.2.0]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.1.0...v1.2.0
310
- [1.3.0]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.2.0...v1.3.0
311
- [1.3.1]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.3.0...v1.3.1
312
- [1.4.0]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.3.1...v1.4.0
313
- [1.4.1]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.4.0...v1.4.1
314
- [1.4.2]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.4.1...v1.4.2
315
- [1.4.3]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.4.2...v1.4.3
316
- [1.4.4]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.4.3...v1.4.4
317
- [1.4.5]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.4.4...v1.4.5
318
- [1.4.6]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.4.5...v1.4.6
319
- [1.4.7]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.4.6...v1.4.7
320
- [1.4.8]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.4.7...v1.4.8
321
- [1.4.9]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.4.8...v1.4.9
322
- [1.4.10]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.4.9...v1.4.10
323
- [1.4.11]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.4.10...v1.4.11
324
- [2.0.0]: https://gitlab.com/oauth-xx/oauth2/-/compare/v1.4.11...v2.0.0
325
- [2.0.1]: https://gitlab.com/oauth-xx/oauth2/-/compare/v2.0.0...v2.0.1
326
- [2.0.2]: https://gitlab.com/oauth-xx/oauth2/-/compare/v2.0.1...v2.0.2
327
- [2.0.3]: https://gitlab.com/oauth-xx/oauth2/-/compare/v2.0.2...v2.0.3
328
- [2.0.4]: https://gitlab.com/oauth-xx/oauth2/-/compare/v2.0.3...v2.0.4
329
- [2.0.5]: https://gitlab.com/oauth-xx/oauth2/-/compare/v2.0.4...v2.0.5
330
- [2.0.6]: https://gitlab.com/oauth-xx/oauth2/-/compare/v2.0.5...v2.0.6
331
- [2.0.7]: https://gitlab.com/oauth-xx/oauth2/-/compare/v2.0.6...v2.0.7
332
- [2.0.8]: https://gitlab.com/oauth-xx/oauth2/-/compare/v2.0.7...v2.0.8
333
- [2.0.9]: https://gitlab.com/oauth-xx/oauth2/-/compare/v2.0.8...v2.0.9
334
- [Unreleased]: https://gitlab.com/oauth-xx/oauth2/-/compare/v2.0.9...HEAD
913
+ - TAG: [v0.0.5][0.0.5t]
914
+
915
+ ## [0.0.4] - 2010-04-22
916
+
917
+ - TAG: [v0.0.4][0.0.4t]
918
+
919
+ ## [0.0.3] - 2010-04-22
920
+
921
+ - TAG: [v0.0.3][0.0.3t]
922
+
923
+ ## [0.0.2] - 2010-04-22
924
+
925
+ - TAG: [v0.0.2][0.0.2t]
926
+
927
+ ## [0.0.1] - 2010-04-22
928
+
929
+ - TAG: [v0.0.1][0.0.1t]
930
+
335
931
  [gemfiles/readme]: gemfiles/README.md
932
+
933
+ [Unreleased]: https://github.com/ruby-oauth/oauth2/compare/v2.0.25...HEAD
934
+ [2.0.25]: https://github.com/ruby-oauth/oauth2/compare/v2.0.24...v2.0.25
935
+ [2.0.25t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.25
936
+ [2.0.24]: https://github.com/ruby-oauth/oauth2/compare/v2.0.23...v2.0.24
937
+ [2.0.24t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.24
938
+ [2.0.23]: https://github.com/ruby-oauth/oauth2/compare/v2.0.22...v2.0.23
939
+ [2.0.23t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.23
940
+ [2.0.22]: https://github.com/ruby-oauth/oauth2/compare/v2.0.21...v2.0.22
941
+ [2.0.22t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.22
942
+ [2.0.21]: https://github.com/ruby-oauth/oauth2/compare/v2.0.20...v2.0.21
943
+ [2.0.21t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.21
944
+ [2.0.20]: https://github.com/ruby-oauth/oauth2/compare/v2.0.19...v2.0.20
945
+ [2.0.20t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.20
946
+ [2.0.19]: https://github.com/ruby-oauth/oauth2/compare/v2.0.18...v2.0.19
947
+ [2.0.19t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.19
948
+ [2.0.18]: https://github.com/ruby-oauth/oauth2/compare/v2.0.17...v2.0.18
949
+ [2.0.18t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.18
950
+ [2.0.17]: https://github.com/ruby-oauth/oauth2/compare/v2.0.16...v2.0.17
951
+ [2.0.17t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.17
952
+ [2.0.16]: https://github.com/ruby-oauth/oauth2/compare/v2.0.15...v2.0.16
953
+ [2.0.16t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.16
954
+ [2.0.15]: https://github.com/ruby-oauth/oauth2/compare/v2.0.14...v2.0.15
955
+ [2.0.15t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.15
956
+ [2.0.14]: https://github.com/ruby-oauth/oauth2/compare/v2.0.13...v2.0.14
957
+ [2.0.14t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.14
958
+ [2.0.13]: https://github.com/ruby-oauth/oauth2/compare/v2.0.12...v2.0.13
959
+ [2.0.13t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.13
960
+ [2.0.12]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.11...v2.0.12
961
+ [2.0.12t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.12
962
+ [2.0.11]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.10...v2.0.11
963
+ [2.0.11t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.11
964
+ [2.0.10]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.9...v2.0.10
965
+ [2.0.10t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.10
966
+ [2.0.9]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.8...v2.0.9
967
+ [2.0.9t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.9
968
+ [2.0.8]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.7...v2.0.8
969
+ [2.0.8t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.8
970
+ [2.0.7]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.6...v2.0.7
971
+ [2.0.7t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.7
972
+ [2.0.6]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.5...v2.0.6
973
+ [2.0.6t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.6
974
+ [2.0.5]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.4...v2.0.5
975
+ [2.0.5t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.5
976
+ [2.0.4]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.3...v2.0.4
977
+ [2.0.4t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.4
978
+ [2.0.3]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.2...v2.0.3
979
+ [2.0.3t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.3
980
+ [2.0.2]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.1...v2.0.2
981
+ [2.0.2t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.2
982
+ [2.0.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.0...v2.0.1
983
+ [2.0.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.1
984
+ [2.0.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.11...v2.0.0
985
+ [2.0.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.0
986
+ [1.4.11]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.10...v1.4.11
987
+ [1.4.11t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.11
988
+ [1.4.10]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.9...v1.4.10
989
+ [1.4.10t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.10
990
+ [1.4.9]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.8...v1.4.9
991
+ [1.4.9t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.9
992
+ [1.4.8]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.7...v1.4.8
993
+ [1.4.8t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.8
994
+ [1.4.7]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.6...v1.4.7
995
+ [1.4.7t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.7
996
+ [1.4.6]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.5...v1.4.6
997
+ [1.4.6t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.6
998
+ [1.4.5]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.4...v1.4.5
999
+ [1.4.5t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.5
1000
+ [1.4.4]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.3...v1.4.4
1001
+ [1.4.4t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.4
1002
+ [1.4.3]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.2...v1.4.3
1003
+ [1.4.3t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.3
1004
+ [1.4.2]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.1...v1.4.2
1005
+ [1.4.2t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.2
1006
+ [1.4.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.0...v1.4.1
1007
+ [1.4.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.1
1008
+ [1.4.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.3.1...v1.4.0
1009
+ [1.4.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.0
1010
+ [1.3.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.3.0...v1.3.1
1011
+ [1.3.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.3.1
1012
+ [1.3.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.2.0...v1.3.0
1013
+ [1.3.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.3.0
1014
+ [1.2.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.1.0...v1.2.0
1015
+ [1.2.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.2.0
1016
+ [1.1.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.0.0...v1.1.0
1017
+ [1.1.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.1.0
1018
+ [1.0.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.9.4...v1.0.0
1019
+ [1.0.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.0.0
1020
+ [0.5.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.4.1...v0.5.0
1021
+ [0.5.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.5.0
1022
+ [0.4.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.4.0...v0.4.1
1023
+ [0.4.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.4.1
1024
+ [0.4.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.3.0...v0.4.0
1025
+ [0.4.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.4.0
1026
+ [0.3.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.2.0...v0.3.0
1027
+ [0.3.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.3.0
1028
+ [0.2.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.1.1...v0.2.0
1029
+ [0.2.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.2.0
1030
+ [0.1.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.1.0...v0.1.1
1031
+ [0.1.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.1.1
1032
+ [0.1.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.13...v0.1.0
1033
+ [0.1.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.1.0
1034
+ [0.0.13]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.12...v0.0.13
1035
+ [0.0.13t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.13
1036
+ [0.0.12]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.11...v0.0.12
1037
+ [0.0.12t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.12
1038
+ [0.0.11]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.10...v0.0.11
1039
+ [0.0.11t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.11
1040
+ [0.0.10]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.9...v0.0.10
1041
+ [0.0.10t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.10
1042
+ [0.0.9]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.8...v0.0.9
1043
+ [0.0.9t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.9
1044
+ [0.0.8]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.7...v0.0.8
1045
+ [0.0.8t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.8
1046
+ [0.0.7]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.6...v0.0.7
1047
+ [0.0.7t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.7
1048
+ [0.0.6]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.5...v0.0.6
1049
+ [0.0.6t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.6
1050
+ [0.0.5]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.4...v0.0.5
1051
+ [0.0.5t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.5
1052
+ [0.0.4]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.3...v0.0.4
1053
+ [0.0.4t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.4
1054
+ [0.0.3]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.2...v0.0.3
1055
+ [0.0.3t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.3
1056
+ [0.0.2]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.1...v0.0.2
1057
+ [0.0.2t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.2
1058
+ [0.0.1]: https://github.com/ruby-oauth/oauth2/compare/311d9f4...v0.0.1
1059
+ [0.0.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.1