2023-09-17 03:50:31 +00:00
|
|
|
# `bebot`
|
|
|
|
|
|
|
|
Bebot is a Gitlab webhook handler that publishes messages to Matrix when
|
|
|
|
interesting things happen in your configured repos.
|
|
|
|
|
|
|
|
Currently-supported Gitlab event types:
|
|
|
|
|
|
|
|
* Push events
|
|
|
|
* Tag push events
|
|
|
|
* Issue events
|
|
|
|
* Merge request events
|
|
|
|
* Pipeline events (only publishes on failure for now)
|
|
|
|
|
|
|
|
## Building
|
|
|
|
|
|
|
|
Bebot is written in Rust, and requires a Rust toolchain in order to
|
|
|
|
build. The usual `cargo build` or `cargo build --release` will do the
|
|
|
|
trick.
|
|
|
|
|
|
|
|
You can also build and install the latest released version of Bebot by
|
|
|
|
running `cargo install bebot`.
|
|
|
|
|
|
|
|
## Setup
|
|
|
|
|
|
|
|
Bebot requires a configuration file in YAML format. See
|
2023-09-17 07:56:02 +00:00
|
|
|
`sample-config.yaml` for all existing configuration options, as well as
|
|
|
|
documentation on what each option does.
|
2023-09-17 03:50:31 +00:00
|
|
|
|
|
|
|
When setting up the webhook in Gitlab, use the same `token` from the
|
|
|
|
configuration file in the webhook's "Secret token" field. You should
|
|
|
|
only select "Push events", "Tag push events", "Issues events", "Merge
|
|
|
|
request events", and "Pipeline events". You can leave some of these out
|
|
|
|
if you don't want Bebot to publish messages for everything.
|
|
|
|
|
|
|
|
Bebot does not support serving the webhook over TLS, so you will
|
|
|
|
probably want to put it behind a reverse-proxy such as nginx.
|
|
|
|
|
|
|
|
In the `scripts` directory is a `set-webhook.py` script that can set up
|
|
|
|
(or update) webhooks for your repository, automatically generating a
|
|
|
|
token for you. If setting up the webhook for the first time, it will
|
|
|
|
output to stdout a YAML snippet that goes under the `repo_configs`
|
|
|
|
section of the configuration file. If you run the script with no
|
|
|
|
arguments, it will print out usage details.
|
|
|
|
|
|
|
|
## Running
|
|
|
|
|
|
|
|
After you've done all that, simply run Bebot:
|
|
|
|
|
|
|
|
```
|
|
|
|
bebot /path/to/config-file.yaml
|
|
|
|
```
|
|
|
|
|
|
|
|
You can set the `BEBOT_LOG` environment variable to increase or decrease
|
|
|
|
logging verbosity. (Try `debug`, `info`, `warn` `error`, or `off`.)
|
|
|
|
|
|
|
|
### Docker
|
|
|
|
|
|
|
|
A `Dockerfile` is also provided. When running the container it builds,
|
|
|
|
mount the configuration file so it appears inside the container as
|
|
|
|
`/bebot/config/bebot.yaml`.
|