GitLab issues and boards, in sync with Laya
Mirror project issues from gitlab.com — or your own self-managed instance — onto a faster, more visual board. Laya speaks GitLab's language: scoped labels, issue boards, milestones, weight and issue links all round-trip with two-way sync.
Your labels run the board — Laya respects that
GitLab workflows live in scoped labels like workflow::doing. Laya doesn't flatten them; it builds on them.
Pin an issue board
Pin one of a project's GitLab issue boards and its label lists become Laya's columns — or keep the whole project as one board. Switch the pinned board any time and the columns rebuild.
Surgical label writes
Moving a card swaps only the lane label and closes or reopens the issue. Every other label you've applied stays exactly as it was.
Links, weight & milestones
Manage Related, Blocks and Blocked-by links from the side panel, edit weight as story points, and track milestones as sprints — creatable from Laya on every GitLab tier.
What syncs — and in which direction
Edits made in Laya call the GitLab API immediately, with a per-item badge showing Queued, Syncing, Synced or Failed so nothing disappears silently.
| Data | GitLab → Laya | Laya → GitLab |
|---|---|---|
| Issues | Yes — per project | Yes — create, edit, close, reopen |
| Status | Open/closed + scoped labels, or a pinned issue board’s lists | Yes — close/reopen plus a targeted lane-label swap; other labels kept |
| Assignees | Yes | Yes — full set; multiple assignees need GitLab Premium |
| Due dates | Yes | Yes |
| Weight (story points) | Yes | Yes |
| Milestones (as sprints) | Yes | Yes — creatable on every GitLab tier |
| Iterations (Premium) | Read-only | No — cannot be created from Laya |
| Issue links (Related / Blocks / Blocked by) | Yes | Yes — link and unlink |
| Epics (Premium/Ultimate) | Carried read-only on master-board import | — |
| Description | Yes — Markdown to Laya blocks | Yes — blocks back to Markdown |
| Comments (notes) | Yes — read in the side panel | Yes — post from Laya |
| Merge requests | Not mirrored | — |
| Attachments | No | No |
A word on tiers: iterations, epics, weight and multiple assignees are GitLab Premium/Ultimate features, and they degrade silently on Free — a multi-assignee edit, for example, keeps only the first assignee. Full coverage detail is in the connect GitLab guide.
gitlab.com or your own instance
Self-managed GitLab is a first-class citizen, not an afterthought — the same mirror, pointed at your instance URL.
Continue with GitLab
OAuth is the recommended path: approve the api and read_user scopes, pick a group, choose the projects to mirror. Done.
Personal access token
Prefer a token — or running self-managed? Create one with the api scope and add your instance URL. Laya validates the token against your instance before saving anything.
Guard-railed & encrypted
Instance URLs must be reachable over public HTTPS — internal and loopback addresses are rejected outright — and credentials are stored encrypted, never exposed by any API response. Connecting needs a workspace Owner or Admin.
How fresh is the mirror — and what doesn't sync yet
The honest edges, before you connect.
- Merge requests are not mirrored — boards cover issues only.
- Issues imported onto a master board keep pushing title, status, due date, weight and description out to GitLab — priority, assignee and issue type don't push on those imported rows yet.
- Attachments don't sync in either direction.
- Markdown conversion flattens tables, code fences and inline marks to plain text.
Connection playing up? See the GitHub & GitLab connection troubleshooting guide.
One board for GitLab and everything around it
A master board imports GitLab issues as native Laya issues alongside work from Jira, Azure DevOps, GitHub and monday.com — milestones and iterations can carry over as sprints, epics carry into native epics, and a user-mapping step assigns items to the right teammates. Read the master boards guide or compare coverage in what syncs per provider.
Free while Laya is in early access. Mirror your first project in minutes.