Monitor changes in the mailing list settings
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vincent 245786ef78
Use safe yaml loader
5 days ago
.reuse Initial commit 3 weeks ago
LICENSES Initial commit 3 weeks ago
.drone.yml Add CI check for REUSE compliance 2 weeks ago
.gitignore Initial commit 3 weeks ago
LICENSE Initial commit 3 weeks ago
README.md Implement CC email 1 week ago
check.py Use safe yaml loader 5 days ago
config.cfg.dist Implement CC email 1 week ago
export.py Improve mailiman configuration decoding and printing 5 days ago
utils.py In MailingLists file parsing add a key that says if the ml is active 5 days ago

README.md

Mailman settings monitoring

Goal

The goal is to ensure that the FSFE’s mailing list sensitive settings are properly configured.

How it works?

It works in two steps:

  • export.py export the sensitive part of the mailing lists configuration to a machine and human readable format

  • check.py compare the actual configuration to the expected configuration, stored in the internal repository. Each difference triggers an email to the mailing list administrators and a CC email address.

The sensitive attributes of a mailing list are:

  • private_roster
  • subscribe_policy

Details about those attributes can be found here.

and:

  • archive
  • archive_privat

Details about those attributes can be found here.

How it use it?

Requirements

The scripts use python 3 and two libraries:

  • yaml (to store the mailing list configuration)
  • requests (to get the expected mailing list configuration from git)

You can install them on Debian with the packages python3-yaml and python3-requests.

The export.py scripts needs a custom mailman script in your PATH. Download it from here.

Configuration

The check.py script uses a configuration file. Move config.cfg.dist to config.cfg and change the values according to your setup.

Run

Once the requirements are satisfied and the configuration file is ready, run the export.py script and redirect its output to a file (this must be done directly on the mailman server):

python3 export.py > actual_config.txt

Then run the check.py script:

python3 check.py