oauth2 2.0.18 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f43a3e156646bef90634677d617a155cff1f87d57ca030674f3ee05c160fa4d9
4
- data.tar.gz: 5a2d29e7cd920d4e2f515afc23896795477e5cb357e47b6f5c3d0c797194d54c
3
+ metadata.gz: 12dd3e2f3cb149c49f71730a5804b2048f566e30b0e3aabc99f8fec7a24169d0
4
+ data.tar.gz: f7adbcd67c2803bd456ced1dc96c6a26d8773dde70a387f44f176ce35567e810
5
5
  SHA512:
6
- metadata.gz: 471a77bbc0bd8a428ce01ba42ba8e9cb0ad35793eb5f7ae352946b9dda9a448152280c3bdf445255adb47b7f45d65efa11bff2affc2c2200f8e43f57f2a19a91
7
- data.tar.gz: 6bae92dd35b1bf9efd38b4d3eceb2451c1016dbd9270947f74ba4ff389fa78420558df095acd8ff7404a2b8b2cdb9438983d1feb59751dd4252f2b7bc75c8d31
6
+ metadata.gz: 9dc679e94e58e1fb5b4926889cb39d5308c6a4de6845a3562f030b8174f0a06e43d88d6ce7043b98d3046c59de8a49a1b6763684a0357e620b1c830ea6b7ae43
7
+ data.tar.gz: 677e9e28a831e1e7e20d2f2404a3769c82022098c683210f3f072c349bd7bde1e8357ebddd11b0c58327611e6380aa214b8983eb1634a6b35f42d8ac34e734f8
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,202 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
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
+
184
+ ### Added
185
+
186
+ - OAuth2::VERSION (Traditional Constant Location) - by @pboling
187
+
188
+ ### Changed
189
+
190
+ - auth-sanitizer v0.1.3 - by @pboling
191
+
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
+
217
+ ### Removed
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
+
33
229
  ## [2.0.18] - 2025-11-08
34
230
 
35
231
  - TAG: [v2.0.18][2.0.18t]
@@ -54,8 +250,6 @@ Please file a bug if you notice a violation of semantic versioning.
54
250
  - [gh!690][gh!690], [gh!691][gh!691], [gh!692][gh!692] - Add yard-fence
55
251
  - handle braces within code fences in markdown properly by @pboling
56
252
 
57
- ### Security
58
-
59
253
  [gh!683]: https://github.com/ruby-oauth/oauth2/pull/683
60
254
  [gh!684]: https://github.com/ruby-oauth/oauth2/pull/684
61
255
  [gh!685]: https://github.com/ruby-oauth/oauth2/pull/685
@@ -196,8 +390,6 @@ Please file a bug if you notice a violation of semantic versioning.
196
390
 
197
391
  - [gh!660][gh!660] - Links in README (including link to HEAD documentation) by @pboling
198
392
 
199
- ### Security
200
-
201
393
  [gh!660]: https://github.com/ruby-oauth/oauth2/pull/660
202
394
  [gh!657]: https://github.com/ruby-oauth/oauth2/pull/657
203
395
  [gh!656]: https://github.com/ruby-oauth/oauth2/pull/656
@@ -738,7 +930,21 @@ Please file a bug if you notice a violation of semantic versioning.
738
930
 
739
931
  [gemfiles/readme]: gemfiles/README.md
740
932
 
741
- [Unreleased]: https://github.com/ruby-oauth/oauth2/compare/v2.0.18...HEAD
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
742
948
  [2.0.18]: https://github.com/ruby-oauth/oauth2/compare/v2.0.17...v2.0.18
