GitLab integration
Connect gitlab.com or your own GitLab instance so branches and merge requests link to tasks by key, with a webhook-only mode for private networks.
The GitLab integration works like the GitHub integration: put the task key in a branch name or a merge request title, and the task shows the state of the code and can complete itself after the merge. It works with gitlab.com and with self-managed GitLab instances. assign2me stores only metadata, never your code.
Connect GitLab (Administrator)
An Administrator opens Integrations and connects GitLab:
- Enter the address of the instance. The default is
https://gitlab.com. - Paste a group or project access token with at least the Maintainer role and the
apiscope. - assign2me checks the token and shows the groups and projects it gives access to.
- Choose the projects. assign2me creates webhooks with a secret in them by itself.
The token is stored encrypted. 14 days before it expires, the person who connected GitLab gets a warning in the app and by email. After it expires, the connection shows Needs reconnecting until you enter a new token.
A GitLab connection belongs to exactly one assign2me organization.
Webhook-only mode
If your GitLab runs in a company network that assign2me cannot reach, choose webhook-only mode. assign2me shows a webhook address and a secret, and you add the webhook in GitLab yourself. Tick push, merge request and pipeline events.
In this mode links and states work from the events GitLab sends. assign2me cannot ask GitLab for the current state, so a lost event is only corrected by the next event of the same merge request. The Integrations screen says so.
Pin projects and use task keys
The project owner pins GitLab projects (repositories) to an assign2me project, just like on GitHub. assign2me links a task when its key, for example A2M-142, appears in any letter case in:
- a branch name, e.g.
a2m-142-rate-limit, - a merge request title or description,
- the message of a pushed commit.
A key preceded by ref, refs or related to creates an informational link only. Copy branch name in the task gives you a ready branch name and the git checkout -b command.
Automations
The project owner can turn on, each separately and all off by default:
- when a merge request opens, move the task to a chosen section,
- when it is merged, complete the task or move it to a chosen section.
A merge means a merge into the default branch, plus any target branches the owner adds (e.g. release/*). A task is completed only when the last open merge request linked to it with a closing reference is merged, and only for tasks of this project and events from repositories pinned to it. A task reopened by hand is not completed again by the same merge. Every change goes into the task history with the source “GitLab” and the merge request number.
Code status in the task
The task’s Code section shows branches and merge requests: number, title, author, state (draft, open, waiting for review, approved, changes requested, merged, closed without merging), reviewers and the pipeline result (running, passed, failed). The Code filter and the Waiting for review card in the project summary work as on GitHub.
In full mode assign2me refreshes the state of open linked merge requests every 6 hours, to catch events that got lost.
What guests don’t see
Guests don’t see the Code section, and code status never goes to a Slack channel. Only people with access to the task see code information.
Disconnecting
When you disconnect GitLab, assign2me removes the webhooks it created (if the instance is reachable) and deletes the token. New events are rejected within 60 seconds and repositories are unpinned from projects. Existing links stay in tasks with their last known state, marked as outdated. An Administrator can delete them together with the connection.