GitHub
GitHub is an open-source, cloud-based service that lets users develop, secure, and manage their code in one place. This workflow creates change records so you can monitor the impact of GitHub events on your service health. You can then build automations to update stakeholders, or send messages to respond to events in GitHub.
How it works
When an event is generated in GitHub, it sends a JSON-formatted webhook to xMatters. A GitHub trigger in xMatters parses the webhook and creates a change record. The webhook includes essential data about the change to help you build automated tasks.
Install the workflow
The following instructions describe how to install the workflow through the xMatters one-click installation process.
- Go to the Workflow Templates page and click the GitHub tile.
- On the Set up the Workflow tab, give the workflow a name that identifies its purpose (this must be unique in your instance), add an optional description, and set the default incident type (if applicable). Any built-in Initiate Incident steps in the workflow will automatically be set to the selected incident type.
- You can edit these later, if needed.
- Click Next to set up the connection.
- Choose the authentication method. A trigger URL is generated based on the selected authentication method.
- Copy the trigger URL — you’ll use the URL to configure the webhook in GitHub.
- The trigger URL does not include a recipients parameter, but you can add one to notify an impacted or associated service of the change.
- Send a test signal to the trigger URL to test the connection.
- Click Open Workflow to go to the workflow and customize it, or click Close to close the installation window.
Configure GitHub to send requests to the trigger URL
To have GitHub send alerts to the flow trigger, you need to configure a webhook and set it to use the trigger URL.
- In GitHub, go to Settings > Webhooks.
- On the Webhooks page, click Add webhook.
- On the Add webhook page, fill in the following fields:
- Payload URL: Paste the trigger URL you copied from Flow Designer. Add the target name of a single service you want to notify when the change is received to the end of the URL.
- For URL authentication, use an ampersand to attach the service. For example, if you want to notify the Cassiopeia Service, you'd add &recipients=Cassiopeia%20Service to the URL.
- For other authentication types, use a question mark to attach the service. For example, if you want to notify the Antares Service, you'd add ?recipients=Antares%20Service to the URL.
- You must URL-encode any special characters or spaces in the target names.
- Content type: application/json
- Secret: Leave blank
- SSL verification: Enable SSL verification
- Which events would you like to trigger this webhook?
- Select one of the following options:
- Just the push event.
- Let me select individual events.
- Select the GitHub event types that will send changes to xMatters. The following event types are supported:
- check_run
- push
- pull_request
- release
- deployment
- workflow_job
- workflow_run
- Select the GitHub event types that will send changes to xMatters. The following event types are supported:
- Select one of the following options:
- Leave Active selected.
- Payload URL: Paste the trigger URL you copied from Flow Designer. Add the target name of a single service you want to notify when the change is received to the end of the URL.
- Click Add webhook.
You're ready to use the webhook to trigger automated flows, including steps such as sending alerts and initiating incidents, though we always recommend testing before putting things into use.
Set the impacted or associated service
To set a recipient for this webhook, add the name of a single impacted or associated service to the end of the trigger URL in GitHub. The encoding used to add the service is based on the type of authentication you select in Flow Designer.
- For URL authentication, use an ampersand to attach the service. For example, if you want to notify the Cassiopeia Service, you'd add &recipients=Cassiopeia%20Service to the URL.
- For other authentication types, use a question mark to attach the service. For example, if you want to notify the Antares Service, you'd add ?recipients=Antares%20Service to the URL.
Remember to URL-encode any special characters, including spaces, in your service name.
After setting the recipient on the GitHub webhook, go to Flow Designer and open the Change Record step. Drag and drop the Recipients variable into the Associated Service field. When changes are received, the associated or impacted service is notified of the change.
You can also manually add a service by typing its name into the Associated Service field.
Next Steps
Now that you've installed the workflow, you can use it as-is, or customize it to suit your needs better. Here are some examples of things you can add to the workflow to customize it:
- Use Slack, Zoom, and Microsoft Teams steps to add collaboration channels to the flow.
- Add a Create Alert step to notify recipients of the change.
- Update the message sent to resolvers to include the information most relevant to your team.
- Use the GitHub Events trigger to build your own custom flows.