This adds a Mumble service that sits on a Mumble server and notifies a
Matrix room of users that join and leave. I'd like to expand this
functionality shortly (possibly including templates as found in the
Alertmanager service, or multiple Matrix rooms) but this has basic
functionality now.
I was sort of guessing at some of the API based on some of the
existing services, and I'm extremely new to Go. (This is the first Go
project I've contributed to!) Feedback on what I've inevitably done
horribly wrong is welcome. :)
* Make a distinction between closed and merged GitHub PRs
Signed-off-by: Isaiah Inuwa <isaiah.inuwa@gmail.com>
* Use assignment shorthand
Co-authored-by: Kegsay <kegsay@gmail.com>
Co-authored-by: Kegsay <kegsay@gmail.com>
* Handle SAS verification by exposing an endpoint where the SAS can be sent to be verified
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Init cryptotest service with basic commands
* Add cryptotest service with challenge request / response / session invalidation commands
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Add cryptotest methods for testing key forwarding
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Add help messages for cryptotest cmds
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Add newer apt repository for updated libolm
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Move command functionalities for cryptotest to different functions
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Fixed cryptotest service and package name from echo
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Control which users can start a SAS verification with Neb through regexes in the config
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Have maximum number of ongoing verifications at any time
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Fix Trace to Tracef
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Integration test to confirm bot can join a room and respond to a command
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Integration test for receiving and sending encrypted messages
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Extract common integration test functionality in a new func
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Add device ID to the configuration
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Basic e2ee support for some commands
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Move some of the client and crypto logic to a new BotClient type
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Use the state store to retrieve room joined users
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Start creating the database APIs for the crypto store
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Replace mautrix.Client usage with BotClient for all services to use the
e2ee-enabled client
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Use SQL backend for storing crypto material
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Perform a sync request with full state when starting
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Consider case where device ID is empty and log a warning
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Define project as a Go module and update dependency versions
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Update docs, configs and dockerfile to use latest Go version
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* Add postgres database driver
Signed-off-by: Nikos Filippakis <me@nfil.dev>
* when there is a problem with the templates in the service, say what the
problem is.
* when there is a problem interpolating the template, log the error and return
a 500.
For when running in config file mode. The same example can be used
to manually insert into the SQLite database or figure out
how to use the services API to configure Alertmanager service
Refs: #264
Signed-off-by: Jason Robinson <jasonr@matrix.org>
The godoc server can be reachable, but without content (throwing 404s). This prevented wget from scraping.
curl -f throws exit code != 0 for http status code != 200.