# Contributing

Anybody willing to contribute to the project either with code, documentation, security reviews or whatever, are very welcome to create or review pull requests and take part to discussions in our public chatroom on [Matrix](https://riot.im/app/#/room/#authelia:matrix.org).

It's also possible to contribute financially in order to support the community.

Don't hesitate to come help us improve Authelia! See you soon!

## Bug Reports and Feature Requests

If you've found a **bug** or have a **feature request** then please create an issue in this repository (but search first in case a similar issue already exists).

## Code

If you would like to fix a bug or implement a feature, please fork the repository and create a Pull Request.
More information on getting set up locally can be found [here](https://www.authelia.com/docs/contributing/).

Before you start any Pull Request, it's recommended that you create an issue to discuss first if you have any doubts about requirement or implementation.
That way you can be sure that the maintainer(s) agree on what to change and how, and you can hopefully get a quick merge afterwards.
Also, let the maintainers know that you plan to work on a particular issue so that no one else starts any duplicate work.

Pull Requests can only be merged once all status checks are green, which means `authelia-scripts --log-level debug ci` passes, and coverage does not regress.

## Do not force push to your pull request branch

Please do not force push to your PR's branch after you have created your PR, as doing so makes it harder for us to review your work.
PRs will always be squashed by us when we merge your work.
Commit as many times as you need in your pull request branch.

## Re-requesting a review

Please do not ping your reviewer(s) by mentioning them in a new comment.
Instead, use the re-request review functionality.
Read more about this in the [GitHub docs, Re-requesting a review](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/incorporating-feedback-in-your-pull-request#re-requesting-a-review).

## Collaboration with maintainers

Sometimes the codebase can be a challenge to navigate, especially for a first-time contributor.
We don't want you spending an hour trying to work out something that would take us only a minute to explain.

For that reason, we have [Matrix](#matrix) and [Discord](#discord) channels dedicated to helping anyone who's working on Pull Requests for Authelia.

## Contact Options

### Matrix

Join the [Matrix Room](https://riot.im/app/#/room/#authelia:matrix.org) and locate one of the maintainers.
You can identify them as they are the room administrators. Alternatively you can just ask for one of the
maintainers.

### Discord

Join the [Discord Server](https://discord.authelia.com) and message the
[#contributing](https://discord.com/channels/707844280412012608/804943261265297408) chat and contact a maintainer.