Zum Inhalt springen

GitLab

GitLab akzeptiert zwei Arten von Zugängen; beide funktionieren mit gitlab.com und mit einem selbstverwalteten GitLab.

OAuth-AnwendungPersonal Access Token
Gehört zuEiner Anwendung, die Sie in GitLab registrierenDem Konto einer Person
TokensAccess Token wird automatisch erneuertGültig bis zum eigenen Ablaufdatum des Tokens
Scopesapi, read_user, read_repositoryapi (volle Nutzung) oder read_api (nur lesend)
  1. Credentials → Add credential → GitLab.
  2. Wählen Sie, wo GitLab läuft: gitlab.com (Cloud) oder Self-hosted. Bei Self-hosted geben Sie die Instanz-URL ein, z. B. https://gitlab.acme.com (ohne Pfad am Ende).
  3. Wählen Sie die Authentifizierung: Register an application oder Paste a token.
  1. Legen Sie in GitLab unter User Settings → Applications eine Anwendung an.
  2. Fügen Sie die Redirect URI aus dem Assistenten exakt so ein, wie sie angezeigt wird.
  3. Aktivieren Sie die Scopes api, read_user, read_repository.
  4. Übernehmen Sie Application ID und Secret in den Assistenten und speichern Sie. Ein Gruppenname ist optional.
  5. Schließen Sie die Autorisierung mit Connect with GitLab am Zugang ab.
  1. Erstellen Sie in GitLab ein Personal Access Token mit api oder read_api.
  2. Fügen Sie es in den Assistenten ein. Ein Gruppenname ist optional.

Vor dem Speichern liest AppArch Scopes und Ablaufdatum bei GitLab aus. Ein Token ohne api oder read_api wird abgelehnt. Ein read_api-Token wird mit einer Nur-Lesen-Warnung angenommen: Scans und Berichte funktionieren, ArchPilot kann damit aber keine Kommentare schreiben.

  • ArchPilot kommentiert Merge Requests.
  • ArchScan / ArchSecurity-Ergebnisse aus CI-Läufen erscheinen im Panel.

Fügen Sie den Runner-Job Ihrer GitLab-CI-Pipeline hinzu:

# Image pulls are authorized with your INSTALLATION credential, not the project token
# (Settings → CI/CD → Variables):
# DOCKER_AUTH_CONFIG = {"auths":{"hub.apparch.io":{"auth":"base64(<installation-id>:<installation-key>)"}}}
archpilot:
image: hub.apparch.io/collectors/dotnet:latest
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
variables:
APPARCH_Collector__Token: "$APPARCH_TOKEN"
APPARCH_Collector__ApiUrl: "https://api.yourdomain.com"
script:
# Optional flags: --modules archpilot,archscan (pin what runs)
# --fail-on critical (fail this step when findings at/above the level exist)
- apparch "$CI_PROJECT_DIR"

Weitere CI-Beispiele und Token-Einrichtung: Runner in die CI einbinden.