Connect GitLab
Mirror GitLab issues and issue boards into Laya — token or OAuth setup, self-managed instances, what syncs and timing.
Last updated
On this page
Connecting GitLab mirrors project issues into Laya as live, editable Connected boards — including projects on self-managed GitLab instances. Issues stay in GitLab; Laya syncs changes both ways.
Why connect GitLab
- Mirror a project's issues, and optionally pin one of the project's GitLab issue boards so its label lists drive Laya's columns.
- Status maps from open/closed state plus scoped labels (for example
workflow::doing), and edits swap only the lane label — other labels are preserved. - Track milestones as sprints on every tier, with GitLab Premium iterations shown read-only.
- Manage issue links — Related, Blocks, Blocked by — from the side panel.
Before you start
There are two ways to authenticate:
- Continue with GitLab (OAuth) — shown when OAuth is configured on the server, and the recommended path when it is offered. It requests the
apiandread_userscopes, then lets you pick a group on a "Choose a namespace" screen. - Personal access token — the setup card explains: "In GitLab: User settings → Access tokens → Add new token, with the api scope." For a self-managed instance, fill in the Instance URL (optional — self-hosted) field; it defaults to gitlab.com.
Connect step by step
- Start the connect flowFrom your workspace, create a new board and choose the connect option — or open the Connected tab and choose Connect GitLab.
- Pick GitLab as the sourceOn the "Which tool is it in?" screen, choose GitLab.
- ConnectSelect Continue with GitLab and complete the consent — or use the Personal access token form, adding an Instance URL for self-managed GitLab. The connection is created in the workspace you started the flow from.
- Choose a namespaceAfter OAuth, pick a group on the "Choose a namespace" screen.
- Choose boards to mirrorTick the projects you want in the "Choose boards to mirror" list.
- MirrorSelect Mirror N boards → and wait for "You're live in Laya", then Open board.
After mirroring, you can pin one of the project's GitLab issue boards (or keep "Project (all issues)"). Pinning a board rebuilds Laya's columns from that board's label lists; switching resets the lane map and re-reads the columns.
What syncs
| Data | GitLab → Laya | Laya → GitLab |
|---|---|---|
| Issues | Yes — per project | Yes — create, edit, close and reopen |
| Status | Yes — open/closed plus scoped labels, or a pinned issue board's lists | Yes — close/reopen plus a targeted lane-label swap that preserves other labels |
| Assignees | Yes | Yes — replaces the set; multiple assignees need GitLab Premium |
| Due date | Yes | Yes |
| Weight (story points) | Yes | Yes |
| Milestones | Yes | Yes — creatable on all tiers |
| Iterations | Yes — read only (GitLab Premium) | No — cannot be created from Laya |
| Issue links (Related / Blocks / Blocked by) | Yes | Yes — link and unlink |
| Epics | Carried read-only into native epics during master-board import (Premium/Ultimate) | — |
| Description | Yes — Markdown converted to Laya blocks | Yes — converted back to Markdown |
| Comments (notes) | Yes — read in the side panel | Yes — post new notes |
| Merge requests | No — merge requests are not mirrored | — |
| Attachments | No | No |
Issues imported as native Laya rows (via a master board) keep syncing title, status, due date, weight and description out to GitLab, and title, status, priority (derived from labels), effort (weight) and description back in. Priority, assignee and issue type do not push outbound on imported rows.
Sync triggers and timing
- Laya → GitLab: immediate. Edits call the GitLab API as part of the action, with per-item badges showing Queued, Syncing, Synced or Failed.
- GitLab → Laya: on demand. Use Sync now on the board or from the connection's Boards tab; boards also refresh at mirror time.
- Background polling. A 60-second poll exists and is controlled per connection by the Polling toggle, but it may not be enabled on every deployment — treat Sync now as the reliable way to pull fresh changes.
Managing the connection
Manage the connection from workspace Settings → integrations → GitLab: tabs Boards, Sync log and Settings, a health card, + Mirror a board, the Polling toggle, Refresh credentials and Disconnect. See Managing connections.
Limitations
- Merge requests are not mirrored — issues only.
- Iterations cannot be created from Laya, and epics are read-only (both Premium/Ultimate features).
- No attachment sync in either direction.
- Markdown conversion flattens tables, code fences and inline marks to plain text.
- No working inbound webhook yet.
Email support@laya.net — include what you expected, what happened, and a link to the affected board or item so we can help quickly.