Connecting GitHub events to Gitter chat via native webhooks
Gitter's native webhook feature pushes GitHub events into chat rooms with minimal configuration. This post covers setup, payload format, verification, and limitations.
18 Oct 2025, 21:22 UTC

Problem: GitHub notifications live elsewhere
Teams often track GitHub activity in pull-request dashboards or email digests. Moving between tools breaks flow, especially during fast-moving code reviews or emergency hotfixes.
Takeaway: Gitter's native webhook puts GitHub events into chat
With a few clicks, every push, pull-request update, or issue comment can appear as a formatted markdown message in a Gitter room, no polling server required.
How Gitter webhooks work
Gitter rooms expose a webhook URL in the room settings. When you register that URL with a GitHub repository, GitHub posts JSON payloads to the URL whenever the selected events occur. Gitter validates a secret token (if set) and renders the payload as markdown, so links, user mentions, and code blocks render inline.
Events you can subscribe to
- Push to a branch or tag
- Pull request opened, synchronized, or closed
- Issue created, commented, or labeled
Configuring the integration
Worked example: set up GitHub push notifications in a Gitter room.
- In Gitter, open the target room, go to Room settings Integrations Webhooks. Copy the generated webhook URL.
- In GitHub, create a personal access token with the repo scope (or public_repo for public repositories).
- Add a new webhook in the repository settings, paste the Gitter URL as the payload URL, and select the event types you want.
- If signature verification is enabled, enter the same secret token in the Gitter webhook form; GitHub will include an X-Hub-Signature-256 header and Gitter will verify it before displaying the message.
User username pushed to branch main: - Commit a1b2c3d: Fix typo
Verification, trade-offs and limitations
To confirm delivery, open GitHub webhook delivery logs (Settings Webhooks Recent deliveries) and look for a 200 OK response from Gitter. A non-200 status or signature mismatch indicates a configuration issue. You can also temporarily point the webhook to a request-bin service to inspect the raw payload and verify the event type and fields match Gitter's documentation.
- One webhook per room: a single Gitter room can only receive notifications from one GitHub webhook URL. For separate repositories, create multiple rooms or use a proxy to fan-out events.
- Delivery depends on GitHub's availability: if GitHub's servers are slow or unreachable, notifications may arrive late or be missed until the service resumes.
- Token scope: the personal access token must have at least repo scope for private repositories; public repos work with public_repo scope.
Getting started checklist
- Ensure you have a Gitter room and a GitHub personal access token with the required scope.
- Copy the webhook URL from Room settings Integrations Webhooks in Gitter.
- Add the webhook to your GitHub repository, selecting the event types you want.
- Push a commit or open a pull request and confirm the formatted message appears in the room.
- Check GitHub recent deliveries for a 200 OK response as secondary verification.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.