1.7 KiB
Contributing to GRM
For the full contributing guide, see the Contributing wiki page.
Thank you for contributing to Gitea Runner Manager (GRM)!
Branch Naming
All feature branches must include a GRM-N prefix corresponding to the Vikunja task identifier. Examples:
GRM-19GRM-19-fix-bugGRM-42-add-update-command
The GRM-N prefix is mandatory — CI extracts it for merge messages and Vikunja updates.
Commit Format
Feature branches
Use conventional commits on feature branches:
feat: add new command
fix: resolve timeout issue
chore: update dependencies
docs: improve README
Allowed types: feat, fix, chore, docs, style, refactor, perf, test, ci, build, revert, BREAKING CHANGE.
Do NOT include the GRM-N: prefix in commit messages on feature branches.
Master branch (squash merges)
Squash commits on master must follow:
GRM-N: <conventional commit message>
Example: GRM-24: fix: resolve molecule idempotence.
This format is enforced by the auto-merge workflow, which validates the PR title is a conventional commit before squash-merging and prepending the task ID.
Local Testing
make test-all # Runs pytest-cov + molecule
make lint-all # Runs ruff, pyright, bandit, ansible-lint, checkmake
make lint-bandit # Security scan with bandit
make pytest-cov # Unit tests with 100% coverage enforcement
make molecule # All 6 molecule scenarios
Code Quality
- ruff: Line length 120
- pyright: Strict mode
- bandit: Security scan for Python code (no high/medium severity issues)
- Test coverage: 100% required
- ansible-lint: For all Ansible content