-
Notifications
You must be signed in to change notification settings - Fork 53
Project Design
The project is a CLI application that uses Python argparse for argument handling. We utilize the third-party library colorama
to provide colorized output.
The three operating modes are implemented in their respective modules (search, attack, and enumerate). All functionality related to interacting with the GitHub API is located within the github
module. Any functionality pertaining to interacting with a locally cloned git repository is contained in the git
module.
Any user-facing print statements should live in each respective module, and only log statements should be present within the github
and git
modules.
All non-unit test code should have function documentation for the method, parameters, and return value. Additionally, all lines must be no longer than 79 characters.
Since this tool is an enumeration and attack tool targeting GitHub, it is essential to test any new features manually. This will require creating test repositories and users to ensure the new functionality works as intended. If you would like to discuss the test scenarios that would be helpful in ensuring your new contribution works, feel free to discuss this in the discussions section.
All new features must have unit tests written as part of the pull request. The unit tests must cover the passing, failure, and edge cases at a minimum.
Unit tests should mock out any requests to GitHub.com. It is ok to use files for unit tests, provided they live within the test/files
directory, and they are not written to. The file open builtin should be mocked out for any unit tests that write files.
Integration testing is performed on the develop
and main
branches on a nightly basis and when new features are added to the branches. Integration testing may also be carried out manually against proposed new features by maintainers.