GitLab

Add one webhook to a GitLab group or project and Naumu keeps your memory up to date from merge requests, commits, issues, pipelines, releases and deploys - without reading your code. Works with GitLab.com and self-managed GitLab.

Updated 5 min read

Connect GitLab to a Naumu space and your memory keeps up with what your team ships: a merge request that merges moves its task to done, a failed pipeline on the main branch is recorded, and a new issue becomes a task. It works the same way as the GitHub integration, on GitLab.com and on self-managed GitLab.

Connect GitLab

  1. Open the space you want GitLab to feed.
  2. Go to Settings → Integrations, select GitLab to open its panel, then select Connect. Naumu shows a webhook URL and a secret token.
  3. In GitLab, open your group (or a project) and go to Settings → Webhooks → Add new webhook.
  4. Paste the URL and the secret token. Under Trigger, tick push, tag push, comments, issues, merge request, pipeline, deployment, releases and wiki page events.
  5. Select Add webhook. The connection reads Waiting for GitLab until GitLab sends the first event, then Connected.

A few things to know:

  • You must be an owner or admin of the space, and in GitLab an Owner of the group or a Maintainer of the project.
  • A group webhook covers every project in the group. Group webhooks need GitLab Premium or Ultimate. On the Free tier, add the same URL and token to each project.
  • The secret token is shown once. If you lose it, select New secret token on the connection and paste the new one into the webhook in GitLab. The old token stops working at once.
  • A space can take several connections, for example two groups. Use Add another GitLab group or project.
  • Only new activity comes in. Naumu starts from the moment the webhook is added. To bring in history, ask your coding agent.

What Naumu does with GitLab activity

Each piece of work gets its own thread in the #gitlab topic: one per merge request and issue, one per day for each branch that has no merge request yet, one per person per day for commits pushed straight to a shared branch (the main branch, develop, staging, release/*), and one per project per day for branch merges, tags, releases, deploys and pipelines.

When the activity on a thread goes quiet (about five minutes, or a minute for a merge, a close or a failure), Naumu reads the new events and updates the space. It finds the task, feature or decision the work belongs to (including work your coding agents logged), moves statuses, records merges, releases and incidents, and creates a task only when the work is new and not a routine chore. It then replies in the thread with a line naming what it changed.

EventWhat Naumu does
Branch created, merge request openedMoves the matching item to in progress
Ready for review, review requested, approvedNotes the review
MergedMarks the item done, deploy not yet confirmed
Branch merged into main (for example develop)Marks the work of every commit it brings in as done
Closed without mergingLeaves the status and asks the owner
Issue openedCreates a task or bug if nothing covers it
Release published, production deploy succeededRecords the version as shipped
Deploy to staging or previewPosted to the thread, read with the next update
Deploy or pipeline failed on the main branchRecords an incident

If your space also syncs Linear or Jira, an issue key in a branch name, title or commit (like PM-728 or pm-728-fix-login) links the event to that issue. Linear and Jira stay in charge of the issue's status, so Naumu leaves it alone and records what those tools don't know, such as the release that shipped it.

Routine noise (passing pipelines, job events, label changes, system notes, merge requests from bots like Renovate) never reaches a thread.

Quiet by design

The #gitlab topic is set to notify on people only. Its threads never ping anyone or show up in Focus until a person replies in one or someone is tagged. When Naumu needs an answer (for example, a merge request closed without merging), it tags the owner.

Every morning Naumu writes a GitLab digest thread: what shipped, what's in review, what's stuck and any incidents, and it fixes statuses the per-thread updates missed. Turn it off per connection with the Daily digest switch.

Your code stays yours

Naumu has no access to your GitLab: no app, no access token, no API calls. GitLab sends the webhook events you ticked, and Naumu checks each one against the secret token. What arrives is titles, descriptions, comments, commit messages, author names, file names and links. Code shown next to review comments is never saved.

Merge requests opened from forks of public projects are marked as coming from an outside contributor, and Naumu treats all GitLab text as information, never as instructions.

Disconnect

Open GitLab under Settings → Integrations and go to its Settings tab. Select Disconnect next to the connection. Threads already in #gitlab stay. Delete the webhook in GitLab too, or GitLab will show it failing.

Anything missing?
Tell us what would make these docs better.