https://github.com/outscale/richard
A modular bot to help creating notifications
https://github.com/outscale/richard
maturity-sandbox
Last synced: 11 months ago
JSON representation
A modular bot to help creating notifications
- Host: GitHub
- URL: https://github.com/outscale/richard
- Owner: outscale
- License: bsd-3-clause
- Created: 2024-01-17T09:16:27.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-17T01:50:41.000Z (over 1 year ago)
- Last Synced: 2025-03-21T05:43:08.937Z (11 months ago)
- Topics: maturity-sandbox
- Language: Rust
- Homepage:
- Size: 426 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Richard
[](https://docs.outscale.com/en/userguide/Open-Source-Projects.html)
Richard is a friendly chatbot which can help you trigger alerts.
For now, the bot only support Webex room to speak for has a modular architecture to add any other communication protocols.
# Features
Richard is modular and every module must be explicitely enabled.
Available modules:
- webex: interface with Webex chat service
- ping: responds to /ping commands with "pong"
- help: responds to /help command
- triggers: allow commands to be sent to all other modules
- down_detectors: watch for one or more URL. Alert when target goes down
- github_orgs: watch for all releases of all repositories of one or more github organisation
- github_repos: watch one or more specific githib repositories, trigger message on new release
- hello: send a random quote at a specific time interval
- ollama: interface with [ollama API](https://ollama.ai/), respond when no command is triggered
- feeds: watch for one or more RSS feeds, alert on new items
- roll: responds to /roll commands. e.g. /roll 1d20
- webpages: watch for one or more webpages. Alert when page content change.
- outscale_api_versions: watch for new API version of one or more Outscale API endpoints
# Build
1. Install [Rustlang](https://www.rust-lang.org/)
2. Run `cargo build --release`
If you need to have a static binary:
1. Install musl toolchain: `rustup target add x86_64-unknown-linux-musl`
2. Install `musl-gcc` (for Debian `apt install musl-tools`)
3. Build with `cargo build --target x86_64-unknown-linux-musl --release`
# Configure
Parameters are passed through environment variables. See [config.env.ori](./config.env.ori) example.
Use `--show-params` flag to print all needed var env per modules
As a facility, you can:
1. copy `config.env.ori` to `config.env`
2. edit `config.env`
3. load options by running `source config.env`
# Run
```
source myconf.env && cargo run
```