Guides · GitLab
Get a Mac notification for GitLab pushes, merge requests and pipelines
GitLab project webhooks post JSON with an object_kind naming the event. Use it as the type field and pushes, merge requests, issues and pipelines each get their own switch.
Needs: the free EventBar app on your Mac, an EventBar account, and a GitLab account with permission to add webhooks. About five minutes. Generic JSON.
Steps
- Create the webhook URL. In the EventBar dashboard, open the Webhooks tab, pick the group this belongs to (one group per site or app is the usual shape), choose the provider Generic JSON, name it, and press Create. Copy the URL; it stays visible and can be rotated any time.
- Paste it into GitLab. In the project: Settings, then Webhooks, then Add new webhook. URL your hook URL, tick the triggers you want. Create the EventBar hook as Generic JSON with type field
object_kind. - Trigger one. Most services offer a test delivery; otherwise do the real thing once. It shows up in the dashboard's Events tab within a second and in the menu bar, as an undefined type named after the event. That first one is your proof the wiring works.
- Make it read well. Press Define on the new type and give it a title and a body template. Fields come from the payload, nested ones with dots. The table below is a starting point.
What you'll see
| Type | Title | Body template |
|---|---|---|
push | Push | {user_name} pushed to {ref} of {project.name} |
merge_request | Merge request | {object_attributes.title} by {user.name} ({object_attributes.action}) |
pipeline | Pipeline | {project.name}: {object_attributes.status} |
issue | Issue | {object_attributes.title} by {user.name} |
Every type has its own switch in the menu bar, so a noisy one can be quiet on this Mac and still counted. Counts cover the last hour, 24 hours, 7 days, 30 days and all time.
Worth knowing
- GitLab's secret token travels in a header the generic preset doesn't verify; the URL is the secret.
- Pipelines fire on every state; if you only want failures, keep the type on and let the count tell you, or filter in GitLab with a separate webhook per trigger.
- Link template
{object_attributes.url}opens the merge request or issue.
The full contract, including how each preset reads a payload and what the answers mean, is in the API docs. Something about GitLab's payload changed? Tell us and we'll fix the guide.