Thank you for your interest in contributing to Project Raven!
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/project-raven.git - Create a virtual environment:
python3 -m venv venv - Activate the virtual environment:
source venv/bin/activate - Install development dependencies:
pip install -r requirements.txt - Install test dependencies:
pip install -e ".[dev]"
We use:
- Black for code formatting
- Flake8 for linting
- MyPy for type checking
Run these before committing:
black raven/
flake8 raven/
mypy raven/Run the test suite:
pytest tests/Run with coverage:
pytest --cov=raven tests/raven/
├── api/ # FastAPI endpoints
├── core/ # Core business logic
├── ml/ # ML/AI models
├── tools/ # Security tool integrations
├── hunters/ # Threat hunting modules
├── mitigation/ # Response automation
├── monitoring/ # Metrics and dashboards
└── config/ # Configuration
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Write tests for new functionality
- Ensure all tests pass
- Update documentation if needed
- Submit a pull request
When contributing ML models:
- Provide training data examples
- Document model architecture
- Include performance metrics
- Add model loading/saving functionality
- Write unit tests
When adding new security tools:
- Follow the pattern in
raven/tools/ - Implement error handling
- Add configuration options
- Include safety checks
- Write integration tests
Keep documentation updated:
- Update README.md for user-facing changes
- Update ARCHITECTURE.md for structural changes
- Add inline comments for complex logic
- Update DEPLOYMENT.md for deployment changes
- All PRs require review
- At least one approval needed
- CI checks must pass
- Security changes require additional review
By contributing, you agree that your contributions will be licensed under the MIT License.