# Contribution Guidelines Any type of contribution is welcome; from new features, bug fixes, tests, refactorings for easier maintainability or documentation improvements. ## Development environment - [`node`](https://nodejs.org/en/) at least current LTS - [`helm`](https://helm.sh/docs/intro/install/) - `make` is optional; you may call the commands directly When using Visual Studio Code as IDE, following plugins might be useful: - [Markdown All in One](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one) - [markdownlint](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) - [Helm Intellisense](https://marketplace.visualstudio.com/items?itemName=Tim-Koehler.helm-intellisense) - [Prettier - Code formatter](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) ## Documentation Requirements The `README.md` must include all configuration options. The parameters section is generated by extracting the parameter annotations from the `values.yaml` file, by using [this tool](https://github.com/bitnami-labs/readme-generator-for-helm). If changes were made on configuration options, run `make readme` to update the README file. ## Pull Request Requirements When submitting or updating a PR: - make sure it passes CI builds. - do not make independent changes in one PR. - try to avoid rebases. They make code reviews for large PRs and comments much harder. - if applicable, use the PR template for a well-defined PR description. - clearly mark breaking changes. ## Local development & testing For local development and testing of pull requests, the following workflow can be used: 1. Install `minikube` and `helm`. 2. Start a `minikube` cluster via `minikube start`. 3. From the `gitea/helm-chart` directory execute the following command. This will install the dependencies listed in `Chart.yml` and deploy the current state of the helm chart found locally. If you want to test a branch, make sure to switch to the respective branch first. `helm install --dependency-update gitea . -f values.yaml`. 4. Gitea is now deployed in `minikube`. To access it, it's port needs to be forwarded first from `minikube` to localhost first via `kubectl --namespace default port-forward svc/gitea-http 3000:3000`. Now Gitea is accessible at [http://localhost:3000](http://localhost:3000). ### Unit tests ```bash # install the unittest plugin $ helm plugin install https://github.com/heyhabito/helm-unittest # run the unittests make unittests ```