Thank you for contributing to the Uptime Robot Operator.
- Check existing issues before creating new ones
- For major changes, open an issue first to discuss the approach
- Follow the Code of Conduct
See the Development Guide for:
- Setting up your environment
- Running tests
- Local development workflow
- Project structure
git checkout -b feat/my-feature- Write clear, focused commits
- Add tests for new functionality
- Update documentation if needed
make manifests generate fmt vet lint testAll checks must pass before submitting.
Follow Conventional Commits:
feat(monitor): add DNS monitor support
fix(controller): handle rate limiting correctly
docs: update installation guide
chore: update dependencies
Release triggers:
| Type | Version Bump |
|---|---|
feat: |
Minor (1.x.0) |
fix: |
Patch (1.0.x) |
docs:, chore:, ci:, refactor:, test: |
None |
- Push your branch to your fork
- Create a draft PR while work is in progress
- Mark as ready for review when tests pass
- Ensure CI passes before requesting review
- Tests pass locally (
make test) - Linting passes (
make lint) - Code formatted (
make fmt) - Generated files updated (
make manifests generate) - E2E tests pass (if applicable)
- Documentation updated
- Commit messages follow convention
- Code coverage meets threshold (checked automatically by Codecov)
All PRs automatically run:
- Unit Tests: Full test suite with coverage reporting
- Code Coverage: Minimum 70% required, enforced by Codecov
- Linting: golangci-lint checks for code quality
- CRD Verification: Ensures generated CRDs are up-to-date
- E2E Tests (Basic): Operator deployment and metrics validation
To run full E2E tests with real UptimeRobot API, comment on your PR:
/run-e2e
This requires write access and uses a test API key. The workflow will:
- Build and deploy the operator to a Kind cluster
- Run tests against the real UptimeRobot API
- Report results as a comment on the PR
When adding fields to CRDs:
- Update API types in
api/v1alpha1/ - Add validation tags
- Run
make manifests generate - Update controller logic
- Add unit and e2e tests
- Update documentation
See .cursor/rules/new-field-checklist.mdc for the complete checklist.
Expect feedback on:
- Code quality and style
- Test coverage
- Documentation clarity
- Breaking changes
Be responsive to feedback and iterate on your PR.
- Development Guide - Setup and testing
- GitHub Issues - Bug reports and features
- Discussions - Questions and ideas