# Contributing ## Branch Protection - **`main` branch is protected** — direct pushes are disabled. - All changes must go through **Merge Requests (MRs)**. - MRs require approval from code owners before merging. ## CI/CD - Deployment is automated via **Woodpecker CI**. - Pipeline triggers on every push to `main` after merge. - Configuration: `.woodpecker.yml` ## Workflow 1. Create a feature branch from `main` 2. Make changes and push (put web content in `/public`) 3. Open a Merge Request 4. Wait for CI checks + code owner review 5. Merge when approved ## Code Owners See `.gitea/CODEOWNERS` for responsible maintainers.