Ben
a0279c12e6
Replaces occurrences of channel with room (deprecates channel arguments). Use python native logging module instead of prints. Remove .idea from git Simplify .gitignore |
||
---|---|---|
wmn | ||
.gitignore | ||
config.yml.example | ||
Dockerfile | ||
LICENSE | ||
Pipfile | ||
Pipfile.lock | ||
README.md | ||
testrequest_gitlab.json | ||
testrequest_prometheus.json |
Webhook Matrix Notifier
Takes notifications via webhook, checks a secret and notifies a Matrix room. Listens to HTTP only. Should be used behind a reverse-proxy with HTTPS.
An example configuration is at config.yml.example
and the program always reads the configuration file config.yml
.
Testing the Hook locally
First, start the webserver locally by env FLASK_APP=wmn.py flask run
or have your IDE start it for you.
Then, send a POST request using curl.
GitLab
export URLQUOTED_ROOM=`python3 -c 'from urllib.parse import quote_plus; print(quote_plus("#room:matrix.org"))'`
curl -i -X POST "http://localhost:5000/matrix?room=${URLQUOTED_ROOM}" -H "X-Gitlab-Event: Push Hook" -H "X-Gitlab-Token: 123" -H "Content-Type: application/json" --data-binary @./testrequest_gitlab.json
The X-Gitlab-Token
must correspond to the secret provided in config.yml
Prometheus
export URLQUOTED_ROOM=`python3 -c 'from urllib.parse import quote_plus; print(quote_plus("#room:matrix.org"))'`
export URLQUOTED_SECRET=`python3 -c 'from urllib.parse import quote_plus; print(quote_plus("123"))'`
curl -i -X POST "http://localhost:5000/matrix?type=prometheus&secret=${URLQUOTED_SECRET}&room=${URLQUOTED_ROOM}" -H "Content-Type: application/json" --data-binary @./testrequest_prometheus.json
The secret must be passed as a URI parameter here.