To use these features, you must first connect GitHub to Rootly. See GitHub Installation.
Workflow Actions
These actions are available in Incident Workflows and Alert Workflows.Create a GitHub Issue
Creates a new issue in the specified GitHub repository and links it to the Rootly incident or action item.| Field | Description | Required |
|---|---|---|
| Repository | The GitHub repository where the issue will be created (e.g. org/repo) | Yes |
| Title | Issue title. Supports Liquid templating (e.g. {{ incident.title }}) | Yes |
| Body | Issue body/description. Supports Liquid templating | No |
| Labels | Comma-separated list of label names to apply to the issue | No |
| Issue Type | The type of issue to create (e.g. Bug, Feature, Task) | No |
| Parent Issue Number | Issue number of the parent issue. Use this to create a sub-issue | No |
Update a GitHub Issue
Updates an existing GitHub issue linked to the incident or action item.| Field | Description | Required |
|---|---|---|
| Issue ID | The ID of the GitHub issue to update. Use the stored ID from a prior Create Issue action | Yes |
| Title | New title for the issue. Supports Liquid templating | No |
| Body | New body/description. Supports Liquid templating | No |
| Labels | Comma-separated list of label names to apply | No |
| Issue Type | Updated issue type | No |
| Completion | Set to Auto to mirror the incident or action item status. Closes the issue when the incident resolves or the action item is marked done | No |
When Completion is set to Auto, Rootly will automatically close the GitHub issue when the linked incident is resolved or the linked action item is completed.
Get Commits
Fetches recent commits from one or more GitHub repositories and optionally posts them to the incident timeline or a Slack channel.| Field | Description | Required |
|---|---|---|
| Services Impacted by Incident | When enabled (default), automatically queries the GitHub repositories linked to the services impacted by the incident. Disable this to specify repositories manually | No |
| Service IDs | Rootly service IDs whose linked GitHub repositories will be queried. Required when Services Impacted by Incident is disabled and Repository Names is not set | Conditional |
| Repository Names | Explicit list of GitHub repository names to query (e.g. org/repo). Required when Services Impacted by Incident is disabled and Service IDs is not set | Conditional |
| Branch | The branch to fetch commits from. Defaults to master | No |
| Past Duration | How far back to look for commits (e.g. 1h, 30m) | No |
| Post to Incident Timeline | When enabled, appends fetched commits as an event in the incident timeline | No |
| Post to Slack Channels | Slack channel names to post the commit list to | No |
When Services Impacted by Incident is disabled, either Service IDs or Repository Names must be provided. Each service used must have a GitHub repository configured in its settings.
PR Link Enrichment
When an engineer pastes a GitHub PR URL into the incident’s Slack channel, Rootly automatically:- Detects the PR link and attaches it to the incident
- Tracks the PR status (open, approved, merged) in real time
- Posts status updates in Slack as the PR progresses
- Adds each status change as an event in the incident timeline
Inbound Events (Pulses)
Rootly receives GitHub webhook events and stores them as pulses — timestamped signals you can correlate with incidents.Supported Events
| Event | Trigger |
|---|---|
| Push | Any push to any repository branch |
| Pull Request: Opened | A new pull request is opened |
| Pull Request: Closed | A pull request is closed without merging |
| Pull Request: Merged | A pull request is merged |
| Pull Request: Approved | A pull request review approval is submitted |
| Issues | A GitHub issue is opened, closed, or edited |
Pulse Labels
Each pulse includes the following labels for filtering and routing:| Label | Description | Events |
|---|---|---|
action | Event action (e.g. push, pr_merged) | All |
repository | Repository name where the event originated | All |
ref | Branch or tag ref (e.g. refs/heads/main) | Push, Pull Request |
base | Target branch of the pull request | Pull Request (merged) |
merged_by | GitHub login of the user who merged the PR | Pull Request (merged) |
Secret Scanning
GitHub scans public repositories for known secret patterns, including Rootly API tokens. Rootly has partnered with GitHub’s secret scanning program. When a Rootly token is detected in a public repository, GitHub notifies Rootly, which then alerts workspace owners and allows them to revoke the token within seconds. GitHub Advanced Security customers can additionally enable push protection to block Rootly tokens from entering repositories at push time.Troubleshooting
Issues are not being created
Issues are not being created
- Confirm the repository name is in
org/repoformat - Verify the connected GitHub account has write access to the target repository
- Check that the rootlyhq GitHub App is still installed and has access to the repository
Get Commits returns no results
Get Commits returns no results
- Confirm the branch name is correct and exists in the repository
- Check that the Past Duration window is wide enough to include recent commits
- When using Service IDs, verify each service has a GitHub repository configured in its settings
PR enrichment is not working
PR enrichment is not working
- The incident must have an active Slack channel
- The PR URL must be pasted directly in the incident Slack channel (not a thread)
- Confirm the GitHub App has Read access to pull requests
Pulses are not appearing
Pulses are not appearing
- Navigate to the Rootly integrations page and verify the GitHub connection is active
- Re-authenticate if the OAuth token has expired
- Confirm the rootlyhq GitHub App is installed and the webhook is active in your GitHub organization settings