a bot for ops in matrix. This bot catches webhooks and forwards them as messages to matrix rooms.
Find a file
2024-07-18 16:20:35 +02:00
.vscode Add gitlab webhook support 2022-12-01 13:47:27 +00:00
ops_bot Add actions and more data 2024-07-18 16:20:35 +02:00
templates/gitlab Add gitlab webhook support 2022-12-01 13:47:27 +00:00
tests Add actions and more data 2024-07-18 16:20:35 +02:00
.dockerignore Add Dockerfile 2022-07-22 12:53:34 +00:00
.flake8 First pass at implemenation with pagerduty webhooks 2022-07-22 12:23:04 +00:00
.gitignore Add alertmanager as supported sender and update deps 2023-11-07 15:14:56 +01:00
.gitlab-ci.yml ci: ensure git is available in the build step 2023-11-28 10:32:23 +01:00
.pre-commit-config.yaml Add Dockerfile 2022-07-22 12:53:34 +00:00
config.json.sample Refactor codebase to by DRY 2022-12-01 16:31:04 +00:00
docker-compose.yml Add docker-compose docs 2022-07-22 14:12:14 +00:00
Dockerfile Fix the python-olm hacks. 2023-11-28 12:33:14 +01:00
LICENSE.md initial commit 2022-07-22 08:42:44 +00:00
Makefile Fix the python-olm hacks. 2023-11-28 12:33:14 +01:00
poetry.lock Fix the python-olm hacks. 2023-11-28 12:33:14 +01:00
pyproject.toml Fix the python-olm hacks. 2023-11-28 12:33:14 +01:00
pytest.ini Add gitlab webhook support 2022-12-01 13:47:27 +00:00
README.md Add alertmanager as supported sender and update deps 2023-11-07 15:14:56 +01:00
requirements.frozen.txt Fix the python-olm hacks. 2023-11-28 12:33:14 +01:00
shell.nix More workarounds to use latest python-olm 2023-11-28 12:16:13 +01:00

matrix-ops-bot

a bot for ops in matrix

This bot catches webhooks and forwards them as messages to matrix rooms.

Current supported webhooks:

  • PagerDuty
  • AWS SNS
  • Gitlab
  • Prometheus Alertmanager

Usage

See config.json.sample for a sample config file.

Once you have a basic config (leave the routing_keys an empty list), you can easily add new webhooks with

$ poetry run config add-hook --name my-hook-name --hook-type gitlab --room-id '!abcd1234:matrix.org'

Hook added successfully

Your webhook URL is:
        /hook/vLyPN5mqXnIGE-4o9IKJ3vsOMU1xYEKBW8r4WMvP
The secret token is:
        6neuYcncR2zaeQiEoawXdu6a4olsfH447tFetfvv

Note: Register your bot user manually. This program does not register a new user. You must also accept invitations to join the room automatically.

docker run --rm  \
--name ops-bot \
--volume /path/to/data:/data:rw \
--volume /path/to/config:/config:ro \
registry.gitlab.com/guardianproject-ops/matrix-ops-bot:main

or docker-compose:

version: "3.8"
services:
  bot:
    image: registry.gitlab.com/guardianproject-ops/matrix-ops-bot:main
    user: "1000"
    ports: 
      - "0.0.0.0:1111:1111"
    volumes:
      - /home/admin/bot/data:/data:rw
      - /home/admin/bot/config:/config:ro
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "3"

Dev Setup

poetry install
poetry run start

License

matrix-ops-bot
Copyright (C) 2022 Abel Luck <abel@guardianproject.info>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

This project uses pieces of maubot/gitlab, which is also AGPL. These files have been noted with a comment header.