Expand description
§cerberus-mergeguard
Use cerberus bot to combine conditional workflows in big monorepos with required status checks.
Instead of having empty runs, crazy bash magic or other tricks, you only need to mark the “cerberus-mergeguard” status as required.
§Table of Contents
§Usage
§CLI Args
$ cerberus-mergeguard help
Guard PRs from merging until all triggered checks have passed
Usage: cerberus-mergeguard [OPTIONS] <COMMAND>
Commands:
server Run the bot and listen for webhook events on /webhook
create Create a new pending status check for a commit
refresh Refresh the state of the status check of a commit
status Check the status of a commit
version Print the version and exit
help Print this message or the help of the given subcommand(s)
Options:
--log <LOG> Log level to use, overrides the level given in the config file
-c, --config <CONFIG> Path to the config file [default: /config/config.yaml]
-h, --help Print help§Image location
| Container Registry | Image |
|---|---|
| Github Container | ghcr.io/heathcliff26/cerberus-mergeguard |
| Docker Hub | docker.io/heathcliff26/cerberus-mergeguard |
§Tags
There are different flavors of the image:
| Tag(s) | Description |
|---|---|
| latest | Last released version of the image |
| rolling | Rolling update of the image, always build from main branch. |
| vX.Y.Z | Released version of the image |
§Setup
§Creating a github app
In order to create and update status checks, github requires an app. To create a github app follow these steps:
- Open github.com
- Login to your account
- Go to Settings -> Developer Settings
- Under “Github Apps” click “New Github App”
- Fill out all required fields
- GitHub App name: The display name of your app, e.g. Cerberus Mergeguard
- Homepage URL: URL to your Website
- Webhook URL: The URL where your bot is running, e.g. https://example.org/webhook
- Webhook Secret: Optional create a random string to enter here, to verify that webhook requests are sent by github
- Permissions -> Repository permissions:
- Checks: Read/Write
- Issues: Read
- Pull requests: Read
- Events:
- Check run
- Issue comment
- Pull request
- After creating your app, go to your app -> “Private Keys” and generate a new key
§Installing your app
After you have created your app, navigate to it (Settings -> Developer Settings -> Your App).
In the “Installed App” tab install the app to your profile and select which repositories you want to use it for.
§Running the bot
Before you run the bot, copy both the example configuration and your app private key to a folder.
Afterwards ensure you fill out all required attributes in the configuration file. The example has descriptions of the values.
Finally run the bot with
podman run -d -p 8080:8080 -v /path/to/config/:/config/ ghcr.io/heathcliff26/cerberus-mergeguard:latest§(Optional) Installing binary in CLI
You can download the latest binary from the releases page.
Alternatively you can use cargo with cargo install cerberus-mergeguard.
§Credits
The avatar picture has been created with Google Gemini.
Structs§
- App
- Guard PRs from merging until all triggered checks have passed.
- CLIOptions
- Addtional cli options used by the local client commands like
create,refresh, andstatus. - Global
Opts - Gobal cli options used by all commands (except
version).
Enums§
- Command
- The available subcommands.