Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bo0mer/flyontime

Concourse CI Slack/Mattermost Bot
https://github.com/bo0mer/flyontime

bot concourse-ci mattermost slack

Last synced: 4 days ago
JSON representation

Concourse CI Slack/Mattermost Bot

Awesome Lists containing this project

README

        

# flyontime [![CircleCI](https://circleci.com/gh/Bo0mer/flyontime.svg?style=svg)](https://circleci.com/gh/Bo0mer/flyontime)

Command flyontime implements interactive Slack/Mattermost bot that monitors
Concourse CI jobs and sends notifications on significant events.

Notifications are sent for on following job state transitions:
* job fails
* job succeeds after failing at least once
* job errors
* job is aborted

Additionally, each notification message supports a set of commands for taking
further actions. To invoke a specific command, just reply to the notification
message. The following commands are currently supported:

* `rerun`, `retry` - Rerun the job and post its new status.
* `mute [duration]`, `silence [duration]` - Mute notifications for this
particular job for `duration` (e.g. `mute 30m`).
* `unmute` - Turn notifications for muted job back on.
* `pause [pipeline]`, `stop [pipeline]` - Pause the job (or pipeline, which the job is part of).
* `unpause [pipeline]`, `play [pipeline]` - Pause the job (or pipeline, which the job is part of).

## Usage

Configuration could be provided both from environment variables and as
command-line arguments to the `flyontime` command, e.g.

```
export CONCOURSE_PASSWORD="s3cr3t-password"
export SLACK_TOKEN="slack-t0k3n"
flyontime -concourse-username="Bob" -slack-channel-id="42"
```

Full usage help can be printed by providing the `--help` flag:

```
Usage of flyontime:
-concourse-password="": Concourse Password
-concourse-team="main": Concourse Team
-concourse-url="http://localhost:8080": Concourse URL
-concourse-username="": Concourse Username
-mattermost-channel-id="": Mattermost channel id for sending alerts
-mattermost-token="": Mattermost token for sending alerts
-mattermost-url="": Mattermost channel id for sending alerts
-slack-channel-id="": Slack channel id for sending alerts
-slack-token="": Slack token for sending alerts
-verbose=false: Enable verbose output
```