Downloads ROAs from https://rpki-validator.ripe.net/api/export.json, inserts them in a CSV, and returns them as a list of ROA dataclasses (containing asn, prefix, max_length, and ta properties, where ta is RIPE, afrinic, etc)
from a script:
from pathlib import Path
from roa_collector import ROACollector
csv_path = Path("/tmp/my_csv_path.csv") # or set to None to avoid writing
roas = ROACollector(csv_path).run()
Install python and pip if you have not already.
Then run:
# Needed for graphviz and Pillow
pip3 install pip --upgrade
pip3 install wheel
For production:
pip3 install roa_collector
This will install the package and all of it's python dependencies.
If you want to install the project for development:
git clone https://github.com/jfuruness/roa_collector.git
cd roa_collector
pip3 install -e .[test]
pre-commit install
To test the development package: Testing
To test the package after installation:
cd roa_collector
pytest roa_collector
ruff roa_collector
black roa_collector
mypy roa_collector
If you want to run it across multiple environments, and have python 3.10 and 3.11 installed:
cd roa_collector
tox
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Test it
- Run tox
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Ensure github actions are passing tests
- Email me at jfuruness@gmail.com if it's been a while and I haven't seen it
BSD License (see license file)