Quick start for contributors
Fork the repository
Visit the GitHub repository and click the “Fork” button to create your own copy.
Development setup
Prerequisites
Ensure you have the following installed:- Python 3.7 or higher
- pip (Python package manager)
- AWS CLI (for testing)
Install dependencies
Project structure
Running tests
Run the full test suite
Run specific tests
Understanding the test framework
The project uses:- pytest: Python testing framework
- moto: Library for mocking AWS services
The current test suite (test_check_sg_usage.py:1-29) includes a basic test for the
print_both function. Contributors are encouraged to add more comprehensive tests.Writing new tests
When adding new features, include tests using moto to mock AWS services:Code style guidelines
Python conventions
Follow these conventions to maintain code consistency:Naming conventions
Naming conventions
- Variables: Use lowercase with underscores:
security_groups,sg_id - Functions: Use lowercase with underscores:
print_both(),describe_security_groups() - Constants: Use uppercase with underscores:
OUTPUT_FILE,MAX_RETRIES
Comments and documentation
Comments and documentation
- Add comments in Spanish to match the existing codebase style
- Document complex logic with inline comments
- Use docstrings for functions:
Code formatting
Code formatting
- Use 4 spaces for indentation (no tabs)
- Maximum line length: 120 characters (flexible for readability)
- Add blank lines between logical sections
- Follow PEP 8 style guide where applicable
Error handling
When adding new AWS service checks, include proper error handling:Adding support for new AWS services
Steps to add a new service
Services to consider adding
Contributions adding support for these services are especially welcome:- AWS Lambda (functions in VPCs)
- Network Interfaces (ENIs) directly
- AWS Batch compute environments
- Amazon AppRunner services
- Amazon Managed Workflows for Apache Airflow (MWAA)
- AWS Cloud9 environments
- Amazon Lightsail instances
Filing issues
Before filing an issue
Search existing issues
Check if your issue has already been reported: GitHub Issues
Issue templates
Bug report template
Bug report template
Feature request template
Feature request template
Pull request guidelines
Good pull requests
- Focus on a single feature or bug fix per PR
- Include tests for new functionality
- Update documentation as needed
- Write clear commit messages
- Follow existing code style
PR description template
Review process
After submitting your PR:- Maintainers will review your code
- Address any feedback or requested changes
- Once approved, your PR will be merged
- You’ll be credited as a contributor!
Code of conduct
Be respectful
- Use welcoming and inclusive language
- Respect differing viewpoints and experiences
- Accept constructive criticism gracefully
- Focus on what’s best for the community
Collaboration
- Help others learn and grow
- Share knowledge generously
- Credit others for their contributions
- Be patient with newcomers
License
This project is licensed under the MIT License. By contributing, you agree that your contributions will be licensed under the same MIT License.MIT License summary
MIT License summary
The MIT License allows:
- Commercial use
- Modification
- Distribution
- Private use
- Include the original license and copyright notice
Recognition
Contributors will be recognized in:- The project’s README
- GitHub’s contributors page
- Release notes (for significant contributions)
Getting help
If you need help contributing:Read the docs
Review the Troubleshooting and Best Practices guides.
Thank you for contributing to AWS Security Group Auditor! Your improvements help the entire community manage AWS security groups more effectively.