omniauth-identity 3.1.4 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -1,22 +1,25 @@
1
- <p align="center">
2
- <a href="https://discord.gg/3qme4XHNKN" target="_blank" rel="noopener">
3
- <img width="124px" src="https://github.com/galtzo-floss/shields-badge/raw/main/docs/images/logo/galtzo-floss-logos-original.svg?raw=true" alt="Galtzo.com Logo by Aboling0, CC BY-SA 4.0">
4
- </a>
5
- <a href="https://github.com/omniauth" target="_blank" rel="noopener">
6
- <img src="https://github.com/omniauth/omniauth-identity/raw/main/docs/images/logo/omniauth-logo-182px.png?raw=true" alt="OmniAuth Logo possibly by Ted O'Meara, license unknown">
7
- </a>
8
- <a href="https://www.ruby-lang.org/" target="_blank" rel="noopener">
9
- <img width="124px" src="https://github.com/galtzo-floss/shields-badge/raw/main/docs/images/logo/ruby-logo-198px.svg?raw=true" alt="Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5">
10
- </a>
11
- </p>
12
-
13
- # 🫵 OmniAuth::Identity
14
-
15
- [![Version][👽versioni]][👽version] [![License: MIT][📄license-img]][📄license-ref] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![Open Source Helpers][👽oss-helpi]][👽oss-help] [![Depfu][🔑depfui♻️]][🔑depfu] [![Coveralls Test Coverage][🔑coveralls-img]][🔑coveralls] [![CodeCov Test Coverage][🔑codecovi♻️]][🔑codecov] [![QLTY Test Coverage][🔑qlty-covi]][🔑qlty-cov] [![QLTY Maintainability][🔑qlty-mnti]][🔑qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Supported][🚎6-s-wfi]][🚎6-s-wf] [![CI Legacy][🚎4-lg-wfi]][🚎4-lg-wf] [![CI Unsupported][🚎7-us-wfi]][🚎7-us-wf] [![CI Ancient][🚎1-an-wfi]][🚎1-an-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf]
1
+ <a href="https://github.com/omniauth"><img alt="omniauth Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/omniauth/avatar-128px.svg" width="14%" align="right"/></a>
2
+
3
+ # 🫵 Omniauth::Identity
4
+
5
+ [![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
6
+
7
+ `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][✉️discord-invite], as I may have missed the [discord notification][✉️discord-invite].
16
8
 
17
9
  ---
18
10
 
19
- [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS or refugee efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS or refugee efforts using Patreon][🖇patreon-img]][🖇patreon]
11
+ `if ci_badges.map(&:color).all? { it == "green"}` 👇️ send money so I can do more of this. FLOSS maintenance is now my full-time job.
12
+
13
+ [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
14
+
15
+ <details>
16
+ <summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
17
+
18
+ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
19
+
20
+ </details>
21
+
22
+ ## 🌻 Synopsis <a href="https://discord.gg/3qme4XHNKN"><img alt="Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/avatar-128px.svg" width="8%" align="right"/></a> <a href="https://ruby-toolbox.com"><img alt="ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5" src="https://logos.galtzo.com/assets/images/ruby-lang/avatar-128px.svg" width="8%" align="right"/></a>
20
23
 
21
24
  The `omniauth-identity` gem provides a way for applications to utilize a
22
25
  traditional username/password based authentication system without the need
@@ -26,61 +29,87 @@ basic construct for user management and then gets out of the way.
26
29
 
27
30
  ## 💡 Info you can shake a stick at
28
31
 
29
- | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
30
- |-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
31
- | Works with JRuby | [![JRuby 9.2 Compat][💎jruby-9.2i]][🚎10-j-wf] [![JRuby 9.3 Compat][💎jruby-9.3i]][🚎10-j-wf] [![JRuby 9.4 Compat][💎jruby-9.4i]][🚎10-j-wf] [![JRuby 10.0 Compat][💎jruby-c-i]][🚎11-c-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf] |
32
- | Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎4-lg-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎6-s-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎6-s-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎6-s-wf] [![Ruby 3.4 Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf] |
33
- | Works with MRI Ruby 2 | [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎1-an-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎1-an-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎7-us-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎7-us-wf] |
34
- | Source | [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
35
- | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![BDFL Blog][🚂bdfl-blog-img]][🚂bdfl-blog] [![Wiki][📜wiki-img]][📜wiki] |
36
- | Compliance | [![License: MIT][📄license-img]][📄license-ref] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
37
- | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] |
38
- | Support | [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] |
39
- | Enterprise Support | [![Get help from me on Tidelift][🏙️entsup-tidelift-img]][🏙️entsup-tidelift]<br/>💡Subscribe for support guarantees covering _all_ FLOSS dependencies!<br/>💡Tidelift is part of [Sonar][🏙️entsup-tidelift-sonar]!<br/>💡Tidelift pays maintainers to maintain the software you depend on!<br/>📊`@`Pointy Haired Boss: An [enterprise support][🏙️entsup-tidelift] subscription is "[never gonna let you down][🧮kloc]", and *supports* open source maintainers! |
40
- | Comrade BDFL 🎖️ | [![Follow Me on LinkedIn][💖🖇linkedin-img]][💖🖇linkedin] [![Follow Me on Ruby.Social][💖🐘ruby-mast-img]][💖🐘ruby-mast] [![Follow Me on Bluesky][💖🦋bluesky-img]][💖🦋bluesky] [![Contact BDFL][🚂bdfl-contact-img]][🚂bdfl-contact] [![My technical writing][💖💁🏼‍♂️devto-img]][💖💁🏼‍♂️devto] |
41
- | `...` 💖 | [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![More About Me][💖💁🏼‍♂️aboutme-img]][💖💁🏼‍♂️aboutme] [🧊][💖🧊berg] [🐙][💖🐙hub] [🛖][💖🛖hut] [🧪][💖🧪lab] |
32
+ | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
33
+ |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
34
+ | Works with JRuby | [![JRuby 9.2 Compat][💎jruby-9.2i]][🚎jruby-9.2-wf] [![JRuby 9.3 Compat][💎jruby-9.3i]][🚎jruby-9.3-wf] <br/> [![JRuby 9.4 Compat][💎jruby-9.4i]][🚎jruby-9.4-wf] [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]|
35
+ | Works with Truffle Ruby | [![Truffle Ruby 22.3 Compat][💎truby-22.3i]][🚎truby-22.3-wf] [![Truffle Ruby 23.0 Compat][💎truby-23.0i]][🚎truby-23.0-wf] [![Truffle Ruby 23.1 Compat][💎truby-23.1i]][🚎truby-23.1-wf] <br/> [![Truffle Ruby 24.2 Compat][💎truby-24.2i]][🚎truby-24.2-wf] [![Truffle Ruby 25.0 Compat][💎truby-25.0i]][🚎truby-25.0-wf] [![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf]|
36
+ | Works with MRI Ruby 4 | [![Ruby 4.0 Compat][💎ruby-4.0i]][🚎11-c-wf] [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
37
+ | Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎ruby-3.0-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎ruby-3.1-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎ruby-3.2-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎ruby-3.3-wf] [![Ruby 3.4 Compat][💎ruby-3.4i]][🚎ruby-3.4-wf]|
38
+ | Works with MRI Ruby 2 | [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎ruby-2.4-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎ruby-2.5-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎ruby-2.6-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎ruby-2.7-wf]|
39
+ | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] |
40
+ | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
41
+ | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] |
42
+ | Compliance | [![License: MIT][📄license-img]][📄license] [![Apache license compatibility: Category A][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
43
+ | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] |
44
+ | Maintainer 🎖️ | [![Follow Me on LinkedIn][💖🖇linkedin-img]][💖🖇linkedin] [![Follow Me on Ruby.Social][💖🐘ruby-mast-img]][💖🐘ruby-mast] [![Follow Me on Bluesky][💖🦋bluesky-img]][💖🦋bluesky] [![Contact Maintainer][🚂maint-contact-img]][🚂maint-contact] [![My technical writing][💖💁🏼‍♂️devto-img]][💖💁🏼‍♂️devto] |
45
+ | `...` 💖 | [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![More About Me][💖💁🏼‍♂️aboutme-img]][💖💁🏼‍♂️aboutme] [🧊][💖🧊berg] [🐙][💖🐙hub] [🛖][💖🛖hut] [🧪][💖🧪lab] |
42
46
 
43
- ## ✨ Installation
47
+ ### Compatibility
44
48
 
45
- Install the gem and add to the application's Gemfile by executing:
49
+ Compatible with MRI Ruby 2.4+, and concordant releases of JRuby, and TruffleRuby.
50
+ CI workflows and Appraisals are generated for MRI Ruby 2.4+.
51
+ This test floor is configured by `ruby.test_minimum` in `.kettle-jem.yml` and
52
+ may be higher than the gem's runtime compatibility floor when legacy Rubies are
53
+ not practical for the current toolchain.
46
54
 
47
- $ bundle add omniauth-identity
55
+ | 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 and the color 💚 green 💚 |
56
+ |------------------------------------------------|--------------------------------------------------------|
57
+ | 👟 Check it out! | ✨ [github.com/appraisal-rb/appraisal2][💎appraisal2] ✨ |
48
58
 
49
- If bundler is not being used to manage dependencies, install the gem by executing:
59
+ ### Federated DVCS
50
60
 
51
- $ gem install omniauth-identity
61
+ <details markdown="1">
62
+ <summary>Find this repo on federated forges (Coming soon!)</summary>
52
63
 
53
- ### 🔒 Secure Installation
64
+ | Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI | Discussions |
65
+ |-------------------------------------------------|-----------------------------------------------------------------------|---------------------------|--------------------------|---------------------------|--------------------------|------------------------------|
66
+ | 🧪 [omniauth/omniauth-identity on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix | ➖ |
67
+ | 🧊 [omniauth/omniauth-identity on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix | ➖ |
68
+ | 🐙 [omniauth/omniauth-identity on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix | [💚][gh-discussions] |
69
+ | 🎮️ [Discord Server][✉️discord-invite] | [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] | [Let's][✉️discord-invite] | [talk][✉️discord-invite] | [about][✉️discord-invite] | [this][✉️discord-invite] | [library!][✉️discord-invite] |
54
70
 
55
- `omniauth-identity` is cryptographically signed, and has verifiable [SHA-256 and SHA-512][💎SHA_checksums] checksums by
56
- [stone_checksums][💎stone_checksums]. Be sure the gem you install hasn’t been tampered with
57
- by following the instructions below.
71
+ </details>
58
72
 
59
- Add my public key (if you haven’t already, expires 2045-04-29) as a trusted certificate:
73
+ [gh-discussions]: https://github.com/omniauth/omniauth-identity/discussions
60
74
 
61
- ```console
62
- gem cert --add <(curl -Ls https://raw.github.com/omniauth/omniauth-identity/main/certs/pboling.pem)
63
- ```
75
+ ### Enterprise Support [![Tidelift](https://tidelift.com/badges/package/rubygems/omniauth-identity)](https://tidelift.com/subscription/pkg/rubygems-omniauth-identity?utm_source=rubygems-omniauth-identity&utm_medium=referral&utm_campaign=readme)
64
76
 
65
- You only need to do that once. Then proceed to install with:
77
+ Available as part of the Tidelift Subscription.
66
78
 
67
- ```console
68
- gem install omniauth-identity -P MediumSecurity
69
- ```
79
+ <details markdown="1">
80
+ <summary>Need enterprise-level guarantees?</summary>
81
+
82
+ The maintainers of this and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use.
70
83
 
71
- The `MediumSecurity` trust profile will verify signed gems, but allow the installation of unsigned dependencies.
84
+ [![Get help from me on Tidelift][🏙️entsup-tidelift-img]][🏙️entsup-tidelift]
72
85
 
73
- This is necessary because not all of `omniauth-identity`’s dependencies are signed, so we cannot use `HighSecurity`.
86
+ - 💡Subscribe for support guarantees covering _all_ your FLOSS dependencies
87
+ - 💡Tidelift is part of [Sonar][🏙️entsup-tidelift-sonar]
88
+ - 💡Tidelift pays maintainers to maintain the software you depend on!<br/>📊`@`Pointy Haired Boss: An [enterprise support][🏙️entsup-tidelift] subscription is "[never gonna let you down][🧮kloc]", and *supports* open source maintainers
74
89
 
75
- If you want to up your security game full-time:
90
+ Alternatively:
91
+
92
+ - [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
93
+ - [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork]
94
+ - [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor]
95
+
96
+ </details>
97
+
98
+ ## ✨ Installation
99
+
100
+ Install the gem and add to the application's Gemfile by executing:
76
101
 
77
102
  ```console
78
- bundle config set --global trust-policy MediumSecurity
103
+ bundle add omniauth-identity
79
104
  ```
80
105
 
81
- NOTE: Be prepared to track down certs for signed gems and add them the same way you added mine.
106
+ If bundler is not being used to manage dependencies, install the gem by executing:
107
+
108
+ ```console
109
+ gem install omniauth-identity
110
+ ```
82
111
 
83
- ## 🔧 Compatibility
112
+ ## ⚙️ Configuration
84
113
 
85
114
  This gem is compatible with a wide range of Ruby versions and Ruby ORMs, as of May 2025, version 3.1.
86
115
 
@@ -94,14 +123,16 @@ This gem is compatible with a wide range of Ruby versions and Ruby ORMs, as of M
94
123
  * mongoid 7.3, 7.4, 8.1, 9.0
95
124
  * bson 4.12, 4.15, 5.0, HEAD
96
125
  * sequel 5.86+
97
- * At least 5 different database ORM adapters, which connect to 15 different database clients!
126
+ * rom-sql (Ruby Object Mapper) 3.7+
127
+ * At least 6 different database ORM adapters, which connect to 15 different database clients!
98
128
 
99
129
  | Databases | Adapter Libraries |
100
- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
130
+ |-----------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------|
101
131
  | MySQL, MariaDB, PostgreSQL, SQLite | [ActiveRecord](https://guides.rubyonrails.org/active_record_basics.html) |
102
132
  | CouchDB | [CouchPotato](https://github.com/langalex/couch_potato) |
103
133
  | MongoDB | [Mongoid](https://github.com/mongodb/mongoid) |
104
134
  | RethinkDB | [NoBrainer](http://nobrainer.io/) |
135
+ | ADO, Amalgalite, IBM_DB, JDBC, MySQL, MariaDB, ODBC, Oracle, PostgreSQL, SQLAnywhere, SQLite, and TinyTDS | [rom-sql](https://rom-rb.org/) |
105
136
  | ADO, Amalgalite, IBM_DB, JDBC, MySQL, MariaDB, ODBC, Oracle, PostgreSQL, SQLAnywhere, SQLite, and TinyTDS | [Sequel](http://sequel.jeremyevans.net) |
106
137
 
107
138
  ## 🔧 Basic Usage
@@ -163,6 +194,7 @@ whatever else you will need.
163
194
  ```ruby
164
195
  class SequelTestIdentity < Sequel::Model(:identities)
165
196
  include ::OmniAuth::Identity::Models::Sequel
197
+
166
198
  auth_key :email
167
199
  # whatever else you want!
168
200
  end
@@ -198,8 +230,10 @@ class Identity
198
230
  property :email
199
231
  property :password_digest
200
232
 
201
- def self.where(search_hash)
202
- CouchPotato.database.view(Identity.by_email(key: search_hash))
233
+ class << self
234
+ def where(search_hash)
235
+ CouchPotato.database.view(Identity.by_email(key: search_hash))
236
+ end
203
237
  end
204
238
 
205
239
  view :by_email, key: :email
@@ -224,9 +258,25 @@ end
224
258
 
225
259
  ### Ruby Object Mapper
226
260
 
227
- Would love to add a mixin for the [Ruby Object Mapper (ROM)](https://rom-rb.org/) if anyone wants to work on it!
261
+ [ROM](https://rom-rb.org/) is an ORM for pretty much every database.
262
+
263
+ Include the `OmniAuth::Identity::Models::Rom` mixin and specify
264
+ the `rom_container`, everything else is optional.
265
+
266
+ ```ruby
267
+ class Identity
268
+ include OmniAuth::Identity::Models::Rom
269
+
270
+ # Configure the ROM container and relation
271
+ rom_container -> { MyDatabase.rom } # See spec/omniauth/identity/models/rom_spec.rb for example
272
+ rom_relation_name :identities # optional, defaults to :idneitities
273
+ owner_relation_name :owners # optional, for loading associated owner
274
+ auth_key :email # optional, defaults to :email
275
+ password_field :password_digest # optional, defaults to :password_digest
276
+ end
277
+ ```
228
278
 
229
- ## Custom Auth Model
279
+ ### Custom Auth Model
230
280
 
231
281
  To use a class other than the default, specify the <tt>:model</tt> option to a
232
282
  different class.
@@ -307,7 +357,7 @@ end
307
357
  `locate_conditions` takes a `Proc` object, and must return a `Hash` object, which will be used
308
358
  as the argument to the locate method for your ORM. The proc is evaluated in the
309
359
  callback context, and has access to your `Identity` model (using `model`) and receives the request
310
- object as a parameter. Note that `model.auth_key` defaults to `email`, but is also configurable.
360
+ object as a parameter. Note that `model.auth_key` defaults to `email`, but is also configurable.
311
361
 
312
362
  Note: Be careful when customizing `locate_conditions`. The best way to modify the conditions is
313
363
  to copy the default value, and then add to the hash. Removing the default condition will almost
@@ -334,6 +384,63 @@ option :locate_conditions, ->(req) { {model.auth_key => req.params["auth_key"]}
334
384
 
335
385
  Please contribute some documentation if you have the gumption! The maintainer's time is limited, and sometimes the authors of PRs with new options don't update the _this_ readme. 😭
336
386
 
387
+ ## 🦷 FLOSS Funding
388
+
389
+ While omniauth tools are free software and will always be, the project would benefit immensely from some funding.
390
+ Raising a monthly budget of... "dollars" would make the project more sustainable.
391
+
392
+ We welcome both individual and corporate sponsors! We also offer a
393
+ wide array of funding channels to account for your preferences.
394
+ Currently, [Open Collective][🖇osc] is our preferred funding platform.
395
+
396
+ **If you're working in a company that's making significant use of omniauth tools we'd
397
+ appreciate it if you suggest to your company to become a omniauth sponsor.**
398
+
399
+ You can support the development of omniauth tools via
400
+ [GitHub Sponsors][🖇sponsor],
401
+ [Liberapay][⛳liberapay],
402
+ [PayPal][🖇paypal],
403
+ [Open Collective][🖇osc]
404
+ and [Tidelift][🏙️entsup-tidelift].
405
+
406
+ | 📍 NOTE |
407
+ |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
408
+ | If doing a sponsorship in the form of donation is problematic for your company <br/> from an accounting standpoint, we'd recommend the use of Tidelift, <br/> where you can get a support-like subscription instead. |
409
+
410
+ ### Open Collective for Individuals
411
+
412
+ Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/omniauth#backer)]
413
+
414
+ NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
415
+
416
+ <!-- OPENCOLLECTIVE-INDIVIDUALS:START -->
417
+ No backers yet. Be the first!
418
+ <!-- OPENCOLLECTIVE-INDIVIDUALS:END -->
419
+
420
+ ### Open Collective for Organizations
421
+
422
+ Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor](https://opencollective.com/omniauth#sponsor)]
423
+
424
+ NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
425
+
426
+ <!-- OPENCOLLECTIVE-ORGANIZATIONS:START -->
427
+ No sponsors yet. Be the first!
428
+ <!-- OPENCOLLECTIVE-ORGANIZATIONS:END -->
429
+
430
+ [kettle-readme-backers]: https://github.com/omniauth/omniauth-identity/blob/main/exe/kettle-readme-backers
431
+
432
+ ### Another way to support open-source
433
+
434
+ I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈‍ cats).
435
+
436
+ If you work at a company that uses my work, please encourage them to support me as a corporate sponsor. My work on gems you use might show up in `bundle fund`.
437
+
438
+ I’m developing a new library, [floss_funding][🖇floss-funding-gem], designed to empower open-source developers like myself to get paid for the work we do, in a sustainable way. Please give it a look.
439
+
440
+ **[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
441
+
442
+ [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
443
+
337
444
  ## 🔐 Security
338
445
 
339
446
  See [SECURITY.md][🔐security].
@@ -341,7 +448,7 @@ See [SECURITY.md][🔐security].
341
448
  ## 🤝 Contributing
342
449
 
343
450
  If you need some ideas of where to help, you could work on adding more code coverage,
344
- or if it is already 💯 (see [below](#code-coverage)) check [issues][🤝gh-issues], or [PRs][🤝gh-pulls],
451
+ or if it is already 💯 (see [below](#code-coverage)) check [issues][🤝gh-issues] or [PRs][🤝gh-pulls],
345
452
  or use the gem and think about how it could be better.
346
453
 
347
454
  We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
@@ -354,9 +461,16 @@ See [CONTRIBUTING.md][🤝contributing].
354
461
 
355
462
  ### Code Coverage
356
463
 
357
- [![Coverage Graph][🔑codecov-g♻️]][🔑codecov]
464
+ <details markdown="1">
465
+ <summary>Coverage service badges</summary>
466
+
467
+ [![Coverage Graph][🏀codecov-g]][🏀codecov]
468
+
469
+ [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls]
470
+
471
+ [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov]
358
472
 
359
- [![Coveralls Test Coverage][🔑coveralls-img]][🔑coveralls]
473
+ </details>
360
474
 
361
475
  ### 🪇 Code of Conduct
362
476
 
@@ -369,130 +483,141 @@ chat rooms and mailing lists agrees to follow the [![Contributor Covenant 2.1][
369
483
 
370
484
  Made with [contributors-img][🖐contrib-rocks].
371
485
 
372
- ## ⭐️ Star History
486
+ Also see GitLab Contributors: [https://gitlab.com/omniauth/omniauth-identity/-/graphs/main][🚎contributors-gl]
373
487
 
374
- <a href="https://star-history.com/#omniauth/omniauth-identity&Date">
488
+ <details>
489
+ <summary>⭐️ Star History</summary>
490
+
491
+ <a href="https://star-history.com/omniauth/omniauth-identity&Date">
375
492
  <picture>
376
- <source media="(prefers-color-scheme: dark)"
377
- srcset="https://api.star-history.com/svg?repos=omniauth/omniauth-identity&type=Date&theme=dark"/>
378
- <source media="(prefers-color-scheme: light)"
379
- srcset="https://api.star-history.com/svg?repos=omniauth/omniauth-identity&type=Date"/>
380
- <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=omniauth/omniauth-identity&type=Date" />
493
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=omniauth/omniauth-identity&type=Date&theme=dark" />
494
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=omniauth/omniauth-identity&type=Date" />
495
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=omniauth/omniauth-identity&type=Date" />
381
496
  </picture>
382
497
  </a>
383
498
 
384
- ## 📌 Versioning
499
+ </details>
385
500
 
386
- This Library adheres to [![Semantic Versioning 2.0.0][📌semver-img]][📌semver].
387
- Violations of this scheme should be reported as bugs.
388
- Specifically, if a minor or patch version is released that breaks backward compatibility,
389
- a new version should be immediately released that restores compatibility.
390
- Breaking changes to the public API will only be introduced with new major versions.
501
+ ## 📌 Versioning
391
502
 
392
- ### 📌 Is "Platform Support" part of the public API?
503
+ This library follows [![Semantic Versioning 2.0.0][📌semver-img]][📌semver] for its public API where practical.
504
+ For most applications, prefer the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
393
505
 
394
- Yes. But I'm obligated to include notes...
506
+ For example:
395
507
 
396
- SemVer should, but doesn't explicitly, say that dropping support for specific Platforms
397
- is a *breaking change* to an API.
398
- It is obvious to many, but not all, and since the spec is silent, the bike shedding is endless.
508
+ ```ruby
509
+ spec.add_dependency("omniauth-identity", "~> 3.0")
510
+ ```
399
511
 
400
- > dropping support for a platform is both obviously and objectively a breaking change
512
+ <details markdown="1">
513
+ <summary>📌 Is "Platform Support" part of the public API? More details inside.</summary>
401
514
 
402
- - Jordan Harband (@ljharb, maintainer of SemVer) [in SemVer issue 716][📌semver-breaking]
515
+ Dropping support for a platform can be a breaking change for affected users.
516
+ If a release changes supported platforms, it should be called out clearly in the changelog and versioned with that impact in mind.
403
517
 
404
518
  To get a better understanding of how SemVer is intended to work over a project's lifetime,
405
519
  read this article from the creator of SemVer:
406
520
 
407
521
  - ["Major Version Numbers are Not Sacred"][📌major-versions-not-sacred]
408
522
 
409
- As a result of this policy, and the interpretive lens used by the maintainer,
410
- you can (and should) specify a dependency on these libraries using
411
- the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
412
-
413
- For example:
414
-
415
- ```ruby
416
- spec.add_dependency("omniauth-identity", "~> 3.1")
417
- ```
523
+ </details>
418
524
 
419
525
  See [CHANGELOG.md][📌changelog] for a list of releases.
420
526
 
421
527
  ## 📄 License
422
528
 
423
529
  The gem is available as open source under the terms of
424
- the [MIT License][📄license] [![License: MIT][📄license-img]][📄license-ref].
425
- See [LICENSE.txt][📄license] for the official [Copyright Notice][📄copyright-notice-explainer].
530
+ the [MIT](MIT.md) [![License: MIT][📄license-img]][📄license-ref].
426
531
 
427
532
  ### © Copyright
428
533
 
429
- <ul>
430
- <li>
431
- Copyright (c) 2021, 2024-2025 Peter H. Boling, of
432
- <a href="https://discord.gg/3qme4XHNKN">
433
- Galtzo.com
434
- <picture>
435
- <img src="https://github.com/galtzo-floss/shields-badge/raw/main/docs/images/logo/galtzo-floss-logos-wordless.svg?raw=true" alt="Galtzo.com Logo by Aboling0, CC BY-SA 4.0" width="24">
436
- </picture>
437
- </a>, and omniauth-identity contributors
438
- </li>
439
- <li>
440
- Copyright (c) 2020 Peter H. Boling, Andrew Roberts, and Jellybooks Ltd.
441
- </li>
442
- <li>
443
- Copyright (c) 2010-2015 Michael Bleigh, and Intridea, Inc.
444
- </li>
445
- </ul>
446
-
447
- ## 🤑 One more thing
448
-
449
- Having arrived at the bottom of the page, please endure a final supplication.
450
- The primary maintainer of this gem, Peter Boling, wants
451
- Ruby to be a great place for people to solve problems, big and small.
452
- Please consider supporting his efforts via the giant yellow link below,
453
- or one of smaller ones, depending on button size preference.
454
-
455
- [![Buy me a latte][🖇buyme-img]][🖇buyme]
456
-
457
- [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS or refugee efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS or refugee efforts using Patreon][🖇patreon-img]][🖇patreon]
458
-
459
- P.S. If you need help️, or want to say thanks, 👇 Join the Discord.
460
-
461
- [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite]
462
-
463
- [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay
534
+ See [LICENSE.md][📄license] for the official copyright notice.
535
+
536
+ <details markdown="1">
537
+ <summary>Copyright holders</summary>
538
+
539
+ - Copyright (c) 2025-2026 |7eter l-|. l3oling
540
+
541
+ </details>
542
+
543
+ ## 🤑 A request for help
544
+
545
+ Maintainers have teeth and need to pay their dentists.
546
+ After getting laid off in an RIF in March, and encountering difficulty finding a new one,
547
+ I began spending most of my time building open source tools.
548
+ I'm hoping to be able to pay for my kids' health insurance this month,
549
+ so if you value the work I am doing, I need your support.
550
+ Please consider sponsoring me or the project.
551
+
552
+ To join the community or get help 👇️ Join the Discord.
553
+
554
+ [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
555
+
556
+ To say "thanks!" ☝️ Join the Discord or 👇️ send money.
557
+
558
+ [![Sponsor omniauth/omniauth-identity on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
559
+
560
+ ### Please give the project a star ⭐ ♥.
561
+
562
+ Many parts of this project are actively managed by a [kettle-jem](https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/kettle-jem) smart template utilizing [StructuredMerge.org](https://structuredmerge.org) merge contracts.
563
+
564
+ Thanks for RTFM. ☺️
565
+
566
+ [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
567
+ [⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
464
568
  [⛳liberapay]: https://liberapay.com/pboling/donate
569
+ [🖇osc-all-img]: https://img.shields.io/opencollective/all/omniauth
570
+ [🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/omniauth
571
+ [🖇osc-backers-img]: https://img.shields.io/opencollective/backers/omniauth
572
+ [🖇osc-backers]: https://opencollective.com/omniauth#backer
573
+ [🖇osc-backers-i]: https://opencollective.com/omniauth/backers/badge.svg?style=flat
574
+ [🖇osc-sponsors]: https://opencollective.com/omniauth#sponsor
575
+ [🖇osc-sponsors-i]: https://opencollective.com/omniauth/sponsors/badge.svg?style=flat
576
+ [🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/omniauth?style=for-the-badge
577
+ [🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/omniauth?style=for-the-badge
578
+ [🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/omniauth?style=for-the-badge
579
+ [🖇osc]: https://opencollective.com/omniauth
465
580
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
581
+ [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
466
582
  [🖇sponsor]: https://github.com/sponsors/pboling
467
- [🖇polar-img]: https://img.shields.io/badge/polar-donate-yellow.svg
583
+ [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
468
584
  [🖇polar]: https://polar.sh/pboling
469
- [🖇kofi-img]: https://img.shields.io/badge/a_more_different_coffee-✓-yellow.svg
470
- [🖇kofi]: https://ko-fi.com/O5O86SNP4
471
- [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-yellow.svg
585
+ [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
586
+ [🖇kofi]: https://ko-fi.com/pboling
587
+ [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
472
588
  [🖇patreon]: https://patreon.com/galtzo
473
- [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-✓-yellow.svg?style=flat
589
+ [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
474
590
  [🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
475
591
  [🖇buyme]: https://www.buymeacoffee.com/pboling
592
+ [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
593
+ [🖇paypal-bottom-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=for-the-badge&logo=paypal&color=0A0A0A
594
+ [🖇paypal]: https://www.paypal.com/paypalme/peterboling
595
+ [🖇floss-funding.dev]: https://floss-funding.dev
596
+ [🖇floss-funding-gem]: https://github.com/galtzo-floss/floss_funding
476
597
  [✉️discord-invite]: https://discord.gg/3qme4XHNKN
477
- [✉️discord-invite-img]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge
598
+ [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord
599
+ [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white
600
+ [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
478
601
 
479
602
  [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
480
603
  [⛳️gem-namespace]: https://github.com/omniauth/omniauth-identity
481
- [⛳️namespace-img]: https://img.shields.io/badge/namespace-OmniAuth%3A%3AIdentity-brightgreen.svg?style=flat&logo=ruby&logoColor=white
482
- [⛳️gem-name]: https://rubygems.org/gems/omniauth-identity
483
- [⛳️name-img]: https://img.shields.io/badge/name-omniauth--identity-brightgreen.svg?style=flat&logo=rubygems&logoColor=red
484
- [🚂bdfl-blog]: http://www.railsbling.com/tags/omniauth-identity
485
- [🚂bdfl-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange
486
- [🚂bdfl-contact]: http://www.railsbling.com/contact
487
- [🚂bdfl-contact-img]: https://img.shields.io/badge/Contact-BDFL-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
604
+ [⛳️namespace-img]: https://img.shields.io/badge/namespace-Omniauth::Identity-3C2D2D.svg?style=square&logo=ruby&logoColor=white
605
+ [⛳️gem-name]: https://bestgems.org/gems/omniauth-identity
606
+ [⛳️name-img]: https://img.shields.io/badge/name-omniauth--identity-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
607
+ [⛳️tag-img]: https://img.shields.io/github/tag/omniauth/omniauth-identity.svg
608
+ [⛳️tag]: https://github.com/omniauth/omniauth-identity/releases
609
+ [🚂maint-blog]: http://www.railsbling.com/tags/omniauth-identity
610
+ [🚂maint-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange
611
+ [🚂maint-contact]: http://www.railsbling.com/contact
612
+ [🚂maint-contact-img]: https://img.shields.io/badge/Contact-Maintainer-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
488
613
  [💖🖇linkedin]: http://www.linkedin.com/in/peterboling
489
- [💖🖇linkedin-img]: https://img.shields.io/badge/PeterBoling-LinkedIn-0B66C2?style=flat&logo=newjapanprowrestling
490
- [💖✌️wellfound]: https://angel.co/u/peter-boling
614
+ [💖🖇linkedin-img]: https://img.shields.io/badge/LinkedIn-Profile-0B66C2?style=flat&logo=newjapanprowrestling
615
+ [💖✌️wellfound]: https://wellfound.com/u/peter-boling
491
616
  [💖✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=flat&logo=wellfound
492
617
  [💖💲crunchbase]: https://www.crunchbase.com/person/peter-boling
493
618
  [💖💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=flat&logo=crunchbase
494
619
  [💖🐘ruby-mast]: https://ruby.social/@galtzo
495
- [💖🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https%3A%2F%2Fruby.social&style=flat&logo=mastodon&label=Ruby%20%40galtzo
620
+ [💖🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https://ruby.social&style=flat&logo=mastodon&label=Ruby%20@galtzo
496
621
  [💖🦋bluesky]: https://bsky.app/profile/galtzo.com
497
622
  [💖🦋bluesky-img]: https://img.shields.io/badge/@galtzo.com-0285FF?style=flat&logo=bluesky&logoColor=white
498
623
  [💖🌳linktree]: https://linktr.ee/galtzo
@@ -509,68 +634,72 @@ P.S. If you need help️, or want to say thanks, 👇 Join the Discord.
509
634
  [👨🏼‍🏫expsup-upwork-img]: https://img.shields.io/badge/UpWork-13544E?style=for-the-badge&logo=Upwork&logoColor=white
510
635
  [👨🏼‍🏫expsup-codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github
511
636
  [👨🏼‍🏫expsup-codementor-img]: https://img.shields.io/badge/CodeMentor-Get_Help-1abc9c?style=for-the-badge&logo=CodeMentor&logoColor=white
512
- [🏙️entsup-tidelift]: https://tidelift.com/subscription
637
+ [🏙️entsup-tidelift]: https://tidelift.com/subscription/pkg/rubygems-omniauth-identity?utm_source=rubygems-omniauth-identity&utm_medium=referral&utm_campaign=readme
513
638
  [🏙️entsup-tidelift-img]: https://img.shields.io/badge/Tidelift_and_Sonar-Enterprise_Support-FD3456?style=for-the-badge&logo=sonar&logoColor=white
514
639
  [🏙️entsup-tidelift-sonar]: https://blog.tidelift.com/tidelift-joins-sonar
515
640
  [💁🏼‍♂️peterboling]: http://www.peterboling.com
516
641
  [🚂railsbling]: http://www.railsbling.com
517
642
  [📜src-gl-img]: https://img.shields.io/badge/GitLab-FBA326?style=for-the-badge&logo=Gitlab&logoColor=orange
518
- [📜src-gl]: https://gitlab.com/omniauth/omniauth-identity/
643
+ [📜src-gl]: https://gitlab.com/omniauth/omniauth-identity
519
644
  [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
520
645
  [📜src-cb]: https://codeberg.org/omniauth/omniauth-identity
521
646
  [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green
522
647
  [📜src-gh]: https://github.com/omniauth/omniauth-identity
523
648
  [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
524
649
  [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
525
- [📜wiki]: https://github.com/omniauth/omniauth-identity/wiki
526
- [📜wiki-img]: https://img.shields.io/badge/wiki-examples-943CD2.svg?style=for-the-badge&logo=Wiki&logoColor=white
527
- [👽dl-rank]: https://rubygems.org/gems/omniauth-identity
650
+ [📜gl-wiki]: https://gitlab.com/omniauth/omniauth-identity/-/wikis/home
651
+ [📜gh-wiki]: https://github.com/omniauth/omniauth-identity/wiki
652
+ [📜gl-wiki-img]: https://img.shields.io/badge/wiki-gitlab-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
653
+ [📜gh-wiki-img]: https://img.shields.io/badge/wiki-github-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
654
+ [👽dl-rank]: https://bestgems.org/gems/omniauth-identity
528
655
  [👽dl-ranki]: https://img.shields.io/gem/rd/omniauth-identity.svg
529
- [👽oss-help]: https://www.codetriage.com/omniauth/omniauth-identity
530
- [👽oss-helpi]: https://www.codetriage.com/omniauth/omniauth-identity/badges/users.svg
531
- [👽version]: https://rubygems.org/gems/omniauth-identity
656
+ [👽version]: https://bestgems.org/gems/omniauth-identity
532
657
  [👽versioni]: https://img.shields.io/gem/v/omniauth-identity.svg
533
- [🔑qlty-mnt]: https://qlty.sh/gh/omniauth/projects/omniauth-identity
534
- [🔑qlty-mnti]: https://qlty.sh/gh/omniauth/projects/omniauth-identity/maintainability.svg
535
- [🔑qlty-cov]: https://qlty.sh/gh/omniauth/projects/omniauth-identity/metrics/code?sort=coverageRating
536
- [🔑qlty-covi]: https://qlty.sh/gh/omniauth/projects/omniauth-identity/coverage.svg
537
- [🔑codecov]: https://codecov.io/gh/omniauth/omniauth-identity
538
- [🔑codecovi♻️]: https://codecov.io/gh/omniauth/omniauth-identity/branch/main/graph/badge.svg?token=cc6UdZCpAL
539
- [🔑coveralls]: https://coveralls.io/github/omniauth/omniauth-identity?branch=main
540
- [🔑coveralls-img]: https://coveralls.io/repos/github/omniauth/omniauth-identity/badge.svg?branch=main
541
- [🔑depfu]: https://depfu.com/github/omniauth/omniauth-identity?project_id=22381
542
- [🔑depfui♻️]: https://badges.depfu.com/badges/6c9b45362951b872127f9e46d39bed76/count.svg
543
- [🖐codeQL]: https://github.com/omniauth/omniauth-identity/security/code-scanning
544
- [🖐codeQL-img]: https://github.com/omniauth/omniauth-identity/actions/workflows/codeql-analysis.yml/badge.svg
545
- [🚎1-an-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/ancient.yml
546
- [🚎1-an-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/ancient.yml/badge.svg
658
+ [🏀qlty-mnt]: https://qlty.sh/gh/omniauth/projects/omniauth-identity
659
+ [🏀qlty-mnti]: https://qlty.sh/gh/omniauth/projects/omniauth-identity/maintainability.svg
660
+ [🏀qlty-cov]: https://qlty.sh/gh/omniauth/projects/omniauth-identity/metrics/code?sort=coverageRating
661
+ [🏀qlty-covi]: https://qlty.sh/gh/omniauth/projects/omniauth-identity/coverage.svg
662
+ [🏀codecov]: https://codecov.io/gh/omniauth/omniauth-identity
663
+ [🏀codecovi]: https://codecov.io/gh/omniauth/omniauth-identity/graph/badge.svg
664
+ [🏀coveralls]: https://coveralls.io/github/omniauth/omniauth-identity?branch=main
665
+ [🏀coveralls-img]: https://coveralls.io/repos/github/omniauth/omniauth-identity/badge.svg?branch=main
666
+ [🚎ruby-2.4-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/ruby-2.4.yml
667
+ [🚎ruby-2.5-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/ruby-2.5.yml
668
+ [🚎ruby-2.6-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/ruby-2.6.yml
669
+ [🚎ruby-2.7-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/ruby-2.7.yml
670
+ [🚎ruby-3.0-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/ruby-3.0.yml
671
+ [🚎ruby-3.1-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/ruby-3.1.yml
672
+ [🚎ruby-3.2-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/ruby-3.2.yml
673
+ [🚎ruby-3.3-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/ruby-3.3.yml
674
+ [🚎ruby-3.4-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/ruby-3.4.yml
675
+ [🚎jruby-9.2-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/jruby-9.2.yml
676
+ [🚎jruby-9.3-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/jruby-9.3.yml
677
+ [🚎jruby-9.4-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/jruby-9.4.yml
678
+ [🚎truby-22.3-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/truffleruby-22.3.yml
679
+ [🚎truby-23.0-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/truffleruby-23.0.yml
680
+ [🚎truby-23.1-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/truffleruby-23.1.yml
681
+ [🚎truby-24.2-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/truffleruby-24.2.yml
682
+ [🚎truby-25.0-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/truffleruby-25.0.yml
547
683
  [🚎2-cov-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/coverage.yml
548
684
  [🚎2-cov-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/coverage.yml/badge.svg
549
685
  [🚎3-hd-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/heads.yml
550
686
  [🚎3-hd-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/heads.yml/badge.svg
551
- [🚎4-lg-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/legacy.yml
552
- [🚎4-lg-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/legacy.yml/badge.svg
553
687
  [🚎5-st-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/style.yml
554
688
  [🚎5-st-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/style.yml/badge.svg
555
- [🚎6-s-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/supported.yml
556
- [🚎6-s-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/supported.yml/badge.svg
557
- [🚎7-us-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/unsupported.yml
558
- [🚎7-us-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/unsupported.yml/badge.svg
559
- [🚎8-ho-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/hoary.yml
560
- [🚎8-ho-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/hoary.yml/badge.svg
561
689
  [🚎9-t-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/truffle.yml
562
690
  [🚎9-t-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/truffle.yml/badge.svg
563
691
  [🚎10-j-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/jruby.yml
564
692
  [🚎10-j-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/jruby.yml/badge.svg
565
693
  [🚎11-c-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/current.yml
566
694
  [🚎11-c-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/current.yml/badge.svg
567
- [🚎12-crh-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/current-runtime-heads.yml
568
- [🚎12-crh-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/current-runtime-heads.yml/badge.svg
569
- [🚎13-🔒️-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/deps_locked.yml
570
- [🚎13-🔒️-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/deps_locked.yml/badge.svg
571
- [🚎14-🔓️-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/deps_unlocked.yml
572
- [🚎14-🔓️-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/deps_unlocked.yml/badge.svg
573
- [💎ruby-2.3i]: https://img.shields.io/badge/Ruby-2.3-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
695
+ [🚎12-crh-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/dep-heads.yml
696
+ [🚎12-crh-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/dep-heads.yml/badge.svg
697
+ [🚎13-🔒️-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/locked_deps.yml
698
+ [🚎13-🔒️-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/locked_deps.yml/badge.svg
699
+ [🚎14-🔓️-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/unlocked_deps.yml
700
+ [🚎14-🔓️-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/unlocked_deps.yml/badge.svg
701
+ [🚎15-🪪-wf]: https://github.com/omniauth/omniauth-identity/actions/workflows/license-eye.yml
702
+ [🚎15-🪪-wfi]: https://github.com/omniauth/omniauth-identity/actions/workflows/license-eye.yml/badge.svg
574
703
  [💎ruby-2.4i]: https://img.shields.io/badge/Ruby-2.4-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
575
704
  [💎ruby-2.5i]: https://img.shields.io/badge/Ruby-2.5-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
576
705
  [💎ruby-2.6i]: https://img.shields.io/badge/Ruby-2.6-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
@@ -579,13 +708,16 @@ P.S. If you need help️, or want to say thanks, 👇 Join the Discord.
579
708
  [💎ruby-3.1i]: https://img.shields.io/badge/Ruby-3.1-CC342D?style=for-the-badge&logo=ruby&logoColor=white
580
709
  [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
581
710
  [💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
711
+ [💎ruby-3.4i]: https://img.shields.io/badge/Ruby-3.4-CC342D?style=for-the-badge&logo=ruby&logoColor=white
712
+ [💎ruby-4.0i]: https://img.shields.io/badge/Ruby-4.0-CC342D?style=for-the-badge&logo=ruby&logoColor=white
582
713
  [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
583
714
  [💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
584
715
  [💎truby-22.3i]: https://img.shields.io/badge/Truffle_Ruby-22.3-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
585
716
  [💎truby-23.0i]: https://img.shields.io/badge/Truffle_Ruby-23.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
586
717
  [💎truby-23.1i]: https://img.shields.io/badge/Truffle_Ruby-23.1-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
718
+ [💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
719
+ [💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
587
720
  [💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
588
- [💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1?style=for-the-badge&logo=ruby&logoColor=blue
589
721
  [💎jruby-9.2i]: https://img.shields.io/badge/JRuby-9.2-FBE742?style=for-the-badge&logo=ruby&logoColor=red
590
722
  [💎jruby-9.3i]: https://img.shields.io/badge/JRuby-9.3-FBE742?style=for-the-badge&logo=ruby&logoColor=red
591
723
  [💎jruby-9.4i]: https://img.shields.io/badge/JRuby-9.4-FBE742?style=for-the-badge&logo=ruby&logoColor=red
@@ -593,37 +725,59 @@ P.S. If you need help️, or want to say thanks, 👇 Join the Discord.
593
725
  [💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742?style=for-the-badge&logo=ruby&logoColor=blue
594
726
  [🤝gh-issues]: https://github.com/omniauth/omniauth-identity/issues
595
727
  [🤝gh-pulls]: https://github.com/omniauth/omniauth-identity/pulls
596
- [🤝contributing]: CONTRIBUTING.md
597
- [🔑codecov-g♻️]: https://codecov.io/gh/omniauth/omniauth-identity/graphs/tree.svg?token=cc6UdZCpAL
728
+ [🤝gl-issues]: https://gitlab.com/omniauth/omniauth-identity/-/issues
729
+ [🤝gl-pulls]: https://gitlab.com/omniauth/omniauth-identity/-/merge_requests
730
+ [🤝cb-issues]: https://codeberg.org/omniauth/omniauth-identity/issues
731
+ [🤝cb-pulls]: https://codeberg.org/omniauth/omniauth-identity/pulls
732
+ [🤝cb-donate]: https://donate.codeberg.org/
733
+ [🤝contributing]: https://github.com/omniauth/omniauth-identity/blob/main/CONTRIBUTING.md
734
+ [🏀codecov-g]: https://codecov.io/gh/omniauth/omniauth-identity/graph/badge.svg
598
735
  [🖐contrib-rocks]: https://contrib.rocks
599
736
  [🖐contributors]: https://github.com/omniauth/omniauth-identity/graphs/contributors
600
737
  [🖐contributors-img]: https://contrib.rocks/image?repo=omniauth/omniauth-identity
601
738
  [🚎contributors-gl]: https://gitlab.com/omniauth/omniauth-identity/-/graphs/main
602
- [🪇conduct]: CODE_OF_CONDUCT.md
739
+ [🪇conduct]: https://github.com/omniauth/omniauth-identity/blob/main/CODE_OF_CONDUCT.md
603
740
  [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg
604
741
  [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
605
742
  [📌semver]: https://semver.org/spec/v2.0.0.html
606
743
  [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-259D6C.svg?style=flat
607
744
  [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
608
745
  [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
609
- [📌changelog]: CHANGELOG.md
746
+ [📌changelog]: https://github.com/omniauth/omniauth-identity/blob/main/CHANGELOG.md
610
747
  [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
611
748
  [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
612
- [📌gitmoji]:https://gitmoji.dev
613
- [📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20😜%20😍-34495e.svg?style=flat-square
749
+ [📌gitmoji]: https://gitmoji.dev
750
+ [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
614
751
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
615
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.378-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
616
- [🔐security]: SECURITY.md
752
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.397-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
753
+ [🔐security]: https://github.com/omniauth/omniauth-identity/blob/main/SECURITY.md
617
754
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
618
755
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
619
- [📄license]: LICENSE.txt
620
- [📄license-ref]: https://opensource.org/licenses/MIT
756
+ [📄license]: LICENSE.md
757
+ [📄license-ref]: MIT.md
621
758
  [📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
759
+ [📄license-compat]: https://www.apache.org/legal/resolved.html#category-a
760
+ [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-✓-259D6C.svg?style=flat&logo=Apache
761
+
622
762
  [📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
623
763
  [📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
624
764
  [🚎yard-current]: http://rubydoc.info/gems/omniauth-identity
625
765
  [🚎yard-head]: https://omniauth-identity.galtzo.com
626
- [💎stone_checksums]: https://github.com/pboling/stone_checksums
627
- [💎SHA_checksums]: https://github.com/omniauth/omniauth-identity/tree/main/checksums
766
+ [💎stone_checksums]: https://github.com/galtzo-floss/stone_checksums
767
+ [💎SHA_checksums]: https://gitlab.com/omniauth/omniauth-identity/-/tree/main/checksums
628
768
  [💎rlts]: https://github.com/rubocop-lts/rubocop-lts
629
- [💎rlts-img]: https://img.shields.io/badge/code_style_%26_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white
769
+ [💎rlts-img]: https://img.shields.io/badge/code_style_&_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white
770
+ [💎appraisal2]: https://github.com/appraisal-rb/appraisal2
771
+ [💎appraisal2-img]: https://img.shields.io/badge/appraised_by-appraisal2-34495e.svg?plastic&logo=ruby&logoColor=white
772
+ [💎d-in-dvcs]: https://railsbling.com/posts/dvcs/put_the_d_in_dvcs/
773
+
774
+ <!-- kettle-jem:metadata:start -->
775
+ | Field | Value |
776
+ |---|---|
777
+ | Package | omniauth-identity |
778
+ | Description | 🫵 Traditional username/password based authentication system for OmniAuth |
779
+ | Homepage | https://github.com/omniauth/omniauth-identity |
780
+ | Source | https://github.com/omniauth/omniauth-identity/tree/v3.1.5 |
781
+ | License | `MIT` |
782
+ | Funding | https://github.com/sponsors/pboling, https://issuehunt.io/u/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/omniauth, https://patreon.com/galtzo, https://polar.sh/pboling, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/omniauth-identity, https://www.buymeacoffee.com/pboling |
783
+ <!-- kettle-jem:metadata:end -->