# Contributing

You have an idea, a suggestion or you spotted a mistake ?
Help us improve the software and the user experience, to make the internet a safer place together !



## Contributing to the documentation

If you spotted some mistakes in the documentation or have improvement suggestions, you can :

 - open a {{v1X.doc.new_issue}} if you are comfortable with github
 - let us know on {{v1X.doc.discourse}} if you want to discuss about it

Let us as well know if you have some improvement suggestions !



## Contributing to the code

 - If you want to report a bug, you can use [the github bugtracker]({{v1X.crowdsec.bugreport}})
 - If you want to suggest an improvement you can use either [the github bugtracker]({{v1X.crowdsec.bugreport}}) or the {{v1X.doc.discourse}} if you want to discuss 


## Contributing to the parsers/scenarios

If you want to contribute your parser or scenario to the community and have them appear on the {{v1X.hub.htmlname}}, you should [open a merge request](https://github.com/crowdsecurity/hub/pulls) on the hub.

We are currently working on a proper [CI](https://en.wikipedia.org/wiki/Continuous_integration) for the {{v1X.hub.htmlname}}, so for now all contribution are subject to peer-review, please bear with us !

## Contacting the team

If you want to contact us using non-public media, you can contact us on `support` AT `crowdsec` DOT `net` with the following gpg-key :

```
-----BEGIN PGP PUBLIC KEY BLOCK-----

ucVcwqjIXn/9V6+pFZ11soXNKuTk4Wx+uO2r/i5bVA==
=Edl+
-----END PGP PUBLIC KEY BLOCK-----
```


## Publishing bouncers

We do welcome bouncers from the community, and will gladly publish them on the hub.

### Why ?

Sharing your bouncer on the hub allows other users to find it and use it. While increasing your code's visibility, it ensures as well a benevolent look from the community and the team over it.

### How ?

To have your bouncer published on the hub, please simply [open a new issue on the hub](https://github.com/crowdsecurity/hub/issues/new), requesting "bouncer inclusion". The bouncer will then be reviewed by the team, and then will be published directly on the hub, for everyone to find & use it !


The information that should be stated in your issue are :

 - The source repository of your bouncer (for example `https://github.com/crowdsecurity/cs-firewall-bouncer/`)
 - The software licence used
 - The current status of the bouncer (stage : dev/unstable/stable)
 - Documentation (can be simply in the README.md) :
    - must contains : installing, uninstalling
    - should contains : configuration documentation 
 - Link to existing tests if applicable (functional tests or unit tests)

Please take care of the following :

 - Ensure your repository has a About/Short description meaningful enough : it will be displayed in the hub
 - Ensure your repository has a decent README.md file : it will be displayed in the hub
 - Ensure your repository has *at least* one release : this is what users will be looking for
 - (ideally) Have a "social preview image" on your repository : this will be displayed in the hub when available
 - (ideally) A Howto or link to guide that provides a hands-on experience with the bouncer


Please find below a template :

```markdown
Hello,

I would like to suggest the addition of the `XXXX` to the hub :

 - Source repository: https://github.com/xxx/xxx/
 - Licence : MIT
 - Current status : stable (has been used in production for a while)
 - README/doc : https://github.com/xxx/xxx/blob/main/README.md
 - Existing tests :
    - functional tests : https://github.com/xxx/xxx/blob/main/.github/workflows/tests.yml

 - Short/Long description : OK
 - Howto : in README
 - At least one release : yes

```

## Publishing parsers, scenarios and collections

### Why ?

Sharing your parsers, scenarios and collections on the hub allows other users to find it and use it. While increasing your code's visibility, it ensures as well a benevolent look from the community and the team over it.

### How ?

To have your parser/scenario published on the hub, please simply [open a new issue on the hub](https://github.com/crowdsecurity/hub/issues/new), requesting "parser/scenario inclusion". The configurations will then be reviewed by the team, and then will be published directly on the hub, for everyone to find & use it !

