GitLab ist eine Plattform für den gesamten Software-Lebenszyklus – von der Planung über Entwicklung und Tests bis Betrieb und Sicherheit. Anders als ein reines Git-Hosting versteht sich GitLab als integrierte DevSecOps-Plattform: CI/CD, Container-Registry, Sicherheitsscanner und Monitoring sind von Haus aus dabei.

Der Lebenszyklus in zehn Stufen

GitLab gliedert seine Funktionen entlang der Phasen Plan, Create, Verify, Package, Secure, Release, Configure, Monitor. In der Praxis heißt das: Anforderungen, Code, Pipeline, Artefakte, Sicherheitstests, Releases und Betrieb liegen in einem Werkzeug – statt in sechs verschiedenen.

Zwei Betriebsmodelle

  • SaaS: gitlab.com – gehostet von GitLab, sofort nutzbar.
  • Self-Managed: eigene Installation (Community Edition kostenlos, Enterprise lizenziert). Volle Datenhoheit, eigener Aufwand für Updates und Backups.

Die Pipeline: .gitlab-ci.yml

stages: [test, build, deploy]

test:
  stage: test
  image: python:3.12
  script:
    - pip install -r requirements.txt
    - pytest -q

build:
  stage: build
  script:
    - docker build -t registry.example.de/app:$CI_COMMIT_SHORT_SHA .

deploy:
  stage: deploy
  script:
    - ./deploy.sh $CI_COMMIT_SHORT_SHA
  only:
    - main

Die Datei liegt im Wurzelverzeichnis des Repositories. Ausgeführt wird sie von Runnern – das sind Prozesse, die Jobs abholen und in Containern oder auf Shell-Ebene ausführen. Runner können geteilt oder projektspezifisch sein und im eigenen Netz stehen, was Deployments in geschlossene Umgebungen erlaubt.

Merge Requests und Sicherheit

Wie bei GitHub heißt der Änderungsvorschlag hier Merge Request. Zusätzlich bietet GitLab Sicherheitsscans direkt in der Pipeline: Abhängigkeitsprüfung, Container-Scan, Secret Detection und SAST. Ergebnisse erscheinen im Merge Request, bevor gemergt wird.

Siehe auch