Skip to content

Latest commit

 

History

History
128 lines (90 loc) · 3.19 KB

File metadata and controls

128 lines (90 loc) · 3.19 KB

Contributing

Thank you for contributing to the Uptime Robot Operator.

Before You Start

Development Setup

See the Development Guide for:

  • Setting up your environment
  • Running tests
  • Local development workflow
  • Project structure

Pull Request Process

1. Create Your Branch

git checkout -b feat/my-feature

2. Make Your Changes

  • Write clear, focused commits
  • Add tests for new functionality
  • Update documentation if needed

3. Run Pre-Commit Checks

make manifests generate fmt vet lint test

All checks must pass before submitting.

4. Commit Message Format

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

5. Submit Pull Request

  1. Push your branch to your fork
  2. Create a draft PR while work is in progress
  3. Mark as ready for review when tests pass
  4. Ensure CI passes before requesting review

PR Checklist

  • 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)

Automated Checks

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

Manual E2E Tests

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

Adding New Fields

When adding fields to CRDs:

  1. Update API types in api/v1alpha1/
  2. Add validation tags
  3. Run make manifests generate
  4. Update controller logic
  5. Add unit and e2e tests
  6. Update documentation

See .cursor/rules/new-field-checklist.mdc for the complete checklist.

Code Review

Expect feedback on:

  • Code quality and style
  • Test coverage
  • Documentation clarity
  • Breaking changes

Be responsive to feedback and iterate on your PR.

Getting Help