= Contributing to Gravitee.io
You think Gravitee.io is awesome and want to contribute to the project ? Here are few guidelines that should help you get started.
== Using GitHub issues
We use GitHub issues to track bugs and enhancements. Find a bug in the source code ? Want to propose new features or enhancements ? You can help us by submitting an issue in our https://github.com/gravitee-io/gravitee-fetcher-git[repository]. Before you submit your issue, search the https://github.com/gravitee-io/gravitee-fetcher-git/issues[issues archive] or the https://waffle.io/gravitee-io/release[backlog]; maybe your question was already answered.
Issues are only to report bugs, request enhancements, or request new features. For general questions and discussions, use the https://groups.google.com/forum/#!forum/graviteeio[Gravitee.io Forum].
Providing the following information will help us deal quickly with your issue :
- Overview of the issue : describe the issue and why this is a bug for you.
- Gravitee.io version(s) : possible regression ?
- Browsers and Operating System : Linux/Windows/Docker ? Browser version for the UI, etc ...
- You have stack trace, screenshots, logs ? add these to the issue's description.
== Submitting changes
You've submitted an issue to the project and know how to fix it ? You can contribute to the project by https://guides.github.com/activities/forking/[forking the repository] and https://guides.github.com/activities/forking/#making-a-pull-request[submitting your pull requests].
Before you submit your pull request consider the following guidelines:
- Make your changes in a new git branch:
git checkout -b issue/#<issue-id>-my-fix-branch master
Note : issue-id reference the id generated by GitHub (#issue-id).
* Create your patch, **including appropriate test cases**.
* Update the documentation if you create new features or think the documentation needs to be updated/completed.
* Commit your changes using a descriptive commit message.
```shell
git commit -a
```
* Build your changes locally to **ensure all the tests pass**:
```shell
mvn clean install
```
* Push your branch to GitHub:
```shell
git push origin issue/#<issue-id>-my-fix-branch
```
* In GitHub, send a pull request to `<gravitee-io/gravitee-fetcher-git>:master`.
* If we suggest changes then:
** Make the required updates.
** Re-run the test suite to ensure tests are still passing.
** Commit your changes to your branch (e.g. `issue/<issue-id>-my-fix-branch`).
** Push the changes to your GitHub repository (this will update your Pull Request).
If the PR gets too outdated we may ask you to rebase and force push to update the PR:
```shell
git rebase master
git push origin issue/#<issue-id>-my-fix-branch -f
```
And That's it! You've just contributed to the project and we really appreciate it ! You can still find help, news and information on our https://groups.google.com/forum/#!forum/graviteeio[forum].
== Further Information
You can find more detailed information about contributing in the https://guides.github.com/activities/contributing-to-open-source/[Github guides].