[{"data":1,"prerenderedAt":1482},["ShallowReactive",2],{"/de-de/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd":3,"navigation-de-de":688,"banner-de-de":1119,"footer-de-de":1127,"blog-post-authors-de-de-Rutvik Shah|Michael Friedrich":1367,"blog-related-posts-de-de-developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd":1394,"blog-promotions-de-de":1419,"next-steps-de-de":1472},{"id":4,"title":5,"authors":6,"body":9,"category":664,"date":665,"description":666,"extension":667,"externalUrl":668,"faq":668,"featured":261,"heroImage":669,"meta":670,"navigation":261,"path":671,"seo":672,"slug":678,"stem":679,"tags":680,"template":686,"updatedDate":668,"__hash__":687},"blogPosts/de-de/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd.md","Entwicklung von GitLab Duo: mit KI und Ursachenanalyse zur Problembehebung bei CI/CD-Pipelines",[7,8],"Rutvik Shah","Michael Friedrich",{"type":10,"value":11,"toc":656},"minimark",[12,22,38,49,54,57,60,63,70,73,86,89,102,106,109,114,123,131,137,146,168,279,290,296,309,414,417,423,431,443,470,473,477,495,501,521,542,548,559,563,566,592,597,600,603,609,612,620,623,637,641,644,652],[13,14,15],"p",{},[16,17,18],"em",{},[19,20,21],"strong",{},"Generative KI bedeutet einen monumentalen Wandel in der Softwareindustrie, da sie die Entwicklung, die Sicherheit und den Betrieb von Software vereinfacht. Unsere neue Blog-Reihe, von unseren Produkt- und Entwicklungsteams, gibt einen Einblick darin, wie wir die KI-Funktionalitäten entwickeln, testen und bereitstellen, die in deinem Unternehmen benötigt werden. Lerne neue Funktionen innerhalb von GitLab Duo kennen und erfahre, wie diese DevSecOps-Teams dabei helfen werden, bessere Ergebnisse für Kund(inn)en zu erzielen.",[13,23,24,25,31,32,37],{},"Hattest du schon einmal eine defekte ",[26,27,30],"a",{"href":28,"rel":29},"https://about.gitlab.com/topics/ci-cd/benefits-continuous-integration/",[],"CI/CD-Pipeline"," und musstest deinen DevSecOps-Workflow unterbrechen oder sogar das Deployment verzögern, um die Ursache herauszufinden? Wenn bei der Entwicklung von Software etwas schief läuft, müssen Entwickler(innen) traditionellerweise die Fehler selbst beheben, Logdatei über Logdatei durchforsten und oft viele Behebungsversuche durchführen. Mit der ",[26,33,36],{"href":34,"rel":35},"https://about.gitlab.com/de-de/gitlab-duo-agent-platform/",[],"Ursachenanalyse von GitLab Duo",", die Teil unserer Suite aus KI-Funktionen ist, hat das Rätselraten nun ein Ende, denn diese findet für dich die Ursache einer defekten CI/CD-Pipeline. In diesem Artikel erfährst du, was die Ursachenanalyse ist und wie du die KI-Funktionen von GitLab Duo in deinen DevSecOps-Workflow einbauen kannst.",[39,40,41],"blockquote",{},[13,42,43,44],{},"Entdecke die Zukunft von KI-gestützter Softwareentwicklung mit unserem virtuellen Launch-Event zu GitLab 17. ",[26,45,48],{"href":46,"rel":47},"https://about.gitlab.com/de-de/eighteen/",[],"Jetzt ansehen!",[50,51,53],"h2",{"id":52},"was-ist-eine-ursachenanalyse","Was ist eine Ursachenanalyse?",[13,55,56],{},"Die Ursachenanalyse von GitLab Duo ist eine KI-Funktionalität, die dir dabei hilft, die Grundursache eines fehlerhaften CI/CD-Joblauf herauszufinden. Sie analysiert die Protokolle und schlägt dir dann Möglichkeiten zur Behebung vor. Während die Ursachenanalyse oft im Incident Management angesiedelt ist, sind ihre Workflows und die Fehlersuche Teil eines jeden DevSecOps-Workflows. Ops-Teams, Adminstrator(inn)en und Plattformentwickler(innen) stehen durch Bereitstellungsprobleme, die durch Infrastructure as Code (IaC) entstehen, Kubernetes- und GitOps-Probleme oder durch die lange Nachverfolgung von Stacktraces und Untersuchung von Pipeline-Fehlschlägen vor Herausforderungen.",[13,58,59],{},"Mit der Ursachenanalyse von GitLab Duo nutzen alle dasselbe Interface. Mit Hilfe von KI werden Fehler zusammengefasst, analysiert und Lösungsvorschläge gemacht, damit Unternehmen schneller sichere Software veröffentlichen können.",[13,61,62],{},"Eine Pipeline kann aus verschiedensten Gründen Fehler aufweisen, darunter Syntax-Fehler im Code, fehlende Abhängigkeiten, auf denen die Pipeline basiert, Testfehler während des Build-Vorgangs, Zeitüberschreitungen bei Kubernetes- und IaC-Bereitstellungen sowie zahlreiche weitere Probleme. Wenn solche Probleme auftreten, liegt es in der Verantwortung von allen, die durch die Pipeline erstellten Logs genauestens zu überprüfen. Bei der Überprüfung der Logs wird dann der detaillierte Output untersucht, um spezifische Fehlschläge aufzudecken und die Ursache der defekten Pipeline zu finden. Die folgende Pipeline hat beispielsweise mehrere fehlgeschlagene Jobs, die untersucht und repariert werden müssen.",[13,64,65],{},[66,67],"img",{"alt":68,"src":69},"Bild mit mehreren Job-Ausfällen","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097332601.png",[13,71,72],{},"Es kann unterschiedlich lange dauern, diese Probleme zu beheben. Das hängt zum Großteil von Faktoren wie den folgenden ab:",[74,75,76,80,83],"ul",{},[77,78,79],"li",{},"Wie vertraut die Entwickler(innen) mit dem Projekt sind",[77,81,82],{},"Ihr Erfahrungsniveau beim Umgang mit ähnlichen Problemen",[77,84,85],{},"Ihr allgemeines Kenntnislevel in der Fehlerbehebung im Kontext der Pipeline.",[13,87,88],{},"Die manuelle Analyse kann unglaublich herausfordernd und zeitaufwändig sein, da die Logs aus Anwendungsprotokollen und Systemmeldungen mit einer Vielzahl an Fehlerquellen bestehen. Die typische Behebung einer Pipeline besteht aus mehreren Iterationen und Kontextwechseln. Aufgrund der Komplexität und der unstrukturierten Natur der Protokolle ist dies ein idealer Bereich, in dem generative KI die Arbeit beschleunigen kann. Durch den Einsatz von KI können Fehler in einer Pipeline signifikant schneller erkannt und behoben werden. Außerdem ist weniger Expertise für die Behebung einer Pipeline wie im obigen Beispiel erforderlich.Sieh dir die Ursachenanalyse von GitLab Duo in Aktion an:",[90,91,94,95],"figure",{"className":92},[93],"video_container","\n ",[96,97,101],"iframe",{"src":98,"frameBorder":99,"allowFullScreen":100},"https://www.youtube.com/embed/sTpSLwX5DIs?si=J6-0Bf6PtYjrHX1K","0","true"," ",[50,103,105],{"id":104},"wie-funktioniert-die-ursachenanalyse","Wie funktioniert die Ursachenanalyse?",[13,107,108],{},"Bei der Ursachenanalyse wird ein Teil des CI/CD-Stacktraces an ein GitLab-KI-Gateway weitergeleitet. GitLab stellt sicher, dass der weitergeleitete Teil in die Limitierungen des umfangreichen Sprachmodells (LLM) passt und erstellt einen vorgefertigten Prompt, um herauszufinden, warum der Job fehlgeschlagen sein könnte. Der Prompt weist das LLM außerdem an, ein Beispiel aufzuzeigen, wie ein(e) Benutzer(in) den fehlerhaften Job beheben könnte. Nachfolgend sind zwei Beispielszenarien, in denen die Ursachenanalyse hilfreich sein kann.",[110,111,113],"h4",{"id":112},"_1-analyse-eines-abhängigkeitsfehlers-in-python","1. Analyse eines Abhängigkeitsfehlers in Python",[13,115,116,117,122],{},"Eine Python-Anwendung kann zusätzliche Bibliotheken mit Funktionen importieren, die nicht in der Standardbibliothek enthalten sind. Das Projekt ",[26,118,121],{"href":119,"rel":120},"https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/root-cause-analysis/challenge-root-cause-analysis-python-config",[],"Ursachenanalyse – Python-Konfiguration"," implementiert eine Anwendung, die die Konfiguration parst und eine SQLite-Datenbank initialisiert, wobei beide auch ohne zusätzlich installierte Abhängigkeiten funktionieren. Das Beispiel verwendet Best Practices in CI/CD mit einer Python-Umgebung sowie Cashing. Zuletzt wurde nun ein Redis-Caching-Client hinzugefügt, und jetzt schlägt der CI/CD-Build aus irgendeinem Grund fehl.",[13,124,125,126,130],{},"Durch die Ursachenanalyse erfährst du sofort, dass ",[127,128,129],"code",{},"ModuleNotFoundError"," bedeutet, dass das Modul tatsächlich nicht in der Python-Umgebung installiert ist. GitLab Duo schlägt außerdem einen Fix vor: Installiere das Redis-Modul über den PIP-Paketmanager.",[13,132,133],{},[66,134],{"alt":135,"src":136},"Bild mit „modulenotfounderror“ und Lösungsvorschlag von GL Duo","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097332602.png",[13,138,139,140,145],{},"Die fehlerhafte Pipeline kann ",[26,141,144],{"href":142,"rel":143},"https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/root-cause-analysis/challenge-root-cause-analysis-python-config/-/jobs/6992716398",[],"hier"," eingesehen werden.",[13,147,148,149,152,153,155,156,159,160,163,164,167],{},"Das Ergebnis der Ursachenanalyse gibt eine Zusammenfassung des Problems aus, das offensichtlich ein Fehler mit einem fehlenden ",[127,150,151],{},"redis","-Modul ist. Versuchen wir nun, das Problem zu beheben, indem das ",[127,154,151],{},"-Modul installiert wird. Du kannst entweder ",[127,157,158],{},"pip install redis"," im Abschnitt ",[127,161,162],{},"script"," des CI/CD-Jobs aufrufen oder einen generellen Weg über die Datei ",[127,165,166],{},"requirements.txt"," wählen. Letztere ist nützlich für eine Single Source of Truth (einzige Quelle der Wahrheit) für Abhängigkeiten, die in der Entwicklungsumgebung und in CI/CD-Pipelines installiert wurden.",[169,170,175],"pre",{"className":171,"code":172,"language":173,"meta":174,"style":174},"language-yaml shiki shiki-themes github-light","test:\n  extends: [.python-req]\n  stage: test\n  before_script:\n    # [🦊] hint: Root cause analysis. # Solution 1: Install redis using pip\n    - pip install redis\n    # Solution 2: Add redis to requirements.txt, use pip\n    - pip install -r requirements.txt\n\n  script:\n    - python src/main.py\n\n","yaml","",[127,176,177,190,206,218,226,233,242,248,256,263,271],{"__ignoreMap":174},[178,179,182,186],"span",{"class":180,"line":181},"line",1,[178,183,185],{"class":184},"shJU0","test",[178,187,189],{"class":188},"sgsFI",":\n",[178,191,193,196,199,203],{"class":180,"line":192},2,[178,194,195],{"class":184},"  extends",[178,197,198],{"class":188},": [",[178,200,202],{"class":201},"sYBdl",".python-req",[178,204,205],{"class":188},"]\n",[178,207,209,212,215],{"class":180,"line":208},3,[178,210,211],{"class":184},"  stage",[178,213,214],{"class":188},": ",[178,216,217],{"class":201},"test\n",[178,219,221,224],{"class":180,"line":220},4,[178,222,223],{"class":184},"  before_script",[178,225,189],{"class":188},[178,227,229],{"class":180,"line":228},5,[178,230,232],{"class":231},"sAwPA","    # [🦊] hint: Root cause analysis. # Solution 1: Install redis using pip\n",[178,234,236,239],{"class":180,"line":235},6,[178,237,238],{"class":188},"    - ",[178,240,241],{"class":201},"pip install redis\n",[178,243,245],{"class":180,"line":244},7,[178,246,247],{"class":231},"    # Solution 2: Add redis to requirements.txt, use pip\n",[178,249,251,253],{"class":180,"line":250},8,[178,252,238],{"class":188},[178,254,255],{"class":201},"pip install -r requirements.txt\n",[178,257,259],{"class":180,"line":258},9,[178,260,262],{"emptyLinePlaceholder":261},true,"\n",[178,264,266,269],{"class":180,"line":265},10,[178,267,268],{"class":184},"  script",[178,270,189],{"class":188},[178,272,274,276],{"class":180,"line":273},11,[178,275,238],{"class":188},[178,277,278],{"class":201},"python src/main.py\n",[13,280,281,282,285,286,289],{},"Nachdem du die fehlende Python-Abhängigkeit behoben hast, schlägt der CI/CD-Job erneut fehl. Führe erneut eine Ursachenanalyse durch, um zu erfahren, dass kein Redis-Service den Job ausführt. Wechsle zum GitLab Duo Chat und gib den Prompt ",[127,283,284],{},"How to start a Redis service in CI/CD"," ein, um zu erfahren, wie du das Attribut ",[127,287,288],{},"services"," im CI/CD-Job konfigurierst.",[13,291,292],{},[66,293],{"alt":294,"src":295},"Zeigt die Aufforderung zum Starten eines Redis-Dienstes","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097333/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097332602.png",[13,297,298,299,302,303,305,306,308],{},"Ändere ",[127,300,301],{},".gitlab-ci.yml"," mit dem Job ",[127,304,185],{}," und gib unter service den Dienst ",[127,307,151],{}," an.",[169,310,312],{"className":171,"code":311,"language":173,"meta":174,"style":174},"test:\n  extends: [.python-req]\n  stage: test\n  before_script:\n    # [🦊] hint: Root cause analysis.\n    # Solution 1: Install redis using pip\n    - pip install redis\n    # Solution 2: Add redis to requirements.txt, use pip\n    - pip install -r requirements.txt\n\n  script:\n    - python src/main.py\n\n  # Solution 3 - Running Redis\n  services:\n    - redis\n\n",[127,313,314,320,330,338,344,349,354,360,364,370,374,380,387,392,398,406],{"__ignoreMap":174},[178,315,316,318],{"class":180,"line":181},[178,317,185],{"class":184},[178,319,189],{"class":188},[178,321,322,324,326,328],{"class":180,"line":192},[178,323,195],{"class":184},[178,325,198],{"class":188},[178,327,202],{"class":201},[178,329,205],{"class":188},[178,331,332,334,336],{"class":180,"line":208},[178,333,211],{"class":184},[178,335,214],{"class":188},[178,337,217],{"class":201},[178,339,340,342],{"class":180,"line":220},[178,341,223],{"class":184},[178,343,189],{"class":188},[178,345,346],{"class":180,"line":228},[178,347,348],{"class":231},"    # [🦊] hint: Root cause analysis.\n",[178,350,351],{"class":180,"line":235},[178,352,353],{"class":231},"    # Solution 1: Install redis using pip\n",[178,355,356,358],{"class":180,"line":244},[178,357,238],{"class":188},[178,359,241],{"class":201},[178,361,362],{"class":180,"line":250},[178,363,247],{"class":231},[178,365,366,368],{"class":180,"line":258},[178,367,238],{"class":188},[178,369,255],{"class":201},[178,371,372],{"class":180,"line":265},[178,373,262],{"emptyLinePlaceholder":261},[178,375,376,378],{"class":180,"line":273},[178,377,268],{"class":184},[178,379,189],{"class":188},[178,381,383,385],{"class":180,"line":382},12,[178,384,238],{"class":188},[178,386,278],{"class":201},[178,388,390],{"class":180,"line":389},13,[178,391,262],{"emptyLinePlaceholder":261},[178,393,395],{"class":180,"line":394},14,[178,396,397],{"class":231},"  # Solution 3 - Running Redis\n",[178,399,401,404],{"class":180,"line":400},15,[178,402,403],{"class":184},"  services",[178,405,189],{"class":188},[178,407,409,411],{"class":180,"line":408},16,[178,410,238],{"class":188},[178,412,413],{"class":201},"redis\n",[13,415,416],{},"Wenn der Redis-Server ausgeführt wird, kannst du die Python-Anwendung erfolgreich ausführen und die Ausgabe im CI/CD-Log sehen.",[13,418,419],{},[66,420],{"alt":421,"src":422},"Ausgabe der Python-Anwendung","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097332603.png",[13,424,425,426,145],{},"Die Lösung kann auch im Unterordner in ",[26,427,430],{"href":428,"rel":429},"https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/root-cause-analysis/challenge-root-cause-analysis-python-config/-/tree/main/solution?ref_type=heads",[],"/solution",[13,432,433,436,437,442],{},[19,434,435],{},"Tipp:"," Du kannst den ",[26,438,441],{"href":439,"rel":440},"https://docs.gitlab.com/user/gitlab_duo_chat/",[],"GitLab Duo Chat"," auch bitten, zukünftige Probleme zu verfolgen:",[169,444,448],{"className":445,"code":446,"language":447,"meta":174,"style":174},"language-markdown shiki shiki-themes github-light","How to lint Python code? Which tools are recommended for CI/CD.\nHow to pin a package version in Python requirements file?\nWhat are possible ways that this exception stacktrace is triggered in the future?\nAre there ways to prevent the application from failing?\n","markdown",[127,449,450,455,460,465],{"__ignoreMap":174},[178,451,452],{"class":180,"line":181},[178,453,454],{"class":188},"How to lint Python code? Which tools are recommended for CI/CD.\n",[178,456,457],{"class":180,"line":192},[178,458,459],{"class":188},"How to pin a package version in Python requirements file?\n",[178,461,462],{"class":180,"line":208},[178,463,464],{"class":188},"What are possible ways that this exception stacktrace is triggered in the future?\n",[178,466,467],{"class":180,"line":220},[178,468,469],{"class":188},"Are there ways to prevent the application from failing?\n",[13,471,472],{},"Das nächste Beispiel ist fortgeschrittener und umfasst mehrere Probleme.",[110,474,476],{"id":475},"_2-fehlende-go-laufzeit-analysieren","2. Fehlende Go-Laufzeit analysieren",[13,478,479,480,483,484,486,487,490,491,494],{},"CI/CD-Jobs können in Containern ausgeführt werden, die über das Attribut ",[127,481,482],{},"image"," konfiguriert werden. Wenn der Container keine Programmiersprachen-Laufzeit bereitstellt, schlagen die ausgeführten Kommandos in ",[127,485,162],{},", die auf die Binärdatei ",[127,488,489],{},"go"," referenzieren, fehl. Beispielsweise muss dann die Fehlermeldung ",[127,492,493],{},"/bin/sh: eval: line 149: go: not found"," verstanden und behoben werden.",[13,496,497,498,500],{},"Wenn der Befehl ",[127,499,489],{}," nicht im Laufzeit Kontext des Containers gefunden wird, kann dies mehrere Gründe haben:",[502,503,504,511,518],"ol",{},[77,505,506,507,510],{},"Der Job verwendet ein minimales Container-Image, z. B. ",[127,508,509],{},"alpine",", und die Go-Laufzeit wurde nicht installiert.",[77,512,513,514,517],{},"Der Job verwendet das falsche Standard-Container-Image, z. B. das oben in der CI/CD-Konfiguration angegebene oder das Schlüsselwort ",[127,515,516],{},"default",".",[77,519,520],{},"Der Job verwendet kein Container-Image, sondern den Shell Executor. Auf dem Host-Betriebssystem ist die Go-Laufzeit nicht installiert oder ist anderweitig defekt/nicht konfiguriert.",[13,522,523,524,529,530,533,534,537,538,541],{},"Das Projekt ",[26,525,528],{"href":526,"rel":527},"https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/root-cause-analysis/challenge-root-cause-analysis-go-gitlab-release-fetcher",[],"Ursachenanalyse – Go GitLab Release Fetcher"," bietet ein Übungsprojekt zur Analyse und Behebung von CI/CD-Problemen mit einer in Go geschriebenen GitLab-Release-Fetcher-Anwendung. Die CI/CD-Jobs ",[127,531,532],{},"build"," und ",[127,535,536],{},"docker-build"," schlagen fehl. Für die Behebung des Problems sind verschiedene Voraussetzungen erforderlich: Du musst verstehen, warum die Go-Laufzeit nicht installiert ist, und etwas über die Syntax ",[127,539,540],{},"Dockerfile"," erfahren.",[13,543,544],{},[66,545],{"alt":546,"src":547},"Screenshot zeigt den fehlgeschlagenen Job „Change Docker Label“","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097332603.png",[13,549,550,551,558],{},"Das ",[26,552,554,557],{"href":526,"rel":553},[],[127,555,556],{},"solution/","-Verzeichnis"," bietet nach der Ursachenanalyse zwei mögliche Lösungen.",[50,560,562],{"id":561},"probiere-die-ursachenanalyse-aus","Probiere die Ursachenanalyse aus",[13,564,565],{},"Die folgenden Szenarien kannst du verwenden, um die Ursachenanalyse auszuprobieren.",[74,567,568,571,574,577,580,583,586,589],{},[77,569,570],{},"Wenn du auf Kubernetes-Bereitstellungsfehler oder Zeitüberschreitungen stößt.",[77,572,573],{},"Wenn OpenTofu- oder Terraform-IAC-Pipelines die Cloud-Ressourcen nicht bereitstellen können.",[77,575,576],{},"Wenn das Ansible-Playbook mit einem kryptischen Berechtigungsfehler in CI/CD fehlschlägt.",[77,578,579],{},"Wenn der Java Stacktracer 10 Seiten lang ist.",[77,581,582],{},"Mit einem Shell-Skript, das einen Ausführungsfehler provoziert.",[77,584,585],{},"Wenn ein Perl-Skript in einer Zeile fehlschlägt, die die einzige Zeile im Skript ist.",[77,587,588],{},"Wenn der CI/CD-Job eine Zeitüberschreitung aufweist und nicht klar ist, welcher Abschnitt diese verursacht.",[77,590,591],{},"Wenn eine Zeitüberschreitung der Netzwerkverbindung erreicht wird und du denkst, dass es kein DNS sein kann.",[593,594,596],"h3",{"id":595},"wie-geht-es-mit-der-ursachenanalyse-von-gitlab-duo-in-zukunft-weiter","Wie geht es mit der Ursachenanalyse von GitLab Duo in Zukunft weiter?",[13,598,599],{},"Wir wollen unseren Nutzer(inne)n langfristig helfen, ihre Pipelines in weniger Iterationen und schneller zu reparieren. Die Ursachenanalyse wird dabei in GitLab Duo Chat, unserem KI Assistenten, geöffnet und zeigt die Antwort dort. Benutzer(innen) können die Empfehlung dann direkt verwenden oder weiter mit dem Chat agieren, indem sie spezifische, weiterführende Fragen stellen (z. B. spezifische Fixes für eine bestimmte Programmiersprache) oder indem sie je nach Ursache nach alternativen Lösungen fragen.",[13,601,602],{},"Zum Beispiel ist hier die Ursachenanalyse für einen fehlgeschlagenen Job:",[13,604,605],{},[66,606],{"alt":607,"src":608},"Antwort auf die Grundursachenanalyse","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097332603.png",[13,610,611],{},"Benutzer(innen) können Folgefragen stellen, die auf der von der KI generierten Antwort basieren.",[74,613,614,617],{},[77,615,616],{},"Ich möchte kein eigenes Docker Image erstellen. Bitte erkläre mir andere Möglichkeiten, das Problem zu beheben.",[77,618,619],{},"Ich habe keinen Zugriff auf die Docker-Image-Erstellung. Es sieht so aus, als würde die Go-Binärdatei fehlen. Gibt es alternative Images, die du vorschlagen kannst?",[13,621,622],{},"GitLab führt außerdem Qualitäts-Vergleiche für die erstellten Antworten durch, um das Nutzererlebnis langfristig zu verbessern.",[13,624,625,626,631,632,517],{},"Weitere Informationen findest du in unserem ",[26,627,630],{"href":628,"rel":629},"https://gitlab.com/groups/gitlab-org/-/epics/13080",[],"Epic zur Ursachenanalyse",". Wir würden uns auch über dein Feedback zu dieser Funktionalität freuen. Bitte hinterlasst dafür einen Kommentar in unserem ",[26,633,636],{"href":634,"rel":635},"https://gitlab.com/groups/gitlab-org/-/epics/13872",[],"Feedback-Ticket zur Ursachenanalyse",[50,638,640],{"id":639},"erste-schritte-mit-der-ursachenanalyse","Erste Schritte mit der Ursachenanalyse",[13,642,643],{},"In unserer Dokumentation findest du Informationen dazu, wie du die Funktion als GitLab-Ultimate-Kund(inn)en aktivieren kannst. Außerdem ist die Ursachenanalyse von GitLab Duo bald in GitLab Self-Managed und GitLab Dedicated verfügbar.",[13,645,646,647,517],{},"Bist du kein(e) GitLab-Ultimate-Kunde/Kundin? Starte jetzt ",[26,648,651],{"href":649,"rel":650},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/blog&glm_content=default-saas-trial",[],"deine kostenlose Testversion",[653,654,655],"style",{},"html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":174,"searchDepth":192,"depth":192,"links":657},[658,659,660,663],{"id":52,"depth":192,"text":53},{"id":104,"depth":192,"text":105},{"id":561,"depth":192,"text":562,"children":661},[662],{"id":595,"depth":208,"text":596},{"id":639,"depth":192,"text":640},"ai","2024-06-06","Entdecke, wie wir die Ursachenanalyse mit KI aufgepeppt haben, um fehlerhafte CI/CD-Pipelines wieder zum Laufen zu bringen. Dabei erwarten dich Beispiele und Übungen, die du selbst ausprobieren kannst.","md",null,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097321/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750097321081.png",{},"/de-de/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd",{"ogTitle":673,"ogImage":669,"ogDescription":666,"ogSiteName":674,"noIndex":675,"ogType":676,"ogUrl":677,"title":673,"canonicalUrls":677,"description":666},"GitLab Duo – die KI löst Probleme bei CI/CD-Pipelines ","https://about.gitlab.com",false,"article","https://about.gitlab.com/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd","developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd","de-de/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd",[681,682,683,684,685],"AI","tutorial","DevSecOps","DevSecOps platform","features","BlogPost","xMpfg0BCZYUg7WKL3WM1zYELuCg_cRtVoEkYwOHHLEc",{"logo":689,"freeTrial":694,"sales":699,"login":704,"items":709,"search":1037,"minimal":1071,"duo":1089,"switchNav":1098,"pricingDeployment":1109},{"config":690},{"href":691,"dataGaName":692,"dataGaLocation":693},"/de-de/","gitlab logo","header",{"text":695,"config":696},"Kostenlose Testversion anfordern",{"href":697,"dataGaName":698,"dataGaLocation":693},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":700,"config":701},"Demo anfordern",{"href":702,"dataGaName":703,"dataGaLocation":693},"/de-de/sales/?contact-topic=request-demo","sales",{"text":705,"config":706},"Anmelden",{"href":707,"dataGaName":708,"dataGaLocation":693},"https://gitlab.com/users/sign_in/","sign in",[710,739,841,846,959,1015],{"text":711,"config":712,"menu":714},"Plattform",{"dataNavLevelOne":713},"platform",{"type":715,"columns":716},"cards",[717,723,731],{"title":711,"description":718,"link":719},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":720,"config":721},"Die Plattform erkunden",{"href":722,"dataGaName":713,"dataGaLocation":693},"/de-de/platform/",{"title":724,"description":725,"link":726},"GitLab Duo Agent Platform","Agentische KI für den gesamten Software-Lebenszyklus",{"text":727,"config":728},"Lerne GitLab Duo kennen",{"href":729,"dataGaName":730,"dataGaLocation":693},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":732,"description":733,"link":734},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":735,"config":736},"Mehr erfahren",{"href":737,"dataGaName":738,"dataGaLocation":693},"/de-de/why-gitlab/","why gitlab",{"text":740,"left":261,"config":741,"menu":743},"Produkt",{"dataNavLevelOne":742},"solutions",{"type":744,"link":745,"columns":749,"feature":820},"lists",{"text":746,"config":747},"Alle Lösungen anzeigen",{"href":748,"dataGaName":742,"dataGaLocation":693},"/de-de/solutions/",[750,775,798],{"title":751,"description":752,"link":753,"items":758},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":754},{"icon":755,"href":756,"dataGaName":757,"dataGaLocation":693},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[759,763,766,771],{"text":760,"config":761},"CI/CD",{"href":762,"dataGaLocation":693,"dataGaName":760},"/de-de/solutions/continuous-integration/",{"text":724,"config":764},{"href":729,"dataGaLocation":693,"dataGaName":765},"gitlab duo agent platform - product menu",{"text":767,"config":768},"Quellcodeverwaltung",{"href":769,"dataGaLocation":693,"dataGaName":770},"/de-de/solutions/source-code-management/","Source Code Management",{"text":772,"config":773},"Automatische Softwarebereitstellung",{"href":756,"dataGaLocation":693,"dataGaName":774},"Automated software delivery",{"title":776,"description":777,"link":778,"items":783},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":779},{"href":780,"dataGaName":781,"dataGaLocation":693,"icon":782},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[784,788,793],{"text":785,"config":786},"Anwendungssicherheitstests",{"href":780,"dataGaName":787,"dataGaLocation":693},"Application security testing",{"text":789,"config":790},"Schutz der Software-Lieferkette",{"href":791,"dataGaLocation":693,"dataGaName":792},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":794,"config":795},"Software-Compliance",{"href":796,"dataGaName":797,"dataGaLocation":693},"/de-de/solutions/software-compliance/","software compliance",{"title":799,"link":800,"items":805},"Messung",{"config":801},{"icon":802,"href":803,"dataGaName":804,"dataGaLocation":693},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[806,810,815],{"text":807,"config":808},"Sichtbarkeit und Messung",{"href":803,"dataGaLocation":693,"dataGaName":809},"Visibility and Measurement",{"text":811,"config":812},"Wertstrommanagement",{"href":813,"dataGaLocation":693,"dataGaName":814},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":816,"config":817},"Analysen und Einblicke",{"href":818,"dataGaLocation":693,"dataGaName":819},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":821,"type":744,"items":822},"GitLab für",[823,829,835],{"text":824,"config":825},"Enterprise",{"icon":826,"href":827,"dataGaLocation":693,"dataGaName":828},"Building","/de-de/enterprise/","enterprise",{"text":830,"config":831},"Kleinunternehmen",{"icon":832,"href":833,"dataGaLocation":693,"dataGaName":834},"Work","/de-de/small-business/","small business",{"text":836,"config":837},"Öffentlicher Sektor",{"icon":838,"href":839,"dataGaLocation":693,"dataGaName":840},"Organization","/de-de/solutions/public-sector/","public sector",{"text":842,"config":843},"Preise",{"href":844,"dataGaName":845,"dataGaLocation":693,"dataNavLevelOne":845},"/de-de/pricing/","pricing",{"text":847,"config":848,"menu":850},"Ressourcen",{"dataNavLevelOne":849},"resources",{"type":744,"link":851,"columns":855,"feature":948},{"text":852,"config":853},"Alle Ressourcen anzeigen",{"href":854,"dataGaName":849,"dataGaLocation":693},"/de-de/resources/",[856,889,916],{"title":857,"items":858},"Erste Schritte",[859,864,869,874,879,884],{"text":860,"config":861},"Installieren",{"href":862,"dataGaName":863,"dataGaLocation":693},"/de-de/install/","install",{"text":865,"config":866},"Kurzanleitungen",{"href":867,"dataGaName":868,"dataGaLocation":693},"/de-de/get-started/","quick setup checklists",{"text":870,"config":871},"Lernen",{"href":872,"dataGaLocation":693,"dataGaName":873},"https://university.gitlab.com/","learn",{"text":875,"config":876},"Produktdokumentation",{"href":877,"dataGaName":878,"dataGaLocation":693},"https://docs.gitlab.com/","product documentation",{"text":880,"config":881},"Best-Practice-Videos",{"href":882,"dataGaName":883,"dataGaLocation":693},"/de-de/getting-started-videos/","best practice videos",{"text":885,"config":886},"Integrationen",{"href":887,"dataGaName":888,"dataGaLocation":693},"/de-de/integrations/","integrations",{"title":890,"items":891},"Entdecken",[892,897,902,907,911],{"text":893,"config":894},"Kundenerfolge",{"href":895,"dataGaName":896,"dataGaLocation":693},"/de-de/customers/","customer success stories",{"text":898,"config":899},"Blog",{"href":900,"dataGaName":901,"dataGaLocation":693},"/de-de/blog/","blog",{"text":903,"config":904},"Demo-Hub",{"href":905,"dataGaName":906,"dataGaLocation":693},"/de-de/demo-hub/","demo hub",{"text":908,"config":909},"The Source",{"href":910,"dataGaName":901,"dataGaLocation":693},"/de-de/the-source/",{"text":912,"config":913},"Remote",{"href":914,"dataGaName":915,"dataGaLocation":693},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":917,"items":918},"Vernetzen",[919,923,928,933,938,943],{"text":920,"config":921},"GitLab-Services",{"href":922,"dataGaName":288,"dataGaLocation":693},"/de-de/services/",{"text":924,"config":925},"Beitragen",{"href":926,"dataGaName":927,"dataGaLocation":693},"https://contributors.gitlab.com","contribute",{"text":929,"config":930},"Community",{"href":931,"dataGaName":932,"dataGaLocation":693},"/community/","community",{"text":934,"config":935},"Forum",{"href":936,"dataGaName":937,"dataGaLocation":693},"https://forum.gitlab.com/","forum",{"text":939,"config":940},"Veranstaltungen",{"href":941,"dataGaName":942,"dataGaLocation":693},"/events/","events",{"text":944,"config":945},"Partner",{"href":946,"dataGaName":947,"dataGaLocation":693},"/de-de/partners/","partners",{"config":949,"title":952,"text":953,"link":954},{"background":950,"textColor":951},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Neues bei GitLab","Über die neuesten Funktionen und Verbesserungen auf dem Laufenden bleiben.",{"text":955,"config":956},"Aktuelle Nachrichten",{"href":957,"dataGaName":958,"dataGaLocation":693},"/de-de/whats-new/","whats new",{"text":960,"config":961,"menu":963},"Unternehmen",{"dataNavLevelOne":962},"company",{"type":744,"columns":964},[965],{"items":966},[967,972,978,980,985,990,995,1000,1005,1010],{"text":968,"config":969},"Über",{"href":970,"dataGaName":971,"dataGaLocation":693},"/de-de/company/","about",{"text":973,"config":974,"footerGa":977},"Karriere",{"href":975,"dataGaName":976,"dataGaLocation":693},"/jobs/","jobs",{"dataGaName":976},{"text":939,"config":979},{"href":941,"dataGaName":942,"dataGaLocation":693},{"text":981,"config":982},"Geschäftsführung",{"href":983,"dataGaName":984,"dataGaLocation":693},"/company/team/e-group/","leadership",{"text":986,"config":987},"Handbuch",{"href":988,"dataGaName":989,"dataGaLocation":693},"https://handbook.gitlab.com/","handbook",{"text":991,"config":992},"Investor Relations",{"href":993,"dataGaName":994,"dataGaLocation":693},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":996,"config":997},"Trust Center",{"href":998,"dataGaName":999,"dataGaLocation":693},"/de-de/security/","trust center",{"text":1001,"config":1002},"AI Transparency Center",{"href":1003,"dataGaName":1004,"dataGaLocation":693},"/de-de/ai-transparency-center/","ai transparency center",{"text":1006,"config":1007},"Newsletter",{"href":1008,"dataGaName":1009,"dataGaLocation":693},"/company/contact/#contact-forms","newsletter",{"text":1011,"config":1012},"Presse",{"href":1013,"dataGaName":1014,"dataGaLocation":693},"/press/","press",{"text":1016,"config":1017,"menu":1018},"Kontakt",{"dataNavLevelOne":962},{"type":744,"columns":1019},[1020],{"items":1021},[1022,1027,1032],{"text":1023,"config":1024},"Vertrieb kontaktieren",{"href":1025,"dataGaName":1026,"dataGaLocation":693},"/de-de/sales/","talk to sales",{"text":1028,"config":1029},"Support-Portal",{"href":1030,"dataGaName":1031,"dataGaLocation":693},"https://support.gitlab.com/hc/en-us","support portal",{"text":1033,"config":1034},"Kundenportal",{"href":1035,"dataGaName":1036,"dataGaLocation":693},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1038,"login":1039,"suggestions":1046},"Schließen",{"text":1040,"link":1041},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":1042,"config":1043},"gitlab.com",{"href":707,"dataGaName":1044,"dataGaLocation":1045},"search login","search",{"text":1047,"default":1048},"Vorschläge",[1049,1051,1056,1058,1063,1068],{"text":724,"config":1050},{"href":729,"dataGaName":724,"dataGaLocation":1045},{"text":1052,"config":1053},"Codevorschläge (KI)",{"href":1054,"dataGaName":1055,"dataGaLocation":1045},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":760,"config":1057},{"href":762,"dataGaName":760,"dataGaLocation":1045},{"text":1059,"config":1060},"GitLab auf AWS",{"href":1061,"dataGaName":1062,"dataGaLocation":1045},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":1064,"config":1065},"GitLab auf Google Cloud",{"href":1066,"dataGaName":1067,"dataGaLocation":1045},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":732,"config":1069},{"href":737,"dataGaName":1070,"dataGaLocation":1045},"Why GitLab?",{"freeTrial":1072,"mobileIcon":1077,"desktopIcon":1082,"secondaryButton":1085},{"text":1073,"config":1074},"Kostenlos testen",{"href":1075,"dataGaName":698,"dataGaLocation":1076},"https://gitlab.com/-/trials/new/","nav",{"altText":1078,"config":1079},"GitLab-Symbol",{"src":1080,"dataGaName":1081,"dataGaLocation":1076},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1078,"config":1083},{"src":1084,"dataGaName":1081,"dataGaLocation":1076},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":857,"config":1086},{"href":1087,"dataGaName":1088,"dataGaLocation":1076},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":1090,"mobileIcon":1094,"desktopIcon":1096},{"text":1091,"config":1092},"Mehr über GitLab Duo erfahren",{"href":729,"dataGaName":1093,"dataGaLocation":1076},"gitlab duo",{"altText":1078,"config":1095},{"src":1080,"dataGaName":1081,"dataGaLocation":1076},{"altText":1078,"config":1097},{"src":1084,"dataGaName":1081,"dataGaLocation":1076},{"button":1099,"mobileIcon":1104,"desktopIcon":1106},{"text":1100,"config":1101},"/Option",{"href":1102,"dataGaName":1103,"dataGaLocation":1076},"#contact","switch",{"altText":1078,"config":1105},{"src":1080,"dataGaName":1081,"dataGaLocation":1076},{"altText":1078,"config":1107},{"src":1108,"dataGaName":1081,"dataGaLocation":1076},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1110,"mobileIcon":1115,"desktopIcon":1117},{"text":1111,"config":1112},"Zurück zur Preisübersicht",{"href":844,"dataGaName":1113,"dataGaLocation":1076,"icon":1114},"back to pricing","GoBack",{"altText":1078,"config":1116},{"src":1080,"dataGaName":1081,"dataGaLocation":1076},{"altText":1078,"config":1118},{"src":1084,"dataGaName":1081,"dataGaLocation":1076},{"title":1120,"button":1121,"config":1125},"GitLab Orbit ist da: die Kontextebene für KI-Agenten",{"text":735,"config":1122},{"href":1123,"dataGaName":1124,"dataGaLocation":693},"/de-de/gitlab-orbit/","orbit",{"layout":1126,"disabled":675},"release",{"data":1128},{"text":1129,"source":1130,"edit":1136,"contribute":1141,"config":1146,"items":1151,"minimal":1356},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":1131,"config":1132},"Quelltext der Seite anzeigen",{"href":1133,"dataGaName":1134,"dataGaLocation":1135},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1137,"config":1138},"Diese Seite bearbeiten",{"href":1139,"dataGaName":1140,"dataGaLocation":1135},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1142,"config":1143},"Beteilige dich",{"href":1144,"dataGaName":1145,"dataGaLocation":1135},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1147,"facebook":1148,"youtube":1149,"linkedin":1150},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1152,1197,1249,1291,1323],{"title":842,"links":1153,"subMenu":1168},[1154,1158,1163],{"text":1155,"config":1156},"Tarife anzeigen",{"href":844,"dataGaName":1157,"dataGaLocation":1135},"view plans",{"text":1159,"config":1160},"Vorteile von Premium",{"href":1161,"dataGaName":1162,"dataGaLocation":1135},"/de-de/pricing/premium/","why premium",{"text":1164,"config":1165},"Vorteile von Ultimate",{"href":1166,"dataGaName":1167,"dataGaLocation":1135},"/de-de/pricing/ultimate/","why ultimate",[1169],{"title":1016,"links":1170},[1171,1173,1175,1177,1182,1187,1192],{"text":1023,"config":1172},{"href":1025,"dataGaName":703,"dataGaLocation":1135},{"text":1028,"config":1174},{"href":1030,"dataGaName":1031,"dataGaLocation":1135},{"text":1033,"config":1176},{"href":1035,"dataGaName":1036,"dataGaLocation":1135},{"text":1178,"config":1179},"Status",{"href":1180,"dataGaName":1181,"dataGaLocation":1135},"https://status.gitlab.com/","status",{"text":1183,"config":1184},"Nutzungsbedingungen",{"href":1185,"dataGaName":1186,"dataGaLocation":1135},"/terms/","terms of use",{"text":1188,"config":1189},"Datenschutzerklärung",{"href":1190,"dataGaName":1191,"dataGaLocation":1135},"/de-de/privacy/","privacy statement",{"text":1193,"config":1194},"Cookie-Einstellungen",{"dataGaName":1195,"dataGaLocation":1135,"id":1196,"isOneTrustButton":261},"cookie preferences","ot-sdk-btn",{"title":740,"links":1198,"subMenu":1207},[1199,1203],{"text":1200,"config":1201},"DevSecOps-Plattform",{"href":722,"dataGaName":1202,"dataGaLocation":1135},"devsecops platform",{"text":1204,"config":1205},"KI-unterstützte Entwicklung",{"href":729,"dataGaName":1206,"dataGaLocation":1135},"ai-assisted development",[1208],{"title":1209,"links":1210},"Themen",[1211,1215,1220,1225,1230,1234,1239,1244],{"text":760,"config":1212},{"href":1213,"dataGaName":1214,"dataGaLocation":1135},"/de-de/topics/ci-cd/","cicd",{"text":1216,"config":1217},"GitOps",{"href":1218,"dataGaName":1219,"dataGaLocation":1135},"/de-de/topics/gitops/","gitops",{"text":1221,"config":1222},"DevOps",{"href":1223,"dataGaName":1224,"dataGaLocation":1135},"/de-de/topics/devops/","devops",{"text":1226,"config":1227},"Versionskontrolle",{"href":1228,"dataGaName":1229,"dataGaLocation":1135},"/de-de/topics/version-control/","version control",{"text":683,"config":1231},{"href":1232,"dataGaName":1233,"dataGaLocation":1135},"/de-de/topics/devsecops/","devsecops",{"text":1235,"config":1236},"Cloud-nativ",{"href":1237,"dataGaName":1238,"dataGaLocation":1135},"/de-de/topics/cloud-native/","cloud native",{"text":1240,"config":1241},"KI für das Programmieren",{"href":1242,"dataGaName":1243,"dataGaLocation":1135},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":1245,"config":1246},"Agentische KI",{"href":1247,"dataGaName":1248,"dataGaLocation":1135},"/de-de/topics/agentic-ai/","agentic ai",{"title":1250,"links":1251},"Lösungen",[1252,1255,1257,1262,1266,1269,1272,1275,1277,1279,1281,1286],{"text":785,"config":1253},{"href":780,"dataGaName":1254,"dataGaLocation":1135},"Application Security Testing",{"text":772,"config":1256},{"href":756,"dataGaName":757,"dataGaLocation":1135},{"text":1258,"config":1259},"Agile Entwicklung",{"href":1260,"dataGaName":1261,"dataGaLocation":1135},"/de-de/solutions/agile-delivery/","agile delivery",{"text":1263,"config":1264},"SCM",{"href":769,"dataGaName":1265,"dataGaLocation":1135},"source code management",{"text":760,"config":1267},{"href":762,"dataGaName":1268,"dataGaLocation":1135},"continuous integration & delivery",{"text":811,"config":1270},{"href":813,"dataGaName":1271,"dataGaLocation":1135},"value stream management",{"text":1216,"config":1273},{"href":1274,"dataGaName":1219,"dataGaLocation":1135},"/de-de/solutions/gitops/",{"text":824,"config":1276},{"href":827,"dataGaName":828,"dataGaLocation":1135},{"text":830,"config":1278},{"href":833,"dataGaName":834,"dataGaLocation":1135},{"text":836,"config":1280},{"href":839,"dataGaName":840,"dataGaLocation":1135},{"text":1282,"config":1283},"Bildungswesen",{"href":1284,"dataGaName":1285,"dataGaLocation":1135},"/de-de/solutions/education/","education",{"text":1287,"config":1288},"Finanzdienstleistungen",{"href":1289,"dataGaName":1290,"dataGaLocation":1135},"/de-de/solutions/finance/","financial services",{"title":847,"links":1292},[1293,1295,1297,1299,1302,1304,1307,1309,1311,1313,1315,1317,1319,1321],{"text":860,"config":1294},{"href":862,"dataGaName":863,"dataGaLocation":1135},{"text":865,"config":1296},{"href":867,"dataGaName":868,"dataGaLocation":1135},{"text":870,"config":1298},{"href":872,"dataGaName":873,"dataGaLocation":1135},{"text":875,"config":1300},{"href":877,"dataGaName":1301,"dataGaLocation":1135},"docs",{"text":898,"config":1303},{"href":900,"dataGaName":901,"dataGaLocation":1135},{"text":1305,"config":1306},"Neuerungen",{"href":957,"dataGaName":958,"dataGaLocation":1135},{"text":893,"config":1308},{"href":895,"dataGaName":896,"dataGaLocation":1135},{"text":912,"config":1310},{"href":914,"dataGaName":915,"dataGaLocation":1135},{"text":920,"config":1312},{"href":922,"dataGaName":288,"dataGaLocation":1135},{"text":924,"config":1314},{"href":926,"dataGaName":927,"dataGaLocation":1135},{"text":929,"config":1316},{"href":931,"dataGaName":932,"dataGaLocation":1135},{"text":934,"config":1318},{"href":936,"dataGaName":937,"dataGaLocation":1135},{"text":939,"config":1320},{"href":941,"dataGaName":942,"dataGaLocation":1135},{"text":944,"config":1322},{"href":946,"dataGaName":947,"dataGaLocation":1135},{"title":960,"links":1324},[1325,1327,1329,1331,1333,1335,1340,1345,1347,1349,1351],{"text":968,"config":1326},{"href":970,"dataGaName":962,"dataGaLocation":1135},{"text":973,"config":1328},{"href":975,"dataGaName":976,"dataGaLocation":1135},{"text":981,"config":1330},{"href":983,"dataGaName":984,"dataGaLocation":1135},{"text":986,"config":1332},{"href":988,"dataGaName":989,"dataGaLocation":1135},{"text":991,"config":1334},{"href":993,"dataGaName":994,"dataGaLocation":1135},{"text":1336,"config":1337},"Nachhaltigkeit",{"href":1338,"dataGaName":1339,"dataGaLocation":1135},"/sustainability/","Sustainability",{"text":1341,"config":1342},"Vielfalt, Inklusion und Zugehörigkeit",{"href":1343,"dataGaName":1344,"dataGaLocation":1135},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":996,"config":1346},{"href":998,"dataGaName":999,"dataGaLocation":1135},{"text":1006,"config":1348},{"href":1008,"dataGaName":1009,"dataGaLocation":1135},{"text":1011,"config":1350},{"href":1013,"dataGaName":1014,"dataGaLocation":1135},{"text":1352,"config":1353},"Transparenzerklärung zu moderner Sklaverei",{"href":1354,"dataGaName":1355,"dataGaLocation":1135},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1357},[1358,1361,1364],{"text":1359,"config":1360},"Terms",{"href":1185,"dataGaName":1186,"dataGaLocation":1135},{"text":1362,"config":1363},"Cookies",{"dataGaName":1195,"dataGaLocation":1135,"id":1196,"isOneTrustButton":261},{"text":1365,"config":1366},"Datenschutz",{"href":1190,"dataGaName":1191,"dataGaLocation":1135},[1368,1382],{"id":1369,"title":7,"body":668,"config":1370,"content":1372,"description":668,"extension":1376,"meta":1377,"navigation":261,"path":1378,"seo":1379,"stem":1380,"__hash__":1381},"blogAuthors/en-us/blog/authors/rutvik-shah.yml",{"template":1371},"BlogAuthor",{"name":7,"config":1373},{"headshot":1374,"ctfId":1375},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661843/Blog/Author%20Headshots/rutvik_shah_headshot.png","6co92rUBTbWcyV3EW23iEx","yml",{},"/en-us/blog/authors/rutvik-shah",{},"en-us/blog/authors/rutvik-shah","JRArwqK-9V0Orki_E-QqmcQG2AsaZP6XGqa-9ZB6GR8",{"id":1383,"title":8,"body":668,"config":1384,"content":1385,"description":668,"extension":1376,"meta":1389,"navigation":261,"path":1390,"seo":1391,"stem":1392,"__hash__":1393},"blogAuthors/en-us/blog/authors/michael-friedrich.yml",{"template":1371},{"name":8,"config":1386},{"headshot":1387,"ctfId":1388},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659879/Blog/Author%20Headshots/dnsmichi-headshot.jpg","dnsmichi",{},"/en-us/blog/authors/michael-friedrich",{},"en-us/blog/authors/michael-friedrich","lJ-nfRIhdG49Arfrxdn1Vv4UppwD51BB13S3HwIswt4",[1395,1403,1411],{"title":1396,"description":1397,"heroImage":1398,"category":664,"date":1399,"authors":1400,"slug":1402,"externalUrl":668},"Wie ich einen Demo-Generator mit Duo Agent Platform baute","So sahen Demos nicht immer aus. Ein Rückblick auf ihre Entwicklung, plus ein Tutorial zum Bau einer eigenen Demo und eines eigenen Agenten.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-08-13",[1401],"Itzik Gan Baruch","agentic-click-through-demo",{"title":1404,"description":1405,"heroImage":1406,"category":664,"date":1407,"authors":1408,"slug":1410,"externalUrl":668},"Governance für agentische KI, MCPs und KI-Code-Assistenten","KI-Agenten schreiben, pushen und deployen, ohne dass jeder Schritt geprüft wird. Ein praktisches Framework für Zugriff, Berechtigungen und Audit-Trails.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785337625/ifzlc2hyzaxhzmjgyymh.png","2026-07-31",[1409],"Julie Griffin","govern-agentic-ai-mcps-code-assistants",{"title":1412,"description":1413,"heroImage":1414,"category":664,"date":1415,"authors":1416,"slug":1418,"externalUrl":668},"Claude Opus 5 auf GitLab: Reasoning für die anspruchsvollsten Aufgaben","Anthropics Claude Opus 5 ist jetzt auf der GitLab Duo Agent Platform verfügbar und bringt tieferes Reasoning für die anspruchsvollsten Aufgaben.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-07-27",[1417],"Brittany Lutz","claude-opus-5-on-gitlab-duo-agent-platform",{"promotions":1420},[1421,1434,1446,1458],{"id":1422,"categories":1423,"header":1424,"text":1425,"button":1426,"image":1431},"ai-modernization",[664],"Hält KI, was uns versprochen wurde?","Das Quiz dauert maximal 5 Minuten.",{"text":1427,"config":1428},"Ermittle deinen KI-Reifegrad",{"href":1429,"dataGaName":1430,"dataGaLocation":901},"/de-de/assessments/ai-modernization-assessment/","modernization assessment",{"config":1432},{"src":1433},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1435,"categories":1436,"header":1438,"text":1425,"button":1439,"image":1443},"devops-modernization",[1437,1233],"product","Verwaltest du Tool-Chaos oder stellst du Innovationen bereit?",{"text":1440,"config":1441},"Ermittle deinen DevOps-Reifegrad",{"href":1442,"dataGaName":1430,"dataGaLocation":901},"/de-de/assessments/devops-modernization-assessment/",{"config":1444},{"src":1445},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1447,"categories":1448,"header":1450,"text":1425,"button":1451,"image":1455},"security-modernization",[1449],"security","Tauschst du Schnelligkeit gegen Sicherheit ein?",{"text":1452,"config":1453},"Ermittle deinen Sicherheitsreifegrad",{"href":1454,"dataGaName":1430,"dataGaLocation":901},"/de-de/assessments/security-modernization-assessment/",{"config":1456},{"src":1457},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1459,"paths":1460,"header":1463,"text":1464,"button":1465,"image":1470},"github-azure-migration",[1461,1462],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Ist dein Team bereit für den Umzug von GitHub nach Azure?","GitHub stellt bereits auf Azure um. Finde heraus, was das für dich bedeutet.",{"text":1466,"config":1467},"Erfahre, wie GitLab im Vergleich zu GitHub abschneidet",{"href":1468,"dataGaName":1469,"dataGaLocation":901},"/de-de/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1471},{"src":1445},{"header":1473,"blurb":1474,"button":1475,"secondaryButton":1480},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":1476,"config":1477},"Kostenlosen Test starten",{"href":1478,"dataGaName":698,"dataGaLocation":1479},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":1023,"config":1481},{"href":1025,"dataGaName":703,"dataGaLocation":1479},1786803736885]