Group webhooks require GitLab Premium or Ultimate. On the Free tier, configure one webhook per project.
Configure the webhook
1
Open your webhook settings
In the top bar, find your project or group. In the left sidebar, select Settings → Webhooks, then select Add new webhook.
2
Add a name
Use a descriptive name such as Cogniscape so you can identify it later.
3
Paste the webhook URL
Use the following URL, replacing
<your-customer-key> with the key from the Customer Portal:4
Generate and save the signing token
Under Request authentication, select Generate signing token.Paste the token into the Customer Portal under Get Started → GitLab Webhook → step 4 and select Save token. Cogniscape uses it to verify that incoming events are genuinely from GitLab.
Do not use the legacy Secret token field for a new webhook. Cogniscape verifies GitLab deliveries using the Standard Webhooks signature, which requires the signing token.
5
Choose the events to send
Select these events so Cogniscape receives the development activity it supports:
- Push events
- Tag push events
- Merge request events
- Issue events (Issue Hook, including Work Items)
- Comment events (Note Hook)
- Release events
- Pipeline events
- Deployment events
6
Add and test the webhook
Select Add webhook. From the webhook list, open Test and send a Push events test.Confirm the test succeeds in GitLab, then return to the Customer Portal and check that the signing token shows as saved.
Verify the webhook
After saving, GitLab records every delivery under Settings → Webhooks → Edit → Recent events. A200 response confirms Cogniscape received and verified the event.
Common failure responses:
Supported events
Cogniscape processes these GitLab webhook event types:Events not listed above are received but silently ignored. Enabling extra event types is safe — it won’t create noise in your knowledge graph.
Project vs group webhooks
A group webhook covers every project and subgroup underneath it, including projects created later. This is the recommended setup if your plan supports it — you configure it once and new repositories are captured automatically. A project webhook covers a single project. On GitLab Free, repeat the setup for each project you want to observe. Both use the same webhook URL. The customer key routes all events to the correct knowledge graph regardless of which project or group sends them.Why the signing token matters
GitLab signs every webhook payload using the Standard Webhooks scheme: an HMAC-SHA256 signature over the delivery ID, timestamp, and raw body, sent in thewebhook-signature header. Cogniscape verifies this signature before processing any event, and rejects deliveries whose timestamp is more than 5 minutes old to prevent replay attacks.
Each customer has their own unique token. This means:
- A leaked token only affects your tenant — it cannot be used to forge events for other customers.
- You can rotate the token at any time from GitLab without coordinating across customers.
- Ex-employees or compromised systems can be cut off by rotating, without disrupting other tenants.