Contributing to OAuth2 Sidecar Proxy¶
Thank you for your interest in contributing! This document provides guidelines for contributing to the project.
Code of Conduct¶
Be respectful and inclusive. We welcome contributions from everyone.
How to Contribute¶
Reporting Bugs¶
- Check if the bug is already reported in Issues
- If not, create a new issue with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Environment details (K8s version, Istio version, etc.)
- Relevant logs
Suggesting Enhancements¶
- Check existing Issues and Discussions
- Create a new discussion or issue describing:
- The problem you're trying to solve
- Your proposed solution
- Any alternatives you've considered
Pull Requests¶
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Test your changes thoroughly
- Update documentation if needed
- Commit with clear messages
- Push to your fork
- Open a Pull Request
PR Guidelines¶
- Follow existing code style
- Include tests if adding features
- Update documentation
- Keep PRs focused - one feature/fix per PR
- Reference related issues
Development Setup¶
Prerequisites¶
- Kubernetes cluster (kind, minikube, or cloud)
- kubectl
- Helm 3
- Docker
Local Development¶
# Clone the repo
git clone https://github.com/ianlintner/authproxy.git
cd authproxy
# Install MkDocs for documentation
pip install -r docs/requirements.txt
# Serve documentation locally
mkdocs serve
# Test Kubernetes manifests
./scripts/validate.sh
Documentation¶
We use MkDocs with Material theme. Documentation is in the docs/ directory.
# Install dependencies
pip install -r docs/requirements.txt
# Serve locally
mkdocs serve
# Build
mkdocs build
Documentation Guidelines¶
- Use clear, concise language
- Include code examples
- Add Mermaid diagrams for complex concepts
- Test all commands and examples
- Use admonitions for important notes
Testing¶
Before submitting a PR:
# Validate Kubernetes manifests
kubectl apply --dry-run=client -k k8s/base/
kubectl apply --dry-run=client -k k8s/apps/example-app/
# Test Helm chart
helm lint helm/oauth2-sidecar/
helm template oauth2-sidecar helm/oauth2-sidecar/ --values examples/simple-app/values.yaml
# Run validation script
./scripts/validate.sh
Helm Chart Development¶
When modifying the Helm chart:
- Update version in
Chart.yaml - Update
values.yamlwith new options - Document changes in chart README
- Test with different value combinations
- Run
helm lint
Project Structure¶
├── docs/ # MkDocs documentation
├── helm/oauth2-sidecar/ # Helm chart
├── k8s/ # Kubernetes manifests
│ ├── base/ # Base resources
│ └── apps/ # Example apps
├── scripts/ # Helper scripts
└── examples/ # Example configurations
Commit Message Guidelines¶
Use clear, descriptive commit messages:
Types:
- feat: New feature
- fix: Bug fix
- docs: Documentation changes
- style: Code style changes (formatting)
- refactor: Code refactoring
- test: Adding tests
- chore: Maintenance tasks
Examples:
feat(helm): add support for custom OAuth scopes
fix(sidecar): correct redirect URL environment variable
docs(quickstart): add Google OAuth setup instructions
Release Process¶
Maintainers will:
- Update version in relevant files
- Update CHANGELOG
- Create git tag
- Build and push Helm chart
- Update documentation
- Create GitHub release
Questions?¶
- Discussions: GitHub Discussions
- Issues: GitHub Issues
License¶
By contributing, you agree that your contributions will be licensed under the MIT License.