docs: added CONTRIBUTING

This commit is contained in:
Matyáš Caras 2024-07-30 19:19:33 +02:00
parent 9a098134dd
commit d0a6afe3ed
Signed by: hernik
GPG key ID: 2A3175F98820C5C6
2 changed files with 78 additions and 3 deletions

67
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,67 @@
# Contributing
Thanks for your interest in this project. Below are ways on how to contribute.
## Code
Want to see something implemented? Why not do it yourself! (Will be very much appreciated, as I am a busy man)
### Style
- Commits follow the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) style
- Linting and formatting is done through [Biome](https://biomejs.dev/)
### Set up
0. Install [bun](https://bun.sh)
1. Fork and clone the repo: `git clone https://github.com/YourUsername/freelo-action && cd freelo-action`
2. Install dependencies: `bun install`
4. Create a new feature branch: `git checkout -b feat-myawesomefeature`
5. Add your code
6. Build a JS version to be used inside the action: `bun run build`
7. Run lints: `bunx biome check` (use `--write` option to automatically apply fixes)
8. Commit your code: `git add . && git commit -m "feat: new feature" && git push`
9. Create a pull request through GitHub
Wow! Who's awesome? You're awesome! I'll try my best to check your PR ASAP, but no promises there.
Please note that **contributing to this project means agreeing to the Developer Certificate of Origin**, as written below.
<details>
<summary>Developer Certificate of Origin text</summary>
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
</details>
## Issues
Something went wrong? Not working as expected? The easiest way to report this is through [Issues](https://github.com/hernikplays/freelo-action/issues). Simply fill out the template and I'll get back to you.

View file

@ -29,6 +29,10 @@ jobs:
task-id: ""
```
> [!WARNING]
> It's okay to omit some of the `on` listening types, but it is needed to keep the `issue.opened` type,
> because it creates the task and the comment to track the task across action runs.
### Linking GitHub users to Freelo users
The action will look for a `freelo.txt` file inside of your `.github` folder (the one where Action workflows are stored).
In it you can map GitHub usernames to Freelo IDs, one user per line:
@ -38,11 +42,15 @@ hernikplays:14832
john_doe:6586
```
If the file cannot be found, no mapping will be done and the action will simply put the GitHub username in the task description.
In case the file is not formatted correctly or another error occures, the action will throw an error.
If the file cannot be found or cannot be correctly loaded, no mapping will be done and the action will simply use the GitHub username in place of the Freelo ID.
### Security
Because I have not found any documentation on how Freelo handles sanitization of input, I've included the usage of [sanitize-html](https://www.npmjs.com/package/sanitize-html) to sanitize any user input. The only allowed tags are `"a","p","i","b","strong"`
Because I have not found any documentation on how Freelo handles sanitization of input, I've included the usage of [sanitize-html](https://www.npmjs.com/package/sanitize-html) to sanitize any user input. The only allowed tags are `"a","p","i","b","strong"`.
If you feel like a security issue has been introduced in the code, feel free to [report it](https://github.com/hernikplays/freelo-action/security/advisories/new).
## Contributing
See [CONTRIBUTING.md](https://github.com/hernikplays/freelo-action/blob/main/CONTRIBUTING.md).
## License
```