First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines for contributing to RedTeamTP. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
- Check if the bug has already been reported by searching on GitHub under Issues.
- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include:
- A clear title and description
- As much relevant information as possible
- A code sample or an executable test case demonstrating the expected behavior that is not occurring
- Steps to reproduce the issue
- Check if the enhancement has already been suggested by searching on GitHub under Issues.
- If you don't find an open issue addressing the enhancement, open a new one.
- Use a clear and descriptive title
- Provide a detailed description of the suggested enhancement
- Explain why this enhancement would be useful to most RedTeamTP users
- Fork the repository
- Create a branch for your feature or fix (
git checkout -b feature/your-feature-name) - Make your changes
- Run the tests to ensure they pass
- Commit your changes with descriptive commit messages
- Push to your branch (
git push origin feature/your-feature-name) - Open a Pull Request
- Update the README.md with details of changes to the interface, if appropriate
- Update the documentation with any changes to the API
- The PR should work for Python 3.10+
- Include or update tests for your changes
- Ensure all CI checks pass
- Follow the style guidelines
- Clone the repository
- Install dependencies:
python3 -m pip install -r requirements.txt
- Set up pre-commit hooks:
pre-commit install
- Write tests for new features and bug fixes
- Run tests before submitting a PR:
pytest tests/
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
- Update documentation when changing code
- Follow markdown guidelines
- Keep documentation concise but comprehensive
- Never commit sensitive data (API keys, passwords, etc.)
- Be mindful of the security implications of your code
- Report security vulnerabilities privately to the project maintainers
By contributing to RedTeamTP, you agree that your contributions will be licensed under the project's MIT License.