GitHub integration
Connect your GitHub repositories to Round Robin and route notifications about pull requests, reviews, and issues to the people currently on duty, to the rotation’s Slack channels, or both.
Install the GitHub App
Section titled “Install the GitHub App”- In the dashboard, go to Settings → Integrations.
- In the GitHub section, click Install GitHub App. You are redirected to GitHub.
- Choose the organization or personal account to install the app on.
- Grant access to all repositories or select specific ones.
- Complete the installation. You are redirected back to the dashboard, and the connected GitHub account appears on the integrations page.
Private repositories work as long as the GitHub App has access to them.
Configure a rotation
Section titled “Configure a rotation”Once GitHub is connected, each rotation can have its own GitHub configuration:
- Open the rotation’s detail page and open the ⋯ menu.
- Click GitHub Integration.
- Choose your repositories, notification target, and events (see below).
- Click Save.
Multiple rotations can watch the same repository, each with its own event selection and templates.
Repositories
Section titled “Repositories”- All Repositories — the rotation is connected to every repository the GitHub App can access. Repositories added to the installation later are included automatically.
- Select Specific Repositories — choose individual repositories from the list.
Notification target
Section titled “Notification target”| Option | Behavior |
|---|---|
| On-Duty User Only | Direct message to the users currently on duty |
| Channel Only | Post to the rotation’s Slack channels |
| Both User and Channel | Both of the above |
If the target resolves to nobody (for example, “On-Duty User Only” with no one on duty), no notification is sent.
Events
Section titled “Events”Pick Default Events or switch to Custom Event Selection to choose from:
| Event type | Covers | In default set |
|---|---|---|
pull_request |
PR opened, closed, merged, reopened, new commits, ready for review, converted to draft, labeled/unlabeled | Yes |
pull_request_review |
Review submitted, dismissed, or edited | Yes |
pull_request_review_comment |
Comment on a PR diff | Yes |
pull_request_review_thread |
Review thread resolved or unresolved | Yes |
issue_comment |
Comment on an issue or PR | Yes |
issues |
Issue opened, closed, reopened, assigned/unassigned, labeled/unlabeled | Yes |
Custom notification templates
Section titled “Custom notification templates”Every event type ships with a built-in message, but you can override it per event type or per specific action. When an event arrives, Round Robin picks the first template that matches:
- Action-specific template — key like
pull_request:merged - Event-type template — key like
pull_request - Default template — built-in message
For example, set a celebration message for pull_request:merged while all other PR actions use your general pull_request template.
Placeholders
Section titled “Placeholders”| Placeholder | Description |
|---|---|
%ROTATION_NAME% |
Name of the rotation |
%GITHUB_ACTOR% |
GitHub user who triggered the event |
%GITHUB_REPOSITORY% |
Full repository name (owner/repo) |
%GITHUB_REPOSITORY_SHORT% |
Repository name without the owner |
%GITHUB_EVENT_TITLE% |
Title of the PR or issue |
%GITHUB_EVENT_URL% |
Link to the PR, issue, or comment |
%GITHUB_EVENT_DESCRIPTION% |
Body text, truncated to 150 characters and rendered as a Slack quote |
%GITHUB_EVENT_TYPE% |
Event type, e.g. pull_request |
%GITHUB_ACTION% |
Specific action, e.g. opened, merged |
%GITHUB_LABEL% |
Label name (only for labeled/unlabeled actions) |
Example template for pull_request:merged:
🎉 *PR merged!* %GITHUB_EVENT_TITLE% — great work, %GITHUB_ACTOR%! Shipped in `%GITHUB_REPOSITORY_SHORT%`Troubleshooting
Section titled “Troubleshooting”Notifications are not arriving
- Check Settings → Integrations and verify the GitHub connection is active.
- Verify the GitHub App has access to the repository in question.
- In the rotation’s GitHub configuration, confirm the event type is enabled and the repository is included.
- If the target is “On-Duty User Only”, confirm someone is currently on duty.
Wrong message template is used
Templates apply in order of specificity: an action-specific template such as pull_request:merged always wins over the general pull_request template.
GitHub shows as disconnected
This happens when the app is uninstalled from GitHub or the installation is suspended. If the installation was suspended, unsuspending it on GitHub reactivates the connection automatically; if the app was uninstalled, reinstall the GitHub App from the integrations page.
