[{"data":1,"prerenderedAt":845},["ShallowReactive",2],{"/de-de/get-started/continuous-integration/":3,"navigation-de-de":205,"banner-de-de":623,"footer-de-de":636},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":11,"_id":198,"_type":199,"title":200,"_source":201,"_file":202,"_stem":203,"_extension":204},"/de-de/get-started/continuous-integration","get-started",false,"",{"title":9,"ogTitle":9,"description":10,"ogDescription":10},"Schnellstart für GitLab Continuous Integration","Anleitung durch den Prozess der Projekteinrichtung in GitLab und Erstellung einer einfachen CI-Konfiguration im Code.",[12,21,28,156],{"type":13,"componentName":13,"componentContent":14},"CommonBreadcrumbs",{"crumbs":15},[16,20],{"title":17,"config":18},"Erste Schritte",{"href":19},"/de-de/get-started/",{"title":9},{"type":22,"componentName":22,"componentContent":23},"CommonArticleHero",{"title":9,"readTime":24,"text":25,"config":26},"20 Min. zum Abschluss","Willkommen beim GitLab CI Schnellstart-Leitfaden, der durch den Prozess der Projekteinrichtung in GitLab und die Erstellung einer einfachen CI-Konfiguration im Code führt. Dieser Leitfaden ermöglicht den schnellen Einstieg in GitLab CI.\n\nDie folgenden Aufgaben werden in diesem Schnellstart-Leitfaden beschrieben:\n\n- Einrichtung eines neuen Projekts.\n- Erstellung der ersten CI/CD-Konfiguration und Pipeline-Ausführung.\n- Zugriff und Überprüfung der Ausführungsergebnisse.\n- Einführung regelbasierter Bedingungen zur Bestimmung von Job-Ausführungen.\n- Nutzung der Pipeline-Templates für nahtlose Integration vorteilhafter Konfigurationen.",{"bodyText":27},true,{"type":29,"componentName":29,"componentContent":30},"CommonSideNavigationWithTree",{"anchors":31,"components":62},{"text":32,"data":33},"Auf dieser Seite",[34,38,42,46,50,54,58],{"text":35,"config":36},"Schritt 1: Neues Projekt/Repository erstellen",{"href":37},"#step-1",{"text":39,"config":40},"Schritt 2: CI-Konfiguration einrichten",{"href":41},"#step-2",{"text":43,"config":44},"Schritt 3 - Änderung committen und Pipeline ausführen",{"href":45},"#step-3",{"text":47,"config":48},"Schritt 4 - Pipeline-Ausführung und Testergebnisse anzeigen",{"href":49},"#step-4",{"text":51,"config":52},"Schritt 5 - Pipeline fehlschlagen lassen",{"href":53},"#step-5",{"text":55,"config":56},"Schritt 6 - Pipeline-weite Fehlerbedingungen implementieren",{"href":57},"#step-6",{"text":59,"config":60},"Schritt 7 - Konfiguration mit integrierten Pipeline-Templates erweitern",{"href":61},"#step-7",[63,73],{"type":64,"componentName":64,"componentContent":65},"CommonCopy",{"config":66,"cards":67},{"noDecoration":27},[68],{"config":69,"title":71,"description":72},{"icon":70},"InfoTip","Bevor Sie beginnen","Stellen Sie sicher, dass Sie ein GitLab-Konto haben. Falls nicht, [hier registrieren](https://gitlab.com/users/sign_up).",{"type":74,"componentName":74,"componentContent":75},"GetStartedAccordion",{"groups":76},[77,89,116,124,132,140,148],{"config":78,"header":35,"show":80,"hide":81,"items":82},{"id":79},"step-1","Alle anzeigen","Alle ausblenden",[83,86],{"header":84,"content":85},"Schritt-Übersicht","Innerhalb eines Projekts werden verschiedene Komponenten wie Codebasis, CI-Konfiguration, Planung, Analysen und Teammitglieder(innen) verwaltet. In diesem Leitfaden wird ein neues Projekt mit leerer Vorlage erstellt, das nur eine Readme-Datei enthält.",{"header":87,"content":88},"Vorgehensweise","* Neues Projekt durch Klicken auf das Plus-Symbol rechts in der oberen Leiste erstellen und **Neues Projekt/Repository** auswählen\n* **Leeres Projekt erstellen** auswählen. Unter `Projektname` **my-project** eingeben.\n* **Projekt erstellen** klicken.\n* Glückwunsch! Das erste Projekt wurde erfolgreich erstellt.",{"config":90,"header":39,"show":80,"hide":81,"items":92},{"id":91},"step-2",[93,95,98,101,104,107,110,113],{"header":84,"content":94},"In GitLab wird die CI-Konfiguration im Code mit YAML-Syntax definiert. Diese Konfiguration spezifiziert Anweisungen für die Runner-Maschine bezüglich Job-Ausführung, Job-Reihenfolge, Job-Bedingungen und mehr. Zur Definition der CI-Konfiguration muss eine Datei namens **.gitlab-ci.yml** erstellt werden, die sich im Root des Repositorys befinden sollte. In diesem Leitfaden wird die Web IDE zur Erstellung und Bearbeitung dieser Datei verwendet.",{"header":96,"content":97},"Konfigurationsdatei erstellen","Für den Zugriff auf die Web IDE einfach auf die Web IDE Schnelltaste im Projekt klicken. In der Web IDE zum Datei-Explorer auf der linken Seite navigieren. Rechtsklick im Datei-Explorer und die Option **Neue Datei** wählen. Die neu erstellte Datei **.gitlab-ci.yml** benennen.",{"header":99,"content":100},"Pipeline-Stages definieren","Die Reihenfolge der Job-Ausführungen wird durch die in der Konfiguration definierten Stages bestimmt. In diesem Leitfaden werden drei Stages definiert: **build, test und package,** in genau dieser Reihenfolge. Den folgenden Code in die **.gitlab-ci.yml** Datei kopieren und einfügen:\n\n```\n  stages:\n    - build\n    - test\n    - package\n```",{"header":102,"content":103},"Pipeline-Jobs definieren","Stellen Sie sich ein Szenario vor, in dem die Aufgabe besteht, zwei Textdateien zu erstellen. Es ist von größter Wichtigkeit, dass die Verkettung dieser Dateien den Ausdruck \"Hello world.\" enthält. Das Ziel ist es, diese Anforderung mit Pipeline-Jobs zu **erstellen**, **testen** und zu **verpacken**.",{"header":105,"content":106},"Build-Job definieren","Ein Build-Job wird spezifiziert, der folgende Aufgaben erfüllt: Erstellung einer Textdatei mit dem Wort \"Hello\", Erstellung einer weiteren Textdatei mit dem Wort \"World\" und Generierung einer dritten Datei, die den kombinierten Inhalt der beiden Dateien speichert. Die dritte Datei wird als Artefakt gespeichert, sodass nachfolgende Jobs in Test- und Package-Stages darauf zugreifen können. Den bereitgestellten Code unter dem Stages-Block einfügen:\n\n```\n  build-job:\n    stage: build\n    script:\n      - echo \"Hello \" | tr -d \"\\n\" > file1.txt\n      - echo \"world\" > file2.txt\n      - cat file1.txt file2.txt > compiled.txt\n    artifacts:\n    paths:\n      - compiled.txt\n```",{"header":108,"content":109},"Test-Job definieren","Zur Validierung der Integrität des Builds wird ein Test-Job integriert. Dieser Job überprüft, ob die **compiled.txt** Datei tatsächlich den erwarteten Ausdruck \"Hello world\" enthält. Den folgenden Code unter dem Build-Job einfügen:\n\n```\n  test:\n    stage: test\n    script: cat compiled.txt | grep -q 'Hello world '\n```",{"header":111,"content":112},"Package-Job definieren","Nach erfolgreichem Abschluss des Tests ist das nächste Ziel die Generierung eines Pakets für den Code. Dazu wird ein Package-Job eingefügt. Es ist wichtig zu beachten, dass bei einem Testfehler die gesamte Pipeline als erfolglos betrachtet wird und nicht fortgesetzt wird. Den bereitgestellten Code unter dem Test-Job einfügen:\n\n```\n  package:\n    stage: package\n    script: cat compiled.txt | gzip > packaged.gz\n    artifacts:\n      paths:\n        - packaged.gz\n```",{"header":114,"content":115},"Die vollständige Pipeline sollte so aussehen","```\n  stages:          # Liste der Stages für Jobs und deren Ausführungsreihenfolge\n    - build\n    - test\n    - package\n\n  build-job:\n    stage: build\n    script:\n      - echo \"Hello \" | tr -d \"\\n\" > file1.txt\n      - echo \"world\" > file2.txt\n      - cat file1.txt file2.txt > compiled.txt\n    artifacts:\n      paths:\n        - compiled.txt\n\n  test:\n    stage: test\n    script: cat compiled.txt | grep -q 'Hello world'\n\n  package:\n    stage: package\n    script: cat compiled.txt | gzip > packaged.gz\n    artifacts:\n      paths:\n        - packaged.gz\n```\n\nHier ist ein Link zur [Konfigurationsdatei](https://gitlab.com/tech-marketing/ci-quickstart/-/blob/main/.gitlab-ci.yml) in unserem Beispielprojekt.\n\nGlückwunsch!! Die erste CI-Pipeline wurde erstellt.",{"config":117,"header":43,"show":80,"hide":81,"items":119},{"id":118},"step-3",[120,122],{"header":84,"content":121},"Zur Aktivierung der Continuous Integration (CI) im Projekt muss die **.gitlab-ci.yml** Datei in das Repository gepusht werden. Sobald sich diese Datei im Root des Repositorys befindet, wird jeder Commit im Projekt automatisch eine CI-Pipeline initiieren. Die erste Pipeline beginnt sofort nach dem Push dieser Datei zum Server.",{"header":87,"content":123},"* Auf das Merge-Symbol links vom Datei-Explorer klicken.\n* Eine Commit-Nachricht wie \"Adding CI configuration.\" eingeben.\n* Auf **Commit & Push** klicken.\n* Bei der Aufforderung \"Commit to a new branch?\" \"No, Use the current branch main\" auswählen.\n* Um zum Projekt zurückzukehren, auf die Schaltfläche **Go to project** unten links klicken.\n\n**Glückwunsch! Das Projekt ist nun erfolgreich konfiguriert, um automatisch eine CI-Pipeline für jeden Code-Commit zu initiieren.**",{"config":125,"header":47,"show":80,"hide":81,"items":127},{"id":126},"step-4",[128,130],{"header":84,"content":129},"Während die Pipeline läuft, kann der Status im **CI/CD** Tab überwacht werden. Diese Funktion ermöglicht die einfache Verfolgung des Fortschritts der Jobs, einschließlich ihres Ausführungsstatus (wie gestartet, bestanden, fehlgeschlagen usw.) sowie jeder von den Job-Skripten generierten Ausgabe.",{"header":87,"content":131},"* Zum GitLab-Projekt navigieren und das linke Menü finden.\n* Im Menü auf **CI/CD** klicken, dann **Pipelines** klicken.\n* Auf der **Pipelines** Seite die Pipeline-Schaltfläche in der **Status** Spalte finden. Darauf klicken, um den Pipeline-Graph zu öffnen.\n* Nun können die Jobs und ihre jeweiligen Status im Pipeline-Graph beobachtet werden.\n* Um einen spezifischen Job zu erkunden, darauf klicken, um die Job-Konsole zu öffnen. Diese Konsole zeigt alle auf der Runner-Maschine ausgeführten Schritte.\n* Die Package-Job-Konsole öffnen, um die vom Runner verarbeiteten Schritte anzuzeigen.\n* Der Package-Job generiert ein Artefakt, das durch Klicken auf die **Download** Schaltfläche rechts heruntergeladen werden kann.\n* Durch Befolgen dieser Schritte kann der Pipeline-Status effektiv verfolgt, Job-Details inspiziert und relevante Artefakte oder Pakete aus der Pipeline-Ausführung abgerufen werden.\n\n**Glückwunsch zur erfolgreichen Ausführung der ersten Pipeline. Die Pipeline war erfolgreich! Die Ergebnisse wurden angezeigt und das Job-Artefakt heruntergeladen.**",{"config":133,"header":51,"show":80,"hide":81,"items":135},{"id":134},"step-5",[136,138],{"header":84,"content":137},"Der erwartete Wert im Test-Job wird geändert, der Test-Job wird fehlschlagen und die gesamte Pipeline wird fehlschlagen.",{"header":87,"content":139},"* Den **Test** Job bearbeiten, indem der Ausdruck \"Hello World\" zu \"hello world\" (mit Kleinbuchstaben) geändert wird.\n* Die Code-Änderungen committen und zur Pipeline-Anzeige gehen, ähnlich wie in Schritt 4.\n* Bei der Inspektion der Pipeline wird beobachtet, dass der Test-Job fehlgeschlagen ist. Zusätzlich startete der nachfolgende **Package** Job nicht und die Pipeline selbst schlug wie erwartet fehl.",{"config":141,"header":55,"show":80,"hide":81,"items":143},{"id":142},"step-6",[144,146],{"header":84,"content":145},"In Schritt 5 wurde gesehen, dass Job-Fehler die gesamte Pipeline zum Scheitern brachten. Logik kann in die Pipeline eingeführt werden, die bestimmt, wann ein Job-Fehler die gesamte Pipeline zum Scheitern bringt:\n\n* Bewertung der Bedingungen, unter denen ein Job-Fehler zu Pipeline-Fehlern führen soll. Beispielsweise kann Pipeline-Fehler erzwungen werden, wenn ein Job auf dem Main- oder Default-Branch fehlschlägt, während Job-Fehler auf anderen Branches die Pipeline fortsetzen lassen.\n* Definition von Regeln, die das Fehlerverhalten steuern. Variablen wie $CI_COMMIT_BRANCH können genutzt werden, um den aktuellen Branch zu prüfen und darauf basierende Entscheidungen zu treffen.\n* Angemessene Bedingungen setzen und spezifizieren, ob der Job als **allow_failure: false** oder **allow_failure: true** markiert werden soll.",{"header":87,"content":147},"* Rules/if-Bedingungen zum Test-Job hinzufügen.\n* Das **allow_failure** Schlüsselwort auf **true** oder **false** basierend auf dem Branch setzen.\n\n```\n  test:\n    stage: test\n    script: cat compiled.txt | grep -q 'Hello world'\n    rules:\n      - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH\n        allow_failure: false\n      - if: $CI_COMMIT_BRANCH\n        allow_failure: true\n```",{"config":149,"header":59,"show":80,"hide":81,"items":151},{"id":150},"step-7",[152,154],{"header":84,"content":153},"Zur Optimierung der Pipeline-Konfigurationseinrichtung können die von GitLab bereitgestellten integrierten Pipeline-Templates genutzt werden. Diese Templates bieten vordefinierte Konfigurationen für häufige Anwendungsfälle wie Sicherheitsscans, AWS-Bereitstellungen usw.\n\nFolgende Schritte zur Nutzung der integrierten Pipeline-Templates:\n\n* Erkundung der verfügbaren Pipeline-Templates von GitLab für verschiedene Szenarien wie Erstellen, Testen, Bereitstellen und mehr. Diese Templates sind [hier](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates) zu finden.\n* Auswahl des Templates, das den Anforderungen entspricht.\n* Integration des Templates in die Pipeline-Konfiguration durch Referenzierung in der **.gitlab-ci.yml** Datei. Dies kann typischerweise durch Import des Templates mit dem **include** Schlüsselwort und Spezifizierung des Pfads oder der URL zur Template-Datei erfolgen.\n\nIn diesem Leitfaden wird Code Quality Scan zur Konfiguration mit dem Code-Quality Template hinzugefügt.",{"header":87,"content":155},"Das Code Quality Template zur **.gitlab-ci.yml** durch Hinzufügen dieses Codes unter dem Stages-Block einbinden.\n\n```\n  include:\n    - template: Jobs/Code-Quality.gitlab-ci.yml\n```\n\nDiese Änderung committen und pushen.\n\nEs wird bemerkt, dass ein Code Quality Job zur Pipeline hinzugefügt wurde. Der Code Quality Scanner wird alle Code-Änderungen, die in dieses Repository committed werden, gründlich analysieren und wertvolles Feedback liefern, wobei Code-Quality-Probleme hervorgehoben werden, die Aufmerksamkeit und Verbesserung erfordern. Diese wertvollen Erkenntnisse ermöglichen die Verbesserung der Gesamtqualität der Codebasis und die Optimierung ihrer Leistung.\n\nDas war's! Mit diesen Schritten sollte der Einstieg in GitLab CI möglich sein und die Build- und Testprozesse des Projekts automatisiert werden.",{"type":157,"componentName":157,"componentContent":158},"CommonCardGrid",{"config":159,"title":162,"cards":163},{"columns":160,"theme":161},3,"purple","Nächste Schritte",[164,176,187],{"image":165,"title":168,"description":169,"button":170},{"altText":7,"config":166},{"src":167},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663568/tcmwpweaxyr0hsh4m2bf.png?","Mehr über GitLab CI erfahren?","Eine schnelle Einführung in GitLab CI in diesem informativen Video. Perfekt für Anfänger(innen) und alle, die ihr Verständnis von GitLab CI erweitern möchten.",{"text":171,"config":172},"CI-Übersicht Demo",{"href":173,"dataGaName":174,"dataGaLocation":175},"https://youtu.be/WKR-7clknsA","CI overview demo","body",{"image":177,"title":180,"description":181,"button":182},{"altText":7,"config":178},{"src":179},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663863/zgovjo3vv2ik0nbim6db.png?","Issues nutzen","GitLab Issues werden zur Verfolgung und Verwaltung von Aufgaben, Bugs oder Feature-Requests innerhalb eines Projekts verwendet. Sie bieten einen zentralen Ort für Zusammenarbeit zur Diskussion, Zuweisung und Verfolgung des Fortschritts von Arbeitsgegenständen.",{"text":183,"config":184},"Issues",{"href":185,"dataGaName":186,"dataGaLocation":175},"https://docs.gitlab.com/ee/user/project/issues/","issues",{"image":188,"title":191,"description":192,"button":193},{"altText":7,"config":189},{"src":190},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663742/ggf3qelfxf5bjjopwagh.png?","Sicherheitsscans zur Pipeline hinzufügen","Mit GitLabs integrierten Sicherheitsscans können diese einfach in die CI-Konfiguration integriert werden. Dies gewährleistet, dass Entwickler(innen) sofortiges Feedback zu potenziellen Risiken in ihren Code-Änderungen erhalten.",{"text":194,"config":195},"Anwendungssicherheit",{"href":196,"dataGaName":197,"dataGaLocation":175},"/blog/getting-started-with-gitlab-application-security/","Application security","content:de-de:get-started:continuous-integration.yml","yaml","Continuous Integration","content","de-de/get-started/continuous-integration.yml","de-de/get-started/continuous-integration","yml",{"_path":206,"_dir":207,"_draft":6,"_partial":6,"_locale":7,"data":208,"_id":619,"_type":199,"title":620,"_source":201,"_file":621,"_stem":622,"_extension":204},"/shared/de-de/main-navigation","de-de",{"logo":209,"freeTrial":214,"sales":219,"login":224,"items":229,"search":560,"minimal":596,"duo":610},{"config":210},{"href":211,"dataGaName":212,"dataGaLocation":213},"/de-de/","gitlab logo","header",{"text":215,"config":216},"Kostenlose Testversion anfordern",{"href":217,"dataGaName":218,"dataGaLocation":213},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":220,"config":221},"Vertrieb kontaktieren",{"href":222,"dataGaName":223,"dataGaLocation":213},"/de-de/sales/","sales",{"text":225,"config":226},"Anmelden",{"href":227,"dataGaName":228,"dataGaLocation":213},"https://gitlab.com/users/sign_in/","sign in",[230,274,372,377,481,541],{"text":231,"config":232,"cards":234,"footer":257},"Plattform",{"dataNavLevelOne":233},"platform",[235,241,249],{"title":231,"description":236,"link":237},"Die umfassendste KI-basierte DevSecOps-Plattform",{"text":238,"config":239},"Erkunde unsere Plattform",{"href":240,"dataGaName":233,"dataGaLocation":213},"/de-de/platform/",{"title":242,"description":243,"link":244},"GitLab Duo (KI)","Entwickle Software schneller mit KI in jeder Phase der Entwicklung",{"text":245,"config":246},"Lerne GitLab Duo kennen",{"href":247,"dataGaName":248,"dataGaLocation":213},"/de-de/gitlab-duo/","gitlab duo ai",{"title":250,"description":251,"link":252},"Gründe, die für GitLab sprechen","10 Gründe, warum Unternehmen sich für GitLab entscheiden",{"text":253,"config":254},"Mehr erfahren",{"href":255,"dataGaName":256,"dataGaLocation":213},"/de-de/why-gitlab/","why gitlab",{"title":258,"items":259},"Erste Schritte mit",[260,265,270],{"text":261,"config":262},"Platform Engineering",{"href":263,"dataGaName":264,"dataGaLocation":213},"/de-de/solutions/platform-engineering/","platform engineering",{"text":266,"config":267},"Entwicklererfahrung",{"href":268,"dataGaName":269,"dataGaLocation":213},"/de-de/developer-experience/","Developer experience",{"text":271,"config":272},"MLOps",{"href":273,"dataGaName":271,"dataGaLocation":213},"/de-de/topics/devops/the-role-of-ai-in-devops/",{"text":275,"left":27,"config":276,"link":278,"lists":282,"footer":354},"Produkt",{"dataNavLevelOne":277},"solutions",{"text":279,"config":280},"Alle Lösungen anzeigen",{"href":281,"dataGaName":277,"dataGaLocation":213},"/de-de/solutions/",[283,309,332],{"title":284,"description":285,"link":286,"items":291},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":287},{"icon":288,"href":289,"dataGaName":290,"dataGaLocation":213},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[292,296,300,305],{"text":293,"config":294},"CI/CD",{"href":295,"dataGaLocation":213,"dataGaName":293},"/de-de/solutions/continuous-integration/",{"text":297,"config":298},"KI-unterstützte Entwicklung",{"href":247,"dataGaLocation":213,"dataGaName":299},"AI assisted development",{"text":301,"config":302},"Quellcodeverwaltung",{"href":303,"dataGaLocation":213,"dataGaName":304},"/de-de/solutions/source-code-management/","Source Code Management",{"text":306,"config":307},"Automatisierte Softwarebereitstellung",{"href":289,"dataGaLocation":213,"dataGaName":308},"Automated software delivery",{"title":310,"description":311,"link":312,"items":317},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":313},{"href":314,"dataGaName":315,"dataGaLocation":213,"icon":316},"/de-de/solutions/security-compliance/","security and compliance","ShieldCheckLight",[318,323,328],{"text":319,"config":320},"Application Security Testing",{"href":321,"dataGaName":322,"dataGaLocation":213},"/solutions/application-security-testing/","Application security testing",{"text":324,"config":325},"Schutz der Software-Lieferkette",{"href":326,"dataGaLocation":213,"dataGaName":327},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":329,"config":330},"Software Compliance",{"href":331,"dataGaName":329,"dataGaLocation":213},"/solutions/software-compliance/",{"title":333,"link":334,"items":339},"Bewertung",{"config":335},{"icon":336,"href":337,"dataGaName":338,"dataGaLocation":213},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[340,344,349],{"text":341,"config":342},"Sichtbarkeit und Bewertung",{"href":337,"dataGaLocation":213,"dataGaName":343},"Visibility and Measurement",{"text":345,"config":346},"Wertstrommanagement",{"href":347,"dataGaLocation":213,"dataGaName":348},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":350,"config":351},"Analysen und Einblicke",{"href":352,"dataGaLocation":213,"dataGaName":353},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":355,"items":356},"GitLab für",[357,362,367],{"text":358,"config":359},"Enterprise",{"href":360,"dataGaLocation":213,"dataGaName":361},"/de-de/enterprise/","enterprise",{"text":363,"config":364},"Kleinunternehmen",{"href":365,"dataGaLocation":213,"dataGaName":366},"/de-de/small-business/","small business",{"text":368,"config":369},"den öffentlichen Sektor",{"href":370,"dataGaLocation":213,"dataGaName":371},"/de-de/solutions/public-sector/","public sector",{"text":373,"config":374},"Preise",{"href":375,"dataGaName":376,"dataGaLocation":213,"dataNavLevelOne":376},"/de-de/pricing/","pricing",{"text":378,"config":379,"link":381,"lists":385,"feature":468},"Ressourcen",{"dataNavLevelOne":380},"resources",{"text":382,"config":383},"Alle Ressourcen anzeigen",{"href":384,"dataGaName":380,"dataGaLocation":213},"/de-de/resources/",[386,417,440],{"title":17,"items":387},[388,393,397,402,407,412],{"text":389,"config":390},"Installieren",{"href":391,"dataGaName":392,"dataGaLocation":213},"/de-de/install/","install",{"text":394,"config":395},"Kurzanleitungen",{"href":19,"dataGaName":396,"dataGaLocation":213},"quick setup checklists",{"text":398,"config":399},"Lernen",{"href":400,"dataGaLocation":213,"dataGaName":401},"https://university.gitlab.com/","learn",{"text":403,"config":404},"Produktdokumentation",{"href":405,"dataGaName":406,"dataGaLocation":213},"https://docs.gitlab.com/","product documentation",{"text":408,"config":409},"Best-Practice-Videos",{"href":410,"dataGaName":411,"dataGaLocation":213},"/de-de/getting-started-videos/","best practice videos",{"text":413,"config":414},"Integrationen",{"href":415,"dataGaName":416,"dataGaLocation":213},"/de-de/integrations/","integrations",{"title":418,"items":419},"Entdecken",[420,425,430,435],{"text":421,"config":422},"Kundenerfolge",{"href":423,"dataGaName":424,"dataGaLocation":213},"/de-de/customers/","customer success stories",{"text":426,"config":427},"Blog",{"href":428,"dataGaName":429,"dataGaLocation":213},"/de-de/blog/","blog",{"text":431,"config":432},"Remote",{"href":433,"dataGaName":434,"dataGaLocation":213},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":436,"config":437},"TeamOps",{"href":438,"dataGaName":439,"dataGaLocation":213},"/de-de/teamops/","teamops",{"title":441,"items":442},"Vernetzen",[443,448,453,458,463],{"text":444,"config":445},"GitLab-Services",{"href":446,"dataGaName":447,"dataGaLocation":213},"/de-de/services/","services",{"text":449,"config":450},"Community",{"href":451,"dataGaName":452,"dataGaLocation":213},"/community/","community",{"text":454,"config":455},"Forum",{"href":456,"dataGaName":457,"dataGaLocation":213},"https://forum.gitlab.com/","forum",{"text":459,"config":460},"Veranstaltungen",{"href":461,"dataGaName":462,"dataGaLocation":213},"/events/","events",{"text":464,"config":465},"Partner",{"href":466,"dataGaName":467,"dataGaLocation":213},"/partners/","partners",{"backgroundColor":469,"textColor":470,"text":471,"image":472,"link":476},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":473,"config":474},"the source promo card",{"src":475},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":477,"config":478},"Lies die News",{"href":479,"dataGaName":480,"dataGaLocation":213},"/de-de/the-source/","the source",{"text":482,"config":483,"lists":485},"Unternehmen",{"dataNavLevelOne":484},"company",[486],{"items":487},[488,493,499,501,506,511,516,521,526,531,536],{"text":489,"config":490},"Über",{"href":491,"dataGaName":492,"dataGaLocation":213},"/de-de/company/","about",{"text":494,"config":495,"footerGa":498},"Karriere",{"href":496,"dataGaName":497,"dataGaLocation":213},"/jobs/","jobs",{"dataGaName":497},{"text":459,"config":500},{"href":461,"dataGaName":462,"dataGaLocation":213},{"text":502,"config":503},"Geschäftsführung",{"href":504,"dataGaName":505,"dataGaLocation":213},"/company/team/e-group/","leadership",{"text":507,"config":508},"Team",{"href":509,"dataGaName":510,"dataGaLocation":213},"/company/team/","team",{"text":512,"config":513},"Handbuch",{"href":514,"dataGaName":515,"dataGaLocation":213},"https://handbook.gitlab.com/","handbook",{"text":517,"config":518},"Investor Relations",{"href":519,"dataGaName":520,"dataGaLocation":213},"https://ir.gitlab.com/","investor relations",{"text":522,"config":523},"Trust Center",{"href":524,"dataGaName":525,"dataGaLocation":213},"/de-de/security/","trust center",{"text":527,"config":528},"AI Transparency Center",{"href":529,"dataGaName":530,"dataGaLocation":213},"/de-de/ai-transparency-center/","ai transparency center",{"text":532,"config":533},"Newsletter",{"href":534,"dataGaName":535,"dataGaLocation":213},"/company/contact/","newsletter",{"text":537,"config":538},"Presse",{"href":539,"dataGaName":540,"dataGaLocation":213},"/press/","press",{"text":542,"config":543,"lists":544},"Kontakt",{"dataNavLevelOne":484},[545],{"items":546},[547,550,555],{"text":220,"config":548},{"href":222,"dataGaName":549,"dataGaLocation":213},"talk to sales",{"text":551,"config":552},"Support",{"href":553,"dataGaName":554,"dataGaLocation":213},"/support/","get help",{"text":556,"config":557},"Kundenportal",{"href":558,"dataGaName":559,"dataGaLocation":213},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":561,"login":562,"suggestions":569},"Schließen",{"text":563,"link":564},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":565,"config":566},"gitlab.com",{"href":227,"dataGaName":567,"dataGaLocation":568},"search login","search",{"text":570,"default":571},"Vorschläge",[572,575,580,582,587,592],{"text":242,"config":573},{"href":247,"dataGaName":574,"dataGaLocation":568},"GitLab Duo (AI)",{"text":576,"config":577},"Code Suggestions (KI)",{"href":578,"dataGaName":579,"dataGaLocation":568},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":293,"config":581},{"href":295,"dataGaName":293,"dataGaLocation":568},{"text":583,"config":584},"GitLab auf AWS",{"href":585,"dataGaName":586,"dataGaLocation":568},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":588,"config":589},"GitLab auf Google Cloud",{"href":590,"dataGaName":591,"dataGaLocation":568},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":593,"config":594},"Warum GitLab?",{"href":255,"dataGaName":595,"dataGaLocation":568},"Why GitLab?",{"freeTrial":597,"mobileIcon":602,"desktopIcon":607},{"text":598,"config":599},"Kostenlos testen",{"href":600,"dataGaName":218,"dataGaLocation":601},"https://gitlab.com/-/trials/new/","nav",{"altText":603,"config":604},"GitLab-Symbol",{"src":605,"dataGaName":606,"dataGaLocation":601},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":603,"config":608},{"src":609,"dataGaName":606,"dataGaLocation":601},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":611,"mobileIcon":615,"desktopIcon":617},{"text":612,"config":613},"Erfahre mehr über GitLab Duo",{"href":247,"dataGaName":614,"dataGaLocation":601},"gitlab duo",{"altText":603,"config":616},{"src":605,"dataGaName":606,"dataGaLocation":601},{"altText":603,"config":618},{"src":609,"dataGaName":606,"dataGaLocation":601},"content:shared:de-de:main-navigation.yml","Main Navigation","shared/de-de/main-navigation.yml","shared/de-de/main-navigation",{"_path":624,"_dir":207,"_draft":6,"_partial":6,"_locale":7,"title":625,"button":626,"config":631,"_id":633,"_type":199,"_source":201,"_file":634,"_stem":635,"_extension":204},"/shared/de-de/banner","GitLab Duo Agent Platform ist jetzt in öffentlicher Beta!",{"text":627,"config":628},"Beta testen",{"href":629,"dataGaName":630,"dataGaLocation":213},"/de-de/gitlab-duo/agent-platform/","duo banner",{"layout":632},"release","content:shared:de-de:banner.yml","shared/de-de/banner.yml","shared/de-de/banner",{"_path":637,"_dir":207,"_draft":6,"_partial":6,"_locale":7,"data":638,"_id":841,"_type":199,"title":842,"_source":201,"_file":843,"_stem":844,"_extension":204},"/shared/de-de/main-footer",{"text":639,"source":640,"edit":646,"contribute":651,"config":656,"items":661,"minimal":833},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":641,"config":642},"Quelltext der Seite anzeigen",{"href":643,"dataGaName":644,"dataGaLocation":645},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":647,"config":648},"Diese Seite bearbeiten",{"href":649,"dataGaName":650,"dataGaLocation":645},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":652,"config":653},"Beteilige dich",{"href":654,"dataGaName":655,"dataGaLocation":645},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":657,"facebook":658,"youtube":659,"linkedin":660},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[662,685,740,769,803],{"title":231,"links":663,"subMenu":668},[664],{"text":665,"config":666},"DevSecOps-Plattform",{"href":240,"dataGaName":667,"dataGaLocation":645},"devsecops platform",[669],{"title":373,"links":670},[671,675,680],{"text":672,"config":673},"Tarife anzeigen",{"href":375,"dataGaName":674,"dataGaLocation":645},"view plans",{"text":676,"config":677},"Vorteile von Premium",{"href":678,"dataGaName":679,"dataGaLocation":645},"/de-de/pricing/premium/","why premium",{"text":681,"config":682},"Vorteile von Ultimate",{"href":683,"dataGaName":684,"dataGaLocation":645},"/de-de/pricing/ultimate/","why ultimate",{"title":686,"links":687},"Lösungen",[688,693,696,698,703,708,712,715,718,723,725,727,730,735],{"text":689,"config":690},"Digitale Transformation",{"href":691,"dataGaName":692,"dataGaLocation":645},"/de-de/topics/digital-transformation/","digital transformation",{"text":694,"config":695},"Sicherheit und Compliance",{"href":321,"dataGaName":322,"dataGaLocation":645},{"text":306,"config":697},{"href":289,"dataGaName":290,"dataGaLocation":645},{"text":699,"config":700},"Agile Entwicklung",{"href":701,"dataGaName":702,"dataGaLocation":645},"/de-de/solutions/agile-delivery/","agile delivery",{"text":704,"config":705},"Cloud-Transformation",{"href":706,"dataGaName":707,"dataGaLocation":645},"/de-de/topics/cloud-native/","cloud transformation",{"text":709,"config":710},"SCM",{"href":303,"dataGaName":711,"dataGaLocation":645},"source code management",{"text":293,"config":713},{"href":295,"dataGaName":714,"dataGaLocation":645},"continuous integration & delivery",{"text":345,"config":716},{"href":347,"dataGaName":717,"dataGaLocation":645},"value stream management",{"text":719,"config":720},"GitOps",{"href":721,"dataGaName":722,"dataGaLocation":645},"/de-de/solutions/gitops/","gitops",{"text":358,"config":724},{"href":360,"dataGaName":361,"dataGaLocation":645},{"text":363,"config":726},{"href":365,"dataGaName":366,"dataGaLocation":645},{"text":728,"config":729},"Öffentlicher Sektor",{"href":370,"dataGaName":371,"dataGaLocation":645},{"text":731,"config":732},"Bildungswesen",{"href":733,"dataGaName":734,"dataGaLocation":645},"/de-de/solutions/education/","education",{"text":736,"config":737},"Finanzdienstleistungen",{"href":738,"dataGaName":739,"dataGaLocation":645},"/de-de/solutions/finance/","financial services",{"title":378,"links":741},[742,744,746,748,751,753,755,757,759,761,763,765,767],{"text":389,"config":743},{"href":391,"dataGaName":392,"dataGaLocation":645},{"text":394,"config":745},{"href":19,"dataGaName":396,"dataGaLocation":645},{"text":398,"config":747},{"href":400,"dataGaName":401,"dataGaLocation":645},{"text":403,"config":749},{"href":405,"dataGaName":750,"dataGaLocation":645},"docs",{"text":426,"config":752},{"href":428,"dataGaName":429,"dataGaLocation":645},{"text":421,"config":754},{"href":423,"dataGaName":424,"dataGaLocation":645},{"text":431,"config":756},{"href":433,"dataGaName":434,"dataGaLocation":645},{"text":444,"config":758},{"href":446,"dataGaName":447,"dataGaLocation":645},{"text":436,"config":760},{"href":438,"dataGaName":439,"dataGaLocation":645},{"text":449,"config":762},{"href":451,"dataGaName":452,"dataGaLocation":645},{"text":454,"config":764},{"href":456,"dataGaName":457,"dataGaLocation":645},{"text":459,"config":766},{"href":461,"dataGaName":462,"dataGaLocation":645},{"text":464,"config":768},{"href":466,"dataGaName":467,"dataGaLocation":645},{"title":482,"links":770},[771,773,775,777,779,781,783,787,792,794,796,798],{"text":489,"config":772},{"href":491,"dataGaName":484,"dataGaLocation":645},{"text":494,"config":774},{"href":496,"dataGaName":497,"dataGaLocation":645},{"text":502,"config":776},{"href":504,"dataGaName":505,"dataGaLocation":645},{"text":507,"config":778},{"href":509,"dataGaName":510,"dataGaLocation":645},{"text":512,"config":780},{"href":514,"dataGaName":515,"dataGaLocation":645},{"text":517,"config":782},{"href":519,"dataGaName":520,"dataGaLocation":645},{"text":784,"config":785},"Sustainability",{"href":786,"dataGaName":784,"dataGaLocation":645},"/sustainability/",{"text":788,"config":789},"Vielfalt, Inklusion und Zugehörigkeit",{"href":790,"dataGaName":791,"dataGaLocation":645},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":522,"config":793},{"href":524,"dataGaName":525,"dataGaLocation":645},{"text":532,"config":795},{"href":534,"dataGaName":535,"dataGaLocation":645},{"text":537,"config":797},{"href":539,"dataGaName":540,"dataGaLocation":645},{"text":799,"config":800},"Transparenzerklärung zu moderner Sklaverei",{"href":801,"dataGaName":802,"dataGaLocation":645},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":804,"links":805},"Nimm Kontakt auf",[806,809,811,813,818,823,828],{"text":807,"config":808},"Sprich mit einem Experten/einer Expertin",{"href":222,"dataGaName":223,"dataGaLocation":645},{"text":551,"config":810},{"href":553,"dataGaName":554,"dataGaLocation":645},{"text":556,"config":812},{"href":558,"dataGaName":559,"dataGaLocation":645},{"text":814,"config":815},"Status",{"href":816,"dataGaName":817,"dataGaLocation":645},"https://status.gitlab.com/","status",{"text":819,"config":820},"Nutzungsbedingungen",{"href":821,"dataGaName":822,"dataGaLocation":645},"/terms/","terms of use",{"text":824,"config":825},"Datenschutzerklärung",{"href":826,"dataGaName":827,"dataGaLocation":645},"/de-de/privacy/","privacy statement",{"text":829,"config":830},"Cookie-Einstellungen",{"dataGaName":831,"dataGaLocation":645,"id":832,"isOneTrustButton":27},"cookie preferences","ot-sdk-btn",{"items":834},[835,837,839],{"text":819,"config":836},{"href":821,"dataGaName":822,"dataGaLocation":645},{"text":824,"config":838},{"href":826,"dataGaName":827,"dataGaLocation":645},{"text":829,"config":840},{"dataGaName":831,"dataGaLocation":645,"id":832,"isOneTrustButton":27},"content:shared:de-de:main-footer.yml","Main Footer","shared/de-de/main-footer.yml","shared/de-de/main-footer",1758662298757]