A collection of Seattle Community Network (SCN) tools, including:
threader
: SCN's email threading service to collect and categorize SCN messages.netbot
: SCN's Discord bot to manage Redmine tickets from Discord.redmine
: A Redmine client written in Python, designed for SCN use cases.
This code base currently supports several different services due to the reliance on the Redmine client code. (In the future, this should be split into several projects, and redmine.py cleaned up and submitted to PyPI.)
The email threader functionality is implemented in threader.py
, is designed to run periodically as a cron job.
For design and implementation details, see Design.
For deployment and operational details, see Threader Operation.
The netbot functionality is implemented in netbot.py
(and supporting cog_*.py
implementations), is designed to run in as a container using a standard compose.yaml
file.
For design and implementation details, see Design.
For deployment and operational details, see Netbot Operation.
A Makefile
is provided with the following targets:
venv
: build a Python virtual environment ("venv")run
: run netbottest
: run the unit test suitecoverage
: run the unit tests and generate a minimal coverage reporthtmlcov
: run the unit tests and generate a full report in htmlcov/
Testing and coverage requires standing up a local testbed. For details, see Design.