MergeMeMergeMe/Docs

Reference

Webhooks

Webhook URLs, signing methods, supported events, and Slack trigger conditions for each provider.

Webhook URLs

ProviderURL
GitLab.comhttps://api.mergeme.dev/webhooks/gitlab/{workspaceId}
GitLab Self-Hostedhttps://api.mergeme.dev/webhooks/gitlab/{workspaceId}
GitHub.comhttps://api.mergeme.dev/webhooks/github

Webhook authentication

ProviderHeaderFormat
GitLab (signing token)webhook-signaturev1,<base64 HMAC-SHA256>
GitLab (secret token)X-Gitlab-TokenPlain secret value
GitHubX-Hub-Signature-256sha256=<hex HMAC-SHA256>

GitLab signing tokens also include webhook-id and webhook-timestamp headers. MergeMe rejects requests with a timestamp older than 5 minutes to prevent replay attacks. GitLab self-hosted instances on version 18.x or earlier use the secret token path instead.

Supported events

ProviderEventWhat triggers it
GitLabmerge_requestMR opened, closed, merged, review requested
GitLabnoteComment on MR body or thread
GitHubpull_requestPR opened, closed, merged, review requested
GitHubpull_request_reviewReview submitted (approved / changes requested / dismissed)
GitHubpull_request_review_commentInline diff comment
GitHubissue_commentGeneral PR comment (filtered to PRs only)

Slack message triggers

MergeMe posts or updates the Slack message when a PR/MR transitions to one of these states:

StateWhen it fires
openPR/MR opened or reopened
in_reviewReviewer requested, or a review was dismissed
approvedAll required reviewers approved
changes_requestedA reviewer requested changes
mergedPR/MR merged
closedPR/MR closed without merging

Comments (MR notes or PR review comments) are posted as thread replies on the existing Slack message rather than creating a new top-level message.