[{"data":1,"prerenderedAt":710},["ShallowReactive",2],{"/de-de/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code/":3,"navigation-de-de":39,"banner-de-de":459,"footer-de-de":472,"David O'Regan":681,"next-steps-de-de":695},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":16,"config":29,"_id":32,"_type":33,"title":34,"_source":35,"_file":36,"_stem":37,"_extension":38},"/de-de/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code","blog",false,"",{"ogTitle":9,"schema":10,"ogImage":11,"ogDescription":12,"ogSiteName":13,"noIndex":6,"ogType":14,"ogUrl":15,"title":9,"canonicalUrls":15,"description":12},"GitLab Duo: So testen wir KI-generierten Code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Entwicklung von GitLab Duo: Sicheres und gründliches Testen von KI-generiertem Code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2024-05-30\",\n      }\n                  ","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097183/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750097183481.png","Erfahre Schritt für Schritt, wie du die Zuverlässigkeit und Sicherheit von KI-generiertem Code mithilfe von GitLab Duo und GitLab Pages (einschließlich Codebeispielen und Prompts) verbessern kannst.","https://about.gitlab.com","article","https://about.gitlab.com/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code",{"heroImage":11,"body":17,"authors":18,"updatedDate":20,"date":21,"title":22,"tags":23,"description":12,"category":28},"***Generative KI bedeutet einen monumentalen Wandel in der\nSoftwareentwicklungsbranche, da sie die Entwicklung, die Sicherheit und den\nBetrieb von Software vereinfacht. Die neue Blog-Reihe unserer Produkt- und\nEntwicklungsteams zeigt, wie wir die KI-Funktionen erstellen, testen und\nbereitstellen, die in Unternehmen benötigt werden. Lerne neue Funktionen\ninnerhalb von GitLab Duo kennen und erfahre, wie diese DevSecOps-Teams dabei\nhelfen, bessere Ergebnisse für ihre Kund(inn)en zu erzielen.***\n\n\n## Inhaltsverzeichnis\n\n\n* [Herausforderungen bei der Verwendung von KI-generiertem Code](#herausforderungen-bei-der-verwendung-von-ki-generiertem-code)\n\n* [Der Ansatz von GitLab für die Sicherheit und das Testen von KI](#der-ansatz-von-gitlab-für-die-sicherheit-und-das-testen-von-ki)\n\n  * [1. Ein neues Projekt auf GitLab.com erstellen](#1.-ein-neues-projekt-auf-gitlab.com-erstellen)\n  * [2. GitLab Duo-Codevorschläge aktivieren](#2.-gitlab-duo-codevorschläge-aktivieren)\n  * [3. Einen Flask Webserver erstellen](#3.-einen-flask-webserver-erstellen)\n  * [4. Tests mit GitLab Duo generieren](#4.-tests-mit-gitlab-duo-generieren)\n  * [5. Probleme mit KI-generiertem Code mithilfe von GitLab Duo Chat identifizieren](#5.-probleme-mit-ki-generiertem-code-mithilfe-von-gitlab-duo-chat-identifizieren)\n  * [6. Testberichte erstellen](#6.-testberichte-erstellen)\n  * [7. Den Testbericht mit GitLab Pages bereitstellen](#7.-den-testbericht-mit-gitlab-pages-bereitstellen)\n  * [8. Testberichte in MR-Widgets einbetten](#8.-testberichte-in-mr-widgets-einbetten)\n* [Fallstudie: Zuverlässigkeit von KI mit Sicherheitsrichtlinien und Scannern](#fallstudie-zuverlässigkeit-von-ki-mit-sicherheitsrichtlinien-und-scannern)\n\n* [Lege noch heute los](#lege-noch-heute-los)\n\n* [Lies mehr über die Reihe „Entwicklung von GitLab Duo\"](#lies-mehr-über-die-reihe-„entwicklung-von-gitlab-duo“)\n\n\nDa KI zunehmend Bestandteil der Softwareentwicklung wird, ist die Gewährleistung der Sicherheit und das gründliche Testen von KI-generiertem Code von größter Bedeutung. Dieser Artikel ist eine Schritt-für-Schritt-Anleitung zur Kombination von [GitLab Duo](https://about.gitlab.com/de-de/gitlab-duo/), unserer Suite von KI-Funktionen zur Unterstützung des DevSecOps-Workflows, und [GitLab Pages](https://docs.gitlab.com/ee/user/project/pages/), um KI-generierten Code zu sichern und gründlich zu testen. Du erfährst, wie du typische Risiken minimieren kannst und wie du automatisch Tests generierst, Code testest und Testberichte erstellst, um die Zuverlässigkeit deines KI-generierten Codes zu verbessern.\n\n\n## Herausforderungen bei der Verwendung von KI-generiertem Code\n\n\nKI-generierter Code steht häufig vor folgenden Problemen:\n\n\n* Nicht übereinstimmende Algorithmen: Es können falsche oder suboptimale Algorithmen generiert werden.\n\n* Probleme mit Abhängigkeiten: KI-generierter Code kann Abhängigkeiten enthalten, die veraltet oder inkompatibel sind.\n\n* Sicherheitslücken: KI kann Code mit potenziellen Sicherheitsschwachstellen generieren.\n\n\nKI-generierter Code hat oft mit Problemen wie nicht übereinstimmenden Algorithmen, Abhängigkeitsproblemen und Sicherheitslücken zu kämpfen. Eine [kürzlich von der Association of Computing Machinery veröffentlichte Studie](https://dl.acm.org/doi/pdf/10.1145/3613904.3642596) zu den Antworten von ChatGPT auf Programmierfragen ergab, dass 52 % der Antworten falsche Informationen enthielten und 77 % zu ausführlich waren. Trotz dieser Mängel bevorzugten die Benutzer(innen) in 35 % der Fälle die umfassenden und gut formulierten Antworten von ChatGPT, wobei sie in 39 % der Fälle sogar Fehlinformationen übersahen. Die Bewältigung dieser Herausforderungen erfordert den Einsatz fortschrittlicher Tools und Frameworks.\n\n\n## Der Ansatz von GitLab für die Sicherheit und das Testen von KI\n\n\nGitLab hat eine umfassende Inhaltsstrategie, die sich auf die Integration von Sicherheitsmaßnahmen in den Entwicklungsworkflow konzentriert. Durch die Nutzung von GitLab Duo für die KI-gestützte Codegenerierung und GitLab Pages für die Einbettung von Testberichten können Entwickler(innen) sicherstellen, dass ihr KI-generierter Code sowohl sicher als auch zuverlässig ist.\n\n\nHier ist eine Schritt-für-Schritt-Anleitung für die Kombination von GitLab Duo und GitLab Pages, um durch die Implementierung eines [Flask-Webservers](https://flask.palletsprojects.com/en/3.0.x/) sicheren und gründlich getesteten KI-generierten Code zu gewährleisten.\n\n\n### 1. Ein neues Projekt auf GitLab.com erstellen\n\n\n* Gehe zu [GitLab.com](http://GitLab.com).\n\n* Klicke auf die Schaltfläche „Neues Projekt“.\n\n* Wähle „Leeres Projekt erstellen“ aus.\n\n* Gib einen Projektnamen ein (z. B. AI_Code_Security).\n\n* Lege die Sichtbarkeitsebene fest (öffentlich, intern oder privat).\n\n* Klicke auf „Projekt erstellen“.\n\n\n### 2. GitLab Duo-Codevorschläge aktivieren\n\n\n* Navigiere zu deinem Projekt.\n\n* Klicke auf die Schaltfläche „Web IDE“, um die Web IDE zu öffnen.\n\n* Stelle sicher, dass GitLab Duo-Funktionen wie Codevorschläge und Duo-Chat aktiviert sind. \n\n* Beginne mit der Programmierung in der [Web IDE](https://docs.gitlab.com/ee/user/project/web_ide/). Während du tippst, liefert GitLab Duo Codevorschläge, die dir helfen, effizienter zu programmieren.\n\n\n### 3. Einen Flask Webserver erstellen\n\n\nDu kannst mithilfe des Kommentars im Screenshot unten (grün hervorgehoben) einen Flask Webserver erstellen.\n\n\n![DGD-Testing – Bild 1](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097192/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097192520.png)\n\n\n### 4. Tests mit GitLab Duo generieren\n\n\nUnit-Tests sind für die Validierung der Funktionalität des generierten Codes unerlässlich. Verwende den Befehl `/tests` von GitLab Duo, um [Testvorschläge direkt in der Web IDE zu generieren](https://docs.gitlab.com/ee/user/gitlab_duo_chat_examples.html#write-tests-in-the-ide). Dieser Befehl kann mit zusätzlichen Anweisungen angepasst werden, um einen Fokus auf bestimmte Aspekte wie Leistung, Regression oder die Verwendung bestimmter Frameworks zu erreichen.\n\n\n#### Beispiel für die Verwendung in Web IDE:\n\n\n* Wähle den Code aus, für den du Tests generieren möchtest.\n\n* Verwende den Befehl `/tests` und füge bei Bedarf zusätzliche Anweisungen hinzu.\n\n\n![DGD-Testing – Bild 2](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097192/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097192521.png)\n\n\n### 5. Probleme mit KI-generiertem Code mithilfe von GitLab Duo Chat identifizieren\n\n\nVerwende GitLab Duo Chat, um KI-generierten Code zu überprüfen und zu optimieren. Wir können zum Beispiel den Code für unseren Flask Webserver auf Sicherheitslücken überprüfen:\n\n\n```unset\n\nPrompt: Überprüfe diesen Code auf potenzielle Sicherheitslücken und Abhängigkeitsprobleme.\n\n```\n\n\n![DGD-Testing – Bild 3](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097192/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097192523.png)\n\n\nGitLab Duo Chat kann helfen, die Sicherheitslücken im oben gezeigten Code zu identifizieren.\n\n\n### 6. Testberichte erstellen\n\n\nNachdem du deine Tests durchgeführt hast, erstellst du einen Testbericht, der mit GitLab Pages bereitgestellt wird.\n\n\n```unset\n\nPrompt: Schreibe mir ein Python-Skript, das einen Testbericht erstellt, der mit GitLab Pages bereitgestellt wird.\n\n```\n\n\n![DGD-Testing – Bild 4](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097192/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097192525.png)\n\n\nWas passiert hier?\n\n\n* Das Skript stellt sicher, dass das Verzeichnis test_reports existiert.\n\n* Es führt die Datei `test_server.py` mit `subprocess.run()` aus und erfasst die Ausgabe.\n\n* Die Rohausgabe wird in `test_reports/test_output.txt` gespeichert.\n  Es wird ein HTML-Bericht erstellt, der die Testausgabe aus Gründen der Lesbarkeit in die `\u003Cpre>`-Tags einbettet und als `test_reports/index.html` gespeichert wird.\n\n### 7. Den Testbericht mit GitLab Pages bereitstellen\n\n\nVerwende [GitLab Pages](https://docs.gitlab.com/ee/user/project/pages/), um den Testbericht zu hosten und anzuzeigen. Hier ist die Konfiguration für unsere Datei `.gitlab-ci.yml`, um den Testbericht bereitzustellen.\n\n\n```python\n\nstages:\n  - test\n  - deploy\ntest_job:\n  stage: test\n  script:\n    - python generate_test_report.py\n  artifacts:\n    paths:\n      - test_reports/\npages:\n  stage: deploy\n  script:\n    - mv test_reports public\n  artifacts:\n    paths:\n      - public\n```\n\n\nBei dieser Konfiguration führt die Phase `test_job` das Python-Skript aus, um den Testbericht zu erstellen. Die Phase `pages` verschiebt das Verzeichnis `test_reports` in den Pfad `public`, wo GitLab Pages den Inhalt bereitstellt.\n\n\n### 8. Testberichte in MR-Widgets einbetten\n\n\nDie Einbettung der [Testberichte in MR-Widgets](https://docs.gitlab.com/ee/ci/testing/unit_test_reports.html) bietet einen sofortigen Einblick in die Testergebnisse und gewährleistet Transparenz und Zuverlässigkeit. Dazu kannst du den Testbericht als Artefakt in die Konfiguration deiner CI/CD-Pipeline aufnehmen:\n\n\n```python\n\nstages:\n  - build\n  - test\n  - deploy\n\nbuild_job:\n  stage: build\n  script:\n    - echo \"Building the project...\"\n    - # Your build commands here\n\ntest_job:\n  stage: test\n  script:\n    - mkdir -p test-reports\n    - python test_server.py > test-reports/results.xml\n  artifacts:\n    when: always\n    reports:\n      junit: test-reports/results.xml\n    paths:\n      - test-reports/results.xml\n\npages:\n  stage: deploy\n  script:\n    - mkdir .public\n    - mv test-reports .public/\n  artifacts:\n    paths:\n      - .public\n```\n\n\nIndem du den Testbericht als Artefakt einfügst und ihn im Abschnitt „reports“ angibst, zeigt GitLab die Testergebnisse automatisch in den MR-Widgets an, was einen sofortigen Einblick in die Testergebnisse ermöglicht und die Transparenz und Zuverlässigkeit erhöht.\n\n\n## Fallstudie: Zuverlässigkeit von KI mit Sicherheitsrichtlinien und Scannern\n\n\nStell dir ein Szenario vor, in dem ein KI-generierter Codeschnipsel eine Abhängigkeit verwendet, die bekannte Sicherheitslücken aufweist. Durch die Verwendung von GitLab Duo und den integrierten Sicherheitsrichtlinien würde diese Abhängigkeit bei der Codeerstellung gekennzeichnet. Das folgende Beispiel wurde von der KI erstellt:\n\n\n```python\n\nimport os\n\nfrom flask import Flask, request\n\n\napp = Flask(__name__)\n\n\n@app.route('/search')\n\ndef search():\n    query = request.args.get('query')\n    execute_os_command(query)\n    return 'You searched for: ' + query\n\ndef execute_os_command(command):\n    os.system(command)\n\nif __name__ == '__main__':\n    app.run()\n```\n\n\nDer Suchendpunkt in diesem Beispiel ist anfällig für OS Command Injection. Durch den Einsatz der GitLab-Komponente Statische Anwendungssicherheitstests ([SAST](https://docs.gitlab.com/ee/user/application_security/sast/)) würde diese Sicherheitslücke bereits in der CI/CD-Pipeline entdeckt werden.\n\n\n#### SAST-Scans integrieren, um Sicherheitslücken zu erkennen\n\n\nGitLab SAST analysiert deinen Code automatisch auf Sicherheitslücken. So kannst du es in deine `.gitlab-ci.yml`-Datei integrieren, um nach Problemen zu suchen:\n\n\n```python\n\nstages:\n  - build\n  - test\n  - sast\n  - deploy\n\nbuild_job:\n  stage: build\n  script:\n    - echo \"Building the project...\"\n    - # Your build commands here\n\ntest_job:\n  stage: test\n  script:\n    - python test_server.py > test-reports/results.xml\n  artifacts:\n    when: always\n    reports:\n      junit: test-reports/results.xml\n    paths:\n      - test-reports/results.xml\n\nsast_job:\n  stage: sast\n  script:\n    - echo \"Running SAST...\"\n  artifacts:\n    reports:\n      sast: gl-sast-report.json\n  only:\n    - branches\n\npages:\n  stage: deploy\n  script:\n    - mv test-reports public\n  artifacts:\n    paths:\n      - public\n```\n\n\nIn dieser Konfiguration wird SAST in der Phase `sast_job` ausgeführt, um Sicherheitslücken im Code zu erkennen, und einen Bericht (`gl-sast-report.json`) zu erstellen, der in die Pipeline-Artefakte aufgenommen wird. Durch die Integration von Sicherheitsrichtlinien und robusten Test-Frameworks hilft GitLab Duo Kund(inn)en dabei, sicherzustellen, dass ihr KI-generierter Code sowohl effizient als auch sicher ist.\n\n\n## Lege noch heute los\n\n\nDie Integration von KI in die Softwareentwicklung bringt erhebliche Vorteile, aber auch neue Herausforderungen mit sich. Durch die Verwendung von Tools wie GitLab Duo und GitLab Pages können Entwickler(innen) sicherstellen, dass ihr KI-generierter Code sicher, gut getestet und zuverlässig ist. Erkunde diese Tools noch heute und beteilige dich an der Diskussion über die Verbesserung der Sicherheit und des Testens von KI.\n\n\n>  [Starte noch heute eine Testversion von GitLab Ultimate](https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/blog&glm_content=default-saas-trial), um GitLab Duo und GitLab Pages auszuprobieren.\n\n\n## Lies mehr über die Reihe „Entwicklung von GitLab Duo“\n\n\n* [Entwicklung von GitLab Duo: Wie wir KI-Modelle im großen Maßstab validieren und testen](https://about.gitlab.com/de-de/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale/)\n\n* [Entwicklung von GitLab Duo: KI-Impact-Analyse-Dashboard misst den ROI von KI](https://about.gitlab.com/de-de/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/)\n\n* [Entwicklung von GitLab Duo: Dogfooding unserer KI-Funktionen](https://about.gitlab.com/de-de/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features/)\n",[19],"David O'Regan","2025-05-29","2024-05-30","Entwicklung von GitLab Duo: Sicheres und gründliches Testen von KI-generiertem Code",[24,25,26,27],"AI/ML","DevSecOps","tutorial","security","ai-ml",{"slug":30,"featured":6,"template":31},"how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code","BlogPost","content:de-de:blog:how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code.yml","yaml","How Gitlab Duo Helps Secure And Thoroughly Test Ai Generated Code","content","de-de/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code.yml","de-de/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code","yml",{"_path":40,"_dir":41,"_draft":6,"_partial":6,"_locale":7,"data":42,"_id":455,"_type":33,"title":456,"_source":35,"_file":457,"_stem":458,"_extension":38},"/shared/de-de/main-navigation","de-de",{"logo":43,"freeTrial":48,"sales":53,"login":58,"items":63,"search":396,"minimal":432,"duo":446},{"config":44},{"href":45,"dataGaName":46,"dataGaLocation":47},"/de-de/","gitlab logo","header",{"text":49,"config":50},"Kostenlose Testversion anfordern",{"href":51,"dataGaName":52,"dataGaLocation":47},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":54,"config":55},"Vertrieb kontaktieren",{"href":56,"dataGaName":57,"dataGaLocation":47},"/de-de/sales/","sales",{"text":59,"config":60},"Anmelden",{"href":61,"dataGaName":62,"dataGaLocation":47},"https://gitlab.com/users/sign_in/","sign in",[64,108,207,212,317,377],{"text":65,"config":66,"cards":68,"footer":91},"Plattform",{"dataNavLevelOne":67},"platform",[69,75,83],{"title":65,"description":70,"link":71},"Die umfassendste KI-basierte DevSecOps-Plattform",{"text":72,"config":73},"Erkunde unsere Plattform",{"href":74,"dataGaName":67,"dataGaLocation":47},"/de-de/platform/",{"title":76,"description":77,"link":78},"GitLab Duo (KI)","Entwickle Software schneller mit KI in jeder Phase der Entwicklung",{"text":79,"config":80},"Lerne GitLab Duo kennen",{"href":81,"dataGaName":82,"dataGaLocation":47},"/de-de/gitlab-duo/","gitlab duo ai",{"title":84,"description":85,"link":86},"Gründe, die für GitLab sprechen","10 Gründe, warum Unternehmen sich für GitLab entscheiden",{"text":87,"config":88},"Mehr erfahren",{"href":89,"dataGaName":90,"dataGaLocation":47},"/de-de/why-gitlab/","why gitlab",{"title":92,"items":93},"Erste Schritte mit",[94,99,104],{"text":95,"config":96},"Platform Engineering",{"href":97,"dataGaName":98,"dataGaLocation":47},"/de-de/solutions/platform-engineering/","platform engineering",{"text":100,"config":101},"Entwicklererfahrung",{"href":102,"dataGaName":103,"dataGaLocation":47},"/de-de/developer-experience/","Developer experience",{"text":105,"config":106},"MLOps",{"href":107,"dataGaName":105,"dataGaLocation":47},"/de-de/topics/devops/the-role-of-ai-in-devops/",{"text":109,"left":110,"config":111,"link":113,"lists":117,"footer":189},"Produkt",true,{"dataNavLevelOne":112},"solutions",{"text":114,"config":115},"Alle Lösungen anzeigen",{"href":116,"dataGaName":112,"dataGaLocation":47},"/de-de/solutions/",[118,144,167],{"title":119,"description":120,"link":121,"items":126},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":122},{"icon":123,"href":124,"dataGaName":125,"dataGaLocation":47},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[127,131,135,140],{"text":128,"config":129},"CI/CD",{"href":130,"dataGaLocation":47,"dataGaName":128},"/de-de/solutions/continuous-integration/",{"text":132,"config":133},"KI-unterstützte Entwicklung",{"href":81,"dataGaLocation":47,"dataGaName":134},"AI assisted development",{"text":136,"config":137},"Quellcodeverwaltung",{"href":138,"dataGaLocation":47,"dataGaName":139},"/de-de/solutions/source-code-management/","Source Code Management",{"text":141,"config":142},"Automatisierte Softwarebereitstellung",{"href":124,"dataGaLocation":47,"dataGaName":143},"Automated software delivery",{"title":145,"description":146,"link":147,"items":152},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":148},{"href":149,"dataGaName":150,"dataGaLocation":47,"icon":151},"/de-de/solutions/security-compliance/","security and compliance","ShieldCheckLight",[153,158,163],{"text":154,"config":155},"Application Security Testing",{"href":156,"dataGaName":157,"dataGaLocation":47},"/solutions/application-security-testing/","Application security testing",{"text":159,"config":160},"Schutz der Software-Lieferkette",{"href":161,"dataGaLocation":47,"dataGaName":162},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":164,"config":165},"Software Compliance",{"href":166,"dataGaName":164,"dataGaLocation":47},"/solutions/software-compliance/",{"title":168,"link":169,"items":174},"Bewertung",{"config":170},{"icon":171,"href":172,"dataGaName":173,"dataGaLocation":47},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[175,179,184],{"text":176,"config":177},"Sichtbarkeit und Bewertung",{"href":172,"dataGaLocation":47,"dataGaName":178},"Visibility and Measurement",{"text":180,"config":181},"Wertstrommanagement",{"href":182,"dataGaLocation":47,"dataGaName":183},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":185,"config":186},"Analysen und Einblicke",{"href":187,"dataGaLocation":47,"dataGaName":188},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":190,"items":191},"GitLab für",[192,197,202],{"text":193,"config":194},"Enterprise",{"href":195,"dataGaLocation":47,"dataGaName":196},"/de-de/enterprise/","enterprise",{"text":198,"config":199},"Kleinunternehmen",{"href":200,"dataGaLocation":47,"dataGaName":201},"/de-de/small-business/","small business",{"text":203,"config":204},"den öffentlichen Sektor",{"href":205,"dataGaLocation":47,"dataGaName":206},"/de-de/solutions/public-sector/","public sector",{"text":208,"config":209},"Preise",{"href":210,"dataGaName":211,"dataGaLocation":47,"dataNavLevelOne":211},"/de-de/pricing/","pricing",{"text":213,"config":214,"link":216,"lists":220,"feature":304},"Ressourcen",{"dataNavLevelOne":215},"resources",{"text":217,"config":218},"Alle Ressourcen anzeigen",{"href":219,"dataGaName":215,"dataGaLocation":47},"/de-de/resources/",[221,254,276],{"title":222,"items":223},"Erste Schritte",[224,229,234,239,244,249],{"text":225,"config":226},"Installieren",{"href":227,"dataGaName":228,"dataGaLocation":47},"/de-de/install/","install",{"text":230,"config":231},"Kurzanleitungen",{"href":232,"dataGaName":233,"dataGaLocation":47},"/de-de/get-started/","quick setup checklists",{"text":235,"config":236},"Lernen",{"href":237,"dataGaLocation":47,"dataGaName":238},"https://university.gitlab.com/","learn",{"text":240,"config":241},"Produktdokumentation",{"href":242,"dataGaName":243,"dataGaLocation":47},"https://docs.gitlab.com/","product documentation",{"text":245,"config":246},"Best-Practice-Videos",{"href":247,"dataGaName":248,"dataGaLocation":47},"/de-de/getting-started-videos/","best practice videos",{"text":250,"config":251},"Integrationen",{"href":252,"dataGaName":253,"dataGaLocation":47},"/de-de/integrations/","integrations",{"title":255,"items":256},"Entdecken",[257,262,266,271],{"text":258,"config":259},"Kundenerfolge",{"href":260,"dataGaName":261,"dataGaLocation":47},"/de-de/customers/","customer success stories",{"text":263,"config":264},"Blog",{"href":265,"dataGaName":5,"dataGaLocation":47},"/de-de/blog/",{"text":267,"config":268},"Remote",{"href":269,"dataGaName":270,"dataGaLocation":47},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":272,"config":273},"TeamOps",{"href":274,"dataGaName":275,"dataGaLocation":47},"/de-de/teamops/","teamops",{"title":277,"items":278},"Vernetzen",[279,284,289,294,299],{"text":280,"config":281},"GitLab-Services",{"href":282,"dataGaName":283,"dataGaLocation":47},"/de-de/services/","services",{"text":285,"config":286},"Community",{"href":287,"dataGaName":288,"dataGaLocation":47},"/community/","community",{"text":290,"config":291},"Forum",{"href":292,"dataGaName":293,"dataGaLocation":47},"https://forum.gitlab.com/","forum",{"text":295,"config":296},"Veranstaltungen",{"href":297,"dataGaName":298,"dataGaLocation":47},"/events/","events",{"text":300,"config":301},"Partner",{"href":302,"dataGaName":303,"dataGaLocation":47},"/partners/","partners",{"backgroundColor":305,"textColor":306,"text":307,"image":308,"link":312},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":309,"config":310},"the source promo card",{"src":311},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":313,"config":314},"Lies die News",{"href":315,"dataGaName":316,"dataGaLocation":47},"/de-de/the-source/","the source",{"text":318,"config":319,"lists":321},"Unternehmen",{"dataNavLevelOne":320},"company",[322],{"items":323},[324,329,335,337,342,347,352,357,362,367,372],{"text":325,"config":326},"Über",{"href":327,"dataGaName":328,"dataGaLocation":47},"/de-de/company/","about",{"text":330,"config":331,"footerGa":334},"Karriere",{"href":332,"dataGaName":333,"dataGaLocation":47},"/jobs/","jobs",{"dataGaName":333},{"text":295,"config":336},{"href":297,"dataGaName":298,"dataGaLocation":47},{"text":338,"config":339},"Geschäftsführung",{"href":340,"dataGaName":341,"dataGaLocation":47},"/company/team/e-group/","leadership",{"text":343,"config":344},"Team",{"href":345,"dataGaName":346,"dataGaLocation":47},"/company/team/","team",{"text":348,"config":349},"Handbuch",{"href":350,"dataGaName":351,"dataGaLocation":47},"https://handbook.gitlab.com/","handbook",{"text":353,"config":354},"Investor Relations",{"href":355,"dataGaName":356,"dataGaLocation":47},"https://ir.gitlab.com/","investor relations",{"text":358,"config":359},"Trust Center",{"href":360,"dataGaName":361,"dataGaLocation":47},"/de-de/security/","trust center",{"text":363,"config":364},"AI Transparency Center",{"href":365,"dataGaName":366,"dataGaLocation":47},"/de-de/ai-transparency-center/","ai transparency center",{"text":368,"config":369},"Newsletter",{"href":370,"dataGaName":371,"dataGaLocation":47},"/company/contact/","newsletter",{"text":373,"config":374},"Presse",{"href":375,"dataGaName":376,"dataGaLocation":47},"/press/","press",{"text":378,"config":379,"lists":380},"Kontakt",{"dataNavLevelOne":320},[381],{"items":382},[383,386,391],{"text":54,"config":384},{"href":56,"dataGaName":385,"dataGaLocation":47},"talk to sales",{"text":387,"config":388},"Support",{"href":389,"dataGaName":390,"dataGaLocation":47},"/support/","get help",{"text":392,"config":393},"Kundenportal",{"href":394,"dataGaName":395,"dataGaLocation":47},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":397,"login":398,"suggestions":405},"Schließen",{"text":399,"link":400},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":401,"config":402},"gitlab.com",{"href":61,"dataGaName":403,"dataGaLocation":404},"search login","search",{"text":406,"default":407},"Vorschläge",[408,411,416,418,423,428],{"text":76,"config":409},{"href":81,"dataGaName":410,"dataGaLocation":404},"GitLab Duo (AI)",{"text":412,"config":413},"Code Suggestions (KI)",{"href":414,"dataGaName":415,"dataGaLocation":404},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":128,"config":417},{"href":130,"dataGaName":128,"dataGaLocation":404},{"text":419,"config":420},"GitLab auf AWS",{"href":421,"dataGaName":422,"dataGaLocation":404},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":424,"config":425},"GitLab auf Google Cloud",{"href":426,"dataGaName":427,"dataGaLocation":404},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":429,"config":430},"Warum GitLab?",{"href":89,"dataGaName":431,"dataGaLocation":404},"Why GitLab?",{"freeTrial":433,"mobileIcon":438,"desktopIcon":443},{"text":434,"config":435},"Kostenlos testen",{"href":436,"dataGaName":52,"dataGaLocation":437},"https://gitlab.com/-/trials/new/","nav",{"altText":439,"config":440},"GitLab-Symbol",{"src":441,"dataGaName":442,"dataGaLocation":437},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":439,"config":444},{"src":445,"dataGaName":442,"dataGaLocation":437},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":447,"mobileIcon":451,"desktopIcon":453},{"text":448,"config":449},"Erfahre mehr über GitLab Duo",{"href":81,"dataGaName":450,"dataGaLocation":437},"gitlab duo",{"altText":439,"config":452},{"src":441,"dataGaName":442,"dataGaLocation":437},{"altText":439,"config":454},{"src":445,"dataGaName":442,"dataGaLocation":437},"content:shared:de-de:main-navigation.yml","Main Navigation","shared/de-de/main-navigation.yml","shared/de-de/main-navigation",{"_path":460,"_dir":41,"_draft":6,"_partial":6,"_locale":7,"title":461,"button":462,"config":467,"_id":469,"_type":33,"_source":35,"_file":470,"_stem":471,"_extension":38},"/shared/de-de/banner","GitLab Duo Agent Platform ist jetzt in öffentlicher Beta!",{"text":463,"config":464},"Beta testen",{"href":465,"dataGaName":466,"dataGaLocation":47},"/de-de/gitlab-duo/agent-platform/","duo banner",{"layout":468},"release","content:shared:de-de:banner.yml","shared/de-de/banner.yml","shared/de-de/banner",{"_path":473,"_dir":41,"_draft":6,"_partial":6,"_locale":7,"data":474,"_id":677,"_type":33,"title":678,"_source":35,"_file":679,"_stem":680,"_extension":38},"/shared/de-de/main-footer",{"text":475,"source":476,"edit":482,"contribute":487,"config":492,"items":497,"minimal":669},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":477,"config":478},"Quelltext der Seite anzeigen",{"href":479,"dataGaName":480,"dataGaLocation":481},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":483,"config":484},"Diese Seite bearbeiten",{"href":485,"dataGaName":486,"dataGaLocation":481},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":488,"config":489},"Beteilige dich",{"href":490,"dataGaName":491,"dataGaLocation":481},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":493,"facebook":494,"youtube":495,"linkedin":496},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[498,521,576,605,639],{"title":65,"links":499,"subMenu":504},[500],{"text":501,"config":502},"DevSecOps-Plattform",{"href":74,"dataGaName":503,"dataGaLocation":481},"devsecops platform",[505],{"title":208,"links":506},[507,511,516],{"text":508,"config":509},"Tarife anzeigen",{"href":210,"dataGaName":510,"dataGaLocation":481},"view plans",{"text":512,"config":513},"Vorteile von Premium",{"href":514,"dataGaName":515,"dataGaLocation":481},"/de-de/pricing/premium/","why premium",{"text":517,"config":518},"Vorteile von Ultimate",{"href":519,"dataGaName":520,"dataGaLocation":481},"/de-de/pricing/ultimate/","why ultimate",{"title":522,"links":523},"Lösungen",[524,529,532,534,539,544,548,551,554,559,561,563,566,571],{"text":525,"config":526},"Digitale Transformation",{"href":527,"dataGaName":528,"dataGaLocation":481},"/de-de/topics/digital-transformation/","digital transformation",{"text":530,"config":531},"Sicherheit und Compliance",{"href":156,"dataGaName":157,"dataGaLocation":481},{"text":141,"config":533},{"href":124,"dataGaName":125,"dataGaLocation":481},{"text":535,"config":536},"Agile Entwicklung",{"href":537,"dataGaName":538,"dataGaLocation":481},"/de-de/solutions/agile-delivery/","agile delivery",{"text":540,"config":541},"Cloud-Transformation",{"href":542,"dataGaName":543,"dataGaLocation":481},"/de-de/topics/cloud-native/","cloud transformation",{"text":545,"config":546},"SCM",{"href":138,"dataGaName":547,"dataGaLocation":481},"source code management",{"text":128,"config":549},{"href":130,"dataGaName":550,"dataGaLocation":481},"continuous integration & delivery",{"text":180,"config":552},{"href":182,"dataGaName":553,"dataGaLocation":481},"value stream management",{"text":555,"config":556},"GitOps",{"href":557,"dataGaName":558,"dataGaLocation":481},"/de-de/solutions/gitops/","gitops",{"text":193,"config":560},{"href":195,"dataGaName":196,"dataGaLocation":481},{"text":198,"config":562},{"href":200,"dataGaName":201,"dataGaLocation":481},{"text":564,"config":565},"Öffentlicher Sektor",{"href":205,"dataGaName":206,"dataGaLocation":481},{"text":567,"config":568},"Bildungswesen",{"href":569,"dataGaName":570,"dataGaLocation":481},"/de-de/solutions/education/","education",{"text":572,"config":573},"Finanzdienstleistungen",{"href":574,"dataGaName":575,"dataGaLocation":481},"/de-de/solutions/finance/","financial services",{"title":213,"links":577},[578,580,582,584,587,589,591,593,595,597,599,601,603],{"text":225,"config":579},{"href":227,"dataGaName":228,"dataGaLocation":481},{"text":230,"config":581},{"href":232,"dataGaName":233,"dataGaLocation":481},{"text":235,"config":583},{"href":237,"dataGaName":238,"dataGaLocation":481},{"text":240,"config":585},{"href":242,"dataGaName":586,"dataGaLocation":481},"docs",{"text":263,"config":588},{"href":265,"dataGaName":5,"dataGaLocation":481},{"text":258,"config":590},{"href":260,"dataGaName":261,"dataGaLocation":481},{"text":267,"config":592},{"href":269,"dataGaName":270,"dataGaLocation":481},{"text":280,"config":594},{"href":282,"dataGaName":283,"dataGaLocation":481},{"text":272,"config":596},{"href":274,"dataGaName":275,"dataGaLocation":481},{"text":285,"config":598},{"href":287,"dataGaName":288,"dataGaLocation":481},{"text":290,"config":600},{"href":292,"dataGaName":293,"dataGaLocation":481},{"text":295,"config":602},{"href":297,"dataGaName":298,"dataGaLocation":481},{"text":300,"config":604},{"href":302,"dataGaName":303,"dataGaLocation":481},{"title":318,"links":606},[607,609,611,613,615,617,619,623,628,630,632,634],{"text":325,"config":608},{"href":327,"dataGaName":320,"dataGaLocation":481},{"text":330,"config":610},{"href":332,"dataGaName":333,"dataGaLocation":481},{"text":338,"config":612},{"href":340,"dataGaName":341,"dataGaLocation":481},{"text":343,"config":614},{"href":345,"dataGaName":346,"dataGaLocation":481},{"text":348,"config":616},{"href":350,"dataGaName":351,"dataGaLocation":481},{"text":353,"config":618},{"href":355,"dataGaName":356,"dataGaLocation":481},{"text":620,"config":621},"Sustainability",{"href":622,"dataGaName":620,"dataGaLocation":481},"/sustainability/",{"text":624,"config":625},"Vielfalt, Inklusion und Zugehörigkeit",{"href":626,"dataGaName":627,"dataGaLocation":481},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":358,"config":629},{"href":360,"dataGaName":361,"dataGaLocation":481},{"text":368,"config":631},{"href":370,"dataGaName":371,"dataGaLocation":481},{"text":373,"config":633},{"href":375,"dataGaName":376,"dataGaLocation":481},{"text":635,"config":636},"Transparenzerklärung zu moderner Sklaverei",{"href":637,"dataGaName":638,"dataGaLocation":481},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":640,"links":641},"Nimm Kontakt auf",[642,645,647,649,654,659,664],{"text":643,"config":644},"Sprich mit einem Experten/einer Expertin",{"href":56,"dataGaName":57,"dataGaLocation":481},{"text":387,"config":646},{"href":389,"dataGaName":390,"dataGaLocation":481},{"text":392,"config":648},{"href":394,"dataGaName":395,"dataGaLocation":481},{"text":650,"config":651},"Status",{"href":652,"dataGaName":653,"dataGaLocation":481},"https://status.gitlab.com/","status",{"text":655,"config":656},"Nutzungsbedingungen",{"href":657,"dataGaName":658,"dataGaLocation":481},"/terms/","terms of use",{"text":660,"config":661},"Datenschutzerklärung",{"href":662,"dataGaName":663,"dataGaLocation":481},"/de-de/privacy/","privacy statement",{"text":665,"config":666},"Cookie-Einstellungen",{"dataGaName":667,"dataGaLocation":481,"id":668,"isOneTrustButton":110},"cookie preferences","ot-sdk-btn",{"items":670},[671,673,675],{"text":655,"config":672},{"href":657,"dataGaName":658,"dataGaLocation":481},{"text":660,"config":674},{"href":662,"dataGaName":663,"dataGaLocation":481},{"text":665,"config":676},{"dataGaName":667,"dataGaLocation":481,"id":668,"isOneTrustButton":110},"content:shared:de-de:main-footer.yml","Main Footer","shared/de-de/main-footer.yml","shared/de-de/main-footer",[682],{"_path":683,"_dir":684,"_draft":6,"_partial":6,"_locale":7,"content":685,"config":689,"_id":691,"_type":33,"title":692,"_source":35,"_file":693,"_stem":694,"_extension":38},"/en-us/blog/authors/david-oregan","authors",{"name":19,"config":686},{"headshot":687,"ctfId":688},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659853/Blog/Author%20Headshots/oregand-headshot.png","oregand",{"template":690},"BlogAuthor","content:en-us:blog:authors:david-oregan.yml","David Oregan","en-us/blog/authors/david-oregan.yml","en-us/blog/authors/david-oregan",{"_path":696,"_dir":41,"_draft":6,"_partial":6,"_locale":7,"header":697,"eyebrow":698,"blurb":699,"button":700,"secondaryButton":704,"_id":706,"_type":33,"title":707,"_source":35,"_file":708,"_stem":709,"_extension":38},"/shared/de-de/next-steps","Stelle jetzt bessere Software schneller bereit","Mehr als 50 % der Fortune-100-Unternehmen vertrauen GitLab","Erlebe, was dein Team mit der intelligenten\n\n\nDevSecOps-Plattform erreichen kann.\n",{"text":49,"config":701},{"href":702,"dataGaName":52,"dataGaLocation":703},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":54,"config":705},{"href":56,"dataGaName":57,"dataGaLocation":703},"content:shared:de-de:next-steps.yml","Next Steps","shared/de-de/next-steps.yml","shared/de-de/next-steps",1759347763343]