Skip to content

Latest commit

 

History

History
83 lines (57 loc) · 2.01 KB

File metadata and controls

83 lines (57 loc) · 2.01 KB

Contributing to FastAPI FullAuth

Thanks for your interest in contributing! Here's how to get started.

Development setup

git clone https://github.com/mdfarhankc/fastapi-fullauth.git
cd fastapi-fullauth
uv sync --dev --extra sqlalchemy --extra sqlmodel --extra redis --extra oauth

Running tests

uv run pytest tests/ -v

Linting and formatting

uv run ruff check .
uv run ruff format .

Both must pass before submitting a PR. CI enforces this.

Making changes

  1. Fork the repo and create a branch from main
  2. Make your changes
  3. Add tests for new functionality
  4. Ensure all tests pass and lint is clean
  5. Submit a pull request

Branch naming

  • feat/description = new features
  • fix/description = bug fixes
  • refactor/description = code improvements
  • docs/description = documentation changes

Commit messages

Keep them short and descriptive. Use imperative mood:

  • add permission-based RBAC
  • fix OAuth state token TTL
  • update README with docs link

What to contribute

  • Bug fixes
  • New OAuth providers (Apple, Discord, Microsoft, etc.)
  • Adapter implementations (MongoDB, Tortoise ORM, etc.)
  • Documentation improvements
  • Test coverage improvements
  • Performance improvements

Reporting bugs

Use the bug report template on GitHub Issues. Include:

  • Python version
  • fastapi-fullauth version
  • Minimal reproduction steps
  • Expected vs actual behavior

Requesting features

Use the feature request template on GitHub Issues.

Code style

  • Follow existing patterns in the codebase
  • Use type annotations
  • Keep functions focused and small
  • Log security-sensitive events via logging.getLogger("fastapi_fullauth.*")
  • Don't add docstrings/comments unless the logic isn't self-evident

License

By contributing, you agree that your contributions will be licensed under the MIT License.