Thanks for your interest in contributing! Here's how to get involved.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/iris.git - Create a branch:
git checkout -b feature/your-feature-name - Install dependencies:
pip install -r requirements.txt - Make your changes
- Run tests:
pytest tests/ - Commit:
git commit -m "feat: describe your change" - Push:
git push origin feature/your-feature-name - Open a Pull Request
Use conventional commits:
feat:— new featurefix:— bug fixdocs:— documentation onlyrefactor:— code restructure, no behavior changetest:— adding or updating testschore:— maintenance tasks
- Python 3.10+
- Type hints on all functions
- Docstrings on all classes and public methods
- Use
richfor any terminal output - No hardcoded credentials — always use env vars or config file
- Create
src/feeds/yourfeed.py - Subclass
BaseFeedfromsrc/feeds/base.py - Implement
async def lookup(self, indicator: str) -> dict - Register it in
src/core/aggregator.py - Add config entry to
config.yaml - Write tests in
tests/test_feeds.py
Open an issue using the bug report template.
Open an issue using the feature request template.