First off, thank you for considering contributing to AEGIS! 🎉
- Fork the repository at https://github.com/Masriyan/Aegis
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/Aegis.git - Create a branch:
git checkout -b feature/amazing-feature - Make changes and test them
- Commit:
git commit -m 'Add amazing feature' - Push:
git push origin feature/amazing-feature - Open a Pull Request
AEGIS is designed to be modular. Here's how to add your own reconnaissance module:
def my_awesome_module(target: str):
"""Your module description here"""
result = {"data": [], "error": None}
try:
# Your reconnaissance logic here
result["data"] = ["finding1", "finding2"]
except Exception as e:
result["error"] = str(e)
return resultFind the run_scan() function and add your module:
run_mod("my_module", "my_module" in selected_services, my_awesome_module, target)Add your module to the appropriate category:
('My Module', 'my_module', 'fa-star'),{% elif key == 'my_module' %}
<table>
<thead><tr><th>Finding</th></tr></thead>
<tbody>
{% for item in value.data %}
<tr><td>{{ item }}</td></tr>
{% endfor %}
</tbody>
</table>
{% endif %}| Rule | Example |
|---|---|
| Function names | snake_case - subdomain_takeover_check() |
| Constants | UPPER_CASE - MITRE_MAPPING |
| Docstrings | Required for all functions |
| Line length | Max 120 characters |
| Error handling | Always catch exceptions, return {"error": str(e)} |
Before submitting a PR:
# Syntax check
python -m py_compile aegis.py
# Run the app
python aegis.py
# Test with a safe target
# Navigate to http://127.0.0.1:8080
# Scan https://example.com with your module enabledtype(scope): short description
[optional body]
[optional footer]
Types:
feat- New featurefix- Bug fixdocs- Documentation onlystyle- Code style (formatting, etc.)refactor- Code restructuringtest- Adding testschore- Maintenance tasks
Examples:
feat(modules): add DNSSEC validation module
fix(crawler): handle timeout on slow pages
docs(readme): update installation instructions
- New reconnaissance modules
- Bug fixes
- Performance improvements
- Documentation updates
- Test coverage
- Additional OSINT integrations
- Export format options (STIX, TAXII)
- Visualization improvements
- CI/CD pipeline setup
- Security: Never commit API keys or secrets
- Ethics: All modules must respect legal boundaries
- Dependencies: Minimize external dependencies
- Backwards compatibility: Don't break existing functionality
- Be respectful and inclusive
- Provide constructive feedback
- Help others learn and grow
- Focus on what is best for the community
- 📫 Open an Issue
- 💬 Start a Discussion
Thank you for making AEGIS better! 🛡️