---
title: GitLab tracker
description: GitLab issues via the glab CLI. Self-hosted instances supported.
---

<div style={{ display: "flex", alignItems: "center", gap: "0.75rem", margin: "0.5rem 0 1.25rem" }}>
	<Logo name="gitlab" size={28} color />
	<span style={{ fontSize: "0.8125rem", color: "var(--color-fd-muted-foreground)" }}>
		Slot: <code>tracker</code> · Name: <code>gitlab</code>
	</span>
</div>

<PlatformSupport macos="full" linux="full" windows="full" />

Uses [`glab`](https://gitlab.com/gitlab-org/cli) the same way the GitHub tracker uses `gh`.

## Setup

```bash
glab auth login
```

```yaml title="agent-orchestrator.yaml"
tracker:
  name: gitlab
  host: gitlab.com # default; override for self-hosted
projects:
  myproject:
    repo: group/project
```

| Config key | Default      | What it does                                         |
| ---------- | ------------ | ---------------------------------------------------- |
| `host`     | `gitlab.com` | GitLab hostname — override for self-hosted instances |

<Callout type="warn">
	`host` belongs on the **`tracker`** block (plugin-level config), not inside `trackerConfig`. `trackerConfig` is for
	per-project passthrough fields (labels, assignee, milestone). Putting `host` inside `trackerConfig` will not be read.
</Callout>

## Self-hosted

```yaml
tracker:
  name: gitlab
  host: gitlab.mycorp.com
```

`glab` reads its own hostname config from `~/.config/glab-cli/`. Make sure that matches.

## Limits

- Issue field coverage maps 1:1 with `gh`'s GitHub equivalents.
- Label / milestone filtering works via `glab issue list --label <name>`.
