Github Changes Integration Guide
Github Changes Integration allows events like pull requests or commits from Github to be sent to TaskCall from Github. These are stored in TaskCall as change events and are displayed to on-call responders during critical incidents to help them identify the root cause easily and resolve the incident faster.
Github Changes integration is only available on the Digital Operations plan.
- The integration is between a TaskCall service and a Github repository.
- When a change event is sent to TaskCall, no incidents are created. Alert notifications are not sent out.
Why is it useful?
- TaskCall issues a webhook endpoint which is shared with Github. When a merge request is approved (or a commit is pushed to a repository depending on your preference and configuration), Github sends its details to TaskCall. TaskCall stores these events as change events.
- When an incident occurs, the change events most relevant to it are displayed to help responders determine the core problem faster. The change events can also be viewed from the service the integration is on and from the Recent Changes page.
- Go to Configurations > Services. From the service directory, select the service you want to set up the integration on.
- On the service details page, go to the Integrations tab. Click the New Integration button.
- On the modal that is shown, give the integration a name.
- From the integration types, select the top radio button indicating that you are using a built-in integration.
- From the list of built-in integrations, select Github. Click Save.
- A new modal will be shown, enter the Github branches you would like to track. If you want to track multiple branches, then separate the branch names by a comma. Click Save.
- Copy the Integration URL that is issued for the integration.
- Select the repository you want to set up the integration on.
- From the top of the repository's page, go to Settings.
- Then go to Webhooks. Click Add webhook.
- In the Payload URL field paste the Integration URL you copied over from TaskCall and set the Content type to application/json.
- Under the Which events would you like to trigger this webhook? section, select Let me select individual events. Check the Pull requests checkbox and uncheck Pushes.
- Click Add webhook when you are done.
Test the integration to make sure that the change events are registered in TaskCall correctly.
Pull Request or Push
Although TaskCall is able to process both push and pull requests, we recommend organizations to only choose pull requests as triggers to avoid duplication. When a pull request is approved, a push request is also generated in the branch the changes are being merged into. This would result in duplication of the same message.
Furthermore, in the case of pull requests, TaskCall only processes those that are approved and merged to avoid over logging of events. This way important changes will not get buried in the midst of logs.
When a webhook is set up for a Github repository, the webhook gets triggered for the selected events whenever the event occurs regardless of the branch. However, you may not want to track all the events from all the branches. Usually only the master or main branch is tracked as that represents the production environment. This is why TaskCall allows organizations to choose the branches they want the integration to track.
To edit the branches that should be tracked:
- Navigate to the details page of the service the Github integration is on and go to the Integrations tab.
- From the list of integrations, find your Github integration. Click the dropdown on the right end of the integration list item and select Edit.
- In the modal that is shown, enter the names of the new branches that should be tracked.
- Click Save.