Thank you for your interest in contributing to the CNCF Automation repository! This guide will help you understand how to contribute effectively.
- GitHub account
- Git installed locally
- Familiarity with the repository structure (see README.md)
-
Fork the repository
git clone https://github.com/YOUR-USERNAME/cncf-automation.git cd cncf-automation -
Create a branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow the existing code style
- Write clear commit messages
- Test your changes locally
-
Push and create a Pull Request
git push origin feature/your-feature-name
We use automated labeling via slash commands to organize and prioritize work. All new issues and PRs should be labeled.
Comment on an issue or PR with:
/kind bug
/priority high
/area ci
/status in-progress
See our comprehensive Label & ChatOps Guide for:
- All available labels and their meanings
- Slash command syntax
- Auto-labeling behavior
- Best practices for labeling
kind/*— Mark the type of work (bug, enhancement, docs, chore, etc.)priority/*— Indicate urgency (critical, high, medium, low)area/*— Specify affected codebase area (ci, utilities, infrastructure, etc.)status/*— Track current state (needs-review, in-progress, blocked)
- Write clear, descriptive commit messages
- Start with a present-tense verb ("Add", "Fix", "Update", not "Added", "Fixed", "Updated")
- Reference related issues:
Fixes #123orRelated to #456 - Keep commits atomic and focused on a single change
Fix CI pipeline failure on ARM64 architecture
- Update cloudrunners Dockerfile for multi-arch support
- Add ARM64 tests to GitHub Actions workflow
- Document architecture-specific considerations
Fixes #123
-
Automated Checks
- GitHub Actions workflows run automatically on every PR
- Syntax checks, linting, and tests are performed
- All checks must pass before merge
-
Manual Review
- At least one maintainer review is required
- Reviewers will provide feedback via PR comments
- Address feedback and update your branch
-
Merge
- Once approved and all checks pass, the PR can be merged
- Please squash commits if requested by reviewers
- Use
gofmtfor formatting - Follow Effective Go guidelines
- Run
go vet ./...before submitting
- Use 4 spaces for indentation
- Follow PEP 8 style guide
- Use type hints where possible
- Use 2 spaces for indentation
- Keep line length under 120 characters
- Use consistent quote style
Before submitting a PR, ensure:
-
Unit tests pass
go test ./... # For Go python -m pytest # For Python
-
Local testing
- Test your changes locally in a test branch
- Verify all workflows execute correctly
-
No breaking changes
- Document any API or configuration changes
- Consider backward compatibility
When reporting a bug or suggesting a feature:
- Check for duplicates — Search existing issues first
- Be specific — Provide clear, detailed descriptions
- Include context — Share steps to reproduce, error messages, environment info
- Use labels — Tag issues with
/kind,/priority,/area
/kind bug
/priority medium
/area ci
## Description
Brief description of the issue
## Steps to Reproduce
1. First step
2. Second step
3. Expected result vs actual result
## Environment
- OS: Linux/macOS/Windows
- Go version: 1.XX
- Python version: 3.XX
- Update documentation when adding features
- Keep README files accurate and current
- Add comments to complex code sections
- Document configuration options and environment variables
- Questions: Open an issue with the
kind/questionlabel - Discussion: Use issue comments for discussion
- Chat: Check existing issues for similar questions
By contributing, you agree that your contributions will be licensed under the same license as the repository (see LICENSE file).
Please note that this project is governed by the CNCF Code of Conduct. By participating, you are expected to uphold this code.
Your contributions help make the CNCF automation infrastructure better for everyone. We appreciate your effort and patience!