743
949
  [2.0.18t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.18
744
950
  [2.0.17]: https://github.com/ruby-oauth/oauth2/compare/v2.0.16...v2.0.17
data/CITATION.cff CHANGED
@@ -1,19 +1,19 @@
1
1
  cff-version: 1.2.0
2
- title: oauth2
2
+ title: "oauth2"
3
3
  message: >-
4
4
  If you use this work and you want to cite it,
5
5
  then you can use the metadata from this file.
6
6
  type: software
7
7
  authors:
8
- - given-names: Peter Hurn
9
- family-names: Boling
10
- email: peter@railsbling.com
11
- affiliation: railsbling.com
8
+ - given-names: "Peter H."
9
+ family-names: "Boling"
10
+ email: "floss@galtzo.com"
11
+ affiliation: "galtzo.com"
12
12
  orcid: 'https://orcid.org/0009-0008-8519-441X'
13
13
  identifiers:
14
14
  - type: url
15
15
  value: 'https://github.com/ruby-oauth/oauth2'
16
- description: oauth2
16
+ description: "oauth2"
17
17
  repository-code: 'https://github.com/ruby-oauth/oauth2'
18
18
  abstract: >-
19
19
  oauth2
data/CONTRIBUTING.md CHANGED
@@ -8,19 +8,27 @@ To submit a patch, please fork the project, create a patch with tests, and send
8
8
 
9
9
  Remember to [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] if you make changes.
10
10
 
11
+ ## Developer Certificate of Origin
12
+
13
+ In order to protect users of this project, we require all contributors to comply with the
14
+ [Developer Certificate of Origin](https://developercertificate.org/).
15
+ This ensures that all contributions are properly licensed and attributed.
16
+
11
17
  ## Help out!
12
18
 
13
- Take a look at the `reek` list which is the file called `REEK` and find something to improve.
19
+ Take a look at the open issues and pull requests, or use the gem and find something to improve.
14
20
 
15
21
  Follow these instructions:
16
22
 
17
- 1. Fork the repository
18
- 2. Create a feature branch (`git checkout -b my-new-feature`)
19
- 3. Make some fixes.
20
- 4. Commit changes (`git commit -am 'Added some feature'`)
21
- 5. Push to the branch (`git push origin my-new-feature`)
22
- 6. Make sure to add tests for it. This is important, so it doesn't break in a future release.
23
- 7. Create new Pull Request.
23
+ 1. Join the Discord: [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite]
24
+ 2. Fork the repository
25
+ 3. Create your feature branch (`git checkout -b my-new-feature`)
26
+ 4. Make some fixes.
27
+ 5. Commit your changes (`git commit -am 'Added some feature'`)
28
+ 6. Push to the branch (`git push origin my-new-feature`)
29
+ 7. Make sure to add tests for it. This is important, so it doesn't break in a future release.
30
+ 8. Create new Pull Request.
31
+ 9. Announce it in the channel for this org in the [Discord][✉️discord-invite]!
24
32
 
25
33
  ## Executables vs Rake tasks
26
34
 
@@ -42,6 +50,22 @@ There are many Rake tasks available as well. You can see them by running:
42
50
  bin/rake -T
43
51
  ```
44
52
 
53
+ ## Code quality checks
54
+
55
+ Run the Reek task when you want a smell check that fails on current findings:
56
+
57
+ ```shell
58
+ bin/rake reek
59
+ ```
60
+
61
+ Refresh the checked-in `REEK` backlog through the rake task, not by redirecting
62
+ the raw `reek` executable output. The rake task uses the project bundle and
63
+ avoids stale generated binstubs shadowing the Reek gem executable:
64
+
65
+ ```shell
66
+ bin/rake reek:update
67
+ ```
68
+
45
69
  ## Environment Variables for Local Development
46
70
 
47
71
  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.
@@ -52,7 +76,7 @@ General/runtime
52
76
  - CI: When set to true, adjusts default rake tasks toward CI behavior
53
77
 
54
78
  Coverage (kettle-soup-cover / SimpleCov)
55
- - K_SOUP_COV_DO: Enable coverage collection (default: true in .envrc)
79
+ - K_SOUP_COV_DO: Enable coverage collection (default: true in `mise.toml`)
56
80
  - K_SOUP_COV_FORMATTERS: Comma-separated list of formatters (html, xml, rcov, lcov, json, tty)
57
81
  - K_SOUP_COV_MIN_LINE: Minimum line coverage threshold (integer, e.g., 100)
58
82
  - K_SOUP_COV_MIN_BRANCH: Minimum branch coverage threshold (integer, e.g., 100)
@@ -78,35 +102,63 @@ Git hooks and commit message helpers (exe/kettle-commit-msg)
78
102
  - GIT_HOOK_FOOTER_SENTINEL: Required when footer append is enabled — a unique first-line sentinel to prevent duplicates
79
103
  - GIT_HOOK_FOOTER_APPEND_DEBUG: Extra debug output in the footer template (true/false)
80
104
 
81
- For a quick starting point, this repository’s `.envrc` shows sane defaults, and `.env.local` can override them locally.
105
+ Git diff driver setup
106
+ - Local setup writes repository `.gitattributes` entries and local Git `diff.smorg-*` command config so this checkout uses StructuredMerge semantic diffs.
107
+ - Global setup registers `diff.smorg-*` commands once in the user Git config; use it when you work across several StructuredMerge-enabled repositories.
108
+ - Include-file setup writes `.git/smorg/config` and includes it from local Git config, keeping command registrations out of the repository files.
109
+ - Git hosting forges generally ignore external diff drivers, so pull request views may still show raw textual diffs even when local `git diff` uses semantic drivers.
110
+
111
+ ```console
112
+ K_JEM_TEMPLATING=true kettle-jem install
113
+ ```
114
+
115
+ Troubleshooting Git diffs
116
+ - Use `git diff --no-ext-diff` to compare against Git's built-in diff output.
117
+ - Use `git diff --no-textconv` when a textconv projection obscures the raw file bytes you need to inspect.
118
+ - If Git reports a missing `smorg-*` executable, rerun `bundle install` and the setup command above, then check `git config --local --get-regexp '^diff\.smorg-'`.
119
+ - To remove managed local entries, run `K_JEM_TEMPLATING=true kettle-jem install --undo`; remove global command registrations with `git config --global --unset-all diff.smorg-ruby.command`.
120
+
121
+ For a quick starting point, this repository’s `mise.toml` defines the shared defaults, and `.env.local` can override them locally. Copy `.env.local.example` to `.env.local`, use `KEY=value` lines, and either activate `mise` in your shell or run commands through `mise exec -C /path/to/project -- ...`.
82
122
 
83
123
  ## Appraisals
84
124
 
85
125
  From time to time the [appraisal2][🚎appraisal2] gemfiles in `gemfiles/` will need to be updated.
126
+ Generated appraisal and CI workflow floors are controlled by `ruby.test_minimum`
127
+ in `.structuredmerge/kettle-jem.yml`; this project was templated with `ruby.test_minimum: 2.4`.
128
+ That value describes the lowest Ruby version expected to run the test/development
129
+ toolchain, and it may be higher than the gemspec runtime floor.
130
+
86
131
  They are created and updated with the commands:
87
132
 
88
133
  ```console
89
- bin/rake appraisal:update
134
+ bin/rake appraisal:generate
90
135
  ```
91
136
 
92
- When adding an appraisal to CI, check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
93
-
94
- ## The Reek List
95
-
96
- Take a look at the `reek` list which is the file called `REEK` and find something to improve.
137
+ Use `bin/rake appraisal:update` when you intentionally need to resolve fresh
138
+ appraisal locks.
97
139
 
98
- To refresh the `reek` list:
140
+ If you need to reset all gemfiles/*.gemfile.lock files:
99
141
 
100
142
  ```console
101
- bundle exec reek > REEK
143
+ bin/rake appraisal:reset
102
144
  ```
103
145
 
146
+ When adding an appraisal to CI, check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
147
+
104
148
  ## Run Tests
105
149
 
106
- To run all tests
150
+ Run tests via `kettle-test` (provided by `kettle-test`). It runs RSpec, writes the full log to
151
+ `tmp/kettle-test/rspec-TIMESTAMP.log`, and prints a compact highlight block with timing, seed,
152
+ pass/fail count, failing example list, and SimpleCov coverage percentages.
153
+
154
+ ```console
155
+ bundle exec kettle-test
156
+ ```
157
+
158
+ For targeted runs, disable the hard coverage threshold to avoid false failures:
107
159
 
108
160
  ```console
109
- bundle exec rake test
161
+ K_SOUP_COV_MIN_HARD=false bundle exec kettle-test spec/path/to/spec.rb
110
162
  ```
111
163
 
112
164
  ### Spec organization (required)
@@ -177,33 +229,34 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
177
229
  1. Run `bin/setup && bin/rake` as a "test, coverage, & linting" sanity check
178
230
  2. Update the version number in `version.rb`, and ensure `CHANGELOG.md` reflects changes
179
231
  3. Run `bin/setup && bin/rake` again as a secondary check, and to update `Gemfile.lock`
180
- 4. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
181
- 5. Run `git push` to trigger the final CI pipeline before release, and merge PRs
232
+ 4. Run `bin/rake yard` to regenerate the docs site using the canonical docs task
233
+ 5. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
234
+ 6. Run `git push` to trigger the final CI pipeline before release, and merge PRs
182
235
  - NOTE: Remember to [check the build][🧪build].
183
- 6. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
184
- 7. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
185
- 8. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure latest trunk code
186
- 9. Optional for older Bundler (< 2.7.0): Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use the same timestamp and generate the same checksums
236
+ 7. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
237
+ 8. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
238
+ 9. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure latest trunk code
239
+ 10. Optional for older Bundler (< 2.7.0): Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use the same timestamp and generate the same checksums
187
240
  - If your Bundler is >= 2.7.0, you can skip this; builds are reproducible by default.
188
241
  - Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH`
189
242
  - If the echo above has no output, then it didn't work.
190
243
  - Note: `zsh/datetime` module is needed, if running `zsh`.
191
244
  - In older versions of `bash` you can use `date +%s` instead, i.e. `export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH`
192
- 10. Run `bundle exec rake build`
193
- 11. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
245
+ 11. Run `bundle exec rake build`
246
+ 12. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
194
247
  to create SHA-256 and SHA-512 checksums. This functionality is provided by the `stone_checksums`
195
248
  [gem][💎stone_checksums].
196
249
  - The script automatically commits but does not push the checksums
197
- 12. Sanity check the SHA256, comparing with the output from the `bin/gem_checksums` command:
250
+ 13. Sanity check the SHA256, comparing with the output from the `bin/gem_checksums` command:
198
251
  - `sha256sum pkg/<gem name>-<version>.gem`
199
- 13. Run `bundle exec rake release` which will create a git tag for the version,
252
+ 14. Run `bundle exec rake release` which will create a git tag for the version,
200
253
  push git commits and tags, and push the `.gem` file to the gem host configured in the gemspec.
201
254
 
202
- [📜src-gl]: https://gitlab.com/ruby-oauth/oauth2/
255
+ [📜src-gl]: https://gitlab.com/ruby-oauth/oauth2
203
256
  [📜src-cb]: https://codeberg.org/ruby-oauth/oauth2
204
257
  [📜src-gh]: https://github.com/ruby-oauth/oauth2
205
258
  [🧪build]: https://github.com/ruby-oauth/oauth2/actions
206
- [🤝conduct]: https://gitlab.com/ruby-oauth/oauth2/-/blob/main/CODE_OF_CONDUCT.md
259
+ [🤝conduct]: https://github.com/ruby-oauth/oauth2/blob/main/CODE_OF_CONDUCT.md
207
260
  [🖐contrib-rocks]: https://contrib.rocks
208
261
  [🖐contributors]: https://github.com/ruby-oauth/oauth2/graphs/contributors
209
262
  [🚎contributors-gl]: https://gitlab.com/ruby-oauth/oauth2/-/graphs/main
@@ -219,3 +272,4 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
219
272
  [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
220
273
  [🚎appraisal2]: https://github.com/appraisal-rb/appraisal2
221
274
  [🏃‍♂️runner-tool-cache]: https://github.com/ruby/ruby-builder/releases/tag/toolcache
275
+ [✉️discord-invite]: https://discord.gg/3qme4XHNKN
data/FUNDING.md CHANGED
@@ -6,7 +6,7 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
6
6
 
7
7
  [![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]
8
8
 
9
- [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
9
+ [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi]
10
10
 
11
11
  [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
12
12
  [⛳liberapay]: https://liberapay.com/pboling/donate
@@ -16,12 +16,8 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
16
16
  [🖇osc-sponsors-i]: https://opencollective.com/ruby-oauth/sponsors/badge.svg?style=flat
17
17
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
18
18
  [🖇sponsor]: https://github.com/sponsors/pboling
19
- [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
20
- [🖇polar]: https://polar.sh/pboling
21
19
  [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
22
- [🖇kofi]: https://ko-fi.com/O5O86SNP4
23
- [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
24
- [🖇patreon]: https://patreon.com/galtzo
20
+ [🖇kofi]: https://ko-fi.com/pboling
25
21
  [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
26
22
  [🖇buyme]: https://www.buymeacoffee.com/pboling
27
23
  [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
data/LICENSE.md ADDED
@@ -0,0 +1,111 @@
1
+ # License
2
+
3
+ This project is made available under the following license.
4
+ Choose the option that best fits your use case:
5
+
6
+ - [MIT](MIT.md)
7
+
8
+ ## Copyright Notice
9
+
10
+ - Copyright (c) 2010-2014, 2016-2017 Erik Michaels-Ober
11
+ - Copyright (c) 2010 Jeremy Kemper
12
+ - Copyright (c) 2010-2011 Michael Bleigh
13
+ - Copyright (c) 2010-2011 Paul Walker
14
+ - Copyright (c) 2010 rick
15
+ - Copyright (c) 2010 Tim Habermaas
16
+ - Copyright (c) 2010 Wynn Netherland
17
+ - Copyright (c) 2011 Alexander Lang
18
+ - Copyright (c) 2011 Alexander Lang
19
+ - Copyright (c) 2011 Greg Spurrier
20
+ - Copyright (c) 2011 Jay Adkisson
21
+ - Copyright (c) 2011 Luke Saunders
22
+ - Copyright (c) 2011 Paul Walker
23
+ - Copyright (c) 2011 Simon Gate
24
+ - Copyright (c) 2012 Bas Vodde
25
+ - Copyright (c) 2012 Damian Janowski
26
+ - Copyright (c) 2012 Daniël van de Burgt
27
+ - Copyright (c) 2012 Dorren Chen
28
+ - Copyright (c) 2012 Igor Sales
29
+ - Copyright (c) 2012 Leigh Caplan
30
+ - Copyright (c) 2012 Michael Andrews
31
+ - Copyright (c) 2012 Omer Rauchwerger
32
+ - Copyright (c) 2012 Saverio Trioni
33
+ - Copyright (c) 2012 Trent Ogren
34
+ - Copyright (c) 2012 Vsevolod Romashov
35
+ - Copyright (c) 2013 Antonio Tapiador del Dujo
36
+ - Copyright (c) 2013 Eduardo Gurgel
37
+ - Copyright (c) 2013 Geostellar Developer
38
+ - Copyright (c) 2013-2014, 2018 Niels Ganser
39
+ - Copyright (c) 2013 Rainux Luo
40
+ - Copyright (c) 2013 Taylor Hedberg
41
+ - Copyright (c) 2013 Tim Clem
42
+ - Copyright (c) 2014 Dave Stevens
43
+ - Copyright (c) 2014 Ellis Berner
44
+ - Copyright (c) 2014 Frank Macreery
45
+ - Copyright (c) 2014 Michael Bleigh
46
+ - Copyright (c) 2014 Olivier Lacan
47
+ - Copyright (c) 2014 Peter Souter
48
+ - Copyright (c) 2014 Ryan Williams
49
+ - Copyright (c) 2015 Andrew Cantino and Jeff Moore
50
+ - Copyright (c) 2015 Thomas Walpole
51
+ - Copyright (c) 2016 Bo Jeanes
52
+ - Copyright (c) 2016 Cody Cutrer
53
+ - Copyright (c) 2016 Edward Rudd
54
+ - Copyright (c) 2016 Lawrence Oluyede
55
+ - Copyright (c) 2016 Linus Pettersson
56
+ - Copyright (c) 2016 Motoshi Nishihira
57
+ - Copyright (c) 2017 Adrian Setyadi
58
+ - Copyright (c) 2017-2018 Benjamin Quorning
59
+ - Copyright (c) 2017 Christoph Petschnig
60
+ - Copyright (c) 2017, 2022 Nathaniel Bibler
61
+ - Copyright (c) 2017 Oleg
62
+ - Copyright (c) 2017 Samuel Cochran
63
+ - Copyright (c) 2017 tetsuya
64
+ - Copyright (c) 2017 Yury Velikanau
65
+ - Copyright (c) 2018 Alex Kowalczuk
66
+ - Copyright (c) 2018 asm__
67
+ - Copyright (c) 2018 David Christensen
68
+ - Copyright (c) 2018 fossabot
69
+ - Copyright (c) 2018 Jeff Moore
70
+ - Copyright (c) 2018 Jeff Moore
71
+ - Copyright (c) 2018 Jonathan del Strother
72
+ - Copyright (c) 2018 Joseph Page
73
+ - Copyright (c) 2018 Joseph Page
74
+ - Copyright (c) 2018 Lomey
75
+ - Copyright (c) 2018 Markus Bengts
76
+ - Copyright (c) 2018 Mathias Klippinge
77
+ - Copyright (c) 2018 nikz
78
+ - Copyright (c) 2018-2019, 2021-2022, 2024-2026 Peter H. Boling
79
+ - Copyright (c) 2019 Daniel Fockler
80
+ - Copyright (c) 2019 Elliot Crosby-McCullough
81
+ - Copyright (c) 2019 João Paulo
82
+ - Copyright (c) 2019 Orien Madgwick
83
+ - Copyright (c) 2019 Ryan T. Hosford
84
+ - Copyright (c) 2019 Tom Corley
85
+ - Copyright (c) 2020 anvox
86
+ - Copyright (c) 2020 Jesse Cotton
87
+ - Copyright (c) 2020 Olle Jonsson
88
+ - Copyright (c) 2020 Stephen Reid
89
+ - Copyright (c) 2021 Anders Carling
90
+ - Copyright (c) 2021 dobon
91
+ - Copyright (c) 2021 Jan Zaydowicz
92
+ - Copyright (c) 2021 Nicholas Palaniuk
93
+ - Copyright (c) 2021-2022 Stan Hu
94
+ - Copyright (c) 2022 Benjamin Quorning
95
+ - Copyright (c) 2022 Bouke van der Bijl
96
+ - Copyright (c) 2022 nov
97
+ - Copyright (c) 2022 Rick Selby
98
+ - Copyright (c) 2022 Ryo Takahashi
99
+ - Copyright (c) 2023 Jessie Young
100
+ - Copyright (c) 2023 Карим Гимадеев
101
+ - Copyright (c) 2024 Aboling0
102
+ - Copyright (c) 2024 Elise Wood
103
+ - Copyright (c) 2024 Manuel van Rijn
104
+ - Copyright (c) 2025-2026 Annibelle Boling
105
+ - Copyright (c) 2025 Mark James
106
+ - Copyright (c) 2025 Mridang Agarwalla
107
+ - Copyright (c) 2025 Sasa Rosic
108
+ - Copyright (c) 2026 Jonathan Grinstead
109
+ - Copyright (c) 2026 kain
110
+ - Copyright (c) 2026 Rob Zolkos
111
+ - Copyright (c) 2026 StepSecurity Bot
@@ -1,7 +1,6 @@
1
- MIT License
1
+ The MIT License (MIT)
2
2
 
3
- Copyright (c) 2017-2025 Peter H. Boling, of Galtzo.com, and oauth2 contributors
4
- Copyright (c) 2011-2013 Michael Bleigh and Intridea, Inc.
3
+ See [LICENSE.md](LICENSE.md) for the copyright notice.
5
4
 
6
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
7
6
  of this software and associated documentation files (the "Software"), to deal
@@ -10,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
9
  copies of the Software, and to permit persons to whom the Software is
11
10
  furnished to do so, subject to the following conditions:
12
11
 
13
- The above copyright notice and this permission notice shall be included in all
14
- copies or substantial portions of the Software.
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
15
14
 
16
15
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
16
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
17
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
18
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- SOFTWARE.
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.