[{"data":1,"prerenderedAt":810},["ShallowReactive",2],{"/de-de/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab":3,"navigation-de-de":51,"banner-de-de":453,"footer-de-de":463,"blog-post-authors-de-de-Tsukasa Komatsubara|Darwin Sanoy|Samer Akkoub|Bart Zhang":668,"blog-related-posts-de-de-ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab":720,"assessment-promotions-de-de":760,"next-steps-de-de":800},{"id":4,"title":5,"authorSlugs":6,"body":11,"categorySlug":12,"config":13,"content":17,"description":11,"extension":36,"isFeatured":15,"meta":37,"navigation":15,"path":38,"publishedDate":26,"seo":39,"stem":44,"tagSlugs":45,"__hash__":50},"blogPosts/de-de/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab.yml","Ultimate Guide To Migrating From Aws Codecommit To Gitlab",[7,8,9,10],"tsukasa-komatsubara","darwin-sanoy","samer-akkoub","bart-zhang",null,"product",{"slug":14,"featured":15,"template":16},"ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab",true,"BlogPost",{"title":18,"description":19,"authors":20,"heroImage":25,"date":26,"body":27,"category":12,"tags":28,"updatedDate":35},"Ultimativer Leitfaden für die Migration von AWS CodeCommit zu GitLab","In diesem umfassenden Tutorial erfährst du, wie du von AWS Services zu GitLab migrieren und die DevSecOps-Plattform nahtlos integrieren kannst. ",[21,22,23,24],"Tsukasa Komatsubara","Darwin Sanoy","Samer Akkoub","Bart Zhang","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097810/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2828%29_4mi0l4wzUa5VI4wtf8gInx_1750097810027.png","2024-08-26","Am 25. Juli 2024 hat AWS eine wichtige Ankündigung in Bezug auf den CodeCommit-Service des Unternehmens veröffentlicht. Wie in ihrem [offiziellen Blogbeitrag](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider/) beschrieben, hat AWS beschlossen, Neukund(inn)en den Zugriff auf CodeCommit zu entziehen. Bestehende Kund(inn)en können den Service zwar weiterhin nutzen, aber AWS führt keine neuen Funktionen mehr ein und konzentriert sich nur noch auf die Verbesserung von Sicherheit, Verfügbarkeit und Leistung.\n\nDiese Ankündigung hat Entwicklerteams dazu veranlasst, eine Migration ihrer Repositorys zu alternativen Git-Anbietern in Betracht zu ziehen. Angesichts dieser Änderungen haben wir diese umfassende Anleitung erstellt, um Teams bei der Migration zu GitLab und der Integration mit anderen AWS-Services zu unterstützen.\n\n**Hinweis:** Weitere Einzelheiten zu den offiziellen Migrationsempfehlungen von AWS findest du im [entsprechenden Blogbeitrag](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider/).\n\n## Über diesen Leitfaden\n\nDieser Leitfaden enthält umfassende Informationen für Entwicklungsteams, die GitLab nutzen und eine Integration mit AWS-Services in Betracht ziehen oder eine Migration von AWS-gehosteten Git-Repositories zu GitLab.com planen. Der Leitfaden ist in drei Hauptabschnitte unterteilt:\n\n- [Parallele Migration zu GitLab](#section-1-parallel-migration-to-gitlab): Beschreibt die schrittweise Migration vorhandener, in AWS gehosteter Repositories zu GitLab.com bei gleichzeitiger Minimierung von Risiken.\n\n- [Integration mit AWS CodeBuild](#section-2-integrating-gitlab-with-aws-codebuild): Beschreibt die Schritte zur Integration von GitLab-Repositories mit AWS CodeBuild und zur Einrichtung einer leistungsstarken Umgebung mit kontinuierlicher Integration.\n\n- [Integration mit AWS CodePipeline](#section-3-integrating-gitlab-with-aws-codepipeline): Enthält Details zur Verbindung von GitLab-Repositories mit AWS CodePipeline, um effiziente Pipelines für kontinuierliche Lieferung zu erstellen.\n\n- [Downstream-Integrationen für CodePipeline- und CodeStar-Verbindunge](#section-4-migrating-to-gitlab): Beschreibt die Nutzung von GitLab-AWS-Verbindungen für umfassende Servicezugriffe mit zahlreichen Integrationsmöglichkeiten im gesamten AWS-Ökosystem.\n\nIn dieser Anleitung erfährst du, wie du die leistungsstarken Funktionen von GitLab und AWS kombinieren kannst, um einen effizienten und flexiblen Entwicklungs-Workflow zu erstellen.\n\n## Abschnitt 1: Parallele Migration zu GitLab\nWenn du vorhast, Git-Repositories, die auf AWS gehostet werden, auf GitLab.com zu migrieren, findest du in diesem Abschnitt eine Anleitung für eine schrittweise Migration, die die Risiken minimiert. Mit den Mirroring-Funktionen von GitLab kannst du bestehende Entwicklungsabläufe beibehalten und gleichzeitig die neue Umgebung testen.\n\n### Warum ist die parallele Migration wichtig?\n\nUmfangreiche Systemmigrationen sind immer mit Risiken verbunden, insbesondere mit potenziellen Auswirkungen auf die laufende Entwicklungsarbeit, bestehende Integrationen und automatisierte Prozesse. Ein paralleler Migrationsansatz bietet die folgenden Vorteile:\n\n1. Risikominimierung: Teste die neue Umgebung, während bestehende Systeme betriebsbereit bleiben.\n2. Nahtloser Übergang: Entwicklungsteams können sich allmählich an das neue System gewöhnen.\n3. Integrationstests: Teste alle Integrationen und Automatisierungen in der neuen Umgebung gründlich.\n4. Zukunftsfähigkeit: Ermögliche es den Teams, schrittweise auf GitLab CI/CD zu migrieren, parallel zur bestehenden CI.\n\nEine parallele Migration ist nicht erforderlich, wenn du bereits weißt, dass du direkt zu GitLab wechseln möchtest.\n\n### Schritte für die Migration zu GitLab.com\n\n#### Schritt 1: Einrichtung auf GitLab.com\n\n- Überprüfe, ob dein Unternehmen bereits eine Gruppe auf GitLab.com besitzt und ob Single Sign-On (SSO) eingerichtet ist. Wenn ja, solltest du nach Möglichkeit beides verwenden.\n\n- Wenn dein Unternehmen noch nicht auf GitLab.com vertreten ist, besuche [GitLab.com](https://www.gitlab.com) und erstelle ein neues Konto oder melde dich bei einem bestehenden Konto an.\n- Erstelle einen neuen Unternehmens-Namensraum (eine Gruppe auf der Stammebene von gitlab.com).\n- Wähle einen Namen, der dein gesamtes Unternehmen widerspiegelt (und noch nicht vergeben ist).\n\n#### Schritt 2: Repository importieren\nBei paralleler Migration: Verwende die Pull-Mirroring-Funktion von GitLab, um Änderungen von in AWS gehosteten Repositories automatisch mit GitLab.com zu synchronisieren.\n\n1. Gehe zur Zielgruppe auf GitLab.com.\n2. Klicke oben rechts auf „Neues Projekt“.\n3. Klicke auf der Seite „Neues Projekt erstellen“ auf „Projekt importieren“.\n4. Klicke auf der Seite „Projekt importieren“ auf „Repository nach URL“.\n5. Gib die URL deines in AWS gehosteten Repositorys in das Feld „Git-Repository-URL“ ein.\n6. Aktiviere unter dem Feld „Git-Repository-URL“ die Option „Repository spiegeln“.\n7. Authentifizierung einrichten: Wähle in der AWS-CodeCommit-Konsole die Klon-URL für das Repository aus, das du migrieren möchtest. Wenn du CodeCommit-Repositories in GitLab importieren möchtest, kannst du die HTTPS-CodeCommit-URL verwenden, um das Repository über die GitLab-Repository-Spiegelung zu klonen. Außerdem musst du deine Git-Zugangsdaten von AWS für deinen IAM-Benutzer (Identity and Access Management) in GitLab angeben. Du kannst Git-Zugangsdaten für AWS CodeCommit erstellen, indem du dieser [AWS-Anleitung](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html) folgst.\n\n![Klon-URL](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/clone-url-screenshot__1__aHR0cHM6_1750097822121.png)\n\nMit dieser Einrichtung werden Änderungen aus dem von AWS gehosteten Repository automatisch alle fünf Minuten auf GitLab.com übertragen.\n\nWeitere Informationen findest du in unserer [Dokumentation zur Repository-Spiegelung](https://docs.gitlab.com/ee/user/project/repository/mirror/).\n\n#### Schritt 3: Integrationen testen und validieren\n\n1. CI/CD-Pipelines: Richte die Datei `.gitlab-ci.yml` in GitLab CI ein, um vorhandene Pipelines zu replizieren. Weitere Informationen zur [Planung einer Migration von anderen CI-Tools nach GitLab CI/CD](https://docs.gitlab.com/ee/ci/migration/plan_a_migration.html).\n2. Ticketverfolgung: Importiere Projekt-Tickets und teste Workflows.\n3. Code Review: Richte den Merge-Request-Prozess ein und teste die Review-Workflows.\n#### Schritt 4: Schrittweise Migration\n\n1. Beginne mit kleinen oder unkritischen Projekten, um dich mit der Arbeit auf GitLab.com vertraut zu machen.\n2. Biete Schulungen für Teammitglieder an und plane Zeit für die Anpassung an neue Workflows ein.\n3. Migriere nach und nach weitere Projekte und stelle dabei sicher, dass die Integrationen und Workflows problemlos funktionieren.\n\nWeitere Informationen findest du unter [Automatisieren von Migrationen von CodeCommit nach GitLab](https://gitlab.com/guided-explorations/aws/migrating-from-codecommit-to-gitlab/-/blob/main/migrating_codecommit_to_gitlab.md).\n\n#### Schritt 5: Migration abschließen\nWenn alle Tests und Validierungen abgeschlossen sind und das Team mit der neuen Umgebung vertraut ist, kannst du die vollständige Migration planen. Gehe für jedes Projekt wie folgt vor:\n\n1. Lege ein Migrationsdatum fest und benachrichtige alle Stakeholder.\n2. Führe die abschließende Datensynchronisierung durch.\n3. Entferne die Spiegelungseinstellungen aus dem GitLab-Projekt.\n4. Lege in AWS gehostete Repositories als schreibgeschützt fest und übertrage alle Entwicklungsarbeiten nach GitLab.com.\n\n#### Schritt 6: Bewerten der Akzeptanz der neuen Funktionen\n\nDie Zusammenarbeit in GitLab und die Automatisierung von Workflows für Entwickler(innen) sind weitaus umfangreicher als in CodeCommit. Nimm dir etwas Zeit, um diese Fähigkeiten kennenzulernen. Der Merge-Request-Prozess ist im Vergleich zu CodeCommit besonders vielseitig.\n\nWenn die Repositories auf GitLab stabil sind, kannst du GitLab CI/CD mühelos parallel zu einer vorhandenen Lösung ausprobieren. Die Teams können sich Zeit nehmen, um ihre GitLab-CI/CD-Automatisierung zu optimieren, ohne dass die Produktions-Workflows davon betroffen sind.\n\nAuch die Artefaktverwaltung von GitLab ist mit der Release-Funktion und vielen Paketregistrierungen sehr leistungsfähig.\n\n### Abschnitt 1: Zusammenfassung\nMit einem parallelen Migrationsansatz zu GitLab kannst du einen reibungslosen Übergang erreichen und gleichzeitig die Risiken minimieren. Mit diesem Prozess können sich Teams schrittweise an die neue Umgebung anpassen und sicherstellen, dass alle Integrationen und Automatisierungen ordnungsgemäß funktionieren. Bei der Übernahmemigration wird nur ein einziges Kontrollkästchen ausgelassen, wenn bekannt ist, dass eine parallele Migration nicht notwendig ist.\n\n## Abschnitt 2: Integration von GitLab mit AWS CodeBuild\n\nWenn du Code aus GitLab-Repositories mit AWS CodeBuild erstellen und testen möchtest, hilft dir diese umfassende Anleitung beim Einrichten einer effizienten CI-Pipeline.\n\n### Voraussetzungen\n\n- GitLab.com-Konto\n- AWS-Konto\n- AWS CLI (konfiguriert)\n\n### Schritt 1: GitLab-Verbindung in AWS CodeStar-Verbindungen erstellen\n\n1. Melde dich in der AWS-Managementkonsole an und navigiere zum CodeBuild-Service.\n2. Wähle in der linken Navigationsleiste „Einstellungen“ > „Verbindungen“ aus.\n3. Klicke auf die Schaltfläche „Verbindung erstellen“.\n4. Wähle „GitLab“ als Anbieter aus.\n5. Gib einen Verbindungsnamen ein und klicke auf „Mit GitLab verbinden“.\n6. Daraufhin wirst du zur GitLab-Authentifizierungsseite weitergeleitet.\n7. Erteile die erforderlichen Berechtigungen.\n8. Nach erfolgreichem Abschluss ändert sich der Verbindungsstatus in „Verfügbar“.\n\n![CodeStar-Connect-Einrichtung](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/codestar-connections-setup_aHR0cHM6_1750097822122.png)\n\n### Schritt 2: AWS-CodeBuild-Projekt erstellen\n\n1. Klicke im CodeBuild-Dashboard auf „Build-Projekt erstellen“.\n2. Gib einen Projektnamen und eine Beschreibung ein.\n3. Wähle in den Quelleneinstellungen „GitLab“ als Anbieter aus.\n4. Wähle die soeben erstellte Verbindung aus und gib das GitLab-Repository und den Branch an.\n\n![CodeBuild-Projekt hinzufügen](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/codepipeline_step_3_add_codebuild_aHR0cHM6_1750097822123.png)\n\n**Hinweis: Konfiguriere ab Schritt 3 die Einstellungen für deine spezifische Umgebung und deine Anforderungen.**\n\n### Zusammenfassung von Abschnitt 2\nIn diesem Abschnitt wurde ausführlich beschrieben, wie du GitLab-Repositories in AWS CodeBuild integrieren kannst. Diese Einrichtung ermöglicht eine kontinuierliche Integrationspipeline, bei der Codeänderungen in GitLab automatisch mit AWS CodeBuild erstellt und getestet werden.\n\n## Abschnitt 3: GitLab mit AWS CodePipeline integrieren\n\nWenn du die kontinuierliche Lieferung von GitLab-Repositories mit AWS CodePipeline implementieren möchtest, wird dir diese detaillierte Anleitung helfen. Die Integration ist jetzt noch einfacher geworden, da GitLab als AWS-CodeStar-Connections-Anbieter verfügbar ist.\n\n### Voraussetzungen\n\n- GitLab.com-Konto\n- AWS-Konto\n- AWS CLI (konfiguriert)\n\n### Schritt 1: GitLab-Verbindung in AWS CodeStar-Verbindungen erstellen\n\n1. Melde dich in der AWS-Managementkonsole an und navigiere zum CodePipeline-Service.\n2. Wähle in der linken Navigationsleiste „Einstellungen“ > „Verbindungen“ aus.\n3. Klicke auf die Schaltfläche „Verbindung erstellen“.\n4. Wähle „GitLab“ als Anbieter aus.\n5. Gib einen Verbindungsnamen ein und klicke auf „Mit GitLab verbinden“.\n6. Daraufhin wirst du zur GitLab-Authentifizierungsseite weitergeleitet.\n7. Erteile die erforderlichen Berechtigungen.\n8. Nach erfolgreichem Abschluss ändert sich der Verbindungsstatus in „Verfügbar“.\n\n![CodeStar Connections einrichten](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/codestar-connections-setup_aHR0cHM6_1750097822122.png)\n\n### Schritt 2: AWS CodePipeline erstellen\n\n1. Klicke im CodePipeline-Dashboard auf „Pipeline erstellen“.\n2. Gib einen Pipeline-Namen ein und klicke auf „Weiter“.\n3. Wähle „GitLab“ als Quellenanbieter aus.\n4. Wähle die soeben erstellte Verbindung aus und gib das GitLab-Repository und den Branch an.\n5. Wähle den Triggertyp aus: Du kannst die Ausführung der CodePipeline-Pipeline anhand von Pull- oder Push-Ereignissen für bestimmte Branches und Dateitypen in deinem Repository auslösen.\n\n![Quellenanbieter hinzufügen](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/codestar-connections-setup_aHR0cHM6_1750097822125.png)\n\n![Quellkonfiguration hinzufügen](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/codepipeline_step_2_source_provider_aHR0cHM6_1750097822127.png)\n\n**Hinweis: Konfiguriere ab Schritt 3 die Einstellungen für deine spezifische Umgebung und deine Anforderungen.**\n\n### Zusammenfassung von Abschnitt 3\nIn diesem Abschnitt wurde beschrieben, wie du GitLab-Repositories in die AWS CodePipeline integrierst. Diese Einrichtung ermöglicht eine CD-Pipeline, bei der Codeänderungen in GitLab automatisch in deiner AWS-Umgebung bereitgestellt werden.\n\n## Abschnitt 4: Migration zu GitLab\n\nDie Integration von GitLab in AWS eröffnet dir leistungsstarke Möglichkeiten zur Optimierung deiner Entwicklungs- und Bereitstellungs-Workflows und hilft dir, deine Probleme bei der Quellcodeverwaltung zu lösen. Diese Integration kann auf verschiedene Arten erreicht werden, die jeweils einzigartige Vorteile bieten:\n\n- Wenn du AWS-CodeStar-Verbindungen verwendest, um GitLab mit AWS-Services zu verknüpfen, erhältst du einen kohärenten Workflow, da du externe Git-Repositories wie GitLab mit verschiedenen AWS-Services verbinden kannst. Diese Einrichtung unterstützt automatisierte Builds, Bereitstellungen und andere wichtige Aktionen direkt von deinem GitLab-Repository aus und macht deinen Entwicklungsprozess integrierter und effizienter.\n\n- Die Verbindung von GitLab mit AWS CodePipeline über AWS CodeStar Connections treibt die Automatisierung voran und ermöglicht es dir, eine vollständige CI/CD-Pipeline zu erstellen. Dieser Ansatz integriert GitLab mit AWS CodePipeline und ermöglicht es dir, den gesamten Prozess – von der Quellcodeverwaltung über Builds bis hin zu Tests und Bereitstellung – mit AWS-Services wie CodeBuild und CodeDeploy zu automatisieren. So wird ein robuster, skalierbarer und effizienter Bereitstellungsprozess gewährleistet.\n\n![Diagramm neuer Technologien und Lösungen für die gemeinsame Nutzung von GitLab und AWS](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/codepipeline_step_2_source_configured_aHR0cHM6_1750097822129.png)\n\n1\\. Verbindung von GitLab mit AWS-Services über AWS CodeStar Connections\n\nAWS CodeStar Connections ist ein Service, mit dem du externe Git-Repositories (wie GitHub oder Bitbucket) mit den AWS-Services verbinden kannst. Du kannst GitLab auch über CodeStar Connections mit AWS-Services verbinden. Wenn du GitLab verwendest, musst du möglicherweise eine benutzerdefinierte Verbindung als HTTP-Git-Server einrichten.\nDie folgenden AWS-Services können mit dieser Methode mit GitLab verbunden werden:\n\n- **AWS Service Catalog **\n\nDer AWS Service Catalog hilft Unternehmen bei der Standardisierung und Verwaltung von AWS-Ressourcen. Die Integration mit GitLab verbessert die Transparenz beim Ressourcenmanagement und vereinfacht die Nachverfolgung von Änderungen. Insbesondere kannst du Katalogaktualisierungen auf der Grundlage von GitLab-Commits automatisieren und so die Effizienz deines Vorgangs verbessern.\n\n- __AWS CodeBuild__\n\nAWS CodeBuild ist ein verwalteter Build-Service, der Quellcode kompiliert, Tests durchführt und bereitstellbare Softwarepakete erstellt. Die Integration von GitLab mit CodeBuild ermöglicht es, automatisierte Build-Prozesse zu starten, wenn Codeänderungen an GitLab übertragen werden. Dies garantiert einheitliche Builds und erleichtert die Zusammenarbeit und Versionskontrolle.\n\n- __AWS Glue Notebook Jobs__\n\nAWS Glue Notebook Jobs ist ein Service, mit dem du interaktiv Datenaufbereitungs- und ETL-Aufgaben (Extract, Transform, Load) entwickeln und ausführen kannst. Die Integration von GitLab mit Glue Notebook Jobs ermöglicht die Versionskontrolle für Notebooks und ETL-Skripte, fördert die Zusammenarbeit zwischen Teammitgliedern und verbessert das Qualitätsmanagement von Datenverarbeitungs-Pipelines.\n\n- __AWS Proton__\n\nAWS Proton ist ein Service, der die Entwicklung und Bereitstellung von Microservices und serverlosen Anwendungen automatisiert. Durch die Integration von GitLab mit AWS Proton kannst du Infrastructure as Code verwalten, Bereitstellungen automatisieren und ein konsistentes Umgebungsmanagement sicherstellen, was zu effizienteren Entwicklungsprozessen führt.\n\nWenn AWS CodeStar Connections in Zukunft mehr Dienste unterstützen, wird es immer einfacher, GitLab mit zusätzlichen AWS-Services zu verbinden. Du solltest regelmäßig prüfen, ob es neue Services gibt, die CodeStar Connections unterstützen.\n\n2. Verbindung von CodePipeline mit GitLab über AWS CodeStar Connections (einschließlich CodeDeploy)\n\nAWS CodePipeline ist ein kontinuierlicher Bereitstellungsdienst, der den Freigabeprozess für Software automatisiert. Um GitLab mit CodePipeline zu verbinden, musst du AWS CodeStar Connections verwenden. Mit dieser Einrichtung kannst du ein GitLab-Repository als Quelle festlegen und die gesamte CI/CD-Pipeline automatisieren.\nBeispiele für wichtige Aktionen, die CodePipeline unterstützt:\n- **Quellcode-Kontrolle:** AWS CodeCommit, GitHub, Bitbucket, GitLab\n- **Erstellen und Testen:** AWS CodeBuild, Jenkins\n- **Bereitstellen:** AWS CodeDeploy, Elastic Beanstalk, ECS, S3\n- **Genehmigen:** Manuelle Genehmigung\n- **Infrastruktur-Management:** AWS CloudFormation\n- **Serverlos:** AWS Lambda\n- **Tests:** AWS Device Farm\n- **Benutzerdefinierte Aktionen:** AWS Step Functions\n\nDurch die Integration von GitLab mit CodePipeline kannst du die Pipeline automatisch auslösen, wenn Codeänderungen nach GitLab gepusht werden, um einen konsistenten Prozess vom Build bis zur Bereitstellung sicherzustellen. In Kombination mit den Versionskontrollfunktionen von GitLab ist es außerdem einfacher, den Verlauf und die Zustände der Bereitstellung zu verfolgen, was zu einer flexibleren und zuverlässigeren Softwarebereitstellung führt.\n\n## Das hast du gelernt\nDiese Anleitung enthält umfassende Informationen über die Migration zu und die Integration von GitLab in AWS. In den vier Abschnitten haben wir Folgendes behandelt:\n- Parallele Migration zu GitLab: Wie du schrittweise von bestehenden, bei AWS gehosteten Repositories zu GitLab.com migrierst und dabei die Risiken minimierst.\n- Integration mit AWS CodeBuild: Schritte zum Einrichten einer leistungsstarken CI-Umgebung, die mit GitLab-Repositories integriert ist.\n- Integration mit AWS CodePipeline: Wie du effiziente Continuous-Delivery-Pipelines mit GitLab-Repositories aufbaust.\n- Nachgelagerte Integrationen für CodePipeline und CodeStar Connections: Die Nutzung von GitLab-AWS-Verbindungen für einen weitreichenden Service-Zugang, wodurch eine Reihe von Integrationsmöglichkeiten im gesamten AWS-Ökosystem entstehen.\n\nDa die Code-Hosting- und Integrationsstrategie jedes Unternehmens einzigartig ist, kannst du dieses Tutorial als Ausgangspunkt für deine eigene GitLab- und AWS- Integrations- und Implementierungsstrategie nutzen.\n\n## Zusätzliche Ressourcen\n\nWeitere Informationen und erweiterte Konfigurationen findest du in den folgenden Ressourcen:\n\n- [GitLab-Dokumentation](https://docs.gitlab.com/)\n- [AWS-CodeBuild-Benutzerhandbuch](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)\n- [AWS-CodePipeline-Benutzerhandbuch](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)\n- [GitLab-CI/CD-Dokumentation](https://docs.gitlab.com/ee/ci/)\n- [Integration mit AWS](https://docs.gitlab.com/ee/solutions/cloud/aws/gitlab_aws_integration.html)\n\nWenn du Fragen hast oder Unterstützung benötigst, wende dich bitte an den [GitLab-Support](https://support.gitlab.com/hc/en-us/articles/11626483177756-GitLab-Support) oder den AWS-Support. Wir hoffen, dass dir diese umfassende Anleitung bei deiner AWS-GitLab-Integration hilft",[29,30,31,32,33,12,34],"CI/CD","AWS","DevSecOps platform","tutorial","solutions architecture","integrations","2024-11-27","yml",{},"/de-de/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab",{"title":18,"description":19,"ogTitle":18,"ogDescription":19,"noIndex":40,"ogImage":25,"ogUrl":41,"ogSiteName":42,"ogType":43,"canonicalUrls":41},false,"https://about.gitlab.com/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab","https://about.gitlab.com","article","de-de/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab",[46,47,48,32,49,12,34],"cicd","aws","devsecops-platform","solutions-architecture","q1xT3Vl-xvBq0h83S9dq5sYgF1HvQiTM5wKDDmNobWU",{"data":52},{"logo":53,"freeTrial":58,"sales":63,"login":68,"items":73,"search":380,"minimal":415,"duo":433,"pricingDeployment":443},{"config":54},{"href":55,"dataGaName":56,"dataGaLocation":57},"/de-de/","gitlab logo","header",{"text":59,"config":60},"Kostenlose Testversion anfordern",{"href":61,"dataGaName":62,"dataGaLocation":57},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":64,"config":65},"Vertrieb kontaktieren",{"href":66,"dataGaName":67,"dataGaLocation":57},"/de-de/sales/","sales",{"text":69,"config":70},"Anmelden",{"href":71,"dataGaName":72,"dataGaLocation":57},"https://gitlab.com/users/sign_in/","sign in",[74,101,196,201,301,361],{"text":75,"config":76,"cards":78},"Plattform",{"dataNavLevelOne":77},"platform",[79,85,93],{"title":75,"description":80,"link":81},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":82,"config":83},"Erkunde unsere Plattform",{"href":84,"dataGaName":77,"dataGaLocation":57},"/de-de/platform/",{"title":86,"description":87,"link":88},"GitLab Duo Agent Platform","Agentische KI für den gesamten Softwareentwicklungszyklus",{"text":89,"config":90},"Lerne GitLab Duo kennen",{"href":91,"dataGaName":92,"dataGaLocation":57},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":94,"description":95,"link":96},"Gründe, die für GitLab sprechen","Erfahre, warum Unternehmen auf GitLab setzen",{"text":97,"config":98},"Mehr erfahren",{"href":99,"dataGaName":100,"dataGaLocation":57},"/de-de/why-gitlab/","why gitlab",{"text":102,"left":15,"config":103,"link":105,"lists":109,"footer":178},"Produkt",{"dataNavLevelOne":104},"solutions",{"text":106,"config":107},"Alle Lösungen anzeigen",{"href":108,"dataGaName":104,"dataGaLocation":57},"/de-de/solutions/",[110,134,156],{"title":111,"description":112,"link":113,"items":118},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":114},{"icon":115,"href":116,"dataGaName":117,"dataGaLocation":57},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[119,122,125,130],{"text":29,"config":120},{"href":121,"dataGaLocation":57,"dataGaName":29},"/de-de/solutions/continuous-integration/",{"text":86,"config":123},{"href":91,"dataGaLocation":57,"dataGaName":124},"gitlab duo agent platform - product menu",{"text":126,"config":127},"Quellcodeverwaltung",{"href":128,"dataGaLocation":57,"dataGaName":129},"/de-de/solutions/source-code-management/","Source Code Management",{"text":131,"config":132},"Automatisierte Softwarebereitstellung",{"href":116,"dataGaLocation":57,"dataGaName":133},"Automated software delivery",{"title":135,"description":136,"link":137,"items":142},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":138},{"href":139,"dataGaName":140,"dataGaLocation":57,"icon":141},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[143,147,152],{"text":144,"config":145},"Application Security Testing",{"href":139,"dataGaName":146,"dataGaLocation":57},"Application security testing",{"text":148,"config":149},"Schutz der Software-Lieferkette",{"href":150,"dataGaLocation":57,"dataGaName":151},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":153,"config":154},"Software Compliance",{"href":155,"dataGaName":153,"dataGaLocation":57},"/de-de/solutions/software-compliance/",{"title":157,"link":158,"items":163},"Bewertung",{"config":159},{"icon":160,"href":161,"dataGaName":162,"dataGaLocation":57},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[164,168,173],{"text":165,"config":166},"Sichtbarkeit und Bewertung",{"href":161,"dataGaLocation":57,"dataGaName":167},"Visibility and Measurement",{"text":169,"config":170},"Wertstrommanagement",{"href":171,"dataGaLocation":57,"dataGaName":172},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":174,"config":175},"Analysen und Einblicke",{"href":176,"dataGaLocation":57,"dataGaName":177},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":179,"items":180},"GitLab für",[181,186,191],{"text":182,"config":183},"Enterprise",{"href":184,"dataGaLocation":57,"dataGaName":185},"/de-de/enterprise/","enterprise",{"text":187,"config":188},"Kleinunternehmen",{"href":189,"dataGaLocation":57,"dataGaName":190},"/de-de/small-business/","small business",{"text":192,"config":193},"den öffentlichen Sektor",{"href":194,"dataGaLocation":57,"dataGaName":195},"/de-de/solutions/public-sector/","public sector",{"text":197,"config":198},"Preise",{"href":199,"dataGaName":200,"dataGaLocation":57,"dataNavLevelOne":200},"/de-de/pricing/","pricing",{"text":202,"config":203,"link":205,"lists":209,"feature":288},"Ressourcen",{"dataNavLevelOne":204},"resources",{"text":206,"config":207},"Alle Ressourcen anzeigen",{"href":208,"dataGaName":204,"dataGaLocation":57},"/de-de/resources/",[210,242,260],{"title":211,"items":212},"Erste Schritte",[213,218,223,228,233,238],{"text":214,"config":215},"Installieren",{"href":216,"dataGaName":217,"dataGaLocation":57},"/de-de/install/","install",{"text":219,"config":220},"Kurzanleitungen",{"href":221,"dataGaName":222,"dataGaLocation":57},"/de-de/get-started/","quick setup checklists",{"text":224,"config":225},"Lernen",{"href":226,"dataGaLocation":57,"dataGaName":227},"https://university.gitlab.com/","learn",{"text":229,"config":230},"Produktdokumentation",{"href":231,"dataGaName":232,"dataGaLocation":57},"https://docs.gitlab.com/","product documentation",{"text":234,"config":235},"Best-Practice-Videos",{"href":236,"dataGaName":237,"dataGaLocation":57},"/de-de/getting-started-videos/","best practice videos",{"text":239,"config":240},"Integrationen",{"href":241,"dataGaName":34,"dataGaLocation":57},"/de-de/integrations/",{"title":243,"items":244},"Entdecken",[245,250,255],{"text":246,"config":247},"Kundenerfolge",{"href":248,"dataGaName":249,"dataGaLocation":57},"/de-de/customers/","customer success stories",{"text":251,"config":252},"Blog",{"href":253,"dataGaName":254,"dataGaLocation":57},"/de-de/blog/","blog",{"text":256,"config":257},"Remote",{"href":258,"dataGaName":259,"dataGaLocation":57},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":261,"items":262},"Vernetzen",[263,268,273,278,283],{"text":264,"config":265},"GitLab-Services",{"href":266,"dataGaName":267,"dataGaLocation":57},"/de-de/services/","services",{"text":269,"config":270},"Community",{"href":271,"dataGaName":272,"dataGaLocation":57},"/community/","community",{"text":274,"config":275},"Forum",{"href":276,"dataGaName":277,"dataGaLocation":57},"https://forum.gitlab.com/","forum",{"text":279,"config":280},"Veranstaltungen",{"href":281,"dataGaName":282,"dataGaLocation":57},"/events/","events",{"text":284,"config":285},"Partner",{"href":286,"dataGaName":287,"dataGaLocation":57},"/de-de/partners/","partners",{"backgroundColor":289,"textColor":290,"text":291,"image":292,"link":296},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":293,"config":294},"the source promo card",{"src":295},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":297,"config":298},"Lies die News",{"href":299,"dataGaName":300,"dataGaLocation":57},"/de-de/the-source/","the source",{"text":302,"config":303,"lists":305},"Unternehmen",{"dataNavLevelOne":304},"company",[306],{"items":307},[308,313,319,321,326,331,336,341,346,351,356],{"text":309,"config":310},"Über",{"href":311,"dataGaName":312,"dataGaLocation":57},"/de-de/company/","about",{"text":314,"config":315,"footerGa":318},"Karriere",{"href":316,"dataGaName":317,"dataGaLocation":57},"/jobs/","jobs",{"dataGaName":317},{"text":279,"config":320},{"href":281,"dataGaName":282,"dataGaLocation":57},{"text":322,"config":323},"Geschäftsführung",{"href":324,"dataGaName":325,"dataGaLocation":57},"/company/team/e-group/","leadership",{"text":327,"config":328},"Team",{"href":329,"dataGaName":330,"dataGaLocation":57},"/company/team/","team",{"text":332,"config":333},"Handbuch",{"href":334,"dataGaName":335,"dataGaLocation":57},"https://handbook.gitlab.com/","handbook",{"text":337,"config":338},"Investor Relations",{"href":339,"dataGaName":340,"dataGaLocation":57},"https://ir.gitlab.com/","investor relations",{"text":342,"config":343},"Trust Center",{"href":344,"dataGaName":345,"dataGaLocation":57},"/de-de/security/","trust center",{"text":347,"config":348},"AI Transparency Center",{"href":349,"dataGaName":350,"dataGaLocation":57},"/de-de/ai-transparency-center/","ai transparency center",{"text":352,"config":353},"Newsletter",{"href":354,"dataGaName":355,"dataGaLocation":57},"/company/contact/#contact-forms","newsletter",{"text":357,"config":358},"Presse",{"href":359,"dataGaName":360,"dataGaLocation":57},"/press/","press",{"text":362,"config":363,"lists":364},"Kontakt",{"dataNavLevelOne":304},[365],{"items":366},[367,370,375],{"text":64,"config":368},{"href":66,"dataGaName":369,"dataGaLocation":57},"talk to sales",{"text":371,"config":372},"Support-Portal",{"href":373,"dataGaName":374,"dataGaLocation":57},"https://support.gitlab.com","support portal",{"text":376,"config":377},"Kundenportal",{"href":378,"dataGaName":379,"dataGaLocation":57},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":381,"login":382,"suggestions":389},"Schließen",{"text":383,"link":384},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":385,"config":386},"gitlab.com",{"href":71,"dataGaName":387,"dataGaLocation":388},"search login","search",{"text":390,"default":391},"Vorschläge",[392,394,399,401,406,411],{"text":86,"config":393},{"href":91,"dataGaName":86,"dataGaLocation":388},{"text":395,"config":396},"Code Suggestions (KI)",{"href":397,"dataGaName":398,"dataGaLocation":388},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":29,"config":400},{"href":121,"dataGaName":29,"dataGaLocation":388},{"text":402,"config":403},"GitLab auf AWS",{"href":404,"dataGaName":405,"dataGaLocation":388},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":407,"config":408},"GitLab auf Google Cloud",{"href":409,"dataGaName":410,"dataGaLocation":388},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":412,"config":413},"Warum GitLab?",{"href":99,"dataGaName":414,"dataGaLocation":388},"Why GitLab?",{"freeTrial":416,"mobileIcon":421,"desktopIcon":426,"secondaryButton":429},{"text":417,"config":418},"Kostenlos testen",{"href":419,"dataGaName":62,"dataGaLocation":420},"https://gitlab.com/-/trials/new/","nav",{"altText":422,"config":423},"GitLab-Symbol",{"src":424,"dataGaName":425,"dataGaLocation":420},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":422,"config":427},{"src":428,"dataGaName":425,"dataGaLocation":420},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":211,"config":430},{"href":431,"dataGaName":432,"dataGaLocation":420},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":434,"mobileIcon":439,"desktopIcon":441},{"text":435,"config":436},"Erfahre mehr über GitLab Duo",{"href":437,"dataGaName":438,"dataGaLocation":420},"/de-de/gitlab-duo/","gitlab duo",{"altText":422,"config":440},{"src":424,"dataGaName":425,"dataGaLocation":420},{"altText":422,"config":442},{"src":428,"dataGaName":425,"dataGaLocation":420},{"freeTrial":444,"mobileIcon":449,"desktopIcon":451},{"text":445,"config":446},"Zurück zur Preisübersicht",{"href":199,"dataGaName":447,"dataGaLocation":420,"icon":448},"back to pricing","GoBack",{"altText":422,"config":450},{"src":424,"dataGaName":425,"dataGaLocation":420},{"altText":422,"config":452},{"src":428,"dataGaName":425,"dataGaLocation":420},{"title":454,"button":455,"config":460},"Sieh dir an, wie agentische KI die Softwarebereitstellung transformiert",{"text":456,"config":457},"GitLab Transcend jetzt ansehen",{"href":458,"dataGaName":459,"dataGaLocation":57},"/de-de/events/transcend/virtual/","transcend event",{"layout":461,"icon":462},"release","AiStar",{"data":464},{"text":465,"source":466,"edit":472,"contribute":477,"config":482,"items":487,"minimal":660},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":467,"config":468},"Quelltext der Seite anzeigen",{"href":469,"dataGaName":470,"dataGaLocation":471},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":473,"config":474},"Diese Seite bearbeiten",{"href":475,"dataGaName":476,"dataGaLocation":471},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":478,"config":479},"Beteilige dich",{"href":480,"dataGaName":481,"dataGaLocation":471},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":483,"facebook":484,"youtube":485,"linkedin":486},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[488,511,566,593,627],{"title":75,"links":489,"subMenu":494},[490],{"text":491,"config":492},"DevSecOps-Plattform",{"href":84,"dataGaName":493,"dataGaLocation":471},"devsecops platform",[495],{"title":197,"links":496},[497,501,506],{"text":498,"config":499},"Tarife anzeigen",{"href":199,"dataGaName":500,"dataGaLocation":471},"view plans",{"text":502,"config":503},"Vorteile von Premium",{"href":504,"dataGaName":505,"dataGaLocation":471},"/de-de/pricing/premium/","why premium",{"text":507,"config":508},"Vorteile von Ultimate",{"href":509,"dataGaName":510,"dataGaLocation":471},"/de-de/pricing/ultimate/","why ultimate",{"title":512,"links":513},"Lösungen",[514,519,522,524,529,534,538,541,544,549,551,553,556,561],{"text":515,"config":516},"Digitale Transformation",{"href":517,"dataGaName":518,"dataGaLocation":471},"/de-de/topics/digital-transformation/","digital transformation",{"text":520,"config":521},"Sicherheit und Compliance",{"href":139,"dataGaName":146,"dataGaLocation":471},{"text":131,"config":523},{"href":116,"dataGaName":117,"dataGaLocation":471},{"text":525,"config":526},"Agile Entwicklung",{"href":527,"dataGaName":528,"dataGaLocation":471},"/de-de/solutions/agile-delivery/","agile delivery",{"text":530,"config":531},"Cloud-Transformation",{"href":532,"dataGaName":533,"dataGaLocation":471},"/de-de/topics/cloud-native/","cloud transformation",{"text":535,"config":536},"SCM",{"href":128,"dataGaName":537,"dataGaLocation":471},"source code management",{"text":29,"config":539},{"href":121,"dataGaName":540,"dataGaLocation":471},"continuous integration & delivery",{"text":169,"config":542},{"href":171,"dataGaName":543,"dataGaLocation":471},"value stream management",{"text":545,"config":546},"GitOps",{"href":547,"dataGaName":548,"dataGaLocation":471},"/de-de/solutions/gitops/","gitops",{"text":182,"config":550},{"href":184,"dataGaName":185,"dataGaLocation":471},{"text":187,"config":552},{"href":189,"dataGaName":190,"dataGaLocation":471},{"text":554,"config":555},"Öffentlicher Sektor",{"href":194,"dataGaName":195,"dataGaLocation":471},{"text":557,"config":558},"Bildungswesen",{"href":559,"dataGaName":560,"dataGaLocation":471},"/de-de/solutions/education/","education",{"text":562,"config":563},"Finanzdienstleistungen",{"href":564,"dataGaName":565,"dataGaLocation":471},"/de-de/solutions/finance/","financial services",{"title":202,"links":567},[568,570,572,574,577,579,581,583,585,587,589,591],{"text":214,"config":569},{"href":216,"dataGaName":217,"dataGaLocation":471},{"text":219,"config":571},{"href":221,"dataGaName":222,"dataGaLocation":471},{"text":224,"config":573},{"href":226,"dataGaName":227,"dataGaLocation":471},{"text":229,"config":575},{"href":231,"dataGaName":576,"dataGaLocation":471},"docs",{"text":251,"config":578},{"href":253,"dataGaName":254,"dataGaLocation":471},{"text":246,"config":580},{"href":248,"dataGaName":249,"dataGaLocation":471},{"text":256,"config":582},{"href":258,"dataGaName":259,"dataGaLocation":471},{"text":264,"config":584},{"href":266,"dataGaName":267,"dataGaLocation":471},{"text":269,"config":586},{"href":271,"dataGaName":272,"dataGaLocation":471},{"text":274,"config":588},{"href":276,"dataGaName":277,"dataGaLocation":471},{"text":279,"config":590},{"href":281,"dataGaName":282,"dataGaLocation":471},{"text":284,"config":592},{"href":286,"dataGaName":287,"dataGaLocation":471},{"title":302,"links":594},[595,597,599,601,603,605,607,611,616,618,620,622],{"text":309,"config":596},{"href":311,"dataGaName":304,"dataGaLocation":471},{"text":314,"config":598},{"href":316,"dataGaName":317,"dataGaLocation":471},{"text":322,"config":600},{"href":324,"dataGaName":325,"dataGaLocation":471},{"text":327,"config":602},{"href":329,"dataGaName":330,"dataGaLocation":471},{"text":332,"config":604},{"href":334,"dataGaName":335,"dataGaLocation":471},{"text":337,"config":606},{"href":339,"dataGaName":340,"dataGaLocation":471},{"text":608,"config":609},"Sustainability",{"href":610,"dataGaName":608,"dataGaLocation":471},"/sustainability/",{"text":612,"config":613},"Vielfalt, Inklusion und Zugehörigkeit",{"href":614,"dataGaName":615,"dataGaLocation":471},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":342,"config":617},{"href":344,"dataGaName":345,"dataGaLocation":471},{"text":352,"config":619},{"href":354,"dataGaName":355,"dataGaLocation":471},{"text":357,"config":621},{"href":359,"dataGaName":360,"dataGaLocation":471},{"text":623,"config":624},"Transparenzerklärung zu moderner Sklaverei",{"href":625,"dataGaName":626,"dataGaLocation":471},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":628,"links":629},"Nimm Kontakt auf",[630,633,638,640,645,650,655],{"text":631,"config":632},"Sprich mit einem Experten/einer Expertin",{"href":66,"dataGaName":67,"dataGaLocation":471},{"text":634,"config":635},"Support",{"href":636,"dataGaName":637,"dataGaLocation":471},"https://support.gitlab.com/hc/en-us/articles/11626483177756-GitLab-Support","get help",{"text":376,"config":639},{"href":378,"dataGaName":379,"dataGaLocation":471},{"text":641,"config":642},"Status",{"href":643,"dataGaName":644,"dataGaLocation":471},"https://status.gitlab.com/","status",{"text":646,"config":647},"Nutzungsbedingungen",{"href":648,"dataGaName":649,"dataGaLocation":471},"/terms/","terms of use",{"text":651,"config":652},"Datenschutzerklärung",{"href":653,"dataGaName":654,"dataGaLocation":471},"/de-de/privacy/","privacy statement",{"text":656,"config":657},"Cookie-Einstellungen",{"dataGaName":658,"dataGaLocation":471,"id":659,"isOneTrustButton":15},"cookie preferences","ot-sdk-btn",{"items":661},[662,664,666],{"text":646,"config":663},{"href":648,"dataGaName":649,"dataGaLocation":471},{"text":651,"config":665},{"href":653,"dataGaName":654,"dataGaLocation":471},{"text":656,"config":667},{"dataGaName":658,"dataGaLocation":471,"id":659,"isOneTrustButton":15},[669,682,696,708],{"id":670,"title":21,"body":11,"config":671,"content":673,"description":11,"extension":36,"meta":677,"navigation":15,"path":678,"seo":679,"stem":680,"__hash__":681},"blogAuthors/en-us/blog/authors/tsukasa-komatsubara.yml",{"template":672},"BlogAuthor",{"name":21,"config":674},{"headshot":675,"ctfId":676},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659784/Blog/Author%20Headshots/gitlab_tsukasa.jpg","31YQLiBRrJPn35BBhY69ly",{},"/en-us/blog/authors/tsukasa-komatsubara",{},"en-us/blog/authors/tsukasa-komatsubara","O5IhL3DQ7MAo8yzVzaeGvidF81OrGBrv7DgR3C9ySBc",{"id":683,"title":22,"body":11,"config":684,"content":685,"description":11,"extension":36,"meta":691,"navigation":15,"path":692,"seo":693,"stem":694,"__hash__":695},"blogAuthors/en-us/blog/authors/darwin-sanoy.yml",{"template":672},{"role":686,"name":22,"config":687},"Field Chief Cloud Architect",{"headshot":688,"linkedin":689,"ctfId":690},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659751/Blog/Author%20Headshots/Darwin-Sanoy-headshot-395-square-gitlab-teampage-avatar.png","https://linkedin.com/in/darwinsanoy","DarwinJS",{},"/en-us/blog/authors/darwin-sanoy",{},"en-us/blog/authors/darwin-sanoy","UkMMwmU5o2e6Y-wBltA9E_z96LvHuB-bG6VW9DsLzIY",{"id":697,"title":23,"body":11,"config":698,"content":699,"description":11,"extension":36,"meta":703,"navigation":15,"path":704,"seo":705,"stem":706,"__hash__":707},"blogAuthors/en-us/blog/authors/samer-akkoub.yml",{"template":672},{"name":23,"config":700},{"headshot":701,"ctfId":702},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664173/Blog/Author%20Headshots/SamerAkkoub.png","BekAzK0RFux30pt6dvtWh",{},"/en-us/blog/authors/samer-akkoub",{},"en-us/blog/authors/samer-akkoub","jYGC9dZbBzwlu9_I_Kp6z98wpaytDJkFaSAxvBwsxuU",{"id":709,"title":24,"body":11,"config":710,"content":711,"description":11,"extension":36,"meta":715,"navigation":15,"path":716,"seo":717,"stem":718,"__hash__":719},"blogAuthors/en-us/blog/authors/bart-zhang.yml",{"template":672},{"name":24,"config":712},{"headshot":713,"ctfId":714},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664177/Blog/Author%20Headshots/bartzhang-headshot.jpg","bartzhang",{},"/en-us/blog/authors/bart-zhang",{},"en-us/blog/authors/bart-zhang","b7CFRNFezC9yhgQ3GRiTZ4joQAY5dZB2u6FIo2bo1Xs",[721,735,746],{"content":722,"config":733},{"title":723,"description":724,"authors":725,"category":12,"tags":727,"body":730,"heroImage":731,"date":732},"Repositories schneller navigieren – dank Dateibaum-Ansicht","Der Dateibaum-Browser in GitLab 18.9 zeigt Projektstruktur neben dem Code – Navigation ohne Kontextverlust, auf GitLab.com, Self-Managed und Dedicated.",[726],"Talia Armato-Helle",[728,12,729],"features","DevSecOps","Du kennst das: Eine Datei im Repository-Browser gefunden, hineingeklickt, den Code gelesen – und jetzt musst du etwas in einem anderen Teil des Verzeichnisbaums prüfen. Also zurück. Wieder runternavigieren. Vielleicht noch eine Ebene tiefer. Nächste Datei gefunden, hineingeklickt – und von vorn.\n\nEs funktioniert. Aber es nervt schnell.\n\nWer sich schon einmal gewünscht hat, der Repository-Browser würde sich mehr wie eine IDE anfühlen und weniger wie eine Abfolge von Breadcrumb-Pfaden: Der Dateibaum-Browser in GitLab 18.9 schafft genau das.\n\n## Was der Dateibaum-Browser bietet\n\nDer Dateibaum-Browser ergänzt Datei- und Verzeichnisansichten um ein ein- und ausklappbares Panel mit anpassbarer Breite. Die Projektstruktur bleibt damit sichtbar, während du Code liest und navigierst – kein Kontextverlust, kein Zurückklicken mehr.\n\nDateien und Verzeichnisse werden im Baum neben der Dateiliste und dem Dateiinhalt angezeigt, sodass Struktur und Code gleichzeitig sichtbar sind.\n\nWer bereits mit einem Dateibaum in einer IDE oder einer Git-Plattform gearbeitet hat, wird sich sofort zurechtfinden:\n\n**Strukturbasierte Navigation**\n\nVerzeichnisse lassen sich auf- und zuklappen, Dateien wechseln – der Überblick über die aktuelle Position in der Repository-Hierarchie bleibt dabei erhalten. Beim direkten Aufruf einer verschachtelten Datei expandiert der Baum die übergeordneten Verzeichnisse und hebt die aktuelle Datei hervor. Der Baum synchronisiert sich außerdem mit der aktuellen Position: Wird eine Datei im Hauptinhaltsbereich ausgewählt, aktualisiert sich der Baum entsprechend.\n\n**Filtern nach Dateiname**\n\nNach dem Öffnen des Baums lässt sich mit `F` der globale Suchdialog öffnen. Ein Teil des Dateinamens genügt, um direkt zu springen – die Ergebnisse zeigen jeweils das übergeordnete Verzeichnis an, damit klar ist, wo man landet.\n\n**Tastaturnavigation**\n\nDer Baum implementiert das W3C-ARIA-Treeview-Pattern: Navigation durch Dateien und Verzeichnisse ist vollständig per Tastatur möglich – mit Pfeiltasten sowie Enter, Leertaste, Pos1, Ende und Zeichentasten. Das verbessert die Zugänglichkeit für Screenreader-Nutzende und alle, die lieber ohne Maus arbeiten.\n\n**Responsives Verhalten**\n\nAuf dem Desktop liegt der Baum nebeneinander mit Dateiliste und Code. Auf kleineren Viewports wird er zur linken Seitenleiste, die sich bei Bedarf einblenden lässt. Auf Mobilgeräten ist der Baum ausgeblendet, damit die Code-Ansicht den gesamten Bildschirm nutzen kann.\n\n**Geeignet für große Repositories**\n\nBei Repositories mit vielen Einträgen verwendet der Baum Paginierung: Weitere Einträge lassen sich bei Bedarf nachladen, ohne die Seite zu überlasten. Das Verhalten bleibt auch bei wachsenden Projekten stabil.\n\n## Der Dateibaum-Browser in Aktion\n\nGitLab Principal Developer Advocate Michael Friedrich zeigt in einer Demo den neuen Dateibaum-Browser und wie er die Navigation in großen Repositories vereinfacht. Die Demo verwendet das Projekt [GitLab project: Tanuki IoT Platform](https://gitlab.com/gitlab-da/use-cases/ai/gitlab-duo-agent-platform/demo-environments/tanuki-iot-platform), das sich zum Ausprobieren in einem echten Repository anbietet.\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1171188581?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=\"File Tree in Repo Demo\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## Jetzt mit dem Dateibaum-Browser starten\n\nDer Dateibaum-Browser ist auf GitLab.com verfügbar und wurde mit [18.9](https://about.gitlab.com/releases/2026/02/19/gitlab-18-9-released/) für GitLab Self-Managed und GitLab Dedicated veröffentlicht.\n\nSo geht's:\n\n1. Eine beliebige Datei- oder Verzeichnisansicht im Projekt öffnen (`/\u003Cproject>/-/tree/\u003Cbranch>`).\n2. Links oben das Dateibaum-Symbol auswählen oder `Shift+F` drücken, um den Dateibaum-Browser ein- oder auszublenden.\n3. `F` drücken, um Dateien nach Name oder Erweiterung zu filtern, den Suchbegriff eingeben und mit den Pfeiltasten sowie `Enter` direkt zur gewünschten Datei springen.\n\n## Ausblick\n\nDas Source Code Team bei GitLab hat den Dateibaum-Browser mit Barrierefreiheit, Performance bei großen Repositories und konsistentem Verhalten über verschiedene Viewports hinweg als Kernanforderungen entwickelt. Diese Prinzipien werden auch die weitere Entwicklung leiten – Feedback aus der Community fließt dabei aktiv ein.\n\n## Feedback zum Dateibaum-Browser\n\nGedanken zum Dateibaum-Browser gerne im [Feedback-Issue](https://gitlab.com/gitlab-org/gitlab/-/issues/581271) teilen.\n\n> Mehr zum Dateibaum-Browser: [Dokumentation zum Dateibaum-Browser](https://docs.gitlab.com/user/project/repository/files/file_tree_browser/).\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773075582/yiosxfhwk8rfkulrtchv.png","2026-03-09",{"featured":15,"template":16,"slug":734},"navigate-repositories-faster-with-the-file-tree-browser",{"content":736,"config":744},{"title":737,"description":738,"authors":739,"heroImage":740,"body":741,"date":742,"category":12,"tags":743},"Neue GitLab-Metriken und Registry-Funktionen reduzieren CI/CD-Engpässe","CI/CD Job Performance Metrics und Container Virtual Registry, derzeit in der Beta, helfen Plattform-Teams dabei, langsame Jobs zu identifizieren und Multi-Registry-Container-Pulls zu vereinfachen.",[726],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1771438388/t6sts5qw4z8561gtlxiq.png","Plattform- und DevOps-Ingenieure verbringen zu viel Zeit damit, Transparenz über fragmentierte Tools hinweg herzustellen und Infrastruktur zu verwalten, die einfach funktionieren sollte.\n\nZwei neue GitLab-Funktionen, derzeit in der Beta, gehen dieses Problem aus unterschiedlichen Richtungen an – mit demselben Ziel: Praktikern direkte Kontrolle über die CI/CD-Infrastruktur zu geben, auf die sie angewiesen sind, ohne ein weiteres Drittanbieter-Tool einzuführen. Die eine Funktion liefert Job-Performance-Daten direkt dort, wo Pipelines überwacht werden. Die andere vereinfacht das Abrufen von Container-Images aus mehreren Registries mit integriertem Caching.\n\nBeide Funktionen sind jetzt für Feedback offen. Rückmeldungen helfen dabei, die nächsten Entwicklungsschritte zu gestalten.\n\n## CI/CD Job Performance Metrics\n\n* **Verfügbare Tiers:** GitLab Premium, GitLab Ultimate\n* **Status:** Beta mit eingeschränkter Verfügbarkeit auf GitLab.com; verfügbar auf GitLab Self-Managed und GitLab Dedicated bei konfiguriertem ClickHouse\n\nBislang gibt es keine einfache Möglichkeit zu erkennen, wenn die Laufzeit eines bestimmten Jobs zunimmt oder welche Jobs die Pipeline-Laufzeiten im Hintergrund verlangsamen. Die meisten Teams erstellen entweder eigene Dashboards oder durchsuchen manuell Logs, um grundlegende Fragen zu beantworten:\n\n* Welche Jobs sind am langsamsten?\n* Wo steigen die Fehlerquoten?\n* Welche Stage ist der eigentliche Engpass?\n\nCI/CD Job Performance Metrics löst das durch ein neues job-fokussiertes Panel auf der CI/CD-Analytics-Seite auf Projektebene.\n\nFür jeden Job in den Pipelines sind folgende Informationen einsehbar:\n\n* Typische (P50, Median) und ungünstigste (P95) Job-Laufzeit für einen schnellen Vergleich zwischen normalem und langsamstem Lauf\n* Fehlerquote zur Erkennung instabiler oder unzuverlässiger Jobs\n* Job-Name und Stage, standardmäßig für die letzten 30 Tage\n\nDie Tabelle ist sortierbar, nach Job-Name durchsuchbar und paginiert – Plattform-Teams erhalten so eine einheitliche Ansicht für Fragen, die bisher separate Tools oder eigene Berichte erforderten.\n\n**Jetzt ausprobieren**\n\n* Im Projekt **Analysieren > CI/CD-Analyse** aufrufen.\n* Das CI/CD Job Performance Metrics-Panel suchen und nach Laufzeit oder Fehlerquote sortieren, um die langsamsten oder unzuverlässigsten Jobs zu finden.\n\n**Dokumentation**\n\n* [CI/CD-Analyse – CI/CD Job Performance Metrics](https://docs.gitlab.com/user/analytics/ci_cd_analytics/#cicd-job-performance-metrics)\n\n**Was als Nächstes kommt**\n\nAktuell wird an einer Stage-Level-Gruppierung gearbeitet, mit der aggregierte Metriken über Build-, Test- und Deploy-Stages hinweg einsehbar sein werden – für ein schnelles Verständnis davon, wo Optimierungsbedarf besteht.\n\n**Feedback geben:**\n\n* [CI/CD Job Performance Metrics Epic](https://gitlab.com/groups/gitlab-org/-/work_items/18548)\n\n## Container Virtual Registry\n\n**Tier:** GitLab Premium\n**Status:** Beta, API-ready in 18.9\n\nDie meisten Unternehmen, die Container-Images in CI/CD-Pipelines abrufen, sind auf mehrere Registries angewiesen: Docker Hub, Harbor, Quay und interne Registries, um nur einige zu nennen. Authentifizierung, Verfügbarkeit und Caching für all diese Registries zu verwalten, ist operativer Aufwand, der Pipelines verlangsamt und Fehleranfälligkeit erhöht.\n\nDie Container Virtual Registry ermöglicht die Erstellung eines einzigen GitLab-Endpunkts, der Images aus mehreren vorgelagerten Container-Quellen mit integriertem Caching abruft.\n\nStatt Zugangsdaten und Verfügbarkeit für jede Registry einzeln in der Pipeline-Konfiguration einzurichten, lässt sich:\n\n* Eine einzelne virtuelle GitLab-Registry als Endpunkt für alle Pipelines konfigurieren\n* Mehrere vorgelagerte Registries einbinden (Docker Hub, Harbor, Quay und andere mit Long-Lived-Token-Authentifizierung)\n* GitLab Image-Pulls automatisch auflösen lassen, mit Pull-Through-Caching zur Reduzierung von Bandbreitenkosten und verbesserter Zuverlässigkeit\n\nFür Teams, die GitLab als Container-Registry-Ersatz evaluieren, schließt dies eine wesentliche Funktionslücke. Für Teams, die bereits Multi-Registry-Container-Workflows verwalten, zentralisiert es das Image-Management in GitLab und reduziert wiederholte Pulls.\n\n**Was die Beta heute unterstützt**\n\n* Vorgelagerte Registries mit Long-Lived-Token-Authentifizierung: Docker Hub, Harbor, Quay und andere kompatible Registries\n* Pull-Through-Caching, sodass häufig verwendete Images nach dem ersten Abruf von GitLab bereitgestellt werden\n* API-first-Konfiguration, UI-Verwaltung in Entwicklung\n\nCloud-Provider-Registries mit IAM-Authentifizierung (wie Amazon Elastic Container Registry, Google Artifact Registry und Azure Container Registry) werden für zukünftige Iterationen berücksichtigt.\n\n**Heute testen**\n\n* Die Container Virtual Registry ist in 18.9 API-ready.\n* SaaS (GitLab.com): Zugang über den CSM anfragen oder im unten verlinkten Feedback-Issue kommentieren, um das Feature-Flag für die eigene Gruppe zu aktivieren.\n* Self-managed: Feature-Flag aktivieren und die virtuelle Registry über die API konfigurieren.\n\n**Dokumentation**\n\n* [Container Virtual Registry API](https://docs.gitlab.com/api/container_virtual_registries/)\n* [Container-Images aus der virtuellen Registry abrufen](https://docs.gitlab.com/user/packages/virtual_registry/container/#pull-container-images-from-the-virtual-registry)\n\nWalkthrough der Container Virtual Registry Beta:\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1167512082?title=0&amp;byline=0&amp;portrait=0&amp;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=\"20260223_Container Virtual Registry Beta_V1\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\u003Cbr>\u003C/br>\n\n**Feedback geben:**\n\n* [Feedback-Issue zur Container Virtual Registry](https://gitlab.com/gitlab-org/gitlab/-/issues/589630)\n\n## Mitgestalten\n\nAlle in der GitLab-Community sind Mitwirkende. Diese Betas wurden auf Basis von Community-Anfragen entwickelt.\n\n* **CI/CD Job Performance Metrics** entstand aus dem Bedarf von Teams, die keine einfache Möglichkeit hatten zu erkennen, wenn Build-Zeiten in die falsche Richtung tendierten oder welche Jobs die Pipeline-Zuverlässigkeit beeinträchtigten.\n* **Container Virtual Registry** entstand aus Anfragen von Enterprise-Kunden, die mehrere Registries verwalteten und Tool-Sprawl sowie Bandbreitenkosten reduzieren wollten, während sie GitLab als zentrale Registry evaluierten.\n\nRückmeldungen gestalten, was als nächstes entwickelt wird. Eine oder beide Betas ausprobieren und Erfahrungen in den verlinkten Feedback-Issues teilen.\n\nDies ist der erste Beitrag in einer Reihe von Core-DevOps-Betas, die im Laufe des Jahres vorgestellt werden.\n","2026-02-25",[29,12,728],{"featured":15,"template":16,"slug":745},"new-gitlab-metrics-and-registry-features-help-reduce-ci-cd-bottlenecks",{"content":747,"config":758},{"title":748,"description":749,"authors":750,"date":753,"body":754,"heroImage":755,"category":12,"tags":756},"GitLab sichert 99,9 % Verfügbarkeit mit Service Credits für Ultimate-Kund(inn)en ab","Ultimate-Kund(inn)en erhalten Service Credits, wenn die Plattformverfügbarkeit unter 99,9 % fällt – für zuverlässige DevSecOps-Workflows.",[751,752],"Aathira Nair","Lyle Kozloff","2026-02-18","GitLab sichert die Verfügbarkeitszusage von 99,9 % ab sofort mit Service Credits für Ultimate-Kund(inn)en auf GitLab.com und GitLab Dedicated ab. Wenn die monatliche Verfügbarkeit unter diesen Schwellenwert fällt, erhalten berechtigte Kund(inn)en Gutschriften für zukünftige Rechnungen. Diese Zusage stellt sicher, dass DevSecOps-Workflows die nötige Zuverlässigkeit haben.\n\n## Vertrauen durch Verbindlichkeit\n\nModerne Softwarebereitstellung arbeitet in einem Tempo, in dem Teams kontinuierlich Code pushen, Merge Requests öffnen und Issues verfolgen. Git-Operationen – Push, Pull, Clone – finden tausende Male pro Stunde über verteilte Teams hinweg statt. Wenn einer dieser zentralen Dienste nicht verfügbar ist, steht der gesamte Software-Delivery-Workflow still.\n\nDas 99,9-%-Verfügbarkeits-SLA (Service-Level-Agreement) stellt sicher, dass ein hohes Entwicklungstempo nicht an Infrastruktur-Grenzen scheitert. Service Credits unterstreichen die Verantwortlichkeit – GitLabs Erfolg wird an die Plattformzuverlässigkeit gekoppelt. GitLab misst sich an den Geschäftsergebnissen der Kund(inn)en, nicht nur an Verfügbarkeitszielen.\n\nDas SLA von GitLab deckt die zentralen Plattformdienste ab, die für DevSecOps-Workflows wesentlich sind.\n\n**Zum Start sind folgende Dienste abgedeckt:**\n\n\\* Issues und Merge Requests\n\n\n\\* Git-Operationen (Push, Pull, Clone via HTTPS und SSH)\n\n\n\\* Container-Registry-Operationen\n\n\n\\* Package-Registry-Operationen\n\n\n\\* API-Requests (beschränkt auf die oben genannten Dienste)\n\n\nDie aktuelle Liste der abgedeckten und ausgeschlossenen Dienste ist im [GitLab-Handbuch](https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/service-level-agreement/#covered-experiences) verfügbar.\n\nDie Dienstverfügbarkeit wird durch automatisiertes Monitoring an mehreren geografischen Standorten gemessen und bildet die tatsächlich von Kund(inn)en erlebte Verfügbarkeit ab. Wenn die Verfügbarkeit unter 99,9 % fällt, können Kund(inn)en je nach Schwere des Ausfalls Credits beanspruchen.\n\n## Downtime Minutes verstehen\n\nWenn der GitLab-Dienst eine Verfügbarkeitseinschränkung von 5 % oder mehr der validen Kundenanfragen für abgedeckte Dienste innerhalb einer Minute aufweist und dies zu Server-Fehlern führt, wird dies als [Downtime Minute](https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/service-level-agreement/#downtime-minute-definition) bezeichnet. Server-Fehler sind definiert als HTTP-5xx-Statuscodes oder Verbindungs-Timeouts von mehr als 30 Sekunden, gemessen durch GitLabs interne und externe Monitoring-Systeme.\n\nDas SLA erfasst serverseitige Fehler, aber bestimmte Probleme lösen keine 5xx-Fehler aus – beispielsweise Anwendungsfehler, die Features unbenutzbar machen, Sidekiq-Job-Processing-Ausfälle oder Infrastrukturprobleme, die die Performance beeinträchtigen, ohne dass Requests fehlschlagen.\n\nSo lassen sich Service Credits bei Bedarf beanspruchen:\n\n1. Einen Support-Request auf support.gitlab.com innerhalb von dreißig (30) Tagen nach Ende des betroffenen Monats einreichen.\n\n2. Das GitLab-Team prüft den Anspruch, validiert die Downtime und verarbeitet die Gutschrift, falls zutreffend.\n\n3. Service Credits werden mit der nächsten Rechnung verrechnet.\n\nIm [Handbuch](https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/service-level-agreement/#calculating-monthly-uptime-percentage) finden sich weitere Details zur Berechnung der monatlichen Verfügbarkeit, den angebotenen Service Credits und dem Anspruchsverfahren.\n\nDas Monitoring ist darauf ausgelegt, die große Mehrheit der Dienstunterbrechungen zu erfassen. Falls die eigene Erfahrung nicht mit der gemeldeten Verfügbarkeit übereinstimmt, empfiehlt es sich, einen Service-Credit-Anspruch einzureichen. GitLab prüft den Anspruch ganzheitlich, einschließlich der Untersuchung von Problemen, die möglicherweise nicht im automatisierten Monitoring erfasst wurden.\n\n## Zuverlässigkeit mit Verbindlichkeit\n\nDas 99,9-%-Verfügbarkeits-SLA mit Service Credits steht für GitLabs Anspruch, eine zuverlässige Grundlage für Software-Delivery-Workflows zu bieten. Teams verlassen sich auf GitLab – und GitLab steht dafür ein.\n\nFragen zum SLA? Das GitLab-Account-Team kontaktieren oder einen Request über [GitLab Support](http://support.GitLab.com) einreichen.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1758812952/yxhgljkwljld0lyizmaz.png",[757,12,729],"performance",{"featured":15,"template":16,"slug":759},"gitlab-backs-99-9-availability-with-service-credits-for-ultimate-customers",{"promotions":761},[762,776,788],{"id":763,"categories":764,"header":766,"text":767,"button":768,"image":773},"ai-modernization",[765],"ai-ml","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":769,"config":770},"Get your AI maturity score",{"href":771,"dataGaName":772,"dataGaLocation":254},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":774},{"src":775},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":777,"categories":778,"header":780,"text":767,"button":781,"image":785},"devops-modernization",[12,779],"devsecops","Are you just managing tools or shipping innovation?",{"text":782,"config":783},"Get your DevOps maturity score",{"href":784,"dataGaName":772,"dataGaLocation":254},"/assessments/devops-modernization-assessment/",{"config":786},{"src":787},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":789,"categories":790,"header":792,"text":767,"button":793,"image":797},"security-modernization",[791],"security","Are you trading speed for security?",{"text":794,"config":795},"Get your security maturity score",{"href":796,"dataGaName":772,"dataGaLocation":254},"/assessments/security-modernization-assessment/",{"config":798},{"src":799},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"header":801,"blurb":802,"button":803,"secondaryButton":808},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":804,"config":805},"Kostenlosen Test starten",{"href":806,"dataGaName":62,"dataGaLocation":807},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":64,"config":809},{"href":66,"dataGaName":67,"dataGaLocation":807},1773350813328]