# GitLab: Zugangsdaten

Unter Anbindungen, Kategorie Git, verbindest du GitLab.com oder eine selbst gehostete Instanz per OAuth oder Personal Access Token, damit MainPath Gruppen und Projekte dort anlegen oder importieren kann.

> Source: https://www.mainpath.ai/de/docs/gitlab-credentials/

**GitLab** liegt unter **Anbindungen** in der Kategorie **Git**. Empfohlen ist **Mit GitLab verbinden** (OAuth gegen GitLab.com). Andernfalls hinterlegst du einen **Personal Access Token**; das funktioniert auch für Self-hosted.

Beim Projekt wählst du ganz unten **GitLab** statt **Automatisch generiert**, wenn die Anwendungscode-Repositories bei GitLab.com (oder deiner Instanz) liegen sollen. Die Infrastruktur-Dateien von MainPath bleiben in MainPath-GitLab-Gruppe.

## OAuth (GitLab.com)

1. Öffne **Anbindungen → GitLab → Mit GitLab verbinden**.
2. Melde dich an und erteile `api`-Rechte, damit MainPath Projekte, Dateien und CI-Variablen verwalten kann.
3. Nach dem Callback steht der Zugang zur Auswahl.

OAuth braucht `GITLAB_OAUTH_CLIENT_ID` / `GITLAB_OAUTH_CLIENT_SECRET` im Backend. Fehlt die App, nutze einen Token.

## Personal Access Token

1. Erzeuge in GitLab unter **Preferences → Access Tokens** (oder **Group → Access Tokens**) einen Token mit `api`.
2. Öffne **Anbindungen → GitLab → API-Token hinzufügen**.
3. Trage **Name**, **Slug**, Token, **GitLab-URL** (`https://gitlab.com` oder deine Instanz) und optional den **Gruppenpfad** ein.

## Pipelines auf GitLab.com

MainPath schreibt `.gitlab-ci.yml`, das die öffentliche Pipeline-Lib `doppelt-digital/app-project-pipelines` einbindet, plus `templates-common/hosted-runner.yml`. Jobs laufen auf GitLab-hosted Linux- und macOS-Runnern (`saas-linux-large-amd64`, `saas-macos-large-m2pro`) mit ASDF statt Tart.

