This action creates a PagerDuty change event. Change events help you track deploys, build completion, configuration updates, etc., providing contextual information that is critical during incident triage.
Before you can use this action you'll need to have a PagerDuty service configured with an integration. To add a GitHub integration to your service, follow these instructions. Upon completing those steps you should receive an integration key that you can use with this action.
Currently only push
and pull_request
events are handled, and for pull_request
events, a change event will only be created
when the pull request is merged. You can choose which event and which branches change events should be created for in your
workflow configuration.
Required The integration key that identifies the PagerDuty service the change was made to, added as a GitHub secret for the repository.
Custom event summary. If provided the GitHub event type is ignored and the given summary used. A link to the run is included in the change event.
on:
push:
branches:
- master
- main
pull_request:
branches:
- master
- main
types:
- closed
jobs:
send-pagerduty-change-event:
runs-on: ubuntu-latest
name: Sending PagerDuty Change Event
steps:
- name: Create a change event
uses: PagerDuty/pagerduty-change-events-action@master
with:
integration-key: ${{ secrets.PAGERDUTY_CHANGE_INTEGRATION_KEY }}
Custom events can for instance be used for notifying about the result of a job:
on:
push:
branches:
- master
- main
jobs:
deploy:
runs-on: ubuntu-latest
name: Deploying the application (dummy)
steps:
- name: Dummy step
run: echo "Dummy deployment"
notification:
runs-on: ubuntu-latest
name: Notify PagerDuty
needs: [deploy]
if: always()
steps:
# make deploy job status available
# see https://github.com/marketplace/actions/workflow-status-action
- uses: martialonline/workflow-status@v3
id: check
- name: Create a change event
uses: PagerDuty/pagerduty-change-events-action@master
with:
integration-key: ${{ secrets.PAGERDUTY_CHANGE_INTEGRATION_KEY }}
custom-event: Deployment ${{ steps.check.outputs.status }}