[{"data":1,"prerenderedAt":804},["ShallowReactive",2],{"/de-de/blog/a-guide-to-the-breaking-changes-in-gitlab-18-0":3,"navigation-de-de":43,"banner-de-de":446,"footer-de-de":456,"blog-post-authors-de-de-Martin Brümmer|Fabian Zimmer|Sam Wiskow":661,"blog-related-posts-de-de-a-guide-to-the-breaking-changes-in-gitlab-18-0":700,"blog-promotions-de-de":740,"next-steps-de-de":794},{"id":4,"title":5,"authorSlugs":6,"body":10,"categorySlug":11,"config":12,"content":16,"description":10,"extension":29,"isFeatured":14,"meta":30,"navigation":31,"path":32,"publishedDate":24,"seo":33,"stem":39,"tagSlugs":40,"__hash__":42},"blogPosts/de-de/blog/a-guide-to-the-breaking-changes-in-gitlab-18-0.yml","A Guide To The Breaking Changes In Gitlab 18 0",[7,8,9],"martin-brmmer","fabian-zimmer","sam-wiskow",null,"product",{"slug":13,"featured":14,"template":15},"a-guide-to-the-breaking-changes-in-gitlab-18-0",false,"BlogPost",{"heroImage":17,"body":18,"authors":19,"updatedDate":23,"date":24,"title":25,"tags":26,"description":28,"category":11},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659437/Blog/Hero%20Images/AdobeStock_398929148.jpg","GitLab 18.0, unser nächstes Major Release, wird vollgepackt sein mit neuen Funktionen, die die Grenzen der DevSecOps-Innovation sprengen. Gleichzeitig werden wir einige veraltete Funktionen aus GitLab entfernen. Hier erfährst du, was du über diese Änderungen wissen musst und wie du ihre Auswirkungen minimieren kannst.\n\n## Inhaltsverzeichnis\n- [Bereitstellungsfenster](#bereitstellungsfenster)\n - [GitLab.com](#gitlabcom)\n - [GitLab Self-Managed](#gitlab-self-managed)\n - [GitLab Dedicated](#gitlab-dedicated)\n- [Breaking Changes](#breaking-changes)\n - [Hohe Auswirkungen](#hohe-auswirkungen)\n - [Mittlere Auswirkungen](#mittlere-auswirkungen)\n - [Geringe Auswirkungen](#geringe-auswirkungen)\n- [Tools und Ressourcen, um deine Auswirkungen zu verwalten](#tools-und-ressourcen-um-deine-auswirkungen-zu-verwalten)\n\n## Bereitstellungsfenster\n\n### GitLab.com\n\nBreaking Changes für GitLab.com waren auf diese drei Zeitfenster beschränkt:\n\n- 21.–23. April 2025\n- 28.–30. April 2025\n- 5.–7. Mai 2025\n\nViele weitere Änderungen werden im Laufe des Monats eingeführt. In dieser [englischsprachigen Dokumentation zu den grundlegenden Änderungen](https://docs.gitlab.com/update/breaking_windows/) erfährst du mehr über die wichtigsten Änderungen in jedem dieser Zeitfenster.\n\n***Hinweis:** In Ausnahmefällen können Breaking Changes geringfügig außerhalb dieser Zeitfenster liegen.*\n\n### GitLab Self-Managed\n\nGitLab 18.0 ist ab dem 15. Mai verfügbar. Mehr über den Release-Zeitplan erfährst du [hier (nur in englischer Sprache verfügbar)](https://about.gitlab.com/releases/categories/releases/).\n\n### GitLab Dedicated\n\nDas Upgrade auf GitLab 18.0 findet während deines Wartungsfensters vom 24.–29. Juni 2025 statt. Mehr dazu erfährst du [hier (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/administration/dedicated/maintenance/#release-rollout-schedule). Dort findest du auch dein zugewiesenes Wartungsfenster.\n\nWir haben außerdem spezielle Tools und Ressourcen entwickelt, die dir dabei helfen, die Auswirkungen der Änderungen auf deine Umgebung abzuschätzen und alle notwendigen Maßnahmen vor dem Upgrade auf 18.0 zu planen. [Informationen zu diesen Tools und Ressourcen zur Risikominderung](#tools-and-resources-to-manage-your-impact) findest du weiter unten in diesem Artikel.\n\nAuf der [Seite zu veralteten Funktionen (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/update/deprecations?removal_milestone=18.0), findest du eine vollständige Liste der Komponenten, die in 18.0 entfernt werden sollen. Im Folgenden erfährst du, was auf dich zukommt und wie du dich auf die diesjährige Version vorbereiten kannst, je nachdem, welche Bereitstellung du verwendest.\n\n## Breaking Changes\n\n### Hohe Auswirkungen\n\n**1. CI/CD-Job-Token – Entfernung der Einstellung „Zugriff von deinem Projekt beschränken“**\n\nGitLab.com | Self-Managed | Dedicated\n\nIn GitLab 14.4 haben wir eine Einstellung eingeführt, um **[den Zugriff *von* den CI/CD-Job-Token (CI_JOB_TOKEN) deines Projekts zu beschränken (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ci/jobs/ci_job_token/#limit-your-projects-job-token-access)** und so die Sicherheit zu erhöhen. Diese Einstellung wurde **CI_JOB_TOKEN-Zugriff beschränken** genannt. In GitLab 16.3 haben wir diese Einstellung aus Gründen der Übersichtlichkeit in **Zugriff *von* diesem Projekt beschränken** umbenannt.\n\nIn GitLab 15.9 haben wir die alternative Einstellung **[Autorisierte Gruppen und Projekte (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ci/jobs/ci_job_token/#add-a-group-or-project-to-the-job-token-allowlist)** eingeführt. Diese Einstellung steuert den Zugriff von Job-Token auf dein Projekt mithilfe einer Zulassungsliste. Diese neue Einstellung ist eine deutliche Verbesserung gegenüber der ursprünglichen Einstellung. Die erste Iteration wurde in GitLab 16.0 als veraltet markiert und soll in GitLab 18.0 entfernt werden.\n\nDie Einstellung **Zugriff *von* diesem Projekt beschränken** ist für alle neuen Projekte standardmäßig deaktiviert. Ab GitLab 16.0 kannst du diese Einstellung nicht wieder aktivieren, nachdem sie in einem Projekt deaktiviert wurde. Verwende stattdessen die Einstellung **Autorisierte Gruppen und Projekte**, um den Zugriff von Job-Token auf deine Projekte zu steuern.\n\n- [Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)]( https://docs.gitlab.com/update/deprecations/#cicd-job-token---limit-access-from-your-project-setting-removal)\n- [Überprüfung über GitLab Detective verfügbar](https://gitlab.com/gitlab-com/support/toolbox/gitlab-detective/-/blob/main/README.md)\n\n**2. CI/CD-Job-Token – Durchsetzung der Zulassungsliste für autorisierte Gruppen und Projekte**\n\nGitLab.com | Self-Managed | Dedicated\n\nMit der **[Einstellung für autorisierte Gruppen und Projekte (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#add-a-group-or-project-to-the-job-token-allowlist)** (in GitLab 15.9 eingeführt und in GitLab 16.3 in **Zugriff auf dieses Projekt beschränken** umbenannt) kannst du den Zugriff von CI/CD-Job-Token auf dein Projekt verwalten. Wenn du **Nur dieses Projekt und alle Gruppen und Projekte in der Zulassungsliste** auswählst, können nur Gruppen oder Projekte, die der Zulassungsliste hinzugefügt wurden, Job-Token verwenden, um auf dein Projekt zuzugreifen.\n\n* **Vor GitLab 15.9** war die Zulassungsliste standardmäßig deaktiviert (Einstellung [**Alle Gruppen und Projekte** (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#allow-any-project-to-access-your-project)), sodass der Zugriff von Job-Token aus jedem Projekt möglich war.\n* **Seit GitLab 17.6** haben Administrator(inn)en von GitLab-Self-Managed- und Dedicated-Instanzen die Möglichkeit, [**eine sicherere Einstellung für alle Projekte zu erzwingen** (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/administration/settings/continuous_integration.html#job-token-permissions), die verhindert, dass Projektbetreuer(innen) **Alle Gruppen und Projekte** auswählen. Diese Änderung sorgt für ein höheres Maß an Sicherheit zwischen Projekten.\n* In GitLab 18.0 ist diese Einstellung standardmäßig aktiviert. Auf GitLab.com werden wir die Zulassungslisten deiner Projekte automatisch auf der Grundlage deiner Projekt-Authentifizierungsprotokolle auffüllen.\n* Um sich auf diese Änderung auf **GitLab.com** vorzubereiten, sollten Projektbetreuer(innen), die das Job-Token für die projektübergreifende Authentifizierung verwenden, die Zulassungslisten für **Autorisierte Gruppen und Projekte** ihres Projekts belegen. Sie sollten dann die Einstellung auf **Nur** **dieses Projekt und Gruppen und Projekte in der Zulassungsliste** ändern. Wir empfehlen die Verwendung der verfügbaren [Migrationswerkzeuge (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ci/jobs/ci_job_token/#auto-populate-a-projects-allowlist), um die Erstellung der Zulassungsliste basierend auf den [Authentifizierungsprotokollen (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ci/jobs/ci_job_token/#job-token-authentication-log) des Projekts vor GitLab 18.0 zu ***automatisieren***.\n* **Benutzer(innen) von Self-Managed** sollten die Zulassungslisten vor dem Upgrade auf 18.0 belegen.\n* **Dedicated-Benutzer(innen)** sollten mit ihrem GitLab-Kontoteam zusammenarbeiten, um die geeignete Strategie für ihre spezifische Instanz zu entwickeln.\n\n- [Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/update/deprecations/#cicd-job-token---authorized-groups-and-projects-allowlist-enforcement)\n- [Dokumentation (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ci/jobs/ci_job_token/#add-a-gr)\n- [Überprüfung über GitLab Detective verfügbar](https://gitlab.com/gitlab-com/support/toolbox/gitlab-detective/-/blob/main/README.md)\n\n**3. Durchsetzung des Geltungsbereichs von Abhängigkeits-Proxy-Token**\n\nGitLab.com | Self-Managed | Dedicated\n\nDer Abhängigkeits-Proxy für Container akzeptiert die Anfragen **`docker login`** und **`docker pull`** mit **persönlichen, Projekt-** oder **Gruppen-**Zugriffstoken, ohne deren Geltungsbereich zu validieren.\n\nIn GitLab 18.0 benötigt der Abhängigkeits-Proxy sowohl den Geltungsbereich **`read_registry`** als auch den Geltungsbereich **`write_registry`** für die Authentifizierung. Nach dieser Änderung werden Authentifizierungsversuche mit Token ohne diese Bereiche **abgelehnt**.\n\nErstelle vor dem Upgrade neue Zugriffstoken mit den [**erforderlichen Geltungsbereichen** (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/user/packages/dependency_proxy/#authenticate-with-the-dependency-proxy-for-container-images) und aktualisiere deine Workflow-Variablen und -Skripte mit diesen neuen Token.\n\nDu hast auch die Möglichkeit, den [**Dependency Token Checker**](https://gitlab.com/gitlab-com/cs-tools/gitlab-cs-tools/dependancy-token-checker/) zu verwenden, ein von der Community entwickeltes Skript, mit dem du Token anzeigen und automatisch rotieren kannst.\n\n- [Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/update/deprecations/#dependency-proxy-token-scope-enforcement)\n\n### Mittlere Auswirkungen\n\n**1. Neue Fristen für die Datenaufbewahrung bei Sicherheitslücken auf GitLab.com**\n\nGitLab.com – **nur für Kund(inn)en mit Ultimate-Tarif**\n\nAb GitLab 18.1 werden wir mit einem schrittweisen, sechsmonatigen Rollout eine **neue Frist für die Datenaufbewahrung** für GitLab.com **Ultimate**-Kund(inn)en einführen, um die Systemleistung und -zuverlässigkeit zu verbessern. Die Datenaufbewahrungsfrist bestimmt, wie lange die Daten zu deinen Sicherheitslücken gespeichert werden.\n\nSicherheitslücken, die älter als 12 Monate sind und nicht aktualisiert wurden, werden automatisch in Cold-Storage-Archive verschoben. Diese Archive:\n\n* bleiben über die GitLab-Benutzeroberfläche zugänglich und können heruntergeladen werden\n* werden 3 Jahre lang aufbewahrt\n* werden nach 3 Jahren endgültig gelöscht\n\n- [Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/update/deprecations/#new-data-retention-limits-for-vulnerabilities-on-gitlabcom)\n- [Dokumentation (nur in englischer Sprache verfügbar)](https://handbook.gitlab.com/handbook/security/records-retention-deletion/)\n\n**2. Ablehnen von Pull-Richtlinien für Container-Images, die nicht in `allowed_pull_policies` enthalten sind**\n\nGitLab.com | Self-Managed | Dedicated\n\nAlle konfigurierten Pull-Richtlinien sollten in der [**allowed_pull_policies-Konfiguration** (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/runner/executors/docker/#allow-docker-pull-policies) vorhanden sein, die in der Datei **`config.toml`** des Runners angegeben ist. Wenn dies nicht der Fall ist, sollte der Job mit dem Fehler **`incompatible pull policy`** fehlschlagen.\n\nWenn in der aktuellen Implementierung mehrere Pull-Richtlinien definiert sind, werden Jobs übergeben, wenn mindestens eine Pull-Richtlinie mit den Richtlinien in **`allowed-pull-policies`** übereinstimmt, auch wenn andere Richtlinien nicht enthalten sind.\n\nIn GitLab 18.0 schlagen Jobs nur fehl, wenn keine der Pull-Richtlinien mit den in **`allowed-pull-policies`** angegebenen übereinstimmt. Im Gegensatz zum früheren Verhalten verwenden Jobs jedoch nur die in **`allowed-pull-policies`** aufgeführten Pull-Richtlinien. Diese Unterscheidung kann dazu führen, dass Jobs, die derzeit erfolgreich ausgeführt werden, in GitLab 18.0 fehlschlagen.\n\n- [Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/update/deprecations/#reject-container-image-pull-policies-not-in-allowed_pull_policies)\n- [Dokumentation (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/runner/executors/docker/#allow-docker-pull-policies)\n\n**3. PostgreSQL 14 und 15 werden nicht mehr unterstützt**\n\nSelf-Managed\n\nGitLab folgt einem [**jährlichen Upgrade-Rhythmus für PostgreSQL** (nur in englischer Sprache verfügbar)](https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/data-access/database-framework/postgresql-upgrade-cadence/).\n\nDie Unterstützung für PostgreSQL 14 und 15 soll in GitLab 18.0 entfernt werden. Ab GitLab 18.0 ist PostgreSQL 16 die minimal erforderliche Version von PostgreSQL.\n\nPostgreSQL 14 und 15 werden für den gesamten Release-Zyklus von GitLab 17 unterstützt. PostgreSQL 16 wird auch für Instanzen unterstützt, die vor GitLab 18.0 ein Upgrade durchführen möchten.\n\nUm diese Änderung auf Instanzen vorzubereiten, die kein [**PostgreSQL-Cluster** (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/administration/postgresql/replication_and_failover/) verwenden (z. B. wenn du eine einzelne PostgreSQL-Instanz ausführst, die du mit einem Omnibus-Linux-Paket installiert hast), versuchen Upgrades auf GitLab 17.11, PostgreSQL automatisch auf Version 16 zu aktualisieren. Wenn du [**PostgreSQL-Cluster**](https://docs.gitlab.com/administration/postgresql/replication_and_failover/) verwendest oder [**dich gegen dieses automatische Upgrade entscheidest** (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/omnibus/settings/database/#opt-out-of-automatic-postgresql-upgrades), musst du [**manuell ein Upgrade auf PostgreSQL 16**](https://docs.gitlab.com/omnibus/settings/database/#upgrade-packaged-postgresql-server) durchführen, um ein Upgrade auf GitLab 18.0 durchführen zu können. Stelle sicher, dass du über genügend Speicherplatz verfügst, um das Upgrade durchzuführen.\n\n- [Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/update/deprecations/#postgresql-14-and-15-no-longer-supported)\n- [Dokumentation (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/omnibus/settings/database/#upgrade-packaged-postgresql-server)\n- [Migrationsrichtlinien (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/omnibus/development/managing-postgresql-versions/)\n\n**4. Einstellung der Terraform-CI/CD-Vorlagen**\n\nSelf-Managed\n\nDie Terraform-CI/CD-Vorlagen werden eingestellt und in GitLab 18.0 entfernt. Dies betrifft die folgenden Vorlagen:\n\n* `Terraform.gitlab-ci.yml`\n* `Terraform.latest.gitlab-ci.yml`\n* `Terraform/Base.gitlab-ci.yml`\n* `Terraform/Base.latest.gitlab-ci.yml`\n\nGitLab kann die Binärdatei **`terraform`** in den Job-Images nicht auf eine Version aktualisieren, die unter der BSL lizenziert ist.\n\nUm Terraform weiterhin zu verwenden, klone die Vorlagen und das [**Terraform-Image**](https://gitlab.com/gitlab-org/terraform-images) und pflege sie nach Bedarf. GitLab bietet [**detaillierte Anweisungen**](https://gitlab.com/gitlab-org/terraform-images) für die Migration zu einem benutzerdefinierten Image.\n\n**Als Alternative empfehlen wir die Verwendung der neuen CI/CD-Komponente OpenTofu auf GitLab.com oder der neuen CI/CD-Vorlage OpenTofu in GitLab Self-Managed.** CI/CD-Komponenten sind noch nicht für GitLab Self-Managed verfügbar. [**Ticket #415638**](https://gitlab.com/gitlab-org/gitlab/-/issues/415638) enthält jedoch den Vorschlag, diese Funktion hinzuzufügen. Wenn CI/CD-Komponenten auf GitLab Self-Managed verfügbar werden, wird die CI/CD-Vorlage OpenTofu entfernt.\n\nErfahre mehr über die neue [CI/CD-Komponente OpenTofu](https://gitlab.com/components/opentofu).\n\n- [Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/update/deprecations/#deprecate-terraform-cicd-templates)\n\n**5. Wichtiges Update des Prometheus-Unterdiagramms**\n\nSelf-Managed\n\nMit GitLab 18.0 und GitLab Chart 9.0 wird das Prometheus-Unterdiagramm von 15.3 auf 27.3 aktualisiert.\n\nZusammen mit diesem Update wird standardmäßig Prometheus 3 ausgeliefert.\n\nFür das Upgrade sind manuelle Schritte erforderlich. Wenn du Alertmanager, Node Exporter oder Pushgateway aktiviert hast, musst du auch deine Helm-Werte aktualisieren.\n\nWeitere Informationen findest du im [**Migrationsleitfaden** (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/charts/releases/9_0/#prometheus-upgrade).\n\n- [Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/update/deprecations/#major-update-of-the-prometheus-subchart)\n\n### Geringe Auswirkungen\n\n**1. Pakete für SUSE Linux Enterprise Server 15 SP2 werden nicht mehr erstellt**\n\nSelf-Managed\n\nDie langfristige Unterstützung (LTSS) für SUSE Linux Enterprise Server (SLES) 15 SP2 endete im Dezember 2024.\n\nDaher werden wir die SLES-SP2-Distribution für Linux-Paketinstallationen nicht mehr unterstützen. Du solltest ein Upgrade auf SLES 15 SP6 durchführen, um weiterhin Support zu erhalten.\n\n- [Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/update/deprecations/#support-for-suse-linux-enterprise-server-15-sp2)\n\n**2. Entfernen des Gitaly-Ratenbegrenzers**\n\nSelf-Managed\n\nGitaly unterstützte bisher [**RPC-basierte Ratenbegrenzung**](https://gitlab.com/gitlab-org/gitaly/-/blob/4b7ea24f6172a03e7989879200b47b6fd0e2d059/doc/backpressure.md#L55-55). Wir stellen diese Funktion ein, da sie nicht die gewünschten Ergebnisse erzielt. Weitere Informationen findest du im Ticket für die Deaktivierung.\n\nWenn Kund(inn)en den Ratenbegrenzer konfiguriert haben (der veraltet ist), wird kein Fehler zurückgegeben und die Konfiguration wird einfach ignoriert.\n\nKund(inn)en sollten stattdessen den [**Gleichzeitigkeitsgrenzwert** (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/administration/gitaly/concurrency_limiting/) verwenden.\n\n- [Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/update/deprecations/#gitaly-rate-limiting)\n\n**3. Einstellung der Unterstützung für NGINX-Controller-Image 1.3.1**\n\nSelf-Managed\n\nWir aktualisieren das Standard-NGINX-Controller-Image auf 1.11.2. Diese neue Version erfordert neue RBAC-Regeln und einige Benutzer(innen) setzen **nginx-ingress.rbac.create: false**, um ihre eigenen RBAC-Regeln zu verwalten.\n\nDiese Benutzer(innen) müssen die RBAC-Regeln hinzufügen, bevor sie zu 1.11.2 oder höher migrieren. Wir haben einen Fallback-Mechanismus hinzugefügt, um 1.3.1 nur dann bereitzustellen, wenn dieser Helm-Wert wie oben festgelegt ist. Wir haben auch **nginx-ingress.controller.image.disableFallback** hinzugefügt, das standardmäßig auf „false“ gesetzt ist. Benutzer(innen), die ihr eigenes RBAC verwalten, können diesen Wert auf „true“ setzen, damit ihre Bereitstellungen auch 1.11.2 verwenden können, nachdem sie sichergestellt haben, dass die neuen RBAC-Regeln in Kraft sind.\n\nWir planen, die Unterstützung für das 1.3.1-Image und den Fallback-Mechanismus mit der Version 17.5 einzustellen, damit wir diese Unterstützung vollständig entfernen und nur noch 1.11.2 verwenden können, das zahlreiche Sicherheitsvorteile bietet.\n\n[Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/update/deprecations/#fallback-support-for-gitlab-nginx-chart-controller-image-v131)\n\n**4. Update der Hauptversion der Analysatoren der Anwendungssicherheitstests**\n\nGitLab.com | Self-Managed | Dedicated\n\nDie Phase der Anwendungssicherheitstests wird die Hauptversionen der Analysatoren zusammen mit der Veröffentlichung von GitLab 18.0 aktualisieren.\n\nWenn du nicht die standardmäßig enthaltenen Vorlagen verwendest oder deine Analysator-Versionen fixiert hast, musst du deine CI/CD-Job-Definition aktualisieren, um entweder die fixierte Version zu entfernen oder die neueste Hauptversion zu aktualisieren.\n\nBenutzer(innen) von GitLab 17.0–17.11 erhalten bis zur Veröffentlichung von GitLab 18.0 weiterhin normale Analysator-Updates. Nach GitLab 18.0 werden alle neu behobenen Bugs und Funktionen nur noch in der neuen Hauptversion der Analysatoren veröffentlicht.\n\nGemäß unseren Wartungsrichtlinien portieren wir keine Fehler und Funktionen in veraltete Versionen zurück. Sicherheitspatches werden bei Bedarf in die letzten drei Nebenversionen zurückportiert.\n\n- [Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/update/deprecations/#application-security-testing-analyzers-major-version-update)\n\n**5. API-Entdeckung verwendet standardmäßig Branch-Pipelines**\n\nGitLab.com | Self-Managed | Dedicated\n\nIn GitLab 18.0 aktualisieren wir das Standardverhalten der CI/CD-Vorlage für die API-Erkennung (**API-Discovery.gitlab-ci.yml**).\n\nVor GitLab 18.0 konfiguriert diese Vorlage Jobs so, dass sie standardmäßig in [**Merge Request-Pipelines** (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ci/pipelines/merge_request_pipelines/) ausgeführt werden, wenn ein MR geöffnet ist.\n\nAb GitLab 18.0 richten wir das Verhalten dieser Vorlage am Verhalten der [**stabilen Vorlagen-Editionen** (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/user/application_security/detect/roll_out_security_scanning/#template-editions) für andere AST-Scanner aus:\n\n* Standardmäßig führt die Vorlage Scan-Jobs in Branch-Pipelines aus.\n* Du kannst die CI/CD-Variable **AST_ENABLE_MR_PIPELINES: true** festlegen, um MR-Pipelines zu verwenden, wenn ein MR geöffnet ist. Die Implementierung dieser neuen Variable wird im [**Ticket #410880**](https://gitlab.com/gitlab-org/gitlab/-/issues/410880) nachverfolgt.\n\n- [Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/update/deprecations/#api-discovery-will-use-branch-pipelines-by-default)\n\n**6. DAST DAST_DEVTOOLS_API_TIMEOUT hat einen niedrigeren Standardwert**\n\nGitLab.com | Self-Managed | Dedicated\n\nDie Umgebungsvariable **DAST_DEVTOOLS_API_TIMEOUT** bestimmt, wie lange ein DAST-Scan auf eine Antwort des Browsers wartet. Vor GitLab 18.0 hatte die Variable einen statischen Wert von 45 Sekunden. Ab GitLab 18.0 hat die Umgebungsvariable **DAST_DEVTOOLS_API_TIMEOUT** einen dynamischen Wert, der basierend auf anderen Timeout-Konfigurationen berechnet wird.\n\nIn den meisten Fällen war der Wert von 45 Sekunden höher als der Timeout-Wert vieler Scannerfunktionen. Der dynamisch berechnete Wert macht die Variable __DAST_DEVTOOLS_API_TIMEOUT__ nützlicher, indem er die Anzahl der Fälle erhöht, für die sie gilt.\n\n- [Hinweis zur Deaktivierung (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/update/deprecations/#dast-dast_devtools_api_timeout-will-have-a-lower-default-value)\n\n## Tools und Ressourcen, um deine Auswirkungen zu verwalten\n\nWir haben spezielle Tools entwickelt, um unseren Kund(inn)en zu helfen, zu verstehen, wie sich diese geplanten Änderungen auf ihre GitLab-Instanz(en) auswirken. Sobald du die Auswirkungen für deine Arbeit analysiert hast, solltest du die in der Dokumentation beschriebenen Maßnahmen überprüfen, um einen reibungslosen Übergang zu GitLab 18.0 zu gewährleisten.\n\n* [Veraltete Funktionen der erweiterten Suche](https://gitlab.com/gitlab-com/cs-tools/gitlab-cs-tools/deprecation-migration-tools/advanced-search-deprecations): Dieses Tool nutzt die erweiterte Such-API von GitLab, um Zeichenfolgen zu finden, die in allen GitLab-Gruppen und -Projekten veraltet sind. Es zeigt auch, welche Dateien manuell überprüft werden sollten. *__Hinweis:__ Kann ein paar falsch positive Ergebnisse liefern.*\n* [Dependency Scanning Build Support Detection Helper](https://gitlab.com/security-products/tooling/build-support-detection-helper): Dieses Tool identifiziert Projekte, die von drei Einstellungen der Abhängigkeitssuche betroffen sind ([1](https://docs.gitlab.com/update/deprecations/#dependency-scanning-for-javascript-vendored-libraries), [2](https://docs.gitlab.com/update/deprecations/#dependency-scanning-upgrades-to-the-gitlab-sbom-vulnerability-scanner), [3](https://docs.gitlab.com/update/deprecations/#resolve-a-vulnerability-for-dependency-scanning-on-yarn-projects); alle auf Version 19.0 verschoben). Es verwendet die API, um nach relevanten Dateien und CI-Job-Namen zu suchen.\n* [GitLab Detective](https://gitlab.com/gitlab-com/support/toolbox/gitlab-detective/-/blob/main/README.md) (nur Self-Managed): Dieses experimentelle Tool überprüft automatisch eine GitLab-Installation auf bekannte Probleme. Es führt komplexe Überprüfungen durch, indem es Konfigurationsdateien oder Datenbankwerte analysiert. **Hinweis:** Muss direkt auf deinen GitLab-Knoten ausgeführt werden.\n\nWir haben außerdem eine Reihe von Mikrokursen (15 Minuten oder kürzer) auf der GitLab University gestartet, die dir bei der Planung und Durchführung von Maßnahmen zur Minderung einiger dieser Änderungen helfen. [Starte deine Lernreise hier](https://university.gitlab.com/catalog?query=18.0).\n\nWenn du einen kostenpflichtigen Tarif hast und Fragen zu diesen Änderungen hast oder Unterstützung benötigst, [öffne ein Support-Ticket](https://support.gitlab.com/hc/en-us/articles/11626501035292-Support-Portal-User-Guide) im GitLab-Support-Portal.\n\nWenn du [Benutzer(in) einer kostenlosen Gitlab.com-Lizenz (nur in englischer Sprache verfügbar)](https://support.gitlab.com/hc/en-us/articles/11625911285404-Statement-of-Support#free-users) bist, kannst du über meist englischsprachige Community-Quellen wie die [GitLab-Dokumentation](https://docs.gitlab.com/), das [GitLab-Community-Forum](https://forum.gitlab.com/) und [Stack Overflow](http://stackoverflow.com/questions/tagged/gitlab) auf zusätzlichen Support zugreifen.\n",[20,21,22],"Martin Brümmer","Fabian Zimmer","Sam Wiskow","2025-05-01","2025-04-18","Die Breaking Changes in GitLab 18.0",[11,27],"DevSecOps platform","Bereite dich jetzt auf die Änderungen im kommenden Major Release vor. Analysiere die Auswirkungen für deine Arbeit und prüfe dann die in der Dokumentation beschriebenen Maßnahmen, um einen reibungslosen Übergang zu GitLab 18.0 zu gewährleisten.","yml",{},true,"/de-de/blog/a-guide-to-the-breaking-changes-in-gitlab-18-0",{"ogTitle":34,"ogImage":17,"ogDescription":35,"ogSiteName":36,"noIndex":14,"ogType":37,"ogUrl":38,"title":34,"canonicalUrls":38,"description":35},"GitLab 18.0: Migration Guide für Breaking Changes","GitLab 18.0 Breaking Changes: Analysiere Auswirkungen auf deine Projekte. Dokumentation mit allen Maßnahmen für einen sicheren Upgrade-Prozess.","https://about.gitlab.com","article","https://about.gitlab.com/blog/a-guide-to-the-breaking-changes-in-gitlab-18-0","de-de/blog/a-guide-to-the-breaking-changes-in-gitlab-18-0",[11,41],"devsecops-platform","iZ9QNDcklvujQI2nOwYVtYL4ofhyJmUzArImy7nXRn0",{"data":44},{"logo":45,"freeTrial":50,"sales":55,"login":60,"items":65,"search":374,"minimal":409,"duo":427,"pricingDeployment":436},{"config":46},{"href":47,"dataGaName":48,"dataGaLocation":49},"/de-de/","gitlab logo","header",{"text":51,"config":52},"Kostenlose Testversion anfordern",{"href":53,"dataGaName":54,"dataGaLocation":49},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":56,"config":57},"Vertrieb kontaktieren",{"href":58,"dataGaName":59,"dataGaLocation":49},"/de-de/sales/","sales",{"text":61,"config":62},"Anmelden",{"href":63,"dataGaName":64,"dataGaLocation":49},"https://gitlab.com/users/sign_in/","sign in",[66,93,189,194,295,355],{"text":67,"config":68,"cards":70},"Plattform",{"dataNavLevelOne":69},"platform",[71,77,85],{"title":67,"description":72,"link":73},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":74,"config":75},"Erkunde unsere Plattform",{"href":76,"dataGaName":69,"dataGaLocation":49},"/de-de/platform/",{"title":78,"description":79,"link":80},"GitLab Duo Agent Platform","Agentische KI für den gesamten Softwareentwicklungszyklus",{"text":81,"config":82},"Lerne GitLab Duo kennen",{"href":83,"dataGaName":84,"dataGaLocation":49},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":86,"description":87,"link":88},"Gründe, die für GitLab sprechen","Erfahre, warum Unternehmen auf GitLab setzen",{"text":89,"config":90},"Mehr erfahren",{"href":91,"dataGaName":92,"dataGaLocation":49},"/de-de/why-gitlab/","why gitlab",{"text":94,"left":31,"config":95,"link":97,"lists":101,"footer":171},"Produkt",{"dataNavLevelOne":96},"solutions",{"text":98,"config":99},"Alle Lösungen anzeigen",{"href":100,"dataGaName":96,"dataGaLocation":49},"/de-de/solutions/",[102,127,149],{"title":103,"description":104,"link":105,"items":110},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":106},{"icon":107,"href":108,"dataGaName":109,"dataGaLocation":49},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[111,115,118,123],{"text":112,"config":113},"CI/CD",{"href":114,"dataGaLocation":49,"dataGaName":112},"/de-de/solutions/continuous-integration/",{"text":78,"config":116},{"href":83,"dataGaLocation":49,"dataGaName":117},"gitlab duo agent platform - product menu",{"text":119,"config":120},"Quellcodeverwaltung",{"href":121,"dataGaLocation":49,"dataGaName":122},"/de-de/solutions/source-code-management/","Source Code Management",{"text":124,"config":125},"Automatisierte Softwarebereitstellung",{"href":108,"dataGaLocation":49,"dataGaName":126},"Automated software delivery",{"title":128,"description":129,"link":130,"items":135},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":131},{"href":132,"dataGaName":133,"dataGaLocation":49,"icon":134},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[136,140,145],{"text":137,"config":138},"Application Security Testing",{"href":132,"dataGaName":139,"dataGaLocation":49},"Application security testing",{"text":141,"config":142},"Schutz der Software-Lieferkette",{"href":143,"dataGaLocation":49,"dataGaName":144},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":146,"config":147},"Software Compliance",{"href":148,"dataGaName":146,"dataGaLocation":49},"/de-de/solutions/software-compliance/",{"title":150,"link":151,"items":156},"Bewertung",{"config":152},{"icon":153,"href":154,"dataGaName":155,"dataGaLocation":49},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[157,161,166],{"text":158,"config":159},"Sichtbarkeit und Bewertung",{"href":154,"dataGaLocation":49,"dataGaName":160},"Visibility and Measurement",{"text":162,"config":163},"Wertstrommanagement",{"href":164,"dataGaLocation":49,"dataGaName":165},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":167,"config":168},"Analysen und Einblicke",{"href":169,"dataGaLocation":49,"dataGaName":170},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":172,"items":173},"GitLab für",[174,179,184],{"text":175,"config":176},"Enterprise",{"href":177,"dataGaLocation":49,"dataGaName":178},"/de-de/enterprise/","enterprise",{"text":180,"config":181},"Kleinunternehmen",{"href":182,"dataGaLocation":49,"dataGaName":183},"/de-de/small-business/","small business",{"text":185,"config":186},"den öffentlichen Sektor",{"href":187,"dataGaLocation":49,"dataGaName":188},"/de-de/solutions/public-sector/","public sector",{"text":190,"config":191},"Preise",{"href":192,"dataGaName":193,"dataGaLocation":49,"dataNavLevelOne":193},"/de-de/pricing/","pricing",{"text":195,"config":196,"link":198,"lists":202,"feature":282},"Ressourcen",{"dataNavLevelOne":197},"resources",{"text":199,"config":200},"Alle Ressourcen anzeigen",{"href":201,"dataGaName":197,"dataGaLocation":49},"/de-de/resources/",[203,236,254],{"title":204,"items":205},"Erste Schritte",[206,211,216,221,226,231],{"text":207,"config":208},"Installieren",{"href":209,"dataGaName":210,"dataGaLocation":49},"/de-de/install/","install",{"text":212,"config":213},"Kurzanleitungen",{"href":214,"dataGaName":215,"dataGaLocation":49},"/de-de/get-started/","quick setup checklists",{"text":217,"config":218},"Lernen",{"href":219,"dataGaLocation":49,"dataGaName":220},"https://university.gitlab.com/","learn",{"text":222,"config":223},"Produktdokumentation",{"href":224,"dataGaName":225,"dataGaLocation":49},"https://docs.gitlab.com/","product documentation",{"text":227,"config":228},"Best-Practice-Videos",{"href":229,"dataGaName":230,"dataGaLocation":49},"/de-de/getting-started-videos/","best practice videos",{"text":232,"config":233},"Integrationen",{"href":234,"dataGaName":235,"dataGaLocation":49},"/de-de/integrations/","integrations",{"title":237,"items":238},"Entdecken",[239,244,249],{"text":240,"config":241},"Kundenerfolge",{"href":242,"dataGaName":243,"dataGaLocation":49},"/de-de/customers/","customer success stories",{"text":245,"config":246},"Blog",{"href":247,"dataGaName":248,"dataGaLocation":49},"/de-de/blog/","blog",{"text":250,"config":251},"Remote",{"href":252,"dataGaName":253,"dataGaLocation":49},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":255,"items":256},"Vernetzen",[257,262,267,272,277],{"text":258,"config":259},"GitLab-Services",{"href":260,"dataGaName":261,"dataGaLocation":49},"/de-de/services/","services",{"text":263,"config":264},"Community",{"href":265,"dataGaName":266,"dataGaLocation":49},"/community/","community",{"text":268,"config":269},"Forum",{"href":270,"dataGaName":271,"dataGaLocation":49},"https://forum.gitlab.com/","forum",{"text":273,"config":274},"Veranstaltungen",{"href":275,"dataGaName":276,"dataGaLocation":49},"/events/","events",{"text":278,"config":279},"Partner",{"href":280,"dataGaName":281,"dataGaLocation":49},"/de-de/partners/","partners",{"backgroundColor":283,"textColor":284,"text":285,"image":286,"link":290},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":287,"config":288},"the source promo card",{"src":289},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":291,"config":292},"Lies die News",{"href":293,"dataGaName":294,"dataGaLocation":49},"/de-de/the-source/","the source",{"text":296,"config":297,"lists":299},"Unternehmen",{"dataNavLevelOne":298},"company",[300],{"items":301},[302,307,313,315,320,325,330,335,340,345,350],{"text":303,"config":304},"Über",{"href":305,"dataGaName":306,"dataGaLocation":49},"/de-de/company/","about",{"text":308,"config":309,"footerGa":312},"Karriere",{"href":310,"dataGaName":311,"dataGaLocation":49},"/jobs/","jobs",{"dataGaName":311},{"text":273,"config":314},{"href":275,"dataGaName":276,"dataGaLocation":49},{"text":316,"config":317},"Geschäftsführung",{"href":318,"dataGaName":319,"dataGaLocation":49},"/company/team/e-group/","leadership",{"text":321,"config":322},"Team",{"href":323,"dataGaName":324,"dataGaLocation":49},"/company/team/","team",{"text":326,"config":327},"Handbuch",{"href":328,"dataGaName":329,"dataGaLocation":49},"https://handbook.gitlab.com/","handbook",{"text":331,"config":332},"Investor Relations",{"href":333,"dataGaName":334,"dataGaLocation":49},"https://ir.gitlab.com/","investor relations",{"text":336,"config":337},"Trust Center",{"href":338,"dataGaName":339,"dataGaLocation":49},"/de-de/security/","trust center",{"text":341,"config":342},"AI Transparency Center",{"href":343,"dataGaName":344,"dataGaLocation":49},"/de-de/ai-transparency-center/","ai transparency center",{"text":346,"config":347},"Newsletter",{"href":348,"dataGaName":349,"dataGaLocation":49},"/company/contact/#contact-forms","newsletter",{"text":351,"config":352},"Presse",{"href":353,"dataGaName":354,"dataGaLocation":49},"/press/","press",{"text":356,"config":357,"lists":358},"Kontakt",{"dataNavLevelOne":298},[359],{"items":360},[361,364,369],{"text":56,"config":362},{"href":58,"dataGaName":363,"dataGaLocation":49},"talk to sales",{"text":365,"config":366},"Support-Portal",{"href":367,"dataGaName":368,"dataGaLocation":49},"https://support.gitlab.com","support portal",{"text":370,"config":371},"Kundenportal",{"href":372,"dataGaName":373,"dataGaLocation":49},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":375,"login":376,"suggestions":383},"Schließen",{"text":377,"link":378},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":379,"config":380},"gitlab.com",{"href":63,"dataGaName":381,"dataGaLocation":382},"search login","search",{"text":384,"default":385},"Vorschläge",[386,388,393,395,400,405],{"text":78,"config":387},{"href":83,"dataGaName":78,"dataGaLocation":382},{"text":389,"config":390},"Code Suggestions (KI)",{"href":391,"dataGaName":392,"dataGaLocation":382},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":112,"config":394},{"href":114,"dataGaName":112,"dataGaLocation":382},{"text":396,"config":397},"GitLab auf AWS",{"href":398,"dataGaName":399,"dataGaLocation":382},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":401,"config":402},"GitLab auf Google Cloud",{"href":403,"dataGaName":404,"dataGaLocation":382},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":406,"config":407},"Warum GitLab?",{"href":91,"dataGaName":408,"dataGaLocation":382},"Why GitLab?",{"freeTrial":410,"mobileIcon":415,"desktopIcon":420,"secondaryButton":423},{"text":411,"config":412},"Kostenlos testen",{"href":413,"dataGaName":54,"dataGaLocation":414},"https://gitlab.com/-/trials/new/","nav",{"altText":416,"config":417},"GitLab-Symbol",{"src":418,"dataGaName":419,"dataGaLocation":414},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":416,"config":421},{"src":422,"dataGaName":419,"dataGaLocation":414},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":204,"config":424},{"href":425,"dataGaName":426,"dataGaLocation":414},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":428,"mobileIcon":432,"desktopIcon":434},{"text":429,"config":430},"Erfahre mehr über GitLab Duo",{"href":83,"dataGaName":431,"dataGaLocation":414},"gitlab duo",{"altText":416,"config":433},{"src":418,"dataGaName":419,"dataGaLocation":414},{"altText":416,"config":435},{"src":422,"dataGaName":419,"dataGaLocation":414},{"freeTrial":437,"mobileIcon":442,"desktopIcon":444},{"text":438,"config":439},"Zurück zur Preisübersicht",{"href":192,"dataGaName":440,"dataGaLocation":414,"icon":441},"back to pricing","GoBack",{"altText":416,"config":443},{"src":418,"dataGaName":419,"dataGaLocation":414},{"altText":416,"config":445},{"src":422,"dataGaName":419,"dataGaLocation":414},{"title":447,"button":448,"config":453},"Sieh dir an, wie agentische KI die Softwarebereitstellung transformiert",{"text":449,"config":450},"GitLab Transcend jetzt ansehen",{"href":451,"dataGaName":452,"dataGaLocation":49},"/de-de/events/transcend/virtual/","transcend event",{"layout":454,"icon":455,"disabled":31},"release","AiStar",{"data":457},{"text":458,"source":459,"edit":465,"contribute":470,"config":475,"items":480,"minimal":653},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":460,"config":461},"Quelltext der Seite anzeigen",{"href":462,"dataGaName":463,"dataGaLocation":464},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":466,"config":467},"Diese Seite bearbeiten",{"href":468,"dataGaName":469,"dataGaLocation":464},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":471,"config":472},"Beteilige dich",{"href":473,"dataGaName":474,"dataGaLocation":464},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":476,"facebook":477,"youtube":478,"linkedin":479},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[481,504,559,586,620],{"title":67,"links":482,"subMenu":487},[483],{"text":484,"config":485},"DevSecOps-Plattform",{"href":76,"dataGaName":486,"dataGaLocation":464},"devsecops platform",[488],{"title":190,"links":489},[490,494,499],{"text":491,"config":492},"Tarife anzeigen",{"href":192,"dataGaName":493,"dataGaLocation":464},"view plans",{"text":495,"config":496},"Vorteile von Premium",{"href":497,"dataGaName":498,"dataGaLocation":464},"/de-de/pricing/premium/","why premium",{"text":500,"config":501},"Vorteile von Ultimate",{"href":502,"dataGaName":503,"dataGaLocation":464},"/de-de/pricing/ultimate/","why ultimate",{"title":505,"links":506},"Lösungen",[507,512,515,517,522,527,531,534,537,542,544,546,549,554],{"text":508,"config":509},"Digitale Transformation",{"href":510,"dataGaName":511,"dataGaLocation":464},"/de-de/topics/digital-transformation/","digital transformation",{"text":513,"config":514},"Sicherheit und Compliance",{"href":132,"dataGaName":139,"dataGaLocation":464},{"text":124,"config":516},{"href":108,"dataGaName":109,"dataGaLocation":464},{"text":518,"config":519},"Agile Entwicklung",{"href":520,"dataGaName":521,"dataGaLocation":464},"/de-de/solutions/agile-delivery/","agile delivery",{"text":523,"config":524},"Cloud-Transformation",{"href":525,"dataGaName":526,"dataGaLocation":464},"/de-de/topics/cloud-native/","cloud transformation",{"text":528,"config":529},"SCM",{"href":121,"dataGaName":530,"dataGaLocation":464},"source code management",{"text":112,"config":532},{"href":114,"dataGaName":533,"dataGaLocation":464},"continuous integration & delivery",{"text":162,"config":535},{"href":164,"dataGaName":536,"dataGaLocation":464},"value stream management",{"text":538,"config":539},"GitOps",{"href":540,"dataGaName":541,"dataGaLocation":464},"/de-de/solutions/gitops/","gitops",{"text":175,"config":543},{"href":177,"dataGaName":178,"dataGaLocation":464},{"text":180,"config":545},{"href":182,"dataGaName":183,"dataGaLocation":464},{"text":547,"config":548},"Öffentlicher Sektor",{"href":187,"dataGaName":188,"dataGaLocation":464},{"text":550,"config":551},"Bildungswesen",{"href":552,"dataGaName":553,"dataGaLocation":464},"/de-de/solutions/education/","education",{"text":555,"config":556},"Finanzdienstleistungen",{"href":557,"dataGaName":558,"dataGaLocation":464},"/de-de/solutions/finance/","financial services",{"title":195,"links":560},[561,563,565,567,570,572,574,576,578,580,582,584],{"text":207,"config":562},{"href":209,"dataGaName":210,"dataGaLocation":464},{"text":212,"config":564},{"href":214,"dataGaName":215,"dataGaLocation":464},{"text":217,"config":566},{"href":219,"dataGaName":220,"dataGaLocation":464},{"text":222,"config":568},{"href":224,"dataGaName":569,"dataGaLocation":464},"docs",{"text":245,"config":571},{"href":247,"dataGaName":248,"dataGaLocation":464},{"text":240,"config":573},{"href":242,"dataGaName":243,"dataGaLocation":464},{"text":250,"config":575},{"href":252,"dataGaName":253,"dataGaLocation":464},{"text":258,"config":577},{"href":260,"dataGaName":261,"dataGaLocation":464},{"text":263,"config":579},{"href":265,"dataGaName":266,"dataGaLocation":464},{"text":268,"config":581},{"href":270,"dataGaName":271,"dataGaLocation":464},{"text":273,"config":583},{"href":275,"dataGaName":276,"dataGaLocation":464},{"text":278,"config":585},{"href":280,"dataGaName":281,"dataGaLocation":464},{"title":296,"links":587},[588,590,592,594,596,598,600,604,609,611,613,615],{"text":303,"config":589},{"href":305,"dataGaName":298,"dataGaLocation":464},{"text":308,"config":591},{"href":310,"dataGaName":311,"dataGaLocation":464},{"text":316,"config":593},{"href":318,"dataGaName":319,"dataGaLocation":464},{"text":321,"config":595},{"href":323,"dataGaName":324,"dataGaLocation":464},{"text":326,"config":597},{"href":328,"dataGaName":329,"dataGaLocation":464},{"text":331,"config":599},{"href":333,"dataGaName":334,"dataGaLocation":464},{"text":601,"config":602},"Sustainability",{"href":603,"dataGaName":601,"dataGaLocation":464},"/sustainability/",{"text":605,"config":606},"Vielfalt, Inklusion und Zugehörigkeit",{"href":607,"dataGaName":608,"dataGaLocation":464},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":336,"config":610},{"href":338,"dataGaName":339,"dataGaLocation":464},{"text":346,"config":612},{"href":348,"dataGaName":349,"dataGaLocation":464},{"text":351,"config":614},{"href":353,"dataGaName":354,"dataGaLocation":464},{"text":616,"config":617},"Transparenzerklärung zu moderner Sklaverei",{"href":618,"dataGaName":619,"dataGaLocation":464},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":621,"links":622},"Nimm Kontakt auf",[623,626,631,633,638,643,648],{"text":624,"config":625},"Sprich mit einem Experten/einer Expertin",{"href":58,"dataGaName":59,"dataGaLocation":464},{"text":627,"config":628},"Support",{"href":629,"dataGaName":630,"dataGaLocation":464},"https://support.gitlab.com/hc/en-us/articles/11626483177756-GitLab-Support","get help",{"text":370,"config":632},{"href":372,"dataGaName":373,"dataGaLocation":464},{"text":634,"config":635},"Status",{"href":636,"dataGaName":637,"dataGaLocation":464},"https://status.gitlab.com/","status",{"text":639,"config":640},"Nutzungsbedingungen",{"href":641,"dataGaName":642,"dataGaLocation":464},"/terms/","terms of use",{"text":644,"config":645},"Datenschutzerklärung",{"href":646,"dataGaName":647,"dataGaLocation":464},"/de-de/privacy/","privacy statement",{"text":649,"config":650},"Cookie-Einstellungen",{"dataGaName":651,"dataGaLocation":464,"id":652,"isOneTrustButton":31},"cookie preferences","ot-sdk-btn",{"items":654},[655,657,659],{"text":639,"config":656},{"href":641,"dataGaName":642,"dataGaLocation":464},{"text":644,"config":658},{"href":646,"dataGaName":647,"dataGaLocation":464},{"text":649,"config":660},{"dataGaName":651,"dataGaLocation":464,"id":652,"isOneTrustButton":31},[662,676,688],{"id":663,"title":664,"body":10,"config":665,"content":667,"description":10,"extension":29,"meta":671,"navigation":31,"path":672,"seo":673,"stem":674,"__hash__":675},"blogAuthors/en-us/blog/authors/martin-brmmer.yml","Martin Brmmer",{"template":666},"BlogAuthor",{"name":20,"config":668},{"headshot":669,"ctfId":670},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659427/Blog/Author%20Headshots/martin_brummer.webp","1QkLKK0UnkvZDDBzzEhkaA",{},"/en-us/blog/authors/martin-brmmer",{},"en-us/blog/authors/martin-brmmer","5XXFf9xKfqhpm33ots964Z5lLGWP6fmjjylRLOrvUe4",{"id":677,"title":21,"body":10,"config":678,"content":679,"description":10,"extension":29,"meta":683,"navigation":31,"path":684,"seo":685,"stem":686,"__hash__":687},"blogAuthors/en-us/blog/authors/fabian-zimmer.yml",{"template":666},{"name":21,"config":680},{"headshot":681,"ctfId":682},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750713473/q6awwqbxtg0a4x9gtmhs.png","3TK88UogcX5lx83kWMVuvI",{},"/en-us/blog/authors/fabian-zimmer",{},"en-us/blog/authors/fabian-zimmer","qPVb4mKZuBff6-yly4-T5Bar6IdyXcx_tJHGlSL8QIA",{"id":689,"title":22,"body":10,"config":690,"content":691,"description":10,"extension":29,"meta":695,"navigation":31,"path":696,"seo":697,"stem":698,"__hash__":699},"blogAuthors/en-us/blog/authors/sam-wiskow.yml",{"template":666},{"name":22,"config":692},{"headshot":693,"ctfId":694},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659433/Blog/Author%20Headshots/swiskow-headshot.jpg","swiskow",{},"/en-us/blog/authors/sam-wiskow",{},"en-us/blog/authors/sam-wiskow","TR52XmFI8G3xfSF6pTXW6r_bf0Bd5tf82MmM7VjjKfM",[701,713,728],{"content":702,"config":711},{"date":703,"body":704,"category":11,"tags":705,"authors":707,"title":708,"description":709,"heroImage":710},"2026-04-15","GitLab 17.0 enthielt 80 Breaking Changes – also inkompatible Änderungen, die beim Upgrade manuellen Anpassungsbedarf erzeugen. GitLab 18.0 hatte 27. Das bevorstehende Release GitLab 19.0 wird voraussichtlich 15 enthalten.\n\nWir wissen, dass die Verwaltung von Breaking Changes bei einem Major-Upgrade aufwändig ist: Es erfordert Analyse und Koordination im gesamten Unternehmen. Als Reaktion darauf haben wir eine [Genehmigungspflicht für Breaking Changes](https://docs.gitlab.com/development/deprecation_guidelines/#how-do-i-get-approval-to-move-forward-with-a-breaking-change) eingeführt, die eine Folgenabschätzung und die Freigabe durch die Führungsebene vorschreibt, bevor ein Breaking Change umgesetzt werden kann. Dieser Prozess zeigt Wirkung, und wir sind entschlossen, die Zahl weiter zu senken.\n\nIm Folgenden sind alle Breaking Changes in GitLab 19.0 aufgeführt, geordnet nach Deployment-Typ und Auswirkung, zusammen mit den Migrationsschritten für ein reibungsloses Upgrade.\n\n\n## Deployment-Fenster\n\n\nFolgende Deployment-Fenster sind relevant.\n\n### GitLab.com\n\nInkompatible Änderungen für GitLab.com sind auf diese zwei Fenster begrenzt:\n\n- **4.–6. Mai 2026** (09:00–22:00 UTC) — primäres Fenster\n- **11.–13. Mai 2026** (09:00–22:00 UTC) — Ausweichfenster\n\nViele weitere Änderungen werden im Laufe des Monats ausgerollt. Mehr zu den Breaking Changes innerhalb dieser Fenster in der [Dokumentation zu Breaking-Change-Fenstern](https://docs.gitlab.com/update/breaking_windows/).\n\n**Hinweis:** In Ausnahmefällen können Breaking Changes geringfügig außerhalb dieser Fenster fallen.\n\n### GitLab Self-Managed\n\nGitLab 19.0 wird ab dem 21. Mai 2026 verfügbar sein.\n\n> Mehr zum [Release-Zeitplan](https://about.gitlab.com/releases/).\n\n### GitLab Dedicated\n\nDas Upgrade auf GitLab 19.0 findet im zugewiesenen Wartungsfenster statt. Das Wartungsfenster ist im Switchboard-Portal einsehbar. GitLab Dedicated-Instanzen werden auf Release N-1 gehalten, das Upgrade auf GitLab 19.0 erfolgt daher im Wartungsfenster in der Woche ab dem 22. Juni 2026.\n\nAuf der [Deprecations-Seite](https://docs.gitlab.com/update/deprecations/?removal_milestone=19.0&breaking_only=true) ist die vollständige Liste der für GitLab 19.0 geplanten Entfernungen zu finden. Im Folgenden wird erläutert, was kommt und wie man sich je nach Deployment darauf vorbereitet.\n\n\n## Breaking Changes\n\n\nFolgende Breaking Changes haben hohe Auswirkungen.\n\n### Hohe Auswirkung\n\n**1. NGINX Ingress-Unterstützung durch Gateway API mit Envoy Gateway ersetzt**\n\n_GitLab Self-Managed (Helm chart)_\n\nDer GitLab Helm chart hat NGINX Ingress als Standard-Netzwerkkomponente gebündelt. NGINX Ingress hat im März 2026 das End-of-Life erreicht. GitLab wechselt nun zu Gateway API mit Envoy Gateway als neuem Standard.\n\nAb GitLab 19.0 werden Gateway API und das gebündelte Envoy Gateway zur Standard-Netzwerkkonfiguration. Falls eine Migration zu Envoy Gateway für das eigene Deployment nicht sofort möglich ist, kann das gebündelte NGINX Ingress explizit wieder aktiviert werden — es bleibt bis zur geplanten Entfernung in GitLab 20.0 verfügbar.\n\nDiese Änderung betrifft nicht:\n\n- Das im Linux-Paket enthaltene NGINX\n- GitLab Helm chart- und GitLab Operator-Instanzen, die einen extern verwalteten Ingress- oder Gateway-API-Controller verwenden\n\nGitLab stellt bis zur vollständigen Entfernung Best-Effort-Sicherheitswartung für den geforkten NGINX Ingress chart und die zugehörigen Builds bereit. Für einen reibungslosen Übergang empfiehlt sich eine frühzeitige Migration zur bereitgestellten Gateway-API-Lösung oder zu einem extern verwalteten Ingress-Controller.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/work_items/590800)\n\n\n**2. Gebündelte PostgreSQL-, Redis- und MinIO-Komponenten aus dem GitLab Helm chart entfernt**\n\n_GitLab Self-Managed (Helm chart)_\n\nDer GitLab Helm chart hat Bitnami PostgreSQL, Bitnami Redis und einen Fork des offiziellen MinIO-Charts gebündelt, um die Einrichtung von GitLab in Proof-of-Concept- und Testumgebungen zu erleichtern. Aufgrund von Änderungen bei Lizenzierung, Projektpflege und Verfügbarkeit öffentlicher Images werden diese Komponenten ohne Ersatz aus dem GitLab Helm chart und dem GitLab Operator entfernt.\n\nDiese Charts sind ausdrücklich als nicht für den Produktionseinsatz geeignet dokumentiert. Ihr einziger Zweck war die Bereitstellung schneller Testumgebungen.\n\nWer eine Instanz mit gebündeltem PostgreSQL, Redis oder MinIO betreibt, muss vor dem Upgrade auf GitLab 19.0 der [Migrationsanleitung](https://docs.gitlab.com/charts/installation/migration/bundled_chart_migration/) folgen, um externe Dienste zu konfigurieren. Redis und PostgreSQL aus dem Linux-Paket sind von dieser Änderung nicht betroffen.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/work_items/590797)\n\n\n**3. Resource Owner Password Credentials (ROPC) OAuth Grant entfernt**\n\n_GitLab.com | Self-Managed | Dedicated_\n\nDie Unterstützung für den Resource Owner Password Credentials (ROPC) Grant als OAuth-Flow wird in GitLab 19.0 vollständig entfernt. Dies entspricht dem OAuth RFC Version 2.1-Standard, der ROPC aufgrund seiner inhärenten Sicherheitsschwächen entfernt.\n\nGitLab hat seit dem 8. April 2025 bereits eine Client-Authentifizierung für ROPC auf GitLab.com vorgeschrieben. In Version 18.0 wurde eine Administrator-Einstellung hinzugefügt, die einen kontrollierten Opt-out vor der Entfernung ermöglicht.\n\nNach dem Upgrade auf 19.0 kann ROPC unter keinen Umständen mehr verwendet werden, auch nicht mit Client-Credentials. Alle Anwendungen oder Integrationen, die diesen Grant-Typ verwenden, müssen vor dem Upgrade auf einen unterstützten OAuth-Flow migrieren — beispielsweise den Authorization Code Flow.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/issues/457353)\n\n\n**4. PostgreSQL 16 nicht mehr unterstützt — PostgreSQL 17 ist das neue Minimum**\n\n_GitLab Self-Managed_\n\nGitLab folgt einem [jährlichen Upgrade-Rhythmus für PostgreSQL](https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/data-access/database-framework/postgresql-upgrade-cadence/). In GitLab 19.0 wird PostgreSQL 17 zur Mindestanforderung, die Unterstützung für PostgreSQL 16 wird eingestellt.\n\nPostgreSQL 17 ist ab GitLab 18.9 verfügbar und kann jederzeit vor dem 19.0-Release upgradet werden.\n\nBei Instanzen mit einer einzelnen, über das Linux-Paket installierten PostgreSQL-Instanz wird beim Upgrade auf 18.11 möglicherweise ein automatisches Upgrade auf PostgreSQL 17 durchgeführt. Für das Upgrade ist ausreichend freier Speicherplatz einzuplanen.\n\nBei Instanzen mit PostgreSQL Cluster oder solchen, die das automatische Upgrade deaktivieren, ist vor dem Upgrade auf GitLab 19.0 ein manuelles Upgrade auf PostgreSQL 17 erforderlich.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/issues/589774) | [Upgrade-Anleitung](https://docs.gitlab.com/omnibus/settings/database/#upgrade-packaged-postgresql-server)\n\n\n### Mittlere Auswirkung\n\nFolgende Breaking Changes haben mittlere Auswirkungen.\n\n**1. Linux-Paket-Unterstützung für Ubuntu 20.04 eingestellt**\n\n_GitLab Self-Managed_\n\nDer Standard-Support für Ubuntu 20.04 endete im Mai 2025. Gemäß der [Richtlinie für unterstützte Plattformen im Linux-Paket](https://docs.gitlab.com/install/package/#supported-platforms) werden Pakete eingestellt, sobald ein Anbieter den Support für das Betriebssystem beendet.\n\nAb GitLab 19.0 werden keine Pakete mehr für Ubuntu 20.04 bereitgestellt. GitLab 18.11 ist das letzte Release mit Linux-Paketen für diese Distribution.\n\nWer GitLab derzeit auf Ubuntu 20.04 betreibt, muss vor dem Upgrade auf GitLab 19.0 auf Ubuntu 22.04 oder ein anderes [unterstütztes Betriebssystem](https://docs.gitlab.com/install/package/#supported-platforms) wechseln. Canonical stellt eine [Upgrade-Anleitung](https://documentation.ubuntu.com/server/how-to/software/upgrade-your-release/) für die Migration bereit.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/8915)\n\n\n**2. Unterstützung für Redis 6 entfernt**\n\n_GitLab Self-Managed_\n\nIn GitLab 19.0 wird die Unterstützung für Redis 6 entfernt. Instanzen mit einem externen Redis-6-Deployment müssen vor dem Upgrade auf Redis 7.2 oder Valkey 7.2 migrieren; Valkey 7.2 ist ab GitLab 18.9 in der Beta verfügbar, die allgemeine Verfügbarkeit ist für GitLab 19.0 geplant.\n\nDas im Linux-Paket enthaltene Redis verwendet seit GitLab 16.2 Redis 7 und ist nicht betroffen. Handlungsbedarf besteht nur bei Instanzen mit einem externen Redis-6-Deployment.\n\nMigrationsressourcen für gängige Plattformen:\n\n- **AWS ElastiCache:** Upgrade auf [Redis 7.2 oder Valkey 7.2](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/supported-engine-versions.html)\n- **GCP Memorystore:** Upgrade auf [Redis 7.2 oder Valkey 7.2](https://cloud.google.com/memorystore/docs/redis/supported-versions)\n- **Azure Cache for Redis:** Managed Redis 7.2 oder Valkey 7.2 ist auf Azure noch nicht verfügbar. Als Alternative kann ein selbstgehostetes Deployment auf Azure VMs oder AKS genutzt werden, oder die Linux-Paket-Installation, die Valkey 7.2 mit GitLab 19.0 GA unterstützen wird.\n- **Self-hosted:** Upgrade der Redis-6-Instanz auf Redis 7.2 oder Valkey 7.2.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/work_items/585839) | [Anforderungsdokumentation](https://docs.gitlab.com/install/requirements/)\n\n\n**3. `heroku/builder:22`-Image durch `heroku/builder:24` ersetzt**\n\n_GitLab.com | Self-Managed | Dedicated_\n\nDas Cloud-Native-Buildpack (CNB) Builder-Image in Auto DevOps wurde auf `heroku/builder:24` aktualisiert. Betroffen sind Pipelines, die das [`auto-build-image`](https://gitlab.com/gitlab-org/cluster-integration/auto-build-image) der [Auto Build-Stage von Auto DevOps](https://docs.gitlab.com/topics/autodevops/stages/#auto-build) verwenden.\n\nDie meisten Workloads sind nicht betroffen. Für einige Nutzende kann dies jedoch ein Breaking Change sein. Vor dem Upgrade sollten die [Heroku-24-Stack-Release-Notes](https://devcenter.heroku.com/articles/heroku-24-stack#what-s-new) und [Upgrade-Hinweise](https://devcenter.heroku.com/articles/heroku-24-stack#upgrade-notes) geprüft werden.\n\nWer nach GitLab 19.0 weiterhin `heroku/builder:22` verwenden möchte, setzt die CI/CD-Variable `AUTO_DEVOPS_BUILD_IMAGE_CNB_BUILDER` auf `heroku/builder:22`.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/cluster-integration/auto-build-image/-/issues/79)\n\n\n**4. Mattermost aus dem Linux-Paket entfernt**\n\n_GitLab Self-Managed_\n\nIn GitLab 19.0 wird das gebündelte Mattermost aus dem Linux-Paket entfernt. Mattermost wurde seit 2015 mit GitLab gebündelt, verfügt inzwischen aber über ausgereifte eigenständige Deployment-Optionen. Mit Mattermost v11 wurde zudem [GitLab SSO aus dem kostenlosen Angebot entfernt](https://forum.mattermost.com/t/mattermost-v11-changes-in-free-offerings/25126), was den Mehrwert der gebündelten Integration verringert.\n\nWer das gebündelte Mattermost nicht verwendet, ist nicht betroffen. Bei Bedarf steht in der Mattermost-Dokumentation eine Anleitung zur [Migration von GitLab Omnibus zu Mattermost Standalone](https://docs.mattermost.com/administration-guide/onboard/migrate-gitlab-omnibus.html) zur Verfügung.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/work_items/590798)\n\n\n**5. Linux-Paket-Unterstützung für SUSE-Distributionen eingestellt**\n\n_GitLab Self-Managed_\n\nIn GitLab 19.0 wird die Linux-Paket-Unterstützung für SUSE-Distributionen eingestellt. Betroffen sind:\n\n- openSUSE Leap 15.6\n- SUSE Linux Enterprise Server 12.5\n- SUSE Linux Enterprise Server 15.6\n\nGitLab 18.11 ist das letzte Release mit Linux-Paketen für diese Distributionen. Der empfohlene Weg ist eine Migration zu einem [Docker-Deployment von GitLab](https://docs.gitlab.com/install/docker/installation/) auf der bestehenden Distribution — so ist kein Wechsel des Betriebssystems nötig, um weiterhin Upgrades zu erhalten.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/work_items/590801)\n\n\n### Geringe Auswirkung\n\nFolgende Breaking Changes haben geringe Auswirkungen.\n\n**1. Spamcheck aus Linux-Paket und GitLab Helm chart entfernt**\n\n_GitLab Self-Managed_\n\nIn GitLab 19.0 wird [Spamcheck](https://docs.gitlab.com/administration/reporting/spamcheck/) aus dem Linux-Paket und dem GitLab Helm chart entfernt. Es ist in erster Linie für große öffentliche Instanzen relevant — ein Sonderfall in der GitLab-Kundenbasis. Die Entfernung reduziert die Paketgröße und den Abhängigkeits-Footprint für die Mehrheit der Nutzenden.\n\nWer Spamcheck nicht verwendet, ist nicht betroffen. Wer das gebündelte Spamcheck nutzt, kann es separat über [Docker](https://gitlab.com/gitlab-org/gl-security/security-engineering/security-automation/spam/spamcheck) bereitstellen. Eine Datenmigration ist nicht erforderlich.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/work_items/590796)\n\n\n**2. Slack-Slash-Commands-Integration entfernt**\n\n_GitLab Self-Managed | Dedicated_\n\nDie [Slack-Slash-Commands-Integration](https://docs.gitlab.com/user/project/integrations/slack_slash_commands/) wird zugunsten der [GitLab for Slack-App](https://docs.gitlab.com/user/project/integrations/gitlab_slack_application/) eingestellt, die eine sicherere Integration mit denselben Funktionen bietet.\n\nAb GitLab 19.0 können Slack Slash Commands nicht mehr konfiguriert oder verwendet werden. Diese Integration existiert nur in GitLab Self-Managed und GitLab Dedicated — GitLab.com-Nutzende sind nicht betroffen.\n\nOb die eigene Instanz betroffen ist, lässt sich mit der [Betroffenheitsprüfung](https://gitlab.com/gitlab-org/gitlab/-/work_items/569345#am-i-impacted) feststellen.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/work_items/569345)\n\n\n**3. Bitbucket-Cloud-Import über API unterstützt keine App-Passwörter mehr**\n\n_GitLab.com | Self-Managed | Dedicated_\n\nAtlassian hat App-Passwörter (Benutzername-Passwort-Authentifizierung) für Bitbucket Cloud eingestellt und angekündigt, dass diese Authentifizierungsmethode ab dem 9. Juni 2026 nicht mehr funktioniert.\n\nAb GitLab 19.0 erfordert der Import von Repositories aus Bitbucket Cloud über die GitLab API [User-API-Tokens](https://support.atlassian.com/organization-administration/docs/understand-user-api-tokens/) anstelle von App-Passwörtern. Nutzende, die aus Bitbucket Server oder über die GitLab-Benutzeroberfläche aus Bitbucket Cloud importieren, sind nicht betroffen.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/work_items/588961) | [Betroffenheitsprüfung](https://gitlab.com/gitlab-org/gitlab/-/work_items/588961#am-i-impacted)\n\n\n**4. Trending-Tab auf der Seite „Projekte erkunden\" entfernt**\n\n_GitLab.com | Self-Managed | Dedicated_\n\nDer Tab **Trending** unter **Erkunden > Projekte** und die zugehörigen GraphQL-Argumente werden in GitLab 19.0 entfernt. Der Trending-Algorithmus berücksichtigt nur öffentliche Projekte und ist daher für Self-Managed-Instanzen, die hauptsächlich interne oder private Projektsichtbarkeit verwenden, nicht zielführend.\n\nIm Monat vor dem GitLab-19.0-Release wird der Tab **Trending** auf GitLab.com auf den Tab **Aktiv**, sortiert nach Sternen in absteigender Reihenfolge, weitergeleitet.\n\nEbenfalls entfernt: das `trending`-Argument in den GraphQL-Typen `Query.adminProjects`, `Query.projects` und `Organization.projects`.\n\n[Deprecation notice](https://gitlab.com/groups/gitlab-org/-/work_items/18493)\n\n\n**5. Container-Registry-Speichertreiber-Updates**\n\n_GitLab Self-Managed_\n\nZwei ältere Container-Registry-Speichertreiber werden in GitLab 19.0 ersetzt:\n\n- **Azure-Speichertreiber:** Der ältere `azure`-Treiber wird zu einem Alias für den neuen `azure_v2`-Treiber. Es ist keine manuelle Aktion erforderlich, eine proaktive Migration wird jedoch für verbesserte Zuverlässigkeit und Leistung empfohlen. Migrationsschritte sind in der [Object-Storage-Dokumentation](https://docs.gitlab.com/administration/packages/container_registry/#use-object-storage) beschrieben. [Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/issues/523096)\n\n- **S3-Speichertreiber (AWS SDK v1):** Der ältere `s3`-Treiber wird zu einem Alias für den neuen `s3_v2`-Treiber. Der `s3_v2`-Treiber unterstützt Signature Version 2 nicht — eine vorhandene `v4auth: false`-Konfiguration wird transparent ignoriert. Vor dem Upgrade ist eine Migration auf Signature Version 4 erforderlich. [Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/issues/523095)\n\n\n**6. `ciJobTokenScopeAddProject`-GraphQL-Mutation entfernt**\n\n_GitLab.com | Self-Managed | Dedicated_\n\nDie `ciJobTokenScopeAddProject`-GraphQL-Mutation wird zugunsten von `ciJobTokenScopeAddGroupOrProject` eingestellt, das zusammen mit den CI/CD-Job-Token-Scope-Änderungen in GitLab 18.0 eingeführt wurde. Automatisierungen oder Tools, die die veraltete Mutation verwenden, müssen vor dem Upgrade aktualisiert werden.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/issues/474175)\n\n\n**7. `ci_job_token_scope_enabled`-Attribut der Projects API entfernt**\n\n_GitLab.com | Self-Managed | Dedicated_\n\nDas Attribut `ci_job_token_scope_enabled` in der [Projects REST API](https://docs.gitlab.com/api/projects/) wird in GitLab 19.0 entfernt. Das Attribut wurde in GitLab 18.0 eingestellt, als die zugrundeliegende Einstellung entfernt wurde, und hat seitdem stets `false` zurückgegeben.\n\nZur Steuerung des CI/CD-Job-Token-Zugriffs werden die [CI/CD-Job-Token-Projekteinstellungen](https://docs.gitlab.com/ci/jobs/ci_job_token/#control-job-token-access-to-your-project) verwendet.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/issues/423091)\n\n\n**8. Paginierungslimit für nicht authentifizierte Projects-API auf GitLab.com eingeführt**\n\n_GitLab.com_\n\nZur Sicherstellung der Plattformstabilität und konsistenten Leistung wird für alle nicht authentifizierten Anfragen an die Projects-List-REST-API auf GitLab.com ein maximales Offset-Limit von 50.000 eingeführt. Beispielsweise ist der `page`-Parameter bei 20 Ergebnissen pro Seite auf 2.500 Seiten begrenzt.\n\nWorkflows, die Zugriff auf mehr Daten benötigen, müssen keyset-basierte Paginierungsparameter verwenden. Dieses Limit gilt nur für GitLab.com. In GitLab Self-Managed und GitLab Dedicated ist das Offset-Limit standardmäßig deaktiviert und hinter einem Feature-Flag verfügbar.\n\n[Deprecation notice](https://gitlab.com/gitlab-org/gitlab/-/work_items/585176)\n\n\n## Ressourcen zur Folgenabschätzung\n\nGitLab stellt spezifische Tools bereit, mit denen sich die Auswirkungen der geplanten Änderungen auf die eigene GitLab-Instanz analysieren lassen. Nach der Folgenabschätzung empfiehlt sich die Prüfung der Migrationsschritte in der jeweiligen Dokumentation für einen reibungslosen Übergang zu GitLab 19.0.\n\n**[GitLab Detective](https://gitlab.com/gitlab-com/support/toolbox/gitlab-detective) (nur Self-Managed):** Dieses experimentelle Tool prüft eine GitLab-Installation automatisch auf bekannte Probleme, indem es Konfigurationsdateien und Datenbankwerte analysiert. Hinweis: Es muss direkt auf den GitLab-Nodes ausgeführt werden.\n\nNutzende mit einem kostenpflichtigen Plan, die Fragen haben oder Unterstützung bei diesen Änderungen benötigen, können ein Support-Ticket im [GitLab Support-Portal](https://support.gitlab.com/) eröffnen.\n\nKostenlose GitLab.com-Nutzende können zusätzlichen Support über Community-Ressourcen wie die [GitLab-Dokumentation](https://docs.gitlab.com/), das [GitLab Community Forum](https://forum.gitlab.com/) und [Stack Overflow](https://stackoverflow.com/questions/tagged/gitlab) erhalten.\n",[11,706],"news",[20],"Ein Leitfaden zu den Breaking Changes in GitLab 19.0","GitLab 19.0 steht vor der Tür: Was sich ändert, welche Anpassungen das eigene Deployment erfordert und wie man sich auf das Upgrade vorbereitet.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1775561395/bhe1as7ttjvzltxwgo5m.png",{"featured":14,"template":15,"slug":712},"a-guide-to-the-breaking-changes-in-gitlab-19-0",{"content":714,"config":726},{"title":715,"description":716,"heroImage":717,"category":11,"tags":718,"authors":721,"date":724,"body":725},"Testergebnisse aus GitLab-Pipelines automatisch in QMetry übertragen","Der QMetry GitLab Component überträgt Testergebnisse automatisch aus CI/CD-Pipelines in QMetry – ohne manuelle Schritte, mit vollständigem Audit-Trail.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1775486753/cswmwtygkgkbdsibo09v.png",[719,11,720],"tutorial","devops",[722,723],"Matt Genelin","Matt Bonner","2026-04-07","In modernen Entwicklungsumgebungen müssen DevSecOps-Teams Testergebnisse aus CI/CD-Pipelines konsistent in Testmanagement-Plattformen übertragen, um Transparenz, Nachvollziehbarkeit und Compliance über den gesamten Entwicklungszyklus zu gewährleisten.\nTeams, die GitLab für CI/CD und SmartBear QMetry für das Testmanagement einsetzen, verbringen Zeit mit manuellem Export und Import von Testergebnissen – das verzögert Feedback und erschwert eine zuverlässige, zentrale Testsicht.\nDer **QMetry GitLab Component** automatisiert diesen Prozess. Die wiederverwendbare CI/CD-Komponente, verfügbar im [GitLab CI/CD Catalog](https://gitlab.com/explore/catalog), überträgt Testausführungsdaten nach jeder Pipeline-Ausführung automatisch nach QMetry – einer KI-gestützten, unternehmenstauglichen Testmanagement-Plattform, die Testplanung, -ausführung, -nachverfolgung und -reporting in einer Lösung vereint.\nAls zentrales System der Aufzeichnung für Tests hilft QMetry Teams dabei, Abdeckung und Ausführung nachzuverfolgen und fundiertere Release-Entscheidungen zu treffen.\n![SmartBear QMetry GitLab integration](https://res.cloudinary.com/about-gitlab-com/image/upload/v1775488045/ojt707rzxnm2yr3vqxdh.png)\n\n## Vorteile der Integration\n\n### Manuelle Uploads entfallen, Nachvollziehbarkeit steigt\nDevSecOps-Engineers und QA-Teams müssen Testergebnisse nicht mehr manuell exportieren und importieren – die Komponente übernimmt das automatisch nach jeder Pipeline-Ausführung. Zugleich erhalten Teams vollständige Nachvollziehbarkeit von Anforderungen über Testfälle bis hin zu tatsächlichen Ausführungsergebnissen.\n\n![Test results with SmartBear QMetry GitLab integration](https://res.cloudinary.com/about-gitlab-com/image/upload/v1775488045/ajx64sihup2nursdpnxz.png)\n\n### Compliance- und Audit-Anforderungen erfüllen\nFür Organisationen in regulierten Branchen ist lückenlose Testdokumentation nicht verhandelbar. Die Integration stellt sicher, dass jede Testausführung in QMetry mit Verknüpfungen zur jeweiligen GitLab-Pipeline, zum Commit und zum Build dokumentiert wird – ohne zusätzlichen manuellen Aufwand.\n![Audit-ready record of testing with SmartBear QMetry GitLab integration](https://res.cloudinary.com/about-gitlab-com/image/upload/v1775488045/q2tbaw5otgdywjkcquqx.png)\n\n### KI-gestützte Test-Insights nutzen\nQMetry analysiert mithilfe von KI Testausführungsmuster, identifiziert instabile Tests, prognostiziert Testfehler und empfiehlt Optimierungsmöglichkeiten. Echtzeit-Daten aus GitLab-Pipelines maximieren den Wert dieser Funktionen.\n![Genaue Insights mit SmartBear QMetry GitLab integration](https://res.cloudinary.com/about-gitlab-com/image/upload/v1775488045/pl7ru4wx8ixnheedfyrs.png)\n\n## Über die GitLab-SmartBear-Partnerschaft\nDiese Komponente steht für die wachsende Partnerschaft zwischen GitLab und SmartBear, CI/CD-Ausführung und Testmanagement in einem Workflow zu verbinden. Gemeinsam helfen sie Teams, Testing in den Entwicklungszyklus zu integrieren und dabei die Qualitäts-, Sicherheits- und Compliance-Standards ihrer Branchen einzuhalten.\n\n## Praxisbeispiele\n\n### Finanzdienstleistungen: Enterprise-Banking-Plattformen\nFührende Finanzinstitute stehen vor besonderen Herausforderungen beim Skalieren von Testautomatisierung:\n* **Regulatorische Compliance**: Detaillierte Audit-Trails für alle Testaktivitäten erforderlich\n* **Mehrere Compliance-Frameworks**: BaFin BAIT, PSD2, DSGVO und interne Risikomanagement-Richtlinien\n* **Hochfrequente Deployments**: Mehrere Produktions-Deployments täglich über Microservices\n* **Verteilte Teams**: Echtzeit-Transparenz über globale Engineering-Teams hinweg erforderlich\nFinanzdienstleister, die den QMetry GitLab Component einsetzen, automatisieren Testergebnis-Uploads für Unit-Tests, API-Contract-Tests, End-to-End-Tests für Transaktionsabläufe sowie Security- und Performance-Testergebnisse.\n\n**Mögliche Ergebnisse**:\n* **Deutliche Reduzierung** des manuellen Test-Reporting-Aufwands\n* **Vollständige Audit-Trail-Abdeckung** für Regulierungsprüfungen\n* **Echtzeit-Transparenz** für verteilte QA-Teams\n* **Verbesserte Compliance-Position** durch vollständige Nachvollziehbarkeit von Anforderungen bis zur Testausführung\n\n### Flugregelungssoftware in der Luft- und Raumfahrt\nDie Softwareentwicklung in der Luft- und Raumfahrt unterliegt besonderen Anforderungen:\n* **DO-178C-Compliance**: Avioniksoftware muss strikte Zertifizierungsstandards erfüllen\n* **Vollständige Nachvollziehbarkeit**: Jede Anforderung verknüpft mit Testfällen und Ausführungsergebnissen\n* **Audit-Trails**: Zertifizierungsbehörden verlangen detaillierte Aufzeichnungen aller Testaktivitäten\n* **Mehrere Teststufen**: Unit-, Integrations-, System- und Zertifizierungstests\nDurch die Integration von GitLab CI/CD mit QMetry automatisiert das Aerospace-Engineering-Team Testausführung und Reporting über alle Teststufen hinweg.\n\n**Vor der Integration**:\n* Manueller Export aus GitLab, Import in QMetry über UI-Uploads\n* Prozess dauerte 2–3 Stunden pro Testzyklus\n* Fehlerrisiko bei der Dateneingabe, verzögerte Rückmeldung an Stakeholder\n\n**Nach der Integration**:\n* Testergebnisse fließen automatisch von GitLab nach QMetry\n* Vollständiger Audit-Trail vom Commit über den Test bis zum Ergebnis\n* Kein manueller Eingriff, Echtzeit-Transparenz für Zertifizierungsprüfer\n* Compliance-Reports werden automatisch erstellt\n\n**Beispiel-Dashboard in QMetry nach der Integration**:\n```none\n    ╔════════════════════════════════════════════════════════════╗\n    ║  Flight Control System v2.4 - Test Execution Dashboard     ║\n    ╠════════════════════════════════════════════════════════════╣\n    ║                                                            ║\n    ║  📊 Test Execution Summary (Last 7 Days)                   ║\n    ║  ───────────────────────────────────────────────────────── ║\n    ║  ✓ Total Tests Executed: 1,247                             ║\n    ║  ✓ Passed: 1,241 (99.5%)                                   ║\n    ║  ✗ Failed: 6 (0.5%)                                        ║\n    ║  ⏸ Skipped: 0                                              ║\n    ║                                                            ║\n    ║  📁 Test Suite Organization                                ║\n    ║  ───────────────────────────────────────────────────────── ║\n    ║  └─ Certification/                                         ║\n    ║     └─ DO-178C/                                            ║\n    ║        ├─ Unit/ (487 tests, 100% pass)                     ║\n    ║        ├─ Integration/ (623 tests, 99.2% pass)             ║\n    ║        └─ System/ (137 tests, 100% pass)                   ║\n    ║                                                            ║\n    ║  🔗 Traceability                                           ║\n    ║  ───────────────────────────────────────────────────────── ║\n    ║  Requirements Covered: 342/342 (100%)                      ║\n    ║  Test Cases Linked: 1,247/1,247 (100%)                     ║\n    ║  GitLab Pipeline Executions: 47 (automated)                ║\n    ║                                                            ║\n    ║  ⚠️  Action Items                                          ║\n    ║  ───────────────────────────────────────────────────────── ║\n    ║  • 6 failed tests require investigation                    ║\n    ║  • Last execution: 2 minutes ago (Pipeline #1543)          ║\n    ║  • GitLab Commit: a7f8c23 \"Fix altitude hold logic\"        ║\n    ║                                                            ║\n    ╚════════════════════════════════════════════════════════════╝\n    \n```\n### Compliance- und Audit-Vorteile\n\n**Für Finanzdienstleister (BaFin BAIT, PSD2, SOX)**:\n1. **Automatische Nachvollziehbarkeit**: Regulatorische Anforderungen → Testfälle → Ausführungsergebnisse → GitLab-Commits verknüpft\n2. **Auditfähige Dokumentation**: Vollständige Testausführungshistorie mit Zeitstempeln und Pipeline-Referenzen\n3. **Regulatorisches Reporting**: Compliance-Reports direkt aus QMetry-Testdaten generieren\n\n**Für die Luft- und Raumfahrt-Zertifizierung (DO-178C, DO-254)**:\n1. **Automatische Nachverfolgbarkeitsmatrix**: Anforderungen → Testfälle → Ausführungsergebnisse → GitLab-Commits\n2. **Unveränderlicher Audit-Trail**: Pipeline-ID, Commit-SHA und Ausführer für jede Testausführung gestempelt\n3. **Zertifizierungspaket-Generierung**: Konforme Dokumentation aus GitLab-Pipeline-Daten\n\n---\n\n## Technische Umsetzung\n*Dieser Abschnitt orientiert Teams, die die Integration einrichten möchten. Die vollständige Schritt-für-Schritt-Anleitung mit allen Konfigurationsdetails – API-Credentials, CI/CD-Variablen, Testformate, erweiterte Optionen und Fehlerbehebung – ist im [englischen Originalbeitrag](https://about.gitlab.com/blog/streamline-test-management-with-the-smartbear-qmetry-gitlab-component/) verfügbar.*\n\n## Voraussetzungen\n* **GitLab-Account** mit einem Projekt, das automatisierte Tests enthält und Testergebnisdateien erzeugt (JUnit XML, TestNG XML usw.)\n* **QMetry Test Management Enterprise**-Account mit aktiviertem API-Zugriff und generiertem API-Key\n* **QMetry-Projekt**, bereits angelegt, in das Testergebnisse hochgeladen werden sollen\n* **Kenntnisse in GitLab CI/CD**, einschließlich grundlegender `.gitlab-ci.yml`-Syntax\n### Ablauf der Testergebnis-Übertragung\n1. **Testausführung**: Die GitLab CI/CD-Pipeline führt automatisierte Tests aus.\n2. **Ergebnisgenerierung**: Tests erzeugen Ausgabedateien (JUnit XML, TestNG XML usw.).\n3. **Komponentenaufruf**: Die QMetry-Komponente wird als Job in der Pipeline ausgeführt.\n4. **Automatischer Upload**: Die Komponente liest die Testergebnisdateien und lädt sie via API nach QMetry hoch.\n5. **QMetry-Verarbeitung**: QMetry empfängt die Ergebnisse und stellt sie für Reporting und Analyse bereit.\n\n## Basisintegration\nDie Komponente in der `.gitlab-ci.yml`-Datei einbinden. Die Komponente sollte **nach** dem Abschluss der Tests ausgeführt werden:\n```yaml\n    include:\n      - component: gitlab.com/sb9945614/qtm-gitlab-component/qmetry-import@1.0.5\n        inputs:\n          stage: test\n          project: \"Aerospace Flight Control System\"\n          file_name: \"results.xml\"\n          testing_type: \"JUNIT\"\n          instance_url: ${INSTANCE_URL}\n          api_key: ${QMETRY_API_KEY}\n  ```\n\n\n| Parameter | Beschreibung | Beispiel |\n| ----- | ----- | ----- |\n| `stage` | CI/CD-Stage für den Upload-Job | `test` |\n| `project` | QMetry-Projektname oder -Schlüssel | `\"Aerospace Flight Control System\"` |\n| `file_name` | Pfad zur Testergebnisdatei | `\"results.xml\"` |\n| `testing_type` | Format der Testergebnisse | `\"JUNIT\"` (auch: `TESTNG`, `NUNIT` usw.) |\n| `instance_url` | QMetry-Instanz-URL | `${INSTANCE_URL}` (aus CI/CD-Variablen) |\n| `api_key` | QMetry API-Key zur Authentifizierung | `${QMETRY_API_KEY}` (aus CI/CD-Variablen) |\n\n## Vollständiges Pipeline-Beispiel\n```yaml\n    stages:\n      - test\n      - report\n\n    variables:\n      NODE_VERSION: \"18\"\n\n    unit-tests:\n      stage: test\n      image: node:${NODE_VERSION}\n      script:\n        - npm ci\n        - npm run test:unit -- --reporter=junit --reporter-options=output=results.xml\n      artifacts:\n        reports:\n          junit: results.xml\n        paths:\n          - results.xml\n        when: always\n      tags:\n        - docker\n\n    include:\n      - component: gitlab.com/sb9945614/qtm-gitlab-component/qmetry-import@1.0.5\n        inputs:\n          stage: test\n          project: \"Aerospace Flight Control System\"\n          file_name: \"results.xml\"\n          testing_type: \"JUNIT\"\n          instance_url: ${INSTANCE_URL}\n          api_key: ${QMETRY_API_KEY}\n```\n\n## Vollständige Konfigurationsreferenz\n| Eingabeparameter | Pflichtfeld | Standard | Beschreibung |\n| ----- | ----- | ----- | ----- |\n| `stage` | Nein | `test` | GitLab CI/CD-Stage für den Upload-Job |\n| `runner_tag` | Nein | `\"\"` | Spezifischer Runner-Tag (leer = beliebiger verfügbarer Runner) |\n| `project` | Ja | – | QMetry-Projektname oder -Schlüssel |\n| `file_name` | Ja | – | Pfad zur Testergebnisdatei (relativ zum Projektstamm) |\n| `testing_type` | Ja | – | Testergebnisformat: `JUNIT`, `TESTNG`, `NUNIT` usw. |\n| `skip_warning` | Nein | `\"1\"` | Warnungen beim Import überspringen (`\"1\"` = überspringen, `\"0\"` = anzeigen) |\n| `is_matching_required` | Nein | `\"false\"` | Bestehende Testfälle nach Name abgleichen (`\"true\"` oder `\"false\"`) |\n| `testsuite_name` | Nein | `\"\"` | Name für die Test-Suite in QMetry |\n| `testsuite_id` | Nein | `\"\"` | Bestehende Test-Suite-ID, an die Ergebnisse angehängt werden |\n| `testsuite_folder_path` | Nein | `\"\"` | Ordnerpfad für die Test-Suite-Organisation (z. B. `/Regression/Sprint-23`) |\n| `automation_hierarchy` | Nein | `\"\"` | Hierarchieebene für die Testorganisation (`\"1\"`, `\"2\"`, `\"3\"` usw.) |\n| `testcase_fields` | Nein | `\"\"` | Benutzerdefinierte Felder für Testfälle (kommagetrennt: `field1=value1,field2=value2`) |\n| `testsuite_fields` | Nein | `\"\"` | Benutzerdefinierte Felder für Test-Suites (kommagetrennt: `field1=value1,field2=value2`) |\n| `instance_url` | Ja | – | QMetry-Instanz-URL (in CI/CD-Variablen speichern) |\n| `api_key` | Ja | – | QMetry API-Key (in CI/CD-Variablen speichern, maskiert) |\n\n## Dokumentation und Support\n* **Komponentendokumentation**: [GitLab CI/CD Catalog](https://gitlab.com/explore/catalog)\n* **Komponenten-Repository**: [gitlab.com/sb9945614/qtm-gitlab-component](https://gitlab.com/sb9945614/qtm-gitlab-component)\n* **QMetry-Dokumentation**: [QMetry Support Portal](https://qmetrysupport.atlassian.net/wiki/spaces/QPro/overview)\n* **SmartBear-Ressourcen**: [SmartBear Academy](https://smartbear.com/resources/)\n* **GitLab CI/CD-Dokumentation**: [GitLab CI/CD Documentation](https://docs.gitlab.com/ee/ci/)\n* **QMetry-Support**: support@smartbear.com – [QMetry Community Forum](https://community.smartbear.com/)",{"featured":31,"template":15,"slug":727},"streamline-test-management-with-the-smartbear-qmetry-gitlab-component",{"content":729,"config":738},{"title":730,"description":731,"authors":732,"heroImage":710,"date":724,"body":734,"category":11,"tags":735},"GitLab Duo CLI: Agentenbasierte KI jetzt auch im Terminal","GitLab Duo CLI bringt agentenbasierte KI der Duo Agent Platform ins Terminal – mit interaktivem Chat-Modus und Headless-Modus für CI/CD-Automatisierung.",[733],"John Coghlan","Wer Pipelines debuggt oder KI in automatisierte CI/CD-Workflows integriert, ohne dass jemand dabei zusieht, kommt mit bisherigen KI-Assistenten schnell an Grenzen: Diese konzentrieren sich auf Code-Erstellung und decken damit nur einen Teil des Software-Lebenszyklus ab. GitLab Duo CLI, jetzt in der öffentlichen Beta, schließt diese Lücke.\n\nGitLab Duo CLI bringt die agentenbasierte KI der [Duo Agent Platform](https://about.gitlab.com/de-de/gitlab-duo-agent-platform/) ins Terminal – mit vollständiger Unterstützung für automatisierte Workflows und einem interaktiven Chat-Modus, wenn ein Mensch im Loop bleiben soll. Dieser Artikel beschreibt, was Duo CLI leistet, wie die beiden Betriebsmodi funktionieren und welches Sicherheitsmodell dahintersteht.\n\n## GitLab Duo CLI installieren\n\nWer GLab (die GitLab CLI) bereits installiert hat, führt folgenden Befehl aus:\n\n```\nglab duo cli\n```\n\nAnschließend einfach den Anweisungen folgen.\n\nOhne GLab: [Hier installieren](https://gitlab.com/gitlab-org/cli/#installation) oder [Duo CLI als eigenständiges Tool verwenden](https://docs.gitlab.com/user/gitlab_duo_cli/#without-the-gitlab-cli).\n\n## Warum das Terminal – und warum jetzt\n\nDie erste Generation von KI-Assistenten für die Softwareentwicklung war auf die IDE ausgerichtet und konzentrierte sich ausschließlich auf Code-Erstellung. Das war sinnvoll, solange Autovervollständigung im Vordergrund stand. Sobald KI-Agenten jedoch eigenständig handeln – Tests ausführen, Pipelines auslösen, Vulnerability-Scans überwachen und mehr – reicht die IDE als einzige Abstraktionsebene nicht mehr aus.\n\nDie besten Entwickler-Tools funktionieren sowohl für Menschen als auch für Maschinen. CLIs haben sich über Jahrzehnte in genau diese Richtung entwickelt. Sie sind komponierbar: Output lässt sich weiterleiten, Befehle verketten, Skripte einbetten. Sie sind nachvollziehbar: Wenn etwas schiefläuft, führt man denselben Befehl aus und sieht genau, was der Agent gesehen hat. Und sie sind transparent: keine Hintergrundprozesse, kein Initialisierungsaufwand, kein Protokoll, das beim Fehlerfall erst entschlüsselt werden muss.\n\nTerminal-Interfaces eignen sich besser für Automatisierung, Scripting und portable Umgebungen. IDE-Interfaces bieten sich für interaktive, kontextreiche Entwicklung an. GitLab Duo CLI ist für ersteres ausgelegt – Duo Agentic Chat in IDE und UI deckt letzteres ab.\n\n## Was GitLab Duo CLI kann\n\nMit GitLab Duo CLI lässt sich Code erstellen, anpassen, refaktorieren und modernisieren – vergleichbar mit anderen KI-gestützten Coding-Assistenten für das Terminal. Darüber hinaus sind alle Agenten und Flows der GitLab Duo Agent Platform über Duo CLI zugänglich: von der Automatisierung von CI/CD-Konfigurationen und Pipeline-Optimierungen bis hin zur autonomen Ausführung mehrstufiger Entwicklungsaufgaben über den gesamten Software-Lebenszyklus.\n\nGitLab Duo CLI läuft in zwei Modi:\n\n* **Interaktiver Modus** – eine editor-unabhängige Terminal-Chat-Umgebung mit menschlicher Freigabe vor jeder Aktion. Geeignet für das Verstehen von Codebase-Strukturen, das Erstellen von Code, die Fehlersuche oder das Troubleshooting von Pipelines.\n* **Headless-Modus** – nicht-interaktiv, ausgelegt für Runner, Skripte und automatisierte Workflows. Direkt in CI/CD einbinden, ohne manuelle Eingriffe.\n\n## KI mit Leitplanken\n\nAgentenbasierte KI, die eigenständig Aktionen ausführen kann, birgt reale Sicherheitsrisiken. GitLab Duo CLI adressiert diese auf Plattformebene – nicht nachträglich:\n\n* **Human-in-the-Loop standardmäßig** im interaktiven Modus: Keine Aktion wird ohne Freigabe ausgeführt.\n* **Prompt-Injection-Erkennung** ist in der GitLab Duo Agent Platform integriert, nicht nachgerüstet.\n* **Composite Identity** – eine kombinierte Identität, die sowohl den Nutzenden als auch den Agenten repräsentiert – begrenzt die Zugriffsrechte des Agenten und macht jede KI-gesteuerte Aktion nachvollziehbar.\n\nGitLab Duo CLI unterstützt darüber hinaus [benutzerdefinierte Instruktionsdateien](https://docs.gitlab.com/user/duo_agent_platform/customize/) – z. B. `chat-rules.md`, `AGENTS.md` und `SKILL.md` – die festlegen, welche Aufgaben, Ressourcen, Kontexte und Aktionen ein Agent ausführen darf. **Das ist das Prinzip der minimalen Rechtevergabe auf KI angewendet: Der Agent tut genau das, wozu er autorisiert wurde – und nichts darüber hinaus.**\n\nGitLab Duo CLI in Aktion:\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1179964611?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"GitLab Duo CLI Beta Demo V1\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## GitLab Duo CLI ausprobieren\n\nDen Einstieg bietet ein [kostenloser Test der GitLab Duo Agent Platform](https://about.gitlab.com/de-de/gitlab-duo-agent-platform/).\n\nWer GitLab bereits im Free Tier nutzt, kann GitLab Duo Agent Platform durch [wenige einfache Schritte](https://docs.gitlab.com/subscriptions/gitlab_credits/#for-the-free-tier-on-gitlabcom) aktivieren.\n\nBestehende GitLab-Premium- oder -Ultimate-Abonnenten können Duo CLI nutzen, indem sie [Duo Agent Platform aktivieren](https://docs.gitlab.com/user/duo_agent_platform/turn_on_off/) – die benötigten GitLab Credits sind im jeweiligen Abonnement [bereits enthalten](https://docs.gitlab.com/subscriptions/gitlab_credits/#included-credits).\n",[736,11,737],"AI/ML","features",{"featured":31,"template":15,"slug":739},"gitlab-duo-cli",{"promotions":741},[742,756,768,780],{"id":743,"categories":744,"header":746,"text":747,"button":748,"image":753},"ai-modernization",[745],"ai-ml","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":749,"config":750},"Get your AI maturity score",{"href":751,"dataGaName":752,"dataGaLocation":248},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":754},{"src":755},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":757,"categories":758,"header":760,"text":747,"button":761,"image":765},"devops-modernization",[11,759],"devsecops","Are you just managing tools or shipping innovation?",{"text":762,"config":763},"Get your DevOps maturity score",{"href":764,"dataGaName":752,"dataGaLocation":248},"/assessments/devops-modernization-assessment/",{"config":766},{"src":767},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":769,"categories":770,"header":772,"text":747,"button":773,"image":777},"security-modernization",[771],"security","Are you trading speed for security?",{"text":774,"config":775},"Get your security maturity score",{"href":776,"dataGaName":752,"dataGaLocation":248},"/assessments/security-modernization-assessment/",{"config":778},{"src":779},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":781,"paths":782,"header":785,"text":786,"button":787,"image":792},"github-azure-migration",[783,784],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":788,"config":789},"See how GitLab compares to GitHub",{"href":790,"dataGaName":791,"dataGaLocation":248},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":793},{"src":767},{"header":795,"blurb":796,"button":797,"secondaryButton":802},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":798,"config":799},"Kostenlosen Test starten",{"href":800,"dataGaName":54,"dataGaLocation":801},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":56,"config":803},{"href":58,"dataGaName":59,"dataGaLocation":801},1776449916743]