Contributing to ueberauth_authify
View SourceThanks for your interest in contributing!
Getting started
Fork the repository and clone your fork.
Ensure the pinned toolchain is active (
asdf installpicks up.tool-versions: Elixir 1.20.4 / Erlang 29.0.5).Install dependencies and verify the suite is green:
mix deps.get mix precommit
Making changes
- Match the existing code style;
mix formathandles formatting. mix precommitmust pass before any commit: it compiles with--warnings-as-errors, checks formatting, runs the tests andmix credo --strict.- Add or update tests for any behavior change. The suite uses
Plug.Testwith aSpecRouterandBypassto stub the Authify token/JWKS/userinfo endpoints — seetest/test_helper.exsandtest/support/authify_test_support.exs. - This strategy aims for feature parity with the Ruby
omniauth-authifygem; if you are changing OAuth/OIDC flow behavior, check the Ruby gem first and mirror it.
Security
The PKCE (S256) flow, the per-login nonce and RS256 ID token verification are core security features. Changes to them must be covered by tests, and the client secret or PKCE verifier must never leave the token exchange.
Report security vulnerabilities privately to the maintainer rather than opening a public issue.
Pull requests
- Create a feature branch.
- Make your change, with tests.
- Run
mix precommitand make sure it passes. - Open a pull request describing what changed and why.
Releasing
Releases are tagged pushes; CI publishes to hex.pm using the HEX_API_KEY
repository secret (a hex.pm key with API write permission). The maintainer
bumps the version in mix.exs and CHANGELOG.md, then tags vX.Y.Z.