Integration · Included

GitLab integration: merge requests next to tasks (self-managed too)

The task key in a branch name or a merge request title links the code to the task. The task shows the review state and the pipeline result, and can close itself once merged.

Works with GitLab.com and with your own GitLab server — including one that can't be reached from the internet.

Two ways to connect

GitLab.com or your own server

Full mode

GitLab.com and servers reachable from the internet

  • The instance address — https://gitlab.com by default.
  • A group or project access token with at least the Maintainer role and the api scope.
  • assign2me creates webhooks with a secret in the chosen projects by itself.
  • Every 6 hours it refreshes open merge requests to catch events that got lost.

Webhook-only

A server in a company network, not reachable from outside

  • assign2me shows a webhook address and a secret; you add the webhook in GitLab yourself.
  • Tick push, merge request and pipeline events.
  • Links and states work from the events GitLab sends.
  • A lost event is corrected only by the next event of the same merge request — the Integrations screen says so.

Step-by-step setup

Connected in four steps

  1. An administrator opens Integrations and enters the GitLab instance address.
  2. They paste a group or project token (Maintainer role, api scope).
  3. assign2me checks the token and shows the groups and projects it gives access to.
  4. The administrator picks projects, and the project owner in assign2me pins them to their project.

The task key

Branch, merge request, commit

Branch

git checkout -b a2m-142-rate-limit

“Copy branch name” on the task gives you a ready name and the git checkout command.

Merge request

A2M-142 Rate limit

A closing link: once merged, the task can close itself if the project has that automation on.

Informational only

refs A2M-142

“ref”, “refs” and “related to” create an informational link — a merge won't close the task.

Code status on the task

Merge requests and pipelines without opening GitLab

  • The task's Code section: branches and merge requests — number, title, author, state, reviewers.
  • States: draft, open, waiting for review, approved, changes requested, merged, closed without merging.
  • Pipeline result: running, passed, failed.
  • Automations — off by default: when an MR opens, move the task to a section; when merged, complete or move it.

Tokens

Encrypted, with a reminder before it expires

  • The token is stored encrypted.
  • 14 days before it expires, the person who connected GitLab gets a warning in the app and by email.
  • Once expired, the connection shows “Needs reconnecting” until you paste a new token.
  • On disconnecting, assign2me removes the webhooks it created (if the server is reachable) and deletes the token.

Working with clients

Your client sees the task, not the repository.

Guests don't see the Code section, and code status never goes to a Slack channel. Only team members with access to the task see GitLab information.

Questions about the GitLab integration

Full guide in the documentation →

Our GitLab is in a company network, behind a VPN.

Choose webhook-only mode. GitLab sends events to assign2me, and assign2me never has to reach your server.

Which token do we need?

A group or project access token with at least the Maintainer role and the api scope.

Does assign2me copy our code?

No. We store only metadata: branch names, merge request numbers, titles and states, and pipeline results.

Can one connection serve several assign2me organizations?

No. A GitLab connection belongs to exactly one assign2me organization.

We use both GitHub and GitLab.

Connect both. A task shows GitHub branches and pull requests next to GitLab merge requests.

Everything for one price

30 days free. Then €19 per month excl. VAT for a team of up to 5, each additional person +€3.50. Client guests: unlimited and free.

See pricingCreate a team account