[{"data":1,"prerenderedAt":1421},["ShallowReactive",2],{"/de-de/blog/teaching-software-development-the-easy-way-using-gitlab":3,"navigation-de-de":650,"banner-de-de":1070,"footer-de-de":1079,"blog-post-authors-de-de-Rod Burns":1315,"blog-related-posts-de-de-teaching-software-development-the-easy-way-using-gitlab":1331,"blog-promotions-de-de":1357,"next-steps-de-de":1411},{"id":4,"title":5,"authors":6,"body":8,"category":631,"date":632,"description":633,"extension":634,"externalUrl":635,"featured":636,"heroImage":637,"meta":638,"navigation":167,"path":639,"seo":640,"slug":643,"stem":644,"tags":645,"template":648,"updatedDate":635,"__hash__":649},"blogPosts/de-de/blog/teaching-software-development-the-easy-way-using-gitlab.md","Softwareentwicklung lehren mit GitLab: ein Praxisbericht",[7],"Rod Burns",{"type":9,"value":10,"toc":625},"minimark",[11,15,32,37,40,51,55,66,92,99,113,120,126,543,552,556,567,573,580,584,599,602,612,621],[12,13,14],"p",{},"Für Lehrende in der Softwareentwicklung ist die Verwaltung von Assignments\nund Feedback im großen Maßstab eine der größten logistischen Herausforderungen.\nWie gibt man vielen Studierenden Zugang zu Kursmaterialien, hält Musterlösungen\nprivat und liefert trotzdem kontextbezogenes, aussagekräftiges Feedback – ohne\nübermäßigen Verwaltungsaufwand?",[12,16,17,18,27,28,31],{},"Das ",[19,20,21],"strong",{},[22,23,26],"a",{"href":24,"rel":25},"https://about.gitlab.com/de-de/solutions/education/",[],"GitLab for Education-Programm","\nstellt qualifizierten Bildungseinrichtungen kostenlosen Zugang zu\n",[19,29,30],{},"GitLab Ultimate"," bereit. Damit können Lehrende professionelle Workflows\naufbauen, die reale Softwareentwicklungsumgebungen abbilden. Stephen G. Dame,\nLehrbeauftragter an der University of Washington mit langjähriger Erfahrung\nals leitender Softwareingenieur bei Boeing Commercial Airplanes, nutzt\ngenau diese Workflows – vom Kursmaterial bis zum Studierendenfeedback, über\nmehrere Lehrveranstaltungen hinweg.",[33,34,36],"h2",{"id":35},"von-der-luft-und-raumfahrt-in-den-hörsaal","Von der Luft- und Raumfahrt in den Hörsaal",[12,38,39],{},"Dame brachte aus seiner Zeit bei Boeing umfangreiche GitLab-Erfahrung mit\nin die Hochschullehre. Als früher Fürsprecher von GitLab an seiner Universität\ntrat er dem GitLab for Education-Programm bei, um Zugang zum vollständigen\nFeature-Set für strukturierte, skalierbare Kurs-Workflows zu erhalten.",[41,42,43,48],"blockquote",{},[12,44,45],{},[19,46,47],{},"„GitLab bietet die beste Möglichkeit, mehrere Kurse, studentische\nAssignments, Vorlesungen und Code-Beispiele über Groups und Subgroups\nzu organisieren – eine Funktion, die ich in dieser Form bei anderen\nRepository-Plattformen nicht gefunden habe.\"",[12,49,50],{},"– Stephen G. Dame, University of Washington, Bothell",[33,52,54],{"id":53},"groups-aufsetzen-die-richtige-struktur-vor-der-ersten-codezeile","Groups aufsetzen: Die richtige Struktur vor der ersten Codezeile",[12,56,57,58,65],{},"Die Grundlage eines effektiven GitLab-basierten Kurses ist eine\ndurchdachte Group-Hierarchie. GitLabs\n",[19,59,60],{},[22,61,64],{"href":62,"rel":63},"https://docs.gitlab.com/tutorials/manage_user/#create-the-organization-parent-group-and-subgroups",[],"Groups und Subgroups","\nermöglichen es Lehrenden, die natürliche Struktur einer Hochschule –\nInstitution, Kurs und Rolle – mit präzisen, vererbbaren Berechtigungen\nauf jeder Ebene abzubilden.",[12,67,68,69,73,74,77,78,81,82,84,85,81,88,91],{},"Dames Struktur platziert die Universität als Wurzel (",[70,71,72],"code",{},"UWTeaching","), jeder\nKurs erhält eine eigene Subgroup (z. B. ",[70,75,76],{},"css430","). Innerhalb jedes Kurses\nbefinden sich Repositories für ",[70,79,80],{},"lecture-materials"," und ",[70,83,70],{}," sowie\ndedizierte Subgroups für ",[70,86,87],{},"students",[70,89,90],{},"graders",". Unterrichtsmaterialien\nbleiben privat; Studierenden- und Grader-Subgroups sind mit kontrollierten\nBerechtigungen konfiguriert, sodass Aufgabenstellungen und Musterlösungen\nnur den richtigen Personen zugänglich sind.",[12,93,94],{},[95,96],"img",{"alt":97,"src":98},"Screenshot der GitLab-Group-Hierarchie – Institution, Kurs-Subgroup und studierende-spezifische Subgroups","https://res.cloudinary.com/about-gitlab-com/image/upload/v1777463673/dpxfnitv76pdmvcqtgag.png",[12,100,101,102,105,106,109,110,112],{},"Berechtigungen werden über ",[19,103,104],{},"Manage > Members"," durch die Hierarchie\nweitergegeben. Dame fügt Studierende mit ",[70,107,108],{},"Reporter","-Zugriff und einem\nAblaufdatum zum Ende der Lehrperiode zur ",[70,111,87],{},"-Subgroup des jeweiligen\nKurses hinzu. Studierende können Assignment-Repositories klonen und pullen,\naber nicht pushen – Musterlösungen bleiben fest unter der Kontrolle der\nLehrenden.",[12,114,115,116,119],{},"Studierende richten SSH-Schlüssel in all ihren Arbeitsumgebungen (lokale\nRechner, Cloud-Shells, virtuelle Maschinen) ein, um Repositories zu klonen\nund wöchentliche Updates via ",[70,117,118],{},"git pull"," zu erhalten. Sie kopieren relevanten\nCode in eigene private Repositories, um ihre eigene Versionshistorie zu\nverwalten.",[12,121,122,125],{},[19,123,124],{},"Hinweis für große Lehrveranstaltungen:"," Bei größeren Kohorten ist das\nmanuelle Hinzufügen von Studierenden unpraktisch. GitLabs REST-API\nermöglicht die Automatisierung von Subgroup-Erstellung und Mitgliedschaft\naus einer Liste von Benutzernamen. Hier ein Beispiel-Python-Skript:",[127,128,133],"pre",{"className":129,"code":130,"language":131,"meta":132,"style":132},"language-python shiki shiki-themes github-light","import gitlab\nfrom datetime import datetime\n\n# Verbindung zur GitLab-Instanz herstellen\ngl = gitlab.Gitlab('https://gitlab.com', private_token='YOUR_PRIVATE_TOKEN')\n\n# ID der übergeordneten Group (z. B. die ID für \"css430 > students\")\nparent_group_id = 12345678\n\n# Ablaufdatum: typischerweise Beginn des nächsten Monats nach Ende der Lehrperiode\nexpiry_date = '2025-01-01'\n\n# Liste der gesammelten Studierenden-Benutzernamen\nstudent_list = ['alice_css430', 'bob_css430', 'carol_css430', 'dave_css430', 'eve_css430']\n\nfor username in student_list:\n    try:\n        # 1. Persönliche Subgroup für Studierende erstellen\n        subgroup = gl.groups.create({\n            'name': username,\n            'path': username,\n            'parent_id': parent_group_id,\n            'visibility': 'private'\n        })\n\n        # 2. Studierende mit Ablaufdatum zur neuen Subgroup hinzufügen\n        user = gl.users.list(username=username)[0]\n        subgroup.members.create({\n            'user_id': user.id,\n            'access_level': gitlab.const.REPORTER_ACCESS,\n            'expires_at': expiry_date\n        })\n        print(f\"Erfolg: Subgroup erstellt und Studierende/r hinzugefügt für {username}\")\n    except Exception as e:\n        print(f\"Fehler bei der Verarbeitung von {username}: {e}\")\n","python","",[70,134,135,148,162,169,176,207,212,218,230,235,241,252,257,263,300,305,320,329,335,346,355,363,372,384,390,395,401,425,431,440,455,464,469,497,512],{"__ignoreMap":132},[136,137,140,144],"span",{"class":138,"line":139},"line",1,[136,141,143],{"class":142},"sD7c4","import",[136,145,147],{"class":146},"sgsFI"," gitlab\n",[136,149,151,154,157,159],{"class":138,"line":150},2,[136,152,153],{"class":142},"from",[136,155,156],{"class":146}," datetime ",[136,158,143],{"class":142},[136,160,161],{"class":146}," datetime\n",[136,163,165],{"class":138,"line":164},3,[136,166,168],{"emptyLinePlaceholder":167},true,"\n",[136,170,172],{"class":138,"line":171},4,[136,173,175],{"class":174},"sAwPA","# Verbindung zur GitLab-Instanz herstellen\n",[136,177,179,182,185,188,192,195,199,201,204],{"class":138,"line":178},5,[136,180,181],{"class":146},"gl ",[136,183,184],{"class":142},"=",[136,186,187],{"class":146}," gitlab.Gitlab(",[136,189,191],{"class":190},"sYBdl","'https://gitlab.com'",[136,193,194],{"class":146},", ",[136,196,198],{"class":197},"sqxcx","private_token",[136,200,184],{"class":142},[136,202,203],{"class":190},"'YOUR_PRIVATE_TOKEN'",[136,205,206],{"class":146},")\n",[136,208,210],{"class":138,"line":209},6,[136,211,168],{"emptyLinePlaceholder":167},[136,213,215],{"class":138,"line":214},7,[136,216,217],{"class":174},"# ID der übergeordneten Group (z. B. die ID für \"css430 > students\")\n",[136,219,221,224,226],{"class":138,"line":220},8,[136,222,223],{"class":146},"parent_group_id ",[136,225,184],{"class":142},[136,227,229],{"class":228},"sYu0t"," 12345678\n",[136,231,233],{"class":138,"line":232},9,[136,234,168],{"emptyLinePlaceholder":167},[136,236,238],{"class":138,"line":237},10,[136,239,240],{"class":174},"# Ablaufdatum: typischerweise Beginn des nächsten Monats nach Ende der Lehrperiode\n",[136,242,244,247,249],{"class":138,"line":243},11,[136,245,246],{"class":146},"expiry_date ",[136,248,184],{"class":142},[136,250,251],{"class":190}," '2025-01-01'\n",[136,253,255],{"class":138,"line":254},12,[136,256,168],{"emptyLinePlaceholder":167},[136,258,260],{"class":138,"line":259},13,[136,261,262],{"class":174},"# Liste der gesammelten Studierenden-Benutzernamen\n",[136,264,266,269,271,274,277,279,282,284,287,289,292,294,297],{"class":138,"line":265},14,[136,267,268],{"class":146},"student_list ",[136,270,184],{"class":142},[136,272,273],{"class":146}," [",[136,275,276],{"class":190},"'alice_css430'",[136,278,194],{"class":146},[136,280,281],{"class":190},"'bob_css430'",[136,283,194],{"class":146},[136,285,286],{"class":190},"'carol_css430'",[136,288,194],{"class":146},[136,290,291],{"class":190},"'dave_css430'",[136,293,194],{"class":146},[136,295,296],{"class":190},"'eve_css430'",[136,298,299],{"class":146},"]\n",[136,301,303],{"class":138,"line":302},15,[136,304,168],{"emptyLinePlaceholder":167},[136,306,308,311,314,317],{"class":138,"line":307},16,[136,309,310],{"class":142},"for",[136,312,313],{"class":146}," username ",[136,315,316],{"class":142},"in",[136,318,319],{"class":146}," student_list:\n",[136,321,323,326],{"class":138,"line":322},17,[136,324,325],{"class":142},"    try",[136,327,328],{"class":146},":\n",[136,330,332],{"class":138,"line":331},18,[136,333,334],{"class":174},"        # 1. Persönliche Subgroup für Studierende erstellen\n",[136,336,338,341,343],{"class":138,"line":337},19,[136,339,340],{"class":146},"        subgroup ",[136,342,184],{"class":142},[136,344,345],{"class":146}," gl.groups.create({\n",[136,347,349,352],{"class":138,"line":348},20,[136,350,351],{"class":190},"            'name'",[136,353,354],{"class":146},": username,\n",[136,356,358,361],{"class":138,"line":357},21,[136,359,360],{"class":190},"            'path'",[136,362,354],{"class":146},[136,364,366,369],{"class":138,"line":365},22,[136,367,368],{"class":190},"            'parent_id'",[136,370,371],{"class":146},": parent_group_id,\n",[136,373,375,378,381],{"class":138,"line":374},23,[136,376,377],{"class":190},"            'visibility'",[136,379,380],{"class":146},": ",[136,382,383],{"class":190},"'private'\n",[136,385,387],{"class":138,"line":386},24,[136,388,389],{"class":146},"        })\n",[136,391,393],{"class":138,"line":392},25,[136,394,168],{"emptyLinePlaceholder":167},[136,396,398],{"class":138,"line":397},26,[136,399,400],{"class":174},"        # 2. Studierende mit Ablaufdatum zur neuen Subgroup hinzufügen\n",[136,402,404,407,409,412,415,417,420,423],{"class":138,"line":403},27,[136,405,406],{"class":146},"        user ",[136,408,184],{"class":142},[136,410,411],{"class":146}," gl.users.list(",[136,413,414],{"class":197},"username",[136,416,184],{"class":142},[136,418,419],{"class":146},"username)[",[136,421,422],{"class":228},"0",[136,424,299],{"class":146},[136,426,428],{"class":138,"line":427},28,[136,429,430],{"class":146},"        subgroup.members.create({\n",[136,432,434,437],{"class":138,"line":433},29,[136,435,436],{"class":190},"            'user_id'",[136,438,439],{"class":146},": user.id,\n",[136,441,443,446,449,452],{"class":138,"line":442},30,[136,444,445],{"class":190},"            'access_level'",[136,447,448],{"class":146},": gitlab.const.",[136,450,451],{"class":228},"REPORTER_ACCESS",[136,453,454],{"class":146},",\n",[136,456,458,461],{"class":138,"line":457},31,[136,459,460],{"class":190},"            'expires_at'",[136,462,463],{"class":146},": expiry_date\n",[136,465,467],{"class":138,"line":466},32,[136,468,389],{"class":146},[136,470,472,475,478,481,484,487,489,492,495],{"class":138,"line":471},33,[136,473,474],{"class":228},"        print",[136,476,477],{"class":146},"(",[136,479,480],{"class":142},"f",[136,482,483],{"class":190},"\"Erfolg: Subgroup erstellt und Studierende/r hinzugefügt für ",[136,485,486],{"class":228},"{",[136,488,414],{"class":146},[136,490,491],{"class":228},"}",[136,493,494],{"class":190},"\"",[136,496,206],{"class":146},[136,498,500,503,506,509],{"class":138,"line":499},34,[136,501,502],{"class":142},"    except",[136,504,505],{"class":228}," Exception",[136,507,508],{"class":142}," as",[136,510,511],{"class":146}," e:\n",[136,513,515,517,519,521,524,526,528,530,532,534,537,539,541],{"class":138,"line":514},35,[136,516,474],{"class":228},[136,518,477],{"class":146},[136,520,480],{"class":142},[136,522,523],{"class":190},"\"Fehler bei der Verarbeitung von ",[136,525,486],{"class":228},[136,527,414],{"class":146},[136,529,491],{"class":228},[136,531,380],{"class":190},[136,533,486],{"class":228},[136,535,536],{"class":146},"e",[136,538,491],{"class":228},[136,540,494],{"class":190},[136,542,206],{"class":146},[12,544,545,546,551],{},"Darüber hinaus gibt es ein von GitLab veröffentlichtes\n",[22,547,550],{"href":548,"rel":549},"https://gitlab.com/edu-docs/class-management-automation",[],"Open-Source-Projekt zur Automatisierung der Kursverwaltung",",\ndas zusätzliche Werkzeuge für diesen Workflow bereitstellt.",[33,553,555],{"id":554},"feedback-dort-geben-wo-die-arbeit-wirklich-stattfindet","Feedback dort geben, wo die Arbeit wirklich stattfindet",[12,557,558,559,566],{},"Sobald die Struktur steht, zeigt sich der eigentliche Mehrwert von GitLab\nim Feedback-Workflow. Dame bittet Studierende, Assignments durch Öffnen\neines ",[19,560,561],{},[22,562,565],{"href":563,"rel":564},"https://docs.gitlab.com/user/project/merge_requests/",[],"Merge Requests","\nin ihrem Repository einzureichen. Das gibt Lehrenden sofort einen sauberen\nDiff von allem, was die Studierenden geschrieben haben.",[12,568,569],{},[95,570],{"alt":571,"src":572},"Ein GitLab Merge Request mit Inline-Kommentarfunktion für Lehrende","https://res.cloudinary.com/about-gitlab-com/image/upload/v1777467468/icclzyglbkwlvfysggbi.png",[12,574,575,576,579],{},"Lehrende können auf jede Codezeile klicken und einen ",[19,577,578],{},"Inline-Kommentar","\nhinterlassen – nicht nur um zu markieren, was falsch ist, sondern um zu\nerklären, warum, und um auf den nächsten Schritt hinzuweisen. Studierende\nerhalten dieses Feedback direkt im Kontext ihres Codes – deutlich\nhandlungsrelevanter als ein Kommentar am Ende eines eingereichten Dokuments.",[33,581,583],{"id":582},"gitlab-for-education-nutzen","GitLab for Education nutzen",[12,585,586,587,592,593,598],{},"Die Einrichtung des ersten GitLab-Assignments erfordert anfänglichen Aufwand,\nläuft danach aber weitgehend von selbst. Der eigentliche Mehrwert geht über\ndie Organisation hinaus: Studierende schließen ihr Studium ab, nachdem sie\ntäglich in einer Umgebung gearbeitet haben, die professionelle\nSoftwareentwicklung abbildet – und dabei Gewohnheiten rund um\n",[22,588,591],{"href":589,"rel":590},"https://about.gitlab.com/de-de/topics/version-control/",[],"Versionskontrolle","\nund ",[22,594,597],{"href":595,"rel":596},"https://docs.gitlab.com/development/code_review/",[],"Code-Review"," nicht\nals abstrakte Konzepte kennenlernen, sondern praktisch einüben.",[12,600,601],{},"Empfehlenswert ist ein einfacher Einstieg: eine einzelne Kurs-Group, ein\nAssignment-Template, eine grundlegende Pipeline. Die Struktur wächst\nnatürlich mit der Erfahrung auf der Plattform.",[12,603,604,611],{},[19,605,606],{},[22,607,610],{"href":608,"rel":609},"https://about.gitlab.com/de-de/solutions/education/join/",[],"Für GitLab for Education anmelden",",\num Zugang zu allen Top-Tier-Funktionen zu erhalten – darunter unbegrenzte\nReviewer bei Merge Requests, zusätzliche Compute-Minuten und erweiterter\nSpeicherplatz.",[41,613,614],{},[12,615,616,620],{},[22,617,619],{"href":608,"rel":618},[],"Jetzt für das GitLab for Education-Programm bewerben",".",[622,623,624],"style",{},"html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sqxcx, html code.shiki .sqxcx{--shiki-default:#E36209}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}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":132,"searchDepth":150,"depth":150,"links":626},[627,628,629,630],{"id":35,"depth":150,"text":36},{"id":53,"depth":150,"text":54},{"id":554,"depth":150,"text":555},{"id":582,"depth":150,"text":583},"devsecops","2026-04-29","Wie Lehrbeauftragter Stephen G. Dame GitLab for Education für Kursverwaltung, Assignment-Verteilung und direktes Code-Feedback im Hochschulalltag einsetzt.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659537/Blog/Hero%20Images/display-article-image-0679-1800x945-fy26.png",{},"/de-de/blog/teaching-software-development-the-easy-way-using-gitlab",{"config":641,"title":5,"description":642},{"noIndex":636},"Wie ein Dozent GitLab for Education nutzt, um Assignments zu verwalten, Kursmaterialien zu verteilen und Studierenden Feedback direkt im Code zu geben.","teaching-software-development-the-easy-way-using-gitlab","de-de/blog/teaching-software-development-the-easy-way-using-gitlab",[646,647],"education","open source","BlogPost","hWM3TQYWY4JM0xvXELRCzMCjhKCs3_fH2AvwyeMfACk",{"logo":651,"freeTrial":656,"sales":661,"login":666,"items":671,"search":988,"minimal":1022,"duo":1040,"switchNav":1049,"pricingDeployment":1060},{"config":652},{"href":653,"dataGaName":654,"dataGaLocation":655},"/de-de/","gitlab logo","header",{"text":657,"config":658},"Kostenlose Testversion anfordern",{"href":659,"dataGaName":660,"dataGaLocation":655},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":662,"config":663},"Vertrieb kontaktieren",{"href":664,"dataGaName":665,"dataGaLocation":655},"/de-de/sales/","sales",{"text":667,"config":668},"Anmelden",{"href":669,"dataGaName":670,"dataGaLocation":655},"https://gitlab.com/users/sign_in/","sign in",[672,701,803,808,912,968],{"text":673,"config":674,"menu":676},"Plattform",{"dataNavLevelOne":675},"platform",{"type":677,"columns":678},"cards",[679,685,693],{"title":673,"description":680,"link":681},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":682,"config":683},"Die Plattform erkunden",{"href":684,"dataGaName":675,"dataGaLocation":655},"/de-de/platform/",{"title":686,"description":687,"link":688},"GitLab Duo Agent Platform","Agentische KI für den gesamten Software-Lebenszyklus",{"text":689,"config":690},"Lerne GitLab Duo kennen",{"href":691,"dataGaName":692,"dataGaLocation":655},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":694,"description":695,"link":696},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":697,"config":698},"Mehr erfahren",{"href":699,"dataGaName":700,"dataGaLocation":655},"/de-de/why-gitlab/","why gitlab",{"text":702,"left":167,"config":703,"menu":705},"Produkt",{"dataNavLevelOne":704},"solutions",{"type":706,"link":707,"columns":711,"feature":782},"lists",{"text":708,"config":709},"Alle Lösungen anzeigen",{"href":710,"dataGaName":704,"dataGaLocation":655},"/de-de/solutions/",[712,737,760],{"title":713,"description":714,"link":715,"items":720},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":716},{"icon":717,"href":718,"dataGaName":719,"dataGaLocation":655},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[721,725,728,733],{"text":722,"config":723},"CI/CD",{"href":724,"dataGaLocation":655,"dataGaName":722},"/de-de/solutions/continuous-integration/",{"text":686,"config":726},{"href":691,"dataGaLocation":655,"dataGaName":727},"gitlab duo agent platform - product menu",{"text":729,"config":730},"Quellcodeverwaltung",{"href":731,"dataGaLocation":655,"dataGaName":732},"/de-de/solutions/source-code-management/","Source Code Management",{"text":734,"config":735},"Automatische Softwarebereitstellung",{"href":718,"dataGaLocation":655,"dataGaName":736},"Automated software delivery",{"title":738,"description":739,"link":740,"items":745},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":741},{"href":742,"dataGaName":743,"dataGaLocation":655,"icon":744},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[746,750,755],{"text":747,"config":748},"Anwendungssicherheitstests",{"href":742,"dataGaName":749,"dataGaLocation":655},"Application security testing",{"text":751,"config":752},"Sicherheit der Software-Lieferkette",{"href":753,"dataGaLocation":655,"dataGaName":754},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":756,"config":757},"Software-Compliance",{"href":758,"dataGaName":759,"dataGaLocation":655},"/de-de/solutions/software-compliance/","software compliance",{"title":761,"link":762,"items":767},"Messung",{"config":763},{"icon":764,"href":765,"dataGaName":766,"dataGaLocation":655},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[768,772,777],{"text":769,"config":770},"Sichtbarkeit und Messung",{"href":765,"dataGaLocation":655,"dataGaName":771},"Visibility and Measurement",{"text":773,"config":774},"Wertstrommanagement",{"href":775,"dataGaLocation":655,"dataGaName":776},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":778,"config":779},"Analysen und Einblicke",{"href":780,"dataGaLocation":655,"dataGaName":781},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":783,"type":706,"items":784},"GitLab für",[785,791,797],{"text":786,"config":787},"Enterprise",{"icon":788,"href":789,"dataGaLocation":655,"dataGaName":790},"Building","/de-de/enterprise/","enterprise",{"text":792,"config":793},"Kleinunternehmen",{"icon":794,"href":795,"dataGaLocation":655,"dataGaName":796},"Work","/de-de/small-business/","small business",{"text":798,"config":799},"Öffentlicher Sektor",{"icon":800,"href":801,"dataGaLocation":655,"dataGaName":802},"Organization","/de-de/solutions/public-sector/","public sector",{"text":804,"config":805},"Preise",{"href":806,"dataGaName":807,"dataGaLocation":655,"dataNavLevelOne":807},"/de-de/pricing/","pricing",{"text":809,"config":810,"menu":812},"Ressourcen",{"dataNavLevelOne":811},"resources",{"type":706,"link":813,"columns":817,"feature":901},{"text":814,"config":815},"Alle Ressourcen anzeigen",{"href":816,"dataGaName":811,"dataGaLocation":655},"/de-de/resources/",[818,851,873],{"title":819,"items":820},"Erste Schritte",[821,826,831,836,841,846],{"text":822,"config":823},"Installieren",{"href":824,"dataGaName":825,"dataGaLocation":655},"/de-de/install/","install",{"text":827,"config":828},"Kurzanleitungen",{"href":829,"dataGaName":830,"dataGaLocation":655},"/de-de/get-started/","quick setup checklists",{"text":832,"config":833},"Lernen",{"href":834,"dataGaLocation":655,"dataGaName":835},"https://university.gitlab.com/","learn",{"text":837,"config":838},"Produktdokumentation",{"href":839,"dataGaName":840,"dataGaLocation":655},"https://docs.gitlab.com/","product documentation",{"text":842,"config":843},"Best-Practice-Videos",{"href":844,"dataGaName":845,"dataGaLocation":655},"/de-de/getting-started-videos/","best practice videos",{"text":847,"config":848},"Integrationen",{"href":849,"dataGaName":850,"dataGaLocation":655},"/de-de/integrations/","integrations",{"title":852,"items":853},"Entdecken",[854,859,864,868],{"text":855,"config":856},"Kundenerfolge",{"href":857,"dataGaName":858,"dataGaLocation":655},"/de-de/customers/","customer success stories",{"text":860,"config":861},"Blog",{"href":862,"dataGaName":863,"dataGaLocation":655},"/de-de/blog/","blog",{"text":865,"config":866},"The Source",{"href":867,"dataGaName":863,"dataGaLocation":655},"/de-de/the-source/",{"text":869,"config":870},"Remote",{"href":871,"dataGaName":872,"dataGaLocation":655},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":874,"items":875},"Vernetzen",[876,881,886,891,896],{"text":877,"config":878},"GitLab-Services",{"href":879,"dataGaName":880,"dataGaLocation":655},"/de-de/services/","services",{"text":882,"config":883},"Community",{"href":884,"dataGaName":885,"dataGaLocation":655},"/community/","community",{"text":887,"config":888},"Forum",{"href":889,"dataGaName":890,"dataGaLocation":655},"https://forum.gitlab.com/","forum",{"text":892,"config":893},"Veranstaltungen",{"href":894,"dataGaName":895,"dataGaLocation":655},"/events/","events",{"text":897,"config":898},"Partner",{"href":899,"dataGaName":900,"dataGaLocation":655},"/de-de/partners/","partners",{"config":902,"title":905,"text":906,"link":907},{"background":903,"textColor":904},"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":908,"config":909},"Aktuelle Nachrichten",{"href":910,"dataGaName":911,"dataGaLocation":655},"/de-de/whats-new/","whats new",{"text":913,"config":914,"menu":916},"Company",{"dataNavLevelOne":915},"company",{"type":706,"columns":917},[918],{"items":919},[920,925,931,933,938,943,948,953,958,963],{"text":921,"config":922},"Über",{"href":923,"dataGaName":924,"dataGaLocation":655},"/de-de/company/","about",{"text":926,"config":927,"footerGa":930},"Karriere",{"href":928,"dataGaName":929,"dataGaLocation":655},"/jobs/","jobs",{"dataGaName":929},{"text":892,"config":932},{"href":894,"dataGaName":895,"dataGaLocation":655},{"text":934,"config":935},"Geschäftsführung",{"href":936,"dataGaName":937,"dataGaLocation":655},"/company/team/e-group/","leadership",{"text":939,"config":940},"Handbuch",{"href":941,"dataGaName":942,"dataGaLocation":655},"https://handbook.gitlab.com/","handbook",{"text":944,"config":945},"Investor Relations",{"href":946,"dataGaName":947,"dataGaLocation":655},"https://ir.gitlab.com/","investor relations",{"text":949,"config":950},"Trust Center",{"href":951,"dataGaName":952,"dataGaLocation":655},"/de-de/security/","trust center",{"text":954,"config":955},"AI Transparency Center",{"href":956,"dataGaName":957,"dataGaLocation":655},"/de-de/ai-transparency-center/","ai transparency center",{"text":959,"config":960},"Newsletter",{"href":961,"dataGaName":962,"dataGaLocation":655},"/company/contact/#contact-forms","newsletter",{"text":964,"config":965},"Presse",{"href":966,"dataGaName":967,"dataGaLocation":655},"/press/","press",{"text":969,"config":970,"menu":971},"Kontakt",{"dataNavLevelOne":915},{"type":706,"columns":972},[973],{"items":974},[975,978,983],{"text":662,"config":976},{"href":664,"dataGaName":977,"dataGaLocation":655},"talk to sales",{"text":979,"config":980},"Support-Portal",{"href":981,"dataGaName":982,"dataGaLocation":655},"https://support.gitlab.com","support portal",{"text":984,"config":985},"Kundenportal",{"href":986,"dataGaName":987,"dataGaLocation":655},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":989,"login":990,"suggestions":997},"Schließen",{"text":991,"link":992},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":993,"config":994},"gitlab.com",{"href":669,"dataGaName":995,"dataGaLocation":996},"search login","search",{"text":998,"default":999},"Vorschläge",[1000,1002,1007,1009,1014,1019],{"text":686,"config":1001},{"href":691,"dataGaName":686,"dataGaLocation":996},{"text":1003,"config":1004},"Codevorschläge (KI)",{"href":1005,"dataGaName":1006,"dataGaLocation":996},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":722,"config":1008},{"href":724,"dataGaName":722,"dataGaLocation":996},{"text":1010,"config":1011},"GitLab auf AWS",{"href":1012,"dataGaName":1013,"dataGaLocation":996},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":1015,"config":1016},"GitLab auf Google Cloud",{"href":1017,"dataGaName":1018,"dataGaLocation":996},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":694,"config":1020},{"href":699,"dataGaName":1021,"dataGaLocation":996},"Why GitLab?",{"freeTrial":1023,"mobileIcon":1028,"desktopIcon":1033,"secondaryButton":1036},{"text":1024,"config":1025},"Kostenlos testen",{"href":1026,"dataGaName":660,"dataGaLocation":1027},"https://gitlab.com/-/trials/new/","nav",{"altText":1029,"config":1030},"GitLab-Symbol",{"src":1031,"dataGaName":1032,"dataGaLocation":1027},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1029,"config":1034},{"src":1035,"dataGaName":1032,"dataGaLocation":1027},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":819,"config":1037},{"href":1038,"dataGaName":1039,"dataGaLocation":1027},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":1041,"mobileIcon":1045,"desktopIcon":1047},{"text":1042,"config":1043},"Mehr über GitLab Duo erfahren",{"href":691,"dataGaName":1044,"dataGaLocation":1027},"gitlab duo",{"altText":1029,"config":1046},{"src":1031,"dataGaName":1032,"dataGaLocation":1027},{"altText":1029,"config":1048},{"src":1035,"dataGaName":1032,"dataGaLocation":1027},{"button":1050,"mobileIcon":1055,"desktopIcon":1057},{"text":1051,"config":1052},"/Option",{"href":1053,"dataGaName":1054,"dataGaLocation":1027},"#contact","switch",{"altText":1029,"config":1056},{"src":1031,"dataGaName":1032,"dataGaLocation":1027},{"altText":1029,"config":1058},{"src":1059,"dataGaName":1032,"dataGaLocation":1027},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1061,"mobileIcon":1066,"desktopIcon":1068},{"text":1062,"config":1063},"Zurück zur Preisübersicht",{"href":806,"dataGaName":1064,"dataGaLocation":1027,"icon":1065},"back to pricing","GoBack",{"altText":1029,"config":1067},{"src":1031,"dataGaName":1032,"dataGaLocation":1027},{"altText":1029,"config":1069},{"src":1035,"dataGaName":1032,"dataGaLocation":1027},{"title":1071,"button":1072,"config":1077},"Sieh dir an, wie agentische KI die Softwarebereitstellung transformiert",{"text":1073,"config":1074},"Jetzt live bei GitLab Transcend am 10. Juni dabei sein",{"href":1075,"dataGaName":1076,"dataGaLocation":655},"/de-de/events/transcend/virtual/","transcend event",{"layout":1078,"disabled":636},"release",{"data":1080},{"text":1081,"source":1082,"edit":1088,"contribute":1093,"config":1098,"items":1103,"minimal":1306},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":1083,"config":1084},"Quelltext der Seite anzeigen",{"href":1085,"dataGaName":1086,"dataGaLocation":1087},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1089,"config":1090},"Diese Seite bearbeiten",{"href":1091,"dataGaName":1092,"dataGaLocation":1087},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1094,"config":1095},"Beteilige dich",{"href":1096,"dataGaName":1097,"dataGaLocation":1087},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1099,"facebook":1100,"youtube":1101,"linkedin":1102},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1104,1149,1200,1241,1272],{"title":804,"links":1105,"subMenu":1120},[1106,1110,1115],{"text":1107,"config":1108},"Tarife anzeigen",{"href":806,"dataGaName":1109,"dataGaLocation":1087},"view plans",{"text":1111,"config":1112},"Vorteile von Premium",{"href":1113,"dataGaName":1114,"dataGaLocation":1087},"/de-de/pricing/premium/","why premium",{"text":1116,"config":1117},"Vorteile von Ultimate",{"href":1118,"dataGaName":1119,"dataGaLocation":1087},"/de-de/pricing/ultimate/","why ultimate",[1121],{"title":969,"links":1122},[1123,1125,1127,1129,1134,1139,1144],{"text":662,"config":1124},{"href":664,"dataGaName":665,"dataGaLocation":1087},{"text":979,"config":1126},{"href":981,"dataGaName":982,"dataGaLocation":1087},{"text":984,"config":1128},{"href":986,"dataGaName":987,"dataGaLocation":1087},{"text":1130,"config":1131},"Status",{"href":1132,"dataGaName":1133,"dataGaLocation":1087},"https://status.gitlab.com/","status",{"text":1135,"config":1136},"Nutzungsbedingungen",{"href":1137,"dataGaName":1138,"dataGaLocation":1087},"/terms/","terms of use",{"text":1140,"config":1141},"Datenschutzerklärung",{"href":1142,"dataGaName":1143,"dataGaLocation":1087},"/de-de/privacy/","privacy statement",{"text":1145,"config":1146},"Cookie-Einstellungen",{"dataGaName":1147,"dataGaLocation":1087,"id":1148,"isOneTrustButton":167},"cookie preferences","ot-sdk-btn",{"title":702,"links":1150,"subMenu":1159},[1151,1155],{"text":1152,"config":1153},"DevSecOps-Plattform",{"href":684,"dataGaName":1154,"dataGaLocation":1087},"devsecops platform",{"text":1156,"config":1157},"KI-unterstützte Entwicklung",{"href":691,"dataGaName":1158,"dataGaLocation":1087},"ai-assisted development",[1160],{"title":1161,"links":1162},"Themen",[1163,1167,1172,1177,1181,1185,1190,1195],{"text":722,"config":1164},{"href":1165,"dataGaName":1166,"dataGaLocation":1087},"/de-de/topics/ci-cd/","cicd",{"text":1168,"config":1169},"GitOps",{"href":1170,"dataGaName":1171,"dataGaLocation":1087},"/de-de/topics/gitops/","gitops",{"text":1173,"config":1174},"DevOps",{"href":1175,"dataGaName":1176,"dataGaLocation":1087},"/de-de/topics/devops/","devops",{"text":591,"config":1178},{"href":1179,"dataGaName":1180,"dataGaLocation":1087},"/de-de/topics/version-control/","version control",{"text":1182,"config":1183},"DevSecOps",{"href":1184,"dataGaName":631,"dataGaLocation":1087},"/de-de/topics/devsecops/",{"text":1186,"config":1187},"Cloud-nativ",{"href":1188,"dataGaName":1189,"dataGaLocation":1087},"/de-de/topics/cloud-native/","cloud native",{"text":1191,"config":1192},"KI für das Programmieren",{"href":1193,"dataGaName":1194,"dataGaLocation":1087},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":1196,"config":1197},"Agentische KI",{"href":1198,"dataGaName":1199,"dataGaLocation":1087},"/de-de/topics/agentic-ai/","agentic ai",{"title":1201,"links":1202},"Lösungen",[1203,1206,1208,1213,1217,1220,1223,1226,1228,1230,1232,1236],{"text":747,"config":1204},{"href":742,"dataGaName":1205,"dataGaLocation":1087},"Application Security Testing",{"text":734,"config":1207},{"href":718,"dataGaName":719,"dataGaLocation":1087},{"text":1209,"config":1210},"Agile Entwicklung",{"href":1211,"dataGaName":1212,"dataGaLocation":1087},"/de-de/solutions/agile-delivery/","agile delivery",{"text":1214,"config":1215},"SCM",{"href":731,"dataGaName":1216,"dataGaLocation":1087},"source code management",{"text":722,"config":1218},{"href":724,"dataGaName":1219,"dataGaLocation":1087},"continuous integration & delivery",{"text":773,"config":1221},{"href":775,"dataGaName":1222,"dataGaLocation":1087},"value stream management",{"text":1168,"config":1224},{"href":1225,"dataGaName":1171,"dataGaLocation":1087},"/de-de/solutions/gitops/",{"text":786,"config":1227},{"href":789,"dataGaName":790,"dataGaLocation":1087},{"text":792,"config":1229},{"href":795,"dataGaName":796,"dataGaLocation":1087},{"text":798,"config":1231},{"href":801,"dataGaName":802,"dataGaLocation":1087},{"text":1233,"config":1234},"Bildungswesen",{"href":1235,"dataGaName":646,"dataGaLocation":1087},"/de-de/solutions/education/",{"text":1237,"config":1238},"Finanzdienstleistungen",{"href":1239,"dataGaName":1240,"dataGaLocation":1087},"/de-de/solutions/finance/","financial services",{"title":809,"links":1242},[1243,1245,1247,1249,1252,1254,1257,1259,1261,1264,1266,1268,1270],{"text":822,"config":1244},{"href":824,"dataGaName":825,"dataGaLocation":1087},{"text":827,"config":1246},{"href":829,"dataGaName":830,"dataGaLocation":1087},{"text":832,"config":1248},{"href":834,"dataGaName":835,"dataGaLocation":1087},{"text":837,"config":1250},{"href":839,"dataGaName":1251,"dataGaLocation":1087},"docs",{"text":860,"config":1253},{"href":862,"dataGaName":863,"dataGaLocation":1087},{"text":1255,"config":1256},"Neuigkeiten",{"href":910,"dataGaName":911,"dataGaLocation":1087},{"text":855,"config":1258},{"href":857,"dataGaName":858,"dataGaLocation":1087},{"text":869,"config":1260},{"href":871,"dataGaName":872,"dataGaLocation":1087},{"text":1262,"config":1263},"GitLab Services",{"href":879,"dataGaName":880,"dataGaLocation":1087},{"text":882,"config":1265},{"href":884,"dataGaName":885,"dataGaLocation":1087},{"text":887,"config":1267},{"href":889,"dataGaName":890,"dataGaLocation":1087},{"text":892,"config":1269},{"href":894,"dataGaName":895,"dataGaLocation":1087},{"text":897,"config":1271},{"href":899,"dataGaName":900,"dataGaLocation":1087},{"title":1273,"links":1274},"Unternehmen",[1275,1277,1279,1281,1283,1285,1290,1295,1297,1299,1301],{"text":921,"config":1276},{"href":923,"dataGaName":915,"dataGaLocation":1087},{"text":926,"config":1278},{"href":928,"dataGaName":929,"dataGaLocation":1087},{"text":934,"config":1280},{"href":936,"dataGaName":937,"dataGaLocation":1087},{"text":939,"config":1282},{"href":941,"dataGaName":942,"dataGaLocation":1087},{"text":944,"config":1284},{"href":946,"dataGaName":947,"dataGaLocation":1087},{"text":1286,"config":1287},"Nachhaltigkeit",{"href":1288,"dataGaName":1289,"dataGaLocation":1087},"/sustainability/","Sustainability",{"text":1291,"config":1292},"Vielfalt, Inklusion und Zugehörigkeit",{"href":1293,"dataGaName":1294,"dataGaLocation":1087},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":949,"config":1296},{"href":951,"dataGaName":952,"dataGaLocation":1087},{"text":959,"config":1298},{"href":961,"dataGaName":962,"dataGaLocation":1087},{"text":964,"config":1300},{"href":966,"dataGaName":967,"dataGaLocation":1087},{"text":1302,"config":1303},"Transparenzerklärung zu moderner Sklaverei",{"href":1304,"dataGaName":1305,"dataGaLocation":1087},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1307},[1308,1310,1313],{"text":1135,"config":1309},{"href":1137,"dataGaName":1138,"dataGaLocation":1087},{"text":1311,"config":1312},"Cookies",{"dataGaName":1147,"dataGaLocation":1087,"id":1148,"isOneTrustButton":167},{"text":1140,"config":1314},{"href":1142,"dataGaName":1143,"dataGaLocation":1087},[1316],{"id":1317,"title":7,"body":635,"config":1318,"content":1320,"description":635,"extension":1325,"meta":1326,"navigation":167,"path":1327,"seo":1328,"stem":1329,"__hash__":1330},"blogAuthors/en-us/blog/authors/rod-burns.yml",{"template":1319},"BlogAuthor",{"config":1321,"name":7},{"socialProof":1322,"headshot":1324},{"gitlabHandle":1323},"rodburns-gitlab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1777464820/wgj4lhhghvzjet81peag.png","yml",{},"/en-us/blog/authors/rod-burns",{},"en-us/blog/authors/rod-burns","WDlR772VEAB9ffZjJAJjCFj-cFxzFJfAvU2JFRu7bWQ",[1332,1341,1349],{"title":1333,"description":1334,"heroImage":1335,"category":631,"date":1336,"authors":1337,"slug":1340,"externalUrl":635},"Cloud und DevOps: Warum diese Verbindung die Softwareentwicklung verändert","Cloud und DevOps konvergieren und beschleunigen die Softwarebereitstellung. Wie diese Verbindung Entwicklungszyklen verändert und die Wettbewerbsfähigkeit stärkt.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-05-28",[1338,1339],"Salahddine Aberkan","Maud Leuenberger","cloud-and-devops",{"title":1342,"description":1343,"heroImage":1344,"category":631,"date":1345,"authors":1346,"slug":1348,"externalUrl":635},"GitLab-Stack mit Gitaly on Kubernetes konsolidieren","Gitaly on Kubernetes ist jetzt allgemein verfügbar. So wird es installiert.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756500636/wmey6kqzzuhirk88w2de.png","2026-05-07",[1347],"Olivier Campeau","gitaly-on-kubernetes-generally-available",{"title":1350,"description":1351,"heroImage":1352,"category":631,"date":1353,"authors":1354,"slug":1356,"externalUrl":635},"Entwicklungszyklen mittels GitLab CI/CD automatisieren","GitLab CI/CD automatisiert Builds, Tests und Deployments in einer einheitlichen Plattform – eine Übersicht zu Funktionsweise, Kernkomponenten und Features.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1775561395/bhe1as7ttjvzltxwgo5m.png","2026-04-30",[1355,1339],"Charlotte Delbosc","what-is-gitlab-ci-cd",{"promotions":1358},[1359,1373,1385,1397],{"id":1360,"categories":1361,"header":1363,"text":1364,"button":1365,"image":1370},"ai-modernization",[1362],"ai","Hält KI, was uns versprochen wurde?","Das Quiz dauert maximal 5 Minuten.",{"text":1366,"config":1367},"Ermittle deinen KI-Reifegrad",{"href":1368,"dataGaName":1369,"dataGaLocation":863},"/de-de/assessments/ai-modernization-assessment/","modernization assessment",{"config":1371},{"src":1372},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1374,"categories":1375,"header":1377,"text":1364,"button":1378,"image":1382},"devops-modernization",[1376,631],"product","Verwaltest du Tool-Chaos oder stellst du Innovationen bereit?",{"text":1379,"config":1380},"Ermittle deinen DevOps-Reifegrad",{"href":1381,"dataGaName":1369,"dataGaLocation":863},"/de-de/assessments/devops-modernization-assessment/",{"config":1383},{"src":1384},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1386,"categories":1387,"header":1389,"text":1364,"button":1390,"image":1394},"security-modernization",[1388],"security","Tauschst du Schnelligkeit gegen Sicherheit ein?",{"text":1391,"config":1392},"Ermittle deinen Sicherheitsreifegrad",{"href":1393,"dataGaName":1369,"dataGaLocation":863},"/de-de/assessments/security-modernization-assessment/",{"config":1395},{"src":1396},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1398,"paths":1399,"header":1402,"text":1403,"button":1404,"image":1409},"github-azure-migration",[1400,1401],"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":1405,"config":1406},"Erfahre, wie GitLab im Vergleich zu GitHub abschneidet",{"href":1407,"dataGaName":1408,"dataGaLocation":863},"/de-de/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1410},{"src":1384},{"header":1412,"blurb":1413,"button":1414,"secondaryButton":1419},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":1415,"config":1416},"Kostenlosen Test starten",{"href":1417,"dataGaName":660,"dataGaLocation":1418},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":662,"config":1420},{"href":664,"dataGaName":665,"dataGaLocation":1418},1781392656835]