https://github.com/lukaspustina/hubot-bosun
Bosun integration for Hubot
https://github.com/lukaspustina/hubot-bosun
Last synced: 2 months ago
JSON representation
Bosun integration for Hubot
- Host: GitHub
- URL: https://github.com/lukaspustina/hubot-bosun
- Owner: lukaspustina
- License: mit
- Created: 2016-07-01T16:23:14.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2020-11-03T08:56:50.000Z (over 4 years ago)
- Last Synced: 2025-02-02T02:18:42.085Z (4 months ago)
- Language: CoffeeScript
- Homepage:
- Size: 510 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# hubot-bosun
[](https://travis-ci.org/lukaspustina/hubot-bosun)
[](https://nodei.co/npm/hubot-bosun/)
Allows [Hubot](https://hubot.github.com) to interact with [Bosun](http://bosun.org).
See [`src/bosun.coffee`](src/bosun.coffee) for full documentation.
## Installation
In the hubot project repo, run:
`npm install hubot-bosun --save`
Then add **hubot-bosun** to your `external-scripts.json`:
```json
[
"hubot-bosun"
]
```## Configuration
**hubot-bosun** may be used with [hubot-auth](https://github.com/hubot-scripts/hubot-auth) and can be configured via the following environment variables:
* `HUBOT_BOSUN_HOST` -- Bosun server URL, e.g., `http://localhost:8070`
* `HUBOT_BOSUN_LINK_URL` -- If set, this URL will be used for links instead of `HUBOT_BOSUN_HOST`
* `HUBOT_BOSUN_ROLE` -- If set, auth role required to interact with Bosun. Default is `bosun`
* `HUBOT_BOSUN_SLACK` -- If `yes` enables rich text formatting for Slack, default is `no`
* `HUBOT_BOSUN_LOG_LEVEL` -- Log level, default is `info`
* `HUBOT_BOSUN_TIMEOUT` -- Timeout for Bosun API calls in milliseconds; default is `10000`
* `HUBOT_BOSUN_RELATIVE_TIME` -- If `yes` all dates and times are presented relative to now, e.g. _2 min ago_## Commands
### Incidents
* `show open bosun incidents` shows all open incidents, unacked and acked, sorted by incident id
* ` bosun incident[s] because ` acks or closes bosun incidents with the specified incident ids### Silences
* `show bosun silences` shows all active silences
* ` bosun silence for =value[,...] for because ` sets or tests a new silence, e.g., `set bosun silence for alert=test.lukas,host=muffin for 1h because I want to`. Can also be used with alert or tags only.
* `clear bosun silence ` deletes silence with the specific silence id## Events
Please see the event handlers in `src/bosun.coffee` for the specific event formats.
### Accepts the following events
* `bosun.set_silence`
* `bosun.clear_silence`
* `bosun.check_silence`### Emits the following events
* `bosun.result.set_silence.successful`
* `bosun.result.set_silence.failed`
* `bosun.result.clear_silence.successful`
* `bosun.result.clear_silence.failed`
* `bosun.result.check_silence.successful`
* `bosun.result.check_silence.failed`## Sample Interaction
### Plain
```
Lukas Pustina> list open bosun incidentshubot> @lukas.pustina: Retrieving Bosun incidents ...
hubot> @lukas.pustina: Yippie. Done.
So, there are currently 2 open incidents in Bosun.
4: critical: on muffin
Acked and active since 2 hours with {host=muffin}.
lukas.pustina acknowledged this incident at a few seconds ago.
5: warning: on cake
Acked and active since 3 hours with {host=cake}.
lukas.pustina acknowledged this incident at a few seconds ago.Lukas Pustina> close bosun incidents 4,5 because Everything is fine again.
hubot> @lukas.pustina: Trying to close Bosun incidents 4,5 ...
hubut> @lukas.pustina: Yippie. Done.
Lukas Pustina> list open bosun incidents
hubot> @lukas.pustina: Retrieving Bosun incidents ...
hubot> @lukas.pustina: Yippie. Done.
Oh, no incidents there. Everything is ok.
```### Slack

## NPM Module
https://www.npmjs.com/package/hubot-bosun