A Charlesbot plugin to create an incident in Pagerduty and assign it to a specific service
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
charlesbot_pagerduty_escalations
tests
.gitignore
.travis.yml
LICENSE.txt
Makefile
README.rst
requirements-dev.txt
requirements.txt
setup.cfg
setup.py

README.rst

Pagerduty Escalations

Travis CI Code Coverage Software License

A Charlesbot plugin to create an incident in Pagerduty and assign it to a specific service.

How does this work

This plugin adds the following two !help targets:

!lassie <service> [optional message] - Triggers a Pagerduty incident and assigns it to that service
!lassie services - Lists all the available Pagerduty services

Creating an escalation event triggers an incident in Pagerduty and assigns it to the specified service. Using a Slack interface that people are already comfortable with, this could be a very useful and efficient way of getting the attention of the right people during an emergency.

Installation

pip install charlesbot-pagerduty-escalations

Instructions for how to run Charlesbot are over at https://github.com/marvinpinto/charlesbot!

Configuration

First off, create one or more services in Pagerduty of type Generic API. This plugin makes use of a service's Integration Key to trigger escalation events.

In your Charlesbot config.yaml, enable this plugin by adding the following entry to the main section:

main:
  enabled_plugins:
    - 'charlesbot_pagerduty_escalations.pagerdutyescalations.PagerdutyEscalations'

Then add a pdescalations dictionary block that looks something like:

pdescalations:
  service_mappings:
    service_one_name: 's1_pd_key'
    service_two_name: 's2_pd_key'

The name that you assign your service will be the name that shows up when a person issues the !lassie services command. The corresponding key here is the Integration Key associated with that service (in Pagerduty).

Sample config file

main:
  slackbot_token: 'xoxb-1234'
  enabled_plugins:
    - 'charlesbot_pagerduty_escalations.pagerdutyescalations.PagerdutyEscalations'

pdescalations:
  service_mappings:
    service_one_name: 's1_pd_key'
    service_two_name: 's2_pd_key'

License

See the LICENSE.txt file for license rights and limitations (MIT).