Thank you for your interest in contributing to this project!
- Use GitHub Issues to report bugs or request features
- Include your environment details (OS, Terraform version, AWS CLI version)
- Provide clear steps to reproduce the issue
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run validation checks (see below)
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Before submitting a PR, ensure:
# Format check
terraform fmt -check -recursive terraform/
# Validate all modules
for dir in terraform/modules/*/; do
terraform -chdir="$dir" init -backend=false
terraform -chdir="$dir" validate
done
# Security scan
checkov -d terraform/ --framework terraform
# Lint
tflint --recursive terraform/- Follow Terraform best practices
- Use meaningful resource names with consistent prefixes
- Include descriptions for all variables and outputs
- Add comments for complex logic only
- Keep modules focused and single-purpose
- Update relevant docs when changing functionality
- Follow ADR format for architectural decisions
- Keep README sections up to date
- Never commit secrets or credentials
- All resources must be encrypted by default
- Follow least privilege principle for IAM
- Security group rules must be explicit (no
0.0.0.0/0without justification)
Open an issue for any questions about contributing.