[{"data":1,"prerenderedAt":2237},["ShallowReactive",2],{"/de-de/blog/streamline-test-management-with-the-smartbear-qmetry-gitlab-component":3,"navigation-de-de":1445,"banner-de-de":1877,"footer-de-de":1885,"blog-post-authors-de-de-Matt Genelin|Matt Bonner":2125,"blog-related-posts-de-de-streamline-test-management-with-the-smartbear-qmetry-gitlab-component":2152,"blog-promotions-de-de":2174,"next-steps-de-de":2227},{"id":4,"title":5,"authors":6,"body":9,"category":1426,"date":1427,"description":1428,"extension":1429,"externalUrl":1430,"faq":1430,"featured":835,"heroImage":1431,"meta":1432,"navigation":835,"path":1433,"seo":1434,"slug":1438,"stem":1439,"tags":1440,"template":1443,"updatedDate":1430,"__hash__":1444},"blogPosts/de-de/blog/streamline-test-management-with-the-smartbear-qmetry-gitlab-component.md","Testergebnisse aus GitLab-Pipelines automatisch in QMetry übertragen",[7,8],"Matt Genelin","Matt Bonner",{"type":10,"value":11,"toc":1405},"minimark",[12,33,38,43,46,52,56,63,67,74,78,81,85,89,92,120,126,152,156,159,185,190,201,206,220,225,422,426,431,452,457,477,480,484,496,500,530,534,566,570,580,679,802,806,1042,1046,1332,1336,1401],[13,14,15,16,20,21,27,28],"p",{},"In modernen Entwicklungsumgebungen müssen DevSecOps-Teams Testergebnisse aus CI/CD-Pipelines konsistent in Testmanagement-Plattformen übertragen, um Transparenz, Nachvollziehbarkeit und Compliance über den gesamten Entwicklungszyklus zu gewährleisten.\nTeams, die GitLab für CI/CD und SmartBear QMetry für das Testmanagement einsetzen, verbringen Zeit mit manuellem Export und Import von Testergebnissen – das verzögert Feedback und erschwert eine zuverlässige, zentrale Testsicht.\nDer ",[17,18,19],"strong",{},"QMetry GitLab Component"," automatisiert diesen Prozess. Die wiederverwendbare CI/CD-Komponente, verfügbar im ",[22,23,26],"a",{"href":24,"rel":25},"https://gitlab.com/explore/catalog",[],"GitLab CI/CD Catalog",", überträgt Testausführungsdaten nach jeder Pipeline-Ausführung automatisch nach QMetry – einer KI-gestützten, unternehmenstauglichen Testmanagement-Plattform, die Testplanung, -ausführung, -nachverfolgung und -reporting in einer Lösung vereint.\nAls zentrales System der Aufzeichnung für Tests hilft QMetry Teams dabei, Abdeckung und Ausführung nachzuverfolgen und fundiertere Release-Entscheidungen zu treffen.\n",[29,30],"img",{"alt":31,"src":32},"SmartBear QMetry GitLab integration","https://res.cloudinary.com/about-gitlab-com/image/upload/v1775488045/ojt707rzxnm2yr3vqxdh.png",[34,35,37],"h2",{"id":36},"vorteile-der-integration","Vorteile der Integration",[39,40,42],"h3",{"id":41},"manuelle-uploads-entfallen-nachvollziehbarkeit-steigt","Manuelle Uploads entfallen, Nachvollziehbarkeit steigt",[13,44,45],{},"DevSecOps-Engineers und QA-Teams müssen Testergebnisse nicht mehr manuell exportieren und importieren – die Komponente übernimmt das automatisch nach jeder Pipeline-Ausführung. Zugleich erhalten Teams vollständige Nachvollziehbarkeit von Anforderungen über Testfälle bis hin zu tatsächlichen Ausführungsergebnissen.",[13,47,48],{},[29,49],{"alt":50,"src":51},"Test results with SmartBear QMetry GitLab integration","https://res.cloudinary.com/about-gitlab-com/image/upload/v1775488045/ajx64sihup2nursdpnxz.png",[39,53,55],{"id":54},"compliance-und-audit-anforderungen-erfüllen","Compliance- und Audit-Anforderungen erfüllen",[13,57,58,59],{},"Für Organisationen in regulierten Branchen ist lückenlose Testdokumentation nicht verhandelbar. Die Integration stellt sicher, dass jede Testausführung in QMetry mit Verknüpfungen zur jeweiligen GitLab-Pipeline, zum Commit und zum Build dokumentiert wird – ohne zusätzlichen manuellen Aufwand.\n",[29,60],{"alt":61,"src":62},"Audit-ready record of testing with SmartBear QMetry GitLab integration","https://res.cloudinary.com/about-gitlab-com/image/upload/v1775488045/q2tbaw5otgdywjkcquqx.png",[39,64,66],{"id":65},"ki-gestützte-test-insights-nutzen","KI-gestützte Test-Insights nutzen",[13,68,69,70],{},"QMetry analysiert mithilfe von KI Testausführungsmuster, identifiziert instabile Tests, prognostiziert Testfehler und empfiehlt Optimierungsmöglichkeiten. Echtzeit-Daten aus GitLab-Pipelines maximieren den Wert dieser Funktionen.\n",[29,71],{"alt":72,"src":73},"Genaue Insights mit SmartBear QMetry GitLab integration","https://res.cloudinary.com/about-gitlab-com/image/upload/v1775488045/pl7ru4wx8ixnheedfyrs.png",[34,75,77],{"id":76},"über-die-gitlab-smartbear-partnerschaft","Über die GitLab-SmartBear-Partnerschaft",[13,79,80],{},"Diese Komponente steht für die wachsende Partnerschaft zwischen GitLab und SmartBear, CI/CD-Ausführung und Testmanagement in einem Workflow zu verbinden. Gemeinsam helfen sie Teams, Testing in den Entwicklungszyklus zu integrieren und dabei die Qualitäts-, Sicherheits- und Compliance-Standards ihrer Branchen einzuhalten.",[34,82,84],{"id":83},"praxisbeispiele","Praxisbeispiele",[39,86,88],{"id":87},"finanzdienstleistungen-enterprise-banking-plattformen","Finanzdienstleistungen: Enterprise-Banking-Plattformen",[13,90,91],{},"Führende Finanzinstitute stehen vor besonderen Herausforderungen beim Skalieren von Testautomatisierung:",[93,94,95,102,108,114],"ul",{},[96,97,98,101],"li",{},[17,99,100],{},"Regulatorische Compliance",": Detaillierte Audit-Trails für alle Testaktivitäten erforderlich",[96,103,104,107],{},[17,105,106],{},"Mehrere Compliance-Frameworks",": BaFin BAIT, PSD2, DSGVO und interne Risikomanagement-Richtlinien",[96,109,110,113],{},[17,111,112],{},"Hochfrequente Deployments",": Mehrere Produktions-Deployments täglich über Microservices",[96,115,116,119],{},[17,117,118],{},"Verteilte Teams",": Echtzeit-Transparenz über globale Engineering-Teams hinweg erforderlich\nFinanzdienstleister, die den QMetry GitLab Component einsetzen, automatisieren Testergebnis-Uploads für Unit-Tests, API-Contract-Tests, End-to-End-Tests für Transaktionsabläufe sowie Security- und Performance-Testergebnisse.",[13,121,122,125],{},[17,123,124],{},"Mögliche Ergebnisse",":",[93,127,128,134,140,146],{},[96,129,130,133],{},[17,131,132],{},"Deutliche Reduzierung"," des manuellen Test-Reporting-Aufwands",[96,135,136,139],{},[17,137,138],{},"Vollständige Audit-Trail-Abdeckung"," für Regulierungsprüfungen",[96,141,142,145],{},[17,143,144],{},"Echtzeit-Transparenz"," für verteilte QA-Teams",[96,147,148,151],{},[17,149,150],{},"Verbesserte Compliance-Position"," durch vollständige Nachvollziehbarkeit von Anforderungen bis zur Testausführung",[39,153,155],{"id":154},"flugregelungssoftware-in-der-luft-und-raumfahrt","Flugregelungssoftware in der Luft- und Raumfahrt",[13,157,158],{},"Die Softwareentwicklung in der Luft- und Raumfahrt unterliegt besonderen Anforderungen:",[93,160,161,167,173,179],{},[96,162,163,166],{},[17,164,165],{},"DO-178C-Compliance",": Avioniksoftware muss strikte Zertifizierungsstandards erfüllen",[96,168,169,172],{},[17,170,171],{},"Vollständige Nachvollziehbarkeit",": Jede Anforderung verknüpft mit Testfällen und Ausführungsergebnissen",[96,174,175,178],{},[17,176,177],{},"Audit-Trails",": Zertifizierungsbehörden verlangen detaillierte Aufzeichnungen aller Testaktivitäten",[96,180,181,184],{},[17,182,183],{},"Mehrere Teststufen",": Unit-, Integrations-, System- und Zertifizierungstests\nDurch die Integration von GitLab CI/CD mit QMetry automatisiert das Aerospace-Engineering-Team Testausführung und Reporting über alle Teststufen hinweg.",[13,186,187,125],{},[17,188,189],{},"Vor der Integration",[93,191,192,195,198],{},[96,193,194],{},"Manueller Export aus GitLab, Import in QMetry über UI-Uploads",[96,196,197],{},"Prozess dauerte 2–3 Stunden pro Testzyklus",[96,199,200],{},"Fehlerrisiko bei der Dateneingabe, verzögerte Rückmeldung an Stakeholder",[13,202,203,125],{},[17,204,205],{},"Nach der Integration",[93,207,208,211,214,217],{},[96,209,210],{},"Testergebnisse fließen automatisch von GitLab nach QMetry",[96,212,213],{},"Vollständiger Audit-Trail vom Commit über den Test bis zum Ergebnis",[96,215,216],{},"Kein manueller Eingriff, Echtzeit-Transparenz für Zertifizierungsprüfer",[96,218,219],{},"Compliance-Reports werden automatisch erstellt",[13,221,222,125],{},[17,223,224],{},"Beispiel-Dashboard in QMetry nach der Integration",[226,227,232],"pre",{"className":228,"code":229,"language":230,"meta":231,"style":231},"language-none shiki shiki-themes github-light","    ╔════════════════════════════════════════════════════════════╗\n    ║  Flight Control System v2.4 - Test Execution Dashboard     ║\n    ╠════════════════════════════════════════════════════════════╣\n    ║                                                            ║\n    ║  📊 Test Execution Summary (Last 7 Days)                   ║\n    ║  ───────────────────────────────────────────────────────── ║\n    ║  ✓ Total Tests Executed: 1,247                             ║\n    ║  ✓ Passed: 1,241 (99.5%)                                   ║\n    ║  ✗ Failed: 6 (0.5%)                                        ║\n    ║  ⏸ Skipped: 0                                              ║\n    ║                                                            ║\n    ║  📁 Test Suite Organization                                ║\n    ║  ───────────────────────────────────────────────────────── ║\n    ║  └─ Certification/                                         ║\n    ║     └─ DO-178C/                                            ║\n    ║        ├─ Unit/ (487 tests, 100% pass)                     ║\n    ║        ├─ Integration/ (623 tests, 99.2% pass)             ║\n    ║        └─ System/ (137 tests, 100% pass)                   ║\n    ║                                                            ║\n    ║  🔗 Traceability                                           ║\n    ║  ───────────────────────────────────────────────────────── ║\n    ║  Requirements Covered: 342/342 (100%)                      ║\n    ║  Test Cases Linked: 1,247/1,247 (100%)                     ║\n    ║  GitLab Pipeline Executions: 47 (automated)                ║\n    ║                                                            ║\n    ║  ⚠️  Action Items                                          ║\n    ║  ───────────────────────────────────────────────────────── ║\n    ║  • 6 failed tests require investigation                    ║\n    ║  • Last execution: 2 minutes ago (Pipeline #1543)          ║\n    ║  • GitLab Commit: a7f8c23 \"Fix altitude hold logic\"        ║\n    ║                                                            ║\n    ╚════════════════════════════════════════════════════════════╝\n    \n","none","",[233,234,235,243,249,255,261,267,273,279,285,291,297,302,308,313,319,325,331,337,343,348,354,359,365,371,377,382,388,393,399,405,411,416],"code",{"__ignoreMap":231},[236,237,240],"span",{"class":238,"line":239},"line",1,[236,241,242],{},"    ╔════════════════════════════════════════════════════════════╗\n",[236,244,246],{"class":238,"line":245},2,[236,247,248],{},"    ║  Flight Control System v2.4 - Test Execution Dashboard     ║\n",[236,250,252],{"class":238,"line":251},3,[236,253,254],{},"    ╠════════════════════════════════════════════════════════════╣\n",[236,256,258],{"class":238,"line":257},4,[236,259,260],{},"    ║                                                            ║\n",[236,262,264],{"class":238,"line":263},5,[236,265,266],{},"    ║  📊 Test Execution Summary (Last 7 Days)                   ║\n",[236,268,270],{"class":238,"line":269},6,[236,271,272],{},"    ║  ───────────────────────────────────────────────────────── ║\n",[236,274,276],{"class":238,"line":275},7,[236,277,278],{},"    ║  ✓ Total Tests Executed: 1,247                             ║\n",[236,280,282],{"class":238,"line":281},8,[236,283,284],{},"    ║  ✓ Passed: 1,241 (99.5%)                                   ║\n",[236,286,288],{"class":238,"line":287},9,[236,289,290],{},"    ║  ✗ Failed: 6 (0.5%)                                        ║\n",[236,292,294],{"class":238,"line":293},10,[236,295,296],{},"    ║  ⏸ Skipped: 0                                              ║\n",[236,298,300],{"class":238,"line":299},11,[236,301,260],{},[236,303,305],{"class":238,"line":304},12,[236,306,307],{},"    ║  📁 Test Suite Organization                                ║\n",[236,309,311],{"class":238,"line":310},13,[236,312,272],{},[236,314,316],{"class":238,"line":315},14,[236,317,318],{},"    ║  └─ Certification/                                         ║\n",[236,320,322],{"class":238,"line":321},15,[236,323,324],{},"    ║     └─ DO-178C/                                            ║\n",[236,326,328],{"class":238,"line":327},16,[236,329,330],{},"    ║        ├─ Unit/ (487 tests, 100% pass)                     ║\n",[236,332,334],{"class":238,"line":333},17,[236,335,336],{},"    ║        ├─ Integration/ (623 tests, 99.2% pass)             ║\n",[236,338,340],{"class":238,"line":339},18,[236,341,342],{},"    ║        └─ System/ (137 tests, 100% pass)                   ║\n",[236,344,346],{"class":238,"line":345},19,[236,347,260],{},[236,349,351],{"class":238,"line":350},20,[236,352,353],{},"    ║  🔗 Traceability                                           ║\n",[236,355,357],{"class":238,"line":356},21,[236,358,272],{},[236,360,362],{"class":238,"line":361},22,[236,363,364],{},"    ║  Requirements Covered: 342/342 (100%)                      ║\n",[236,366,368],{"class":238,"line":367},23,[236,369,370],{},"    ║  Test Cases Linked: 1,247/1,247 (100%)                     ║\n",[236,372,374],{"class":238,"line":373},24,[236,375,376],{},"    ║  GitLab Pipeline Executions: 47 (automated)                ║\n",[236,378,380],{"class":238,"line":379},25,[236,381,260],{},[236,383,385],{"class":238,"line":384},26,[236,386,387],{},"    ║  ⚠️  Action Items                                          ║\n",[236,389,391],{"class":238,"line":390},27,[236,392,272],{},[236,394,396],{"class":238,"line":395},28,[236,397,398],{},"    ║  • 6 failed tests require investigation                    ║\n",[236,400,402],{"class":238,"line":401},29,[236,403,404],{},"    ║  • Last execution: 2 minutes ago (Pipeline #1543)          ║\n",[236,406,408],{"class":238,"line":407},30,[236,409,410],{},"    ║  • GitLab Commit: a7f8c23 \"Fix altitude hold logic\"        ║\n",[236,412,414],{"class":238,"line":413},31,[236,415,260],{},[236,417,419],{"class":238,"line":418},32,[236,420,421],{},"    ╚════════════════════════════════════════════════════════════╝\n",[39,423,425],{"id":424},"compliance-und-audit-vorteile","Compliance- und Audit-Vorteile",[13,427,428,125],{},[17,429,430],{},"Für Finanzdienstleister (BaFin BAIT, PSD2, SOX)",[432,433,434,440,446],"ol",{},[96,435,436,439],{},[17,437,438],{},"Automatische Nachvollziehbarkeit",": Regulatorische Anforderungen → Testfälle → Ausführungsergebnisse → GitLab-Commits verknüpft",[96,441,442,445],{},[17,443,444],{},"Auditfähige Dokumentation",": Vollständige Testausführungshistorie mit Zeitstempeln und Pipeline-Referenzen",[96,447,448,451],{},[17,449,450],{},"Regulatorisches Reporting",": Compliance-Reports direkt aus QMetry-Testdaten generieren",[13,453,454,125],{},[17,455,456],{},"Für die Luft- und Raumfahrt-Zertifizierung (DO-178C, DO-254)",[432,458,459,465,471],{},[96,460,461,464],{},[17,462,463],{},"Automatische Nachverfolgbarkeitsmatrix",": Anforderungen → Testfälle → Ausführungsergebnisse → GitLab-Commits",[96,466,467,470],{},[17,468,469],{},"Unveränderlicher Audit-Trail",": Pipeline-ID, Commit-SHA und Ausführer für jede Testausführung gestempelt",[96,472,473,476],{},[17,474,475],{},"Zertifizierungspaket-Generierung",": Konforme Dokumentation aus GitLab-Pipeline-Daten",[478,479],"hr",{},[34,481,483],{"id":482},"technische-umsetzung","Technische Umsetzung",[13,485,486],{},[487,488,489,490,495],"em",{},"Dieser Abschnitt orientiert Teams, die die Integration einrichten möchten. Die vollständige Schritt-für-Schritt-Anleitung mit allen Konfigurationsdetails – API-Credentials, CI/CD-Variablen, Testformate, erweiterte Optionen und Fehlerbehebung – ist im ",[22,491,494],{"href":492,"rel":493},"https://about.gitlab.com/blog/streamline-test-management-with-the-smartbear-qmetry-gitlab-component/",[],"englischen Originalbeitrag"," verfügbar.",[34,497,499],{"id":498},"voraussetzungen","Voraussetzungen",[93,501,502,508,514,520],{},[96,503,504,507],{},[17,505,506],{},"GitLab-Account"," mit einem Projekt, das automatisierte Tests enthält und Testergebnisdateien erzeugt (JUnit XML, TestNG XML usw.)",[96,509,510,513],{},[17,511,512],{},"QMetry Test Management Enterprise","-Account mit aktiviertem API-Zugriff und generiertem API-Key",[96,515,516,519],{},[17,517,518],{},"QMetry-Projekt",", bereits angelegt, in das Testergebnisse hochgeladen werden sollen",[96,521,522,525,526,529],{},[17,523,524],{},"Kenntnisse in GitLab CI/CD",", einschließlich grundlegender ",[233,527,528],{},".gitlab-ci.yml","-Syntax",[39,531,533],{"id":532},"ablauf-der-testergebnis-übertragung","Ablauf der Testergebnis-Übertragung",[432,535,536,542,548,554,560],{},[96,537,538,541],{},[17,539,540],{},"Testausführung",": Die GitLab CI/CD-Pipeline führt automatisierte Tests aus.",[96,543,544,547],{},[17,545,546],{},"Ergebnisgenerierung",": Tests erzeugen Ausgabedateien (JUnit XML, TestNG XML usw.).",[96,549,550,553],{},[17,551,552],{},"Komponentenaufruf",": Die QMetry-Komponente wird als Job in der Pipeline ausgeführt.",[96,555,556,559],{},[17,557,558],{},"Automatischer Upload",": Die Komponente liest die Testergebnisdateien und lädt sie via API nach QMetry hoch.",[96,561,562,565],{},[17,563,564],{},"QMetry-Verarbeitung",": QMetry empfängt die Ergebnisse und stellt sie für Reporting und Analyse bereit.",[34,567,569],{"id":568},"basisintegration","Basisintegration",[13,571,572,573,575,576,579],{},"Die Komponente in der ",[233,574,528],{},"-Datei einbinden. Die Komponente sollte ",[17,577,578],{},"nach"," dem Abschluss der Tests ausgeführt werden:",[226,581,585],{"className":582,"code":583,"language":584,"meta":231,"style":231},"language-yaml shiki shiki-themes github-light","    include:\n      - component: gitlab.com/sb9945614/qtm-gitlab-component/qmetry-import@1.0.5\n        inputs:\n          stage: test\n          project: \"Aerospace Flight Control System\"\n          file_name: \"results.xml\"\n          testing_type: \"JUNIT\"\n          instance_url: ${INSTANCE_URL}\n          api_key: ${QMETRY_API_KEY}\n","yaml",[233,586,587,597,612,619,629,639,649,659,669],{"__ignoreMap":231},[236,588,589,593],{"class":238,"line":239},[236,590,592],{"class":591},"shJU0","    include",[236,594,596],{"class":595},"sgsFI",":\n",[236,598,599,602,605,608],{"class":238,"line":245},[236,600,601],{"class":595},"      - ",[236,603,604],{"class":591},"component",[236,606,607],{"class":595},": ",[236,609,611],{"class":610},"sYBdl","gitlab.com/sb9945614/qtm-gitlab-component/qmetry-import@1.0.5\n",[236,613,614,617],{"class":238,"line":251},[236,615,616],{"class":591},"        inputs",[236,618,596],{"class":595},[236,620,621,624,626],{"class":238,"line":257},[236,622,623],{"class":591},"          stage",[236,625,607],{"class":595},[236,627,628],{"class":610},"test\n",[236,630,631,634,636],{"class":238,"line":263},[236,632,633],{"class":591},"          project",[236,635,607],{"class":595},[236,637,638],{"class":610},"\"Aerospace Flight Control System\"\n",[236,640,641,644,646],{"class":238,"line":269},[236,642,643],{"class":591},"          file_name",[236,645,607],{"class":595},[236,647,648],{"class":610},"\"results.xml\"\n",[236,650,651,654,656],{"class":238,"line":275},[236,652,653],{"class":591},"          testing_type",[236,655,607],{"class":595},[236,657,658],{"class":610},"\"JUNIT\"\n",[236,660,661,664,666],{"class":238,"line":281},[236,662,663],{"class":591},"          instance_url",[236,665,607],{"class":595},[236,667,668],{"class":610},"${INSTANCE_URL}\n",[236,670,671,674,676],{"class":238,"line":287},[236,672,673],{"class":591},"          api_key",[236,675,607],{"class":595},[236,677,678],{"class":610},"${QMETRY_API_KEY}\n",[680,681,682,698],"table",{},[683,684,685],"thead",{},[686,687,688,692,695],"tr",{},[689,690,691],"th",{},"Parameter",[689,693,694],{},"Beschreibung",[689,696,697],{},"Beispiel",[699,700,701,717,732,747,771,787],"tbody",{},[686,702,703,709,712],{},[704,705,706],"td",{},[233,707,708],{},"stage",[704,710,711],{},"CI/CD-Stage für den Upload-Job",[704,713,714],{},[233,715,716],{},"test",[686,718,719,724,727],{},[704,720,721],{},[233,722,723],{},"project",[704,725,726],{},"QMetry-Projektname oder -Schlüssel",[704,728,729],{},[233,730,731],{},"\"Aerospace Flight Control System\"",[686,733,734,739,742],{},[704,735,736],{},[233,737,738],{},"file_name",[704,740,741],{},"Pfad zur Testergebnisdatei",[704,743,744],{},[233,745,746],{},"\"results.xml\"",[686,748,749,754,757],{},[704,750,751],{},[233,752,753],{},"testing_type",[704,755,756],{},"Format der Testergebnisse",[704,758,759,762,763,766,767,770],{},[233,760,761],{},"\"JUNIT\""," (auch: ",[233,764,765],{},"TESTNG",", ",[233,768,769],{},"NUNIT"," usw.)",[686,772,773,778,781],{},[704,774,775],{},[233,776,777],{},"instance_url",[704,779,780],{},"QMetry-Instanz-URL",[704,782,783,786],{},[233,784,785],{},"${INSTANCE_URL}"," (aus CI/CD-Variablen)",[686,788,789,794,797],{},[704,790,791],{},[233,792,793],{},"api_key",[704,795,796],{},"QMetry API-Key zur Authentifizierung",[704,798,799,786],{},[233,800,801],{},"${QMETRY_API_KEY}",[34,803,805],{"id":804},"vollständiges-pipeline-beispiel","Vollständiges Pipeline-Beispiel",[226,807,809],{"className":582,"code":808,"language":584,"meta":231,"style":231},"    stages:\n      - test\n      - report\n\n    variables:\n      NODE_VERSION: \"18\"\n\n    unit-tests:\n      stage: test\n      image: node:${NODE_VERSION}\n      script:\n        - npm ci\n        - npm run test:unit -- --reporter=junit --reporter-options=output=results.xml\n      artifacts:\n        reports:\n          junit: results.xml\n        paths:\n          - results.xml\n        when: always\n      tags:\n        - docker\n\n    include:\n      - component: gitlab.com/sb9945614/qtm-gitlab-component/qmetry-import@1.0.5\n        inputs:\n          stage: test\n          project: \"Aerospace Flight Control System\"\n          file_name: \"results.xml\"\n          testing_type: \"JUNIT\"\n          instance_url: ${INSTANCE_URL}\n          api_key: ${QMETRY_API_KEY}\n",[233,810,811,818,824,831,837,844,854,858,865,874,884,891,899,906,913,920,930,937,944,954,961,968,972,978,988,994,1002,1010,1018,1026,1034],{"__ignoreMap":231},[236,812,813,816],{"class":238,"line":239},[236,814,815],{"class":591},"    stages",[236,817,596],{"class":595},[236,819,820,822],{"class":238,"line":245},[236,821,601],{"class":595},[236,823,628],{"class":610},[236,825,826,828],{"class":238,"line":251},[236,827,601],{"class":595},[236,829,830],{"class":610},"report\n",[236,832,833],{"class":238,"line":257},[236,834,836],{"emptyLinePlaceholder":835},true,"\n",[236,838,839,842],{"class":238,"line":263},[236,840,841],{"class":591},"    variables",[236,843,596],{"class":595},[236,845,846,849,851],{"class":238,"line":269},[236,847,848],{"class":591},"      NODE_VERSION",[236,850,607],{"class":595},[236,852,853],{"class":610},"\"18\"\n",[236,855,856],{"class":238,"line":275},[236,857,836],{"emptyLinePlaceholder":835},[236,859,860,863],{"class":238,"line":281},[236,861,862],{"class":591},"    unit-tests",[236,864,596],{"class":595},[236,866,867,870,872],{"class":238,"line":287},[236,868,869],{"class":591},"      stage",[236,871,607],{"class":595},[236,873,628],{"class":610},[236,875,876,879,881],{"class":238,"line":293},[236,877,878],{"class":591},"      image",[236,880,607],{"class":595},[236,882,883],{"class":610},"node:${NODE_VERSION}\n",[236,885,886,889],{"class":238,"line":299},[236,887,888],{"class":591},"      script",[236,890,596],{"class":595},[236,892,893,896],{"class":238,"line":304},[236,894,895],{"class":595},"        - ",[236,897,898],{"class":610},"npm ci\n",[236,900,901,903],{"class":238,"line":310},[236,902,895],{"class":595},[236,904,905],{"class":610},"npm run test:unit -- --reporter=junit --reporter-options=output=results.xml\n",[236,907,908,911],{"class":238,"line":315},[236,909,910],{"class":591},"      artifacts",[236,912,596],{"class":595},[236,914,915,918],{"class":238,"line":321},[236,916,917],{"class":591},"        reports",[236,919,596],{"class":595},[236,921,922,925,927],{"class":238,"line":327},[236,923,924],{"class":591},"          junit",[236,926,607],{"class":595},[236,928,929],{"class":610},"results.xml\n",[236,931,932,935],{"class":238,"line":333},[236,933,934],{"class":591},"        paths",[236,936,596],{"class":595},[236,938,939,942],{"class":238,"line":339},[236,940,941],{"class":595},"          - ",[236,943,929],{"class":610},[236,945,946,949,951],{"class":238,"line":345},[236,947,948],{"class":591},"        when",[236,950,607],{"class":595},[236,952,953],{"class":610},"always\n",[236,955,956,959],{"class":238,"line":350},[236,957,958],{"class":591},"      tags",[236,960,596],{"class":595},[236,962,963,965],{"class":238,"line":356},[236,964,895],{"class":595},[236,966,967],{"class":610},"docker\n",[236,969,970],{"class":238,"line":361},[236,971,836],{"emptyLinePlaceholder":835},[236,973,974,976],{"class":238,"line":367},[236,975,592],{"class":591},[236,977,596],{"class":595},[236,979,980,982,984,986],{"class":238,"line":373},[236,981,601],{"class":595},[236,983,604],{"class":591},[236,985,607],{"class":595},[236,987,611],{"class":610},[236,989,990,992],{"class":238,"line":379},[236,991,616],{"class":591},[236,993,596],{"class":595},[236,995,996,998,1000],{"class":238,"line":384},[236,997,623],{"class":591},[236,999,607],{"class":595},[236,1001,628],{"class":610},[236,1003,1004,1006,1008],{"class":238,"line":390},[236,1005,633],{"class":591},[236,1007,607],{"class":595},[236,1009,638],{"class":610},[236,1011,1012,1014,1016],{"class":238,"line":395},[236,1013,643],{"class":591},[236,1015,607],{"class":595},[236,1017,648],{"class":610},[236,1019,1020,1022,1024],{"class":238,"line":401},[236,1021,653],{"class":591},[236,1023,607],{"class":595},[236,1025,658],{"class":610},[236,1027,1028,1030,1032],{"class":238,"line":407},[236,1029,663],{"class":591},[236,1031,607],{"class":595},[236,1033,668],{"class":610},[236,1035,1036,1038,1040],{"class":238,"line":413},[236,1037,673],{"class":591},[236,1039,607],{"class":595},[236,1041,678],{"class":610},[34,1043,1045],{"id":1044},"vollständige-konfigurationsreferenz","Vollständige Konfigurationsreferenz",[680,1047,1048,1063],{},[683,1049,1050],{},[686,1051,1052,1055,1058,1061],{},[689,1053,1054],{},"Eingabeparameter",[689,1056,1057],{},"Pflichtfeld",[689,1059,1060],{},"Standard",[689,1062,694],{},[699,1064,1065,1081,1098,1112,1125,1146,1170,1194,1210,1226,1245,1269,1288,1306,1319],{},[686,1066,1067,1071,1074,1078],{},[704,1068,1069],{},[233,1070,708],{},[704,1072,1073],{},"Nein",[704,1075,1076],{},[233,1077,716],{},[704,1079,1080],{},"GitLab CI/CD-Stage für den Upload-Job",[686,1082,1083,1088,1090,1095],{},[704,1084,1085],{},[233,1086,1087],{},"runner_tag",[704,1089,1073],{},[704,1091,1092],{},[233,1093,1094],{},"\"\"",[704,1096,1097],{},"Spezifischer Runner-Tag (leer = beliebiger verfügbarer Runner)",[686,1099,1100,1104,1107,1110],{},[704,1101,1102],{},[233,1103,723],{},[704,1105,1106],{},"Ja",[704,1108,1109],{},"–",[704,1111,726],{},[686,1113,1114,1118,1120,1122],{},[704,1115,1116],{},[233,1117,738],{},[704,1119,1106],{},[704,1121,1109],{},[704,1123,1124],{},"Pfad zur Testergebnisdatei (relativ zum Projektstamm)",[686,1126,1127,1131,1133,1135],{},[704,1128,1129],{},[233,1130,753],{},[704,1132,1106],{},[704,1134,1109],{},[704,1136,1137,1138,766,1141,766,1143,1145],{},"Testergebnisformat: ",[233,1139,1140],{},"JUNIT",[233,1142,765],{},[233,1144,769],{}," usw.",[686,1147,1148,1153,1155,1160],{},[704,1149,1150],{},[233,1151,1152],{},"skip_warning",[704,1154,1073],{},[704,1156,1157],{},[233,1158,1159],{},"\"1\"",[704,1161,1162,1163,1165,1166,1169],{},"Warnungen beim Import überspringen (",[233,1164,1159],{}," = überspringen, ",[233,1167,1168],{},"\"0\""," = anzeigen)",[686,1171,1172,1177,1179,1184],{},[704,1173,1174],{},[233,1175,1176],{},"is_matching_required",[704,1178,1073],{},[704,1180,1181],{},[233,1182,1183],{},"\"false\"",[704,1185,1186,1187,1190,1191,1193],{},"Bestehende Testfälle nach Name abgleichen (",[233,1188,1189],{},"\"true\""," oder ",[233,1192,1183],{},")",[686,1195,1196,1201,1203,1207],{},[704,1197,1198],{},[233,1199,1200],{},"testsuite_name",[704,1202,1073],{},[704,1204,1205],{},[233,1206,1094],{},[704,1208,1209],{},"Name für die Test-Suite in QMetry",[686,1211,1212,1217,1219,1223],{},[704,1213,1214],{},[233,1215,1216],{},"testsuite_id",[704,1218,1073],{},[704,1220,1221],{},[233,1222,1094],{},[704,1224,1225],{},"Bestehende Test-Suite-ID, an die Ergebnisse angehängt werden",[686,1227,1228,1233,1235,1239],{},[704,1229,1230],{},[233,1231,1232],{},"testsuite_folder_path",[704,1234,1073],{},[704,1236,1237],{},[233,1238,1094],{},[704,1240,1241,1242,1193],{},"Ordnerpfad für die Test-Suite-Organisation (z. B. ",[233,1243,1244],{},"/Regression/Sprint-23",[686,1246,1247,1252,1254,1258],{},[704,1248,1249],{},[233,1250,1251],{},"automation_hierarchy",[704,1253,1073],{},[704,1255,1256],{},[233,1257,1094],{},[704,1259,1260,1261,766,1263,766,1266,770],{},"Hierarchieebene für die Testorganisation (",[233,1262,1159],{},[233,1264,1265],{},"\"2\"",[233,1267,1268],{},"\"3\"",[686,1270,1271,1276,1278,1282],{},[704,1272,1273],{},[233,1274,1275],{},"testcase_fields",[704,1277,1073],{},[704,1279,1280],{},[233,1281,1094],{},[704,1283,1284,1285,1193],{},"Benutzerdefinierte Felder für Testfälle (kommagetrennt: ",[233,1286,1287],{},"field1=value1,field2=value2",[686,1289,1290,1295,1297,1301],{},[704,1291,1292],{},[233,1293,1294],{},"testsuite_fields",[704,1296,1073],{},[704,1298,1299],{},[233,1300,1094],{},[704,1302,1303,1304,1193],{},"Benutzerdefinierte Felder für Test-Suites (kommagetrennt: ",[233,1305,1287],{},[686,1307,1308,1312,1314,1316],{},[704,1309,1310],{},[233,1311,777],{},[704,1313,1106],{},[704,1315,1109],{},[704,1317,1318],{},"QMetry-Instanz-URL (in CI/CD-Variablen speichern)",[686,1320,1321,1325,1327,1329],{},[704,1322,1323],{},[233,1324,793],{},[704,1326,1106],{},[704,1328,1109],{},[704,1330,1331],{},"QMetry API-Key (in CI/CD-Variablen speichern, maskiert)",[34,1333,1335],{"id":1334},"dokumentation-und-support","Dokumentation und Support",[93,1337,1338,1346,1356,1366,1376,1386],{},[96,1339,1340,607,1343],{},[17,1341,1342],{},"Komponentendokumentation",[22,1344,26],{"href":24,"rel":1345},[],[96,1347,1348,607,1351],{},[17,1349,1350],{},"Komponenten-Repository",[22,1352,1355],{"href":1353,"rel":1354},"https://gitlab.com/sb9945614/qtm-gitlab-component",[],"gitlab.com/sb9945614/qtm-gitlab-component",[96,1357,1358,607,1361],{},[17,1359,1360],{},"QMetry-Dokumentation",[22,1362,1365],{"href":1363,"rel":1364},"https://qmetrysupport.atlassian.net/wiki/spaces/QPro/overview",[],"QMetry Support Portal",[96,1367,1368,607,1371],{},[17,1369,1370],{},"SmartBear-Ressourcen",[22,1372,1375],{"href":1373,"rel":1374},"https://smartbear.com/resources/",[],"SmartBear Academy",[96,1377,1378,607,1381],{},[17,1379,1380],{},"GitLab CI/CD-Dokumentation",[22,1382,1385],{"href":1383,"rel":1384},"https://docs.gitlab.com/ci/",[],"GitLab CI/CD Documentation",[96,1387,1388,607,1391,1395,1396],{},[17,1389,1390],{},"QMetry-Support",[22,1392,1394],{"href":1393},"mailto:support@smartbear.com","support@smartbear.com"," – ",[22,1397,1400],{"href":1398,"rel":1399},"https://community.smartbear.com/",[],"QMetry Community Forum",[1402,1403,1404],"style",{},"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);}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}",{"title":231,"searchDepth":245,"depth":245,"links":1406},[1407,1412,1413,1418,1419,1422,1423,1424,1425],{"id":36,"depth":245,"text":37,"children":1408},[1409,1410,1411],{"id":41,"depth":251,"text":42},{"id":54,"depth":251,"text":55},{"id":65,"depth":251,"text":66},{"id":76,"depth":245,"text":77},{"id":83,"depth":245,"text":84,"children":1414},[1415,1416,1417],{"id":87,"depth":251,"text":88},{"id":154,"depth":251,"text":155},{"id":424,"depth":251,"text":425},{"id":482,"depth":245,"text":483},{"id":498,"depth":245,"text":499,"children":1420},[1421],{"id":532,"depth":251,"text":533},{"id":568,"depth":245,"text":569},{"id":804,"depth":245,"text":805},{"id":1044,"depth":245,"text":1045},{"id":1334,"depth":245,"text":1335},"product","2026-04-07","Der QMetry GitLab Component überträgt Testergebnisse automatisch aus CI/CD-Pipelines in QMetry – ohne manuelle Schritte, mit vollständigem Audit-Trail.","md",null,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1775486753/cswmwtygkgkbdsibo09v.png",{},"/de-de/blog/streamline-test-management-with-the-smartbear-qmetry-gitlab-component",{"config":1435,"title":1437,"description":1428},{"noIndex":1436},false,"QMetry GitLab Component – Testergebnisse automatisieren","streamline-test-management-with-the-smartbear-qmetry-gitlab-component","de-de/blog/streamline-test-management-with-the-smartbear-qmetry-gitlab-component",[1441,1426,1442],"tutorial","devops","BlogPost","hg3T2jXJhZI-4IuWCsUfnEQBgMScFgViHgXgvRLCkUg",{"logo":1446,"freeTrial":1451,"sales":1456,"login":1461,"items":1466,"search":1795,"minimal":1829,"duo":1847,"switchNav":1856,"pricingDeployment":1867},{"config":1447},{"href":1448,"dataGaName":1449,"dataGaLocation":1450},"/de-de/","gitlab logo","header",{"text":1452,"config":1453},"Kostenlose Testversion anfordern",{"href":1454,"dataGaName":1455,"dataGaLocation":1450},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":1457,"config":1458},"Demo anfordern",{"href":1459,"dataGaName":1460,"dataGaLocation":1450},"/de-de/sales/?contact-topic=request-demo","sales",{"text":1462,"config":1463},"Anmelden",{"href":1464,"dataGaName":1465,"dataGaLocation":1450},"https://gitlab.com/users/sign_in/","sign in",[1467,1496,1598,1603,1717,1773],{"text":1468,"config":1469,"menu":1471},"Plattform",{"dataNavLevelOne":1470},"platform",{"type":1472,"columns":1473},"cards",[1474,1480,1488],{"title":1468,"description":1475,"link":1476},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":1477,"config":1478},"Die Plattform erkunden",{"href":1479,"dataGaName":1470,"dataGaLocation":1450},"/de-de/platform/",{"title":1481,"description":1482,"link":1483},"GitLab Duo Agent Platform","Agentische KI für den gesamten Software-Lebenszyklus",{"text":1484,"config":1485},"Lerne GitLab Duo kennen",{"href":1486,"dataGaName":1487,"dataGaLocation":1450},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":1489,"description":1490,"link":1491},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":1492,"config":1493},"Mehr erfahren",{"href":1494,"dataGaName":1495,"dataGaLocation":1450},"/de-de/why-gitlab/","why gitlab",{"text":1497,"left":835,"config":1498,"menu":1500},"Produkt",{"dataNavLevelOne":1499},"solutions",{"type":1501,"link":1502,"columns":1506,"feature":1577},"lists",{"text":1503,"config":1504},"Alle Lösungen anzeigen",{"href":1505,"dataGaName":1499,"dataGaLocation":1450},"/de-de/solutions/",[1507,1532,1555],{"title":1508,"description":1509,"link":1510,"items":1515},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":1511},{"icon":1512,"href":1513,"dataGaName":1514,"dataGaLocation":1450},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[1516,1520,1523,1528],{"text":1517,"config":1518},"CI/CD",{"href":1519,"dataGaLocation":1450,"dataGaName":1517},"/de-de/solutions/continuous-integration/",{"text":1481,"config":1521},{"href":1486,"dataGaLocation":1450,"dataGaName":1522},"gitlab duo agent platform - product menu",{"text":1524,"config":1525},"Quellcodeverwaltung",{"href":1526,"dataGaLocation":1450,"dataGaName":1527},"/de-de/solutions/source-code-management/","Source Code Management",{"text":1529,"config":1530},"Automatische Softwarebereitstellung",{"href":1513,"dataGaLocation":1450,"dataGaName":1531},"Automated software delivery",{"title":1533,"description":1534,"link":1535,"items":1540},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":1536},{"href":1537,"dataGaName":1538,"dataGaLocation":1450,"icon":1539},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[1541,1545,1550],{"text":1542,"config":1543},"Anwendungssicherheitstests",{"href":1537,"dataGaName":1544,"dataGaLocation":1450},"Application security testing",{"text":1546,"config":1547},"Schutz der Software-Lieferkette",{"href":1548,"dataGaLocation":1450,"dataGaName":1549},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":1551,"config":1552},"Software-Compliance",{"href":1553,"dataGaName":1554,"dataGaLocation":1450},"/de-de/solutions/software-compliance/","software compliance",{"title":1556,"link":1557,"items":1562},"Messung",{"config":1558},{"icon":1559,"href":1560,"dataGaName":1561,"dataGaLocation":1450},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[1563,1567,1572],{"text":1564,"config":1565},"Sichtbarkeit und Messung",{"href":1560,"dataGaLocation":1450,"dataGaName":1566},"Visibility and Measurement",{"text":1568,"config":1569},"Wertstrommanagement",{"href":1570,"dataGaLocation":1450,"dataGaName":1571},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":1573,"config":1574},"Analysen und Einblicke",{"href":1575,"dataGaLocation":1450,"dataGaName":1576},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":1578,"type":1501,"items":1579},"GitLab für",[1580,1586,1592],{"text":1581,"config":1582},"Enterprise",{"icon":1583,"href":1584,"dataGaLocation":1450,"dataGaName":1585},"Building","/de-de/enterprise/","enterprise",{"text":1587,"config":1588},"Kleinunternehmen",{"icon":1589,"href":1590,"dataGaLocation":1450,"dataGaName":1591},"Work","/de-de/small-business/","small business",{"text":1593,"config":1594},"Öffentlicher Sektor",{"icon":1595,"href":1596,"dataGaLocation":1450,"dataGaName":1597},"Organization","/de-de/solutions/public-sector/","public sector",{"text":1599,"config":1600},"Preise",{"href":1601,"dataGaName":1602,"dataGaLocation":1450,"dataNavLevelOne":1602},"/de-de/pricing/","pricing",{"text":1604,"config":1605,"menu":1607},"Ressourcen",{"dataNavLevelOne":1606},"resources",{"type":1501,"link":1608,"columns":1612,"feature":1706},{"text":1609,"config":1610},"Alle Ressourcen anzeigen",{"href":1611,"dataGaName":1606,"dataGaLocation":1450},"/de-de/resources/",[1613,1646,1673],{"title":1614,"items":1615},"Erste Schritte",[1616,1621,1626,1631,1636,1641],{"text":1617,"config":1618},"Installieren",{"href":1619,"dataGaName":1620,"dataGaLocation":1450},"/de-de/install/","install",{"text":1622,"config":1623},"Kurzanleitungen",{"href":1624,"dataGaName":1625,"dataGaLocation":1450},"/de-de/get-started/","quick setup checklists",{"text":1627,"config":1628},"Lernen",{"href":1629,"dataGaLocation":1450,"dataGaName":1630},"https://university.gitlab.com/","learn",{"text":1632,"config":1633},"Produktdokumentation",{"href":1634,"dataGaName":1635,"dataGaLocation":1450},"https://docs.gitlab.com/","product documentation",{"text":1637,"config":1638},"Best-Practice-Videos",{"href":1639,"dataGaName":1640,"dataGaLocation":1450},"/de-de/getting-started-videos/","best practice videos",{"text":1642,"config":1643},"Integrationen",{"href":1644,"dataGaName":1645,"dataGaLocation":1450},"/de-de/integrations/","integrations",{"title":1647,"items":1648},"Entdecken",[1649,1654,1659,1664,1668],{"text":1650,"config":1651},"Kundenerfolge",{"href":1652,"dataGaName":1653,"dataGaLocation":1450},"/de-de/customers/","customer success stories",{"text":1655,"config":1656},"Blog",{"href":1657,"dataGaName":1658,"dataGaLocation":1450},"/de-de/blog/","blog",{"text":1660,"config":1661},"Demo-Hub",{"href":1662,"dataGaName":1663,"dataGaLocation":1450},"/de-de/demo-hub/","demo hub",{"text":1665,"config":1666},"The Source",{"href":1667,"dataGaName":1658,"dataGaLocation":1450},"/de-de/the-source/",{"text":1669,"config":1670},"Remote",{"href":1671,"dataGaName":1672,"dataGaLocation":1450},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1674,"items":1675},"Vernetzen",[1676,1681,1686,1691,1696,1701],{"text":1677,"config":1678},"GitLab-Services",{"href":1679,"dataGaName":1680,"dataGaLocation":1450},"/de-de/services/","services",{"text":1682,"config":1683},"Beitragen",{"href":1684,"dataGaName":1685,"dataGaLocation":1450},"https://contributors.gitlab.com","contribute",{"text":1687,"config":1688},"Community",{"href":1689,"dataGaName":1690,"dataGaLocation":1450},"/community/","community",{"text":1692,"config":1693},"Forum",{"href":1694,"dataGaName":1695,"dataGaLocation":1450},"https://forum.gitlab.com/","forum",{"text":1697,"config":1698},"Veranstaltungen",{"href":1699,"dataGaName":1700,"dataGaLocation":1450},"/events/","events",{"text":1702,"config":1703},"Partner",{"href":1704,"dataGaName":1705,"dataGaLocation":1450},"/de-de/partners/","partners",{"config":1707,"title":1710,"text":1711,"link":1712},{"background":1708,"textColor":1709},"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":1713,"config":1714},"Aktuelle Nachrichten",{"href":1715,"dataGaName":1716,"dataGaLocation":1450},"/de-de/whats-new/","whats new",{"text":1718,"config":1719,"menu":1721},"Unternehmen",{"dataNavLevelOne":1720},"company",{"type":1501,"columns":1722},[1723],{"items":1724},[1725,1730,1736,1738,1743,1748,1753,1758,1763,1768],{"text":1726,"config":1727},"Über",{"href":1728,"dataGaName":1729,"dataGaLocation":1450},"/de-de/company/","about",{"text":1731,"config":1732,"footerGa":1735},"Karriere",{"href":1733,"dataGaName":1734,"dataGaLocation":1450},"/jobs/","jobs",{"dataGaName":1734},{"text":1697,"config":1737},{"href":1699,"dataGaName":1700,"dataGaLocation":1450},{"text":1739,"config":1740},"Geschäftsführung",{"href":1741,"dataGaName":1742,"dataGaLocation":1450},"/company/team/e-group/","leadership",{"text":1744,"config":1745},"Handbuch",{"href":1746,"dataGaName":1747,"dataGaLocation":1450},"https://handbook.gitlab.com/","handbook",{"text":1749,"config":1750},"Investor Relations",{"href":1751,"dataGaName":1752,"dataGaLocation":1450},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1754,"config":1755},"Trust Center",{"href":1756,"dataGaName":1757,"dataGaLocation":1450},"/de-de/security/","trust center",{"text":1759,"config":1760},"AI Transparency Center",{"href":1761,"dataGaName":1762,"dataGaLocation":1450},"/de-de/ai-transparency-center/","ai transparency center",{"text":1764,"config":1765},"Newsletter",{"href":1766,"dataGaName":1767,"dataGaLocation":1450},"/company/contact/#contact-forms","newsletter",{"text":1769,"config":1770},"Presse",{"href":1771,"dataGaName":1772,"dataGaLocation":1450},"/press/","press",{"text":1774,"config":1775,"menu":1776},"Kontakt",{"dataNavLevelOne":1720},{"type":1501,"columns":1777},[1778],{"items":1779},[1780,1785,1790],{"text":1781,"config":1782},"Vertrieb kontaktieren",{"href":1783,"dataGaName":1784,"dataGaLocation":1450},"/de-de/sales/","talk to sales",{"text":1786,"config":1787},"Support-Portal",{"href":1788,"dataGaName":1789,"dataGaLocation":1450},"https://support.gitlab.com/hc/en-us","support portal",{"text":1791,"config":1792},"Kundenportal",{"href":1793,"dataGaName":1794,"dataGaLocation":1450},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1796,"login":1797,"suggestions":1804},"Schließen",{"text":1798,"link":1799},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":1800,"config":1801},"gitlab.com",{"href":1464,"dataGaName":1802,"dataGaLocation":1803},"search login","search",{"text":1805,"default":1806},"Vorschläge",[1807,1809,1814,1816,1821,1826],{"text":1481,"config":1808},{"href":1486,"dataGaName":1481,"dataGaLocation":1803},{"text":1810,"config":1811},"Codevorschläge (KI)",{"href":1812,"dataGaName":1813,"dataGaLocation":1803},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":1517,"config":1815},{"href":1519,"dataGaName":1517,"dataGaLocation":1803},{"text":1817,"config":1818},"GitLab auf AWS",{"href":1819,"dataGaName":1820,"dataGaLocation":1803},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":1822,"config":1823},"GitLab auf Google Cloud",{"href":1824,"dataGaName":1825,"dataGaLocation":1803},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":1489,"config":1827},{"href":1494,"dataGaName":1828,"dataGaLocation":1803},"Why GitLab?",{"freeTrial":1830,"mobileIcon":1835,"desktopIcon":1840,"secondaryButton":1843},{"text":1831,"config":1832},"Kostenlos testen",{"href":1833,"dataGaName":1455,"dataGaLocation":1834},"https://gitlab.com/-/trials/new/","nav",{"altText":1836,"config":1837},"GitLab-Symbol",{"src":1838,"dataGaName":1839,"dataGaLocation":1834},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1836,"config":1841},{"src":1842,"dataGaName":1839,"dataGaLocation":1834},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1614,"config":1844},{"href":1845,"dataGaName":1846,"dataGaLocation":1834},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":1848,"mobileIcon":1852,"desktopIcon":1854},{"text":1849,"config":1850},"Mehr über GitLab Duo erfahren",{"href":1486,"dataGaName":1851,"dataGaLocation":1834},"gitlab duo",{"altText":1836,"config":1853},{"src":1838,"dataGaName":1839,"dataGaLocation":1834},{"altText":1836,"config":1855},{"src":1842,"dataGaName":1839,"dataGaLocation":1834},{"button":1857,"mobileIcon":1862,"desktopIcon":1864},{"text":1858,"config":1859},"/Option",{"href":1860,"dataGaName":1861,"dataGaLocation":1834},"#contact","switch",{"altText":1836,"config":1863},{"src":1838,"dataGaName":1839,"dataGaLocation":1834},{"altText":1836,"config":1865},{"src":1866,"dataGaName":1839,"dataGaLocation":1834},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1868,"mobileIcon":1873,"desktopIcon":1875},{"text":1869,"config":1870},"Zurück zur Preisübersicht",{"href":1601,"dataGaName":1871,"dataGaLocation":1834,"icon":1872},"back to pricing","GoBack",{"altText":1836,"config":1874},{"src":1838,"dataGaName":1839,"dataGaLocation":1834},{"altText":1836,"config":1876},{"src":1842,"dataGaName":1839,"dataGaLocation":1834},{"title":1878,"button":1879,"config":1883},"GitLab Orbit ist da: die Kontextebene für KI-Agenten",{"text":1492,"config":1880},{"href":1881,"dataGaName":1882,"dataGaLocation":1450},"/de-de/gitlab-orbit/","orbit",{"layout":1884,"disabled":1436},"release",{"data":1886},{"text":1887,"source":1888,"edit":1894,"contribute":1899,"config":1904,"items":1909,"minimal":2114},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":1889,"config":1890},"Quelltext der Seite anzeigen",{"href":1891,"dataGaName":1892,"dataGaLocation":1893},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1895,"config":1896},"Diese Seite bearbeiten",{"href":1897,"dataGaName":1898,"dataGaLocation":1893},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1900,"config":1901},"Beteilige dich",{"href":1902,"dataGaName":1903,"dataGaLocation":1893},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1905,"facebook":1906,"youtube":1907,"linkedin":1908},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1910,1955,2007,2049,2081],{"title":1599,"links":1911,"subMenu":1926},[1912,1916,1921],{"text":1913,"config":1914},"Tarife anzeigen",{"href":1601,"dataGaName":1915,"dataGaLocation":1893},"view plans",{"text":1917,"config":1918},"Vorteile von Premium",{"href":1919,"dataGaName":1920,"dataGaLocation":1893},"/de-de/pricing/premium/","why premium",{"text":1922,"config":1923},"Vorteile von Ultimate",{"href":1924,"dataGaName":1925,"dataGaLocation":1893},"/de-de/pricing/ultimate/","why ultimate",[1927],{"title":1774,"links":1928},[1929,1931,1933,1935,1940,1945,1950],{"text":1781,"config":1930},{"href":1783,"dataGaName":1460,"dataGaLocation":1893},{"text":1786,"config":1932},{"href":1788,"dataGaName":1789,"dataGaLocation":1893},{"text":1791,"config":1934},{"href":1793,"dataGaName":1794,"dataGaLocation":1893},{"text":1936,"config":1937},"Status",{"href":1938,"dataGaName":1939,"dataGaLocation":1893},"https://status.gitlab.com/","status",{"text":1941,"config":1942},"Nutzungsbedingungen",{"href":1943,"dataGaName":1944,"dataGaLocation":1893},"/terms/","terms of use",{"text":1946,"config":1947},"Datenschutzerklärung",{"href":1948,"dataGaName":1949,"dataGaLocation":1893},"/de-de/privacy/","privacy statement",{"text":1951,"config":1952},"Cookie-Einstellungen",{"dataGaName":1953,"dataGaLocation":1893,"id":1954,"isOneTrustButton":835},"cookie preferences","ot-sdk-btn",{"title":1497,"links":1956,"subMenu":1965},[1957,1961],{"text":1958,"config":1959},"DevSecOps-Plattform",{"href":1479,"dataGaName":1960,"dataGaLocation":1893},"devsecops platform",{"text":1962,"config":1963},"KI-unterstützte Entwicklung",{"href":1486,"dataGaName":1964,"dataGaLocation":1893},"ai-assisted development",[1966],{"title":1967,"links":1968},"Themen",[1969,1973,1978,1982,1987,1992,1997,2002],{"text":1517,"config":1970},{"href":1971,"dataGaName":1972,"dataGaLocation":1893},"/de-de/topics/ci-cd/","cicd",{"text":1974,"config":1975},"GitOps",{"href":1976,"dataGaName":1977,"dataGaLocation":1893},"/de-de/topics/gitops/","gitops",{"text":1979,"config":1980},"DevOps",{"href":1981,"dataGaName":1442,"dataGaLocation":1893},"/de-de/topics/devops/",{"text":1983,"config":1984},"Versionskontrolle",{"href":1985,"dataGaName":1986,"dataGaLocation":1893},"/de-de/topics/version-control/","version control",{"text":1988,"config":1989},"DevSecOps",{"href":1990,"dataGaName":1991,"dataGaLocation":1893},"/de-de/topics/devsecops/","devsecops",{"text":1993,"config":1994},"Cloud-nativ",{"href":1995,"dataGaName":1996,"dataGaLocation":1893},"/de-de/topics/cloud-native/","cloud native",{"text":1998,"config":1999},"KI für das Programmieren",{"href":2000,"dataGaName":2001,"dataGaLocation":1893},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":2003,"config":2004},"Agentische KI",{"href":2005,"dataGaName":2006,"dataGaLocation":1893},"/de-de/topics/agentic-ai/","agentic ai",{"title":2008,"links":2009},"Lösungen",[2010,2013,2015,2020,2024,2027,2030,2033,2035,2037,2039,2044],{"text":1542,"config":2011},{"href":1537,"dataGaName":2012,"dataGaLocation":1893},"Application Security Testing",{"text":1529,"config":2014},{"href":1513,"dataGaName":1514,"dataGaLocation":1893},{"text":2016,"config":2017},"Agile Entwicklung",{"href":2018,"dataGaName":2019,"dataGaLocation":1893},"/de-de/solutions/agile-delivery/","agile delivery",{"text":2021,"config":2022},"SCM",{"href":1526,"dataGaName":2023,"dataGaLocation":1893},"source code management",{"text":1517,"config":2025},{"href":1519,"dataGaName":2026,"dataGaLocation":1893},"continuous integration & delivery",{"text":1568,"config":2028},{"href":1570,"dataGaName":2029,"dataGaLocation":1893},"value stream management",{"text":1974,"config":2031},{"href":2032,"dataGaName":1977,"dataGaLocation":1893},"/de-de/solutions/gitops/",{"text":1581,"config":2034},{"href":1584,"dataGaName":1585,"dataGaLocation":1893},{"text":1587,"config":2036},{"href":1590,"dataGaName":1591,"dataGaLocation":1893},{"text":1593,"config":2038},{"href":1596,"dataGaName":1597,"dataGaLocation":1893},{"text":2040,"config":2041},"Bildungswesen",{"href":2042,"dataGaName":2043,"dataGaLocation":1893},"/de-de/solutions/education/","education",{"text":2045,"config":2046},"Finanzdienstleistungen",{"href":2047,"dataGaName":2048,"dataGaLocation":1893},"/de-de/solutions/finance/","financial services",{"title":1604,"links":2050},[2051,2053,2055,2057,2060,2062,2065,2067,2069,2071,2073,2075,2077,2079],{"text":1617,"config":2052},{"href":1619,"dataGaName":1620,"dataGaLocation":1893},{"text":1622,"config":2054},{"href":1624,"dataGaName":1625,"dataGaLocation":1893},{"text":1627,"config":2056},{"href":1629,"dataGaName":1630,"dataGaLocation":1893},{"text":1632,"config":2058},{"href":1634,"dataGaName":2059,"dataGaLocation":1893},"docs",{"text":1655,"config":2061},{"href":1657,"dataGaName":1658,"dataGaLocation":1893},{"text":2063,"config":2064},"Neuerungen",{"href":1715,"dataGaName":1716,"dataGaLocation":1893},{"text":1650,"config":2066},{"href":1652,"dataGaName":1653,"dataGaLocation":1893},{"text":1669,"config":2068},{"href":1671,"dataGaName":1672,"dataGaLocation":1893},{"text":1677,"config":2070},{"href":1679,"dataGaName":1680,"dataGaLocation":1893},{"text":1682,"config":2072},{"href":1684,"dataGaName":1685,"dataGaLocation":1893},{"text":1687,"config":2074},{"href":1689,"dataGaName":1690,"dataGaLocation":1893},{"text":1692,"config":2076},{"href":1694,"dataGaName":1695,"dataGaLocation":1893},{"text":1697,"config":2078},{"href":1699,"dataGaName":1700,"dataGaLocation":1893},{"text":1702,"config":2080},{"href":1704,"dataGaName":1705,"dataGaLocation":1893},{"title":1718,"links":2082},[2083,2085,2087,2089,2091,2093,2098,2103,2105,2107,2109],{"text":1726,"config":2084},{"href":1728,"dataGaName":1720,"dataGaLocation":1893},{"text":1731,"config":2086},{"href":1733,"dataGaName":1734,"dataGaLocation":1893},{"text":1739,"config":2088},{"href":1741,"dataGaName":1742,"dataGaLocation":1893},{"text":1744,"config":2090},{"href":1746,"dataGaName":1747,"dataGaLocation":1893},{"text":1749,"config":2092},{"href":1751,"dataGaName":1752,"dataGaLocation":1893},{"text":2094,"config":2095},"Nachhaltigkeit",{"href":2096,"dataGaName":2097,"dataGaLocation":1893},"/sustainability/","Sustainability",{"text":2099,"config":2100},"Vielfalt, Inklusion und Zugehörigkeit",{"href":2101,"dataGaName":2102,"dataGaLocation":1893},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1754,"config":2104},{"href":1756,"dataGaName":1757,"dataGaLocation":1893},{"text":1764,"config":2106},{"href":1766,"dataGaName":1767,"dataGaLocation":1893},{"text":1769,"config":2108},{"href":1771,"dataGaName":1772,"dataGaLocation":1893},{"text":2110,"config":2111},"Transparenzerklärung zu moderner Sklaverei",{"href":2112,"dataGaName":2113,"dataGaLocation":1893},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":2115},[2116,2119,2122],{"text":2117,"config":2118},"Terms",{"href":1943,"dataGaName":1944,"dataGaLocation":1893},{"text":2120,"config":2121},"Cookies",{"dataGaName":1953,"dataGaLocation":1893,"id":1954,"isOneTrustButton":835},{"text":2123,"config":2124},"Datenschutz",{"href":1948,"dataGaName":1949,"dataGaLocation":1893},[2126,2140],{"id":2127,"title":7,"body":1430,"config":2128,"content":2130,"description":1430,"extension":2134,"meta":2135,"navigation":835,"path":2136,"seo":2137,"stem":2138,"__hash__":2139},"blogAuthors/en-us/blog/authors/matt-genelin.yml",{"template":2129},"BlogAuthor",{"name":7,"config":2131},{"headshot":2132,"ctfId":2133},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664522/Blog/Author%20Headshots/matty_genelin.png","6x9dTYZik3lSViI8hu6dYQ","yml",{},"/en-us/blog/authors/matt-genelin",{},"en-us/blog/authors/matt-genelin","BNd-jZWck4DOyJIDc9GI-734vQkyzXJgudpPaFgn5pM",{"id":2141,"title":8,"body":1430,"config":2142,"content":2143,"description":1430,"extension":2134,"meta":2147,"navigation":835,"path":2148,"seo":2149,"stem":2150,"__hash__":2151},"blogAuthors/en-us/blog/authors/matt-bonner.yml",{"template":2129},{"config":2144,"name":8,"bio":2146},{"headshot":2145},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1775484069/x33hdq785qqrkryorkna.jpg","Solutions architect, SmartBear",{},"/en-us/blog/authors/matt-bonner",{},"en-us/blog/authors/matt-bonner","LH2t-4u_lptPQtHVnEjAbAY95_MIODPOJ_kTCdmcfhk",[2153,2161,2167],{"title":2154,"description":2155,"heroImage":2156,"category":1426,"date":2157,"authors":2158,"slug":2160,"externalUrl":1430},"DevOps Stack aufbauen: Häufige Fehler und Best Practices für moderne Toolchains","Ein DevOps Stack sollte mehr sein als eine Tool-Sammlung. Lerne, wie Teams häufige Fehler vermeiden und mit GitLab Toolchain-Komplexität reduzieren.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1775561395/bhe1as7ttjvzltxwgo5m.png","2026-08-07",[2159],"GitLab Germany Team","devops-stack",{"title":2162,"description":2163,"heroImage":1431,"category":1426,"date":2164,"authors":2165,"slug":2166,"externalUrl":1430},"Sechs Möglichkeiten, die DevOps Kosten zu senken, zu sparen und zu optimieren","Wir zeigen dir sechs Möglichkeiten, wie du deine DevOps Kosten senken kannst.","2026-07-20",[2159],"reduce-devops-costs",{"title":2168,"description":2169,"heroImage":2170,"category":1426,"date":2164,"authors":2171,"slug":2173,"externalUrl":1430},"Work Items automatisch zuweisen mit dem Trigger \"Work item created\"","Eine Schritt-für-Schritt-Anleitung zum neuen Trigger, der Work Items automatisch zuweist – skalierbare Triage ohne manuelles Eingreifen.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png",[2172],"Cesar Saavedra","how-to-use-a-work-item-created-trigger",{"promotions":2175},[2176,2190,2201,2213],{"id":2177,"categories":2178,"header":2180,"text":2181,"button":2182,"image":2187},"ai-modernization",[2179],"ai","Hält KI, was uns versprochen wurde?","Das Quiz dauert maximal 5 Minuten.",{"text":2183,"config":2184},"Ermittle deinen KI-Reifegrad",{"href":2185,"dataGaName":2186,"dataGaLocation":1658},"/de-de/assessments/ai-modernization-assessment/","modernization assessment",{"config":2188},{"src":2189},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":2191,"categories":2192,"header":2193,"text":2181,"button":2194,"image":2198},"devops-modernization",[1426,1991],"Verwaltest du Tool-Chaos oder stellst du Innovationen bereit?",{"text":2195,"config":2196},"Ermittle deinen DevOps-Reifegrad",{"href":2197,"dataGaName":2186,"dataGaLocation":1658},"/de-de/assessments/devops-modernization-assessment/",{"config":2199},{"src":2200},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":2202,"categories":2203,"header":2205,"text":2181,"button":2206,"image":2210},"security-modernization",[2204],"security","Tauschst du Schnelligkeit gegen Sicherheit ein?",{"text":2207,"config":2208},"Ermittle deinen Sicherheitsreifegrad",{"href":2209,"dataGaName":2186,"dataGaLocation":1658},"/de-de/assessments/security-modernization-assessment/",{"config":2211},{"src":2212},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":2214,"paths":2215,"header":2218,"text":2219,"button":2220,"image":2225},"github-azure-migration",[2216,2217],"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":2221,"config":2222},"Erfahre, wie GitLab im Vergleich zu GitHub abschneidet",{"href":2223,"dataGaName":2224,"dataGaLocation":1658},"/de-de/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":2226},{"src":2200},{"header":2228,"blurb":2229,"button":2230,"secondaryButton":2235},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":2231,"config":2232},"Kostenlosen Test starten",{"href":2233,"dataGaName":1455,"dataGaLocation":2234},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":1781,"config":2236},{"href":1783,"dataGaName":1460,"dataGaLocation":2234},1786803737879]