[{"data":1,"prerenderedAt":1451},["ShallowReactive",2],{"/de-de/blog/getting-started-with-gitlab-feature-flags-in-python":3,"navigation-de-de":672,"banner-de-de":1102,"footer-de-de":1110,"blog-post-authors-de-de-Omid Khan":1351,"blog-related-posts-de-de-getting-started-with-gitlab-feature-flags-in-python":1366,"blog-promotions-de-de":1389,"next-steps-de-de":1442},{"id":4,"title":5,"authors":6,"body":8,"category":653,"date":654,"description":655,"extension":656,"externalUrl":657,"faq":657,"featured":338,"heroImage":658,"meta":659,"navigation":338,"path":660,"seo":661,"slug":665,"stem":666,"tags":667,"template":670,"updatedDate":657,"__hash__":671},"blogPosts/de-de/blog/getting-started-with-gitlab-feature-flags-in-python.md","GitLab Feature Flags in Python einrichten",[7],"Omid Khan",{"type":9,"value":10,"toc":642},"minimark",[11,16,20,23,28,31,54,57,61,64,67,71,105,109,124,128,131,218,222,230,235,379,385,390,638],[12,13,15],"h2",{"id":14},"feature-flags-als-methode-zur-deployment-risikominimierung","Feature Flags als Methode zur Deployment-Risikominimierung",[17,18,19],"p",{},"Wochen Entwicklungsarbeit, abgeschlossenes Code-Review, alle Tests grün. Das Feature gelangt in die Produktion – und innerhalb einer Stunde treffen Fehlerberichte ein. Der Code verhält sich für die meisten Nutzenden korrekt, aber bestimmte Produktions-Szenarien, die im Staging nicht aufgetreten sind, führen bei einem Teil der Nutzenden zu Ausfällen. Das Ergebnis: ungeplanter Rollback, Incident-Dokumentation, Ursachenanalyse.",[17,21,22],{},"Feature Flags verhindern genau das. Das Prinzip: Deployment und Release werden entkoppelt. Code gelangt in die Produktion, sobald er bereit ist – wer das neue Feature tatsächlich sieht, wird unabhängig davon über einen Schalter in GitLab gesteuert. Kein Redeployment, kein Hotfix, keine ungeplante Rollback-Prozedur.",[24,25,27],"h3",{"id":26},"systematisch-gesteuerte-rollouts","Systematisch gesteuerte Rollouts",[17,29,30],{},"Der eigentliche Wert von Feature Flags liegt in der schrittweisen Freigabe. Ein typischer Ablauf:",[32,33,34,42,48],"ol",{},[35,36,37,41],"li",{},[38,39,40],"strong",{},"QA-Team (User-IDs-Strategie):"," Das Feature ist nur für interne Tester sichtbar. Probleme werden erkannt, bevor externe Nutzende betroffen sind.",[35,43,44,47],{},[38,45,46],{},"Prozentualer Rollout (z. B. 10 %):"," Das Feature wird für einen definierten Anteil der Nutzenden aktiviert. Metriken und Fehlerraten lassen sich unter realen Bedingungen beobachten.",[35,49,50,53],{},[38,51,52],{},"Vollständige Freigabe:"," Erst wenn das Verhalten in der Produktion validiert ist, wird das Feature für alle aktiviert.",[17,55,56],{},"Tritt auf einer Stufe ein Problem auf, reicht ein Klick in der GitLab-Oberfläche, um das Feature zu deaktivieren – ohne Code-Änderung, ohne Pipeline.",[24,58,60],{"id":59},"skalierung-und-produktionsbetrieb","Skalierung und Produktionsbetrieb",[17,62,63],{},"GitLab stellt für jedes Projekt eine Unleash-kompatible API bereit. Der Unleash-SDK pollt die Flag-Definitionen beim Start und danach in einem konfigurierbaren Intervall (im Demo-Projekt: 15 Sekunden). Die Auswertung erfolgt lokal aus dem Cache – kein Netzwerkaufruf pro Flag-Abfrage, kein Latenzeinfluss auf den Request.",[17,65,66],{},"Für kleinere Deployments ist das 15-Sekunden-Intervall gut geeignet. Bei Deployments mit vielen App-Instanzen von derselben IP-Adresse gilt: GitLab.com unterstützt bei diesem Intervall rund 125 Clients, bevor Rate-Limits greifen. Für größere Produktionsumgebungen empfiehlt sich ein vorgelagerter Unleash Proxy, der Anfragen mehrerer Instanzen bündelt.",[24,68,70],{"id":69},"sicherheitsrelevante-aspekte","Sicherheitsrelevante Aspekte",[72,73,74,80,86,92],"ul",{},[35,75,76,79],{},[38,77,78],{},"Keine Credentials im Quellcode:"," Instance ID und alle Tokens gehören in Umgebungsvariablen, nicht in den Code.",[35,81,82,85],{},[38,83,84],{},"Instance ID ist read-only:"," Sie erlaubt ausschließlich das Abrufen von Flag-Zuständen, keine Änderungen. Trotzdem als Secret behandeln.",[35,87,88,91],{},[38,89,90],{},"Debug-Modus deaktiviert lassen:"," Flasks Debug-Modus ermöglicht Remote Code Execution – in der Produktion zwingend deaktiviert.",[35,93,94,97,98,104],{},[38,95,96],{},"Abhängigkeiten aktuell halten:"," ",[99,100,103],"a",{"href":101,"rel":102},"https://docs.gitlab.com/user/application_security/dependency_scanning/",[],"Dependency Scanning"," in der CI/CD-Pipeline aktivieren, um Schwachstellen in gepinnten Versionen zu erkennen.",[12,106,108],{"id":107},"schritt-für-schritt-integration-in-eine-python-flask-app","Schritt-für-Schritt: Integration in eine Python-Flask-App",[17,110,111,112,117,118,123],{},"Dieser Abschnitt gibt einen Überblick über die technische Integration. Die vollständige Implementierung – alle Schritte, der komplette Code und ein lauffähiges Demo-Projekt – ist im ",[99,113,116],{"href":114,"rel":115},"https://about.gitlab.com/blog/getting-started-with-gitlab-feature-flags-in-python/",[],"englischen Originalartikel"," beschrieben. Das Demo-Repository steht unter ",[99,119,122],{"href":120,"rel":121},"https://gitlab.com/omid-blogs/gitlab-feature-flags-demo",[],"gitlab.com/omid-blogs/gitlab-feature-flags-demo"," zum Forken bereit.",[24,125,127],{"id":126},"sdk-vs-gitlab-rest-api","SDK vs. GitLab REST API",[17,129,130],{},"Für eine App, die Flags bei jedem Request auswertet, ist der SDK die geeignete Wahl:",[132,133,134,149],"table",{},[135,136,137],"thead",{},[138,139,140,143,146],"tr",{},[141,142],"th",{},[141,144,145],{},"REST API",[141,147,148],{},"Unleash SDK",[150,151,152,166,179,192,205],"tbody",{},[138,153,154,160,163],{},[155,156,157],"td",{},[38,158,159],{},"Authentifizierung",[155,161,162],{},"Personal Access Token mit Projektberechtigungen",[155,164,165],{},"Nur Instance ID – read-only, auf Flag-Zustand beschränkt",[138,167,168,173,176],{},[155,169,170],{},[38,171,172],{},"Flag-Auswertung",[155,174,175],{},"Netzwerkaufruf pro Abfrage",[155,177,178],{},"Lokal aus dem Cache",[138,180,181,186,189],{},[155,182,183],{},[38,184,185],{},"Latenz",[155,187,188],{},"Netzwerk-Round-Trip",[155,190,191],{},"Nahezu null (In-Memory)",[138,193,194,199,202],{},[155,195,196],{},[38,197,198],{},"Strategie-Unterstützung",[155,200,201],{},"Manuelle Auswertung erforderlich",[155,203,204],{},"Integriert: Prozentualer Rollout, User-ID-Targeting",[138,206,207,212,215],{},[155,208,209],{},[38,210,211],{},"Rate-Limits",[155,213,214],{},"GitLab.com API-Limits",[155,216,217],{},"Eine Poll-Verbindung pro App-Instanz",[24,219,221],{"id":220},"kernmuster-der-integration","Kernmuster der Integration",[17,223,224,225,229],{},"Die gesamte Integration besteht aus einer Abhängigkeit (",[226,227,228],"code",{},"UnleashClient","), drei Umgebungsvariablen und einem Methodenaufruf.",[17,231,232],{},[38,233,234],{},"SDK initialisieren:",[236,237,243],"pre",{"className":238,"code":239,"language":240,"meta":241,"style":242},"language-python shiki shiki-themes github-light","    url=UNLEASH_URL,\n    app_name=UNLEASH_APP_NAME,\n    instance_id=UNLEASH_INSTANCE_ID,\n    refresh_interval=15,\n    metrics_interval=60,\n)\nunleash_client.initialize_client() ```\n\n**Flag abfragen:**\n\n```python def is_flag_enabled(flag_name):\n    return unleash_client.is_enabled(flag_name)\n","python","unleash_client = UnleashClient(","",[226,244,245,265,278,291,304,317,323,333,340,352,357,370],{"__ignoreMap":242},[246,247,250,254,258,262],"span",{"class":248,"line":249},"line",1,[246,251,253],{"class":252},"sgsFI","    url",[246,255,257],{"class":256},"sD7c4","=",[246,259,261],{"class":260},"sYu0t","UNLEASH_URL",[246,263,264],{"class":252},",\n",[246,266,268,271,273,276],{"class":248,"line":267},2,[246,269,270],{"class":252},"    app_name",[246,272,257],{"class":256},[246,274,275],{"class":260},"UNLEASH_APP_NAME",[246,277,264],{"class":252},[246,279,281,284,286,289],{"class":248,"line":280},3,[246,282,283],{"class":252},"    instance_id",[246,285,257],{"class":256},[246,287,288],{"class":260},"UNLEASH_INSTANCE_ID",[246,290,264],{"class":252},[246,292,294,297,299,302],{"class":248,"line":293},4,[246,295,296],{"class":252},"    refresh_interval",[246,298,257],{"class":256},[246,300,301],{"class":260},"15",[246,303,264],{"class":252},[246,305,307,310,312,315],{"class":248,"line":306},5,[246,308,309],{"class":252},"    metrics_interval",[246,311,257],{"class":256},[246,313,314],{"class":260},"60",[246,316,264],{"class":252},[246,318,320],{"class":248,"line":319},6,[246,321,322],{"class":252},")\n",[246,324,326,329],{"class":248,"line":325},7,[246,327,328],{"class":252},"unleash_client.initialize_client() ",[246,330,332],{"class":331},"sB1qb","```\n",[246,334,336],{"class":248,"line":335},8,[246,337,339],{"emptyLinePlaceholder":338},true,"\n",[246,341,343,346,349],{"class":248,"line":342},9,[246,344,345],{"class":256},"**",[246,347,348],{"class":252},"Flag abfragen:",[246,350,351],{"class":256},"**\n",[246,353,355],{"class":248,"line":354},10,[246,356,339],{"emptyLinePlaceholder":338},[246,358,360,363,367],{"class":248,"line":359},11,[246,361,362],{"class":331},"```python ",[246,364,366],{"class":365},"s2AMW","def",[246,368,369],{"class":331}," is_flag_enabled(flag_name):\n",[246,371,373,376],{"class":248,"line":372},12,[246,374,375],{"class":256},"    return",[246,377,378],{"class":252}," unleash_client.is_enabled(flag_name)\n",[17,380,381,384],{},[226,382,383],{},"is_enabled()"," wertet lokal aus dem Cache aus – kein Netzwerkaufruf, kein Latenzeinfluss auf den Request.",[17,386,387],{},[38,388,389],{},"Nutzerkontext für gezieltes Targeting übergeben:",[236,391,394],{"className":238,"code":392,"language":240,"meta":393,"style":242},"    'new_layout',\n    context={'userId': current_user.id}\n) ```\n\nDer SDK übernimmt das konsistente Hashing für prozentuale Rollouts. Für die vollständige Einrichtung – Flags in GitLab anlegen, Unleash-Credentials abrufen, App lokal ausführen und Flags in Echtzeit umschalten – siehe den [englischen Originalartikel](https://about.gitlab.com/blog/getting-started-with-gitlab-feature-flags-in-python/).\n\n### Ressourcen\n\n* [Demo-Projekt auf GitLab](https://gitlab.com/omid-blogs/gitlab-feature-flags-demo)\n* [GitLab Feature-Flags-Dokumentation](https://docs.gitlab.com/operations/feature_flags/)\n* [Unleash Python SDK auf GitHub](https://github.com/Unleash/unleash-python-sdk)\n","unleash_client.is_enabled(",[226,395,396,404,420,427,431,507,511,517,521,566,602],{"__ignoreMap":242},[246,397,398,402],{"class":248,"line":249},[246,399,401],{"class":400},"sYBdl","    'new_layout'",[246,403,264],{"class":252},[246,405,406,409,411,414,417],{"class":248,"line":267},[246,407,408],{"class":252},"    context",[246,410,257],{"class":256},[246,412,413],{"class":252},"{",[246,415,416],{"class":400},"'userId'",[246,418,419],{"class":252},": current_user.id}\n",[246,421,422,425],{"class":248,"line":280},[246,423,424],{"class":252},") ",[246,426,332],{"class":331},[246,428,429],{"class":248,"line":293},[246,430,339],{"emptyLinePlaceholder":338},[246,432,433,436,439,442,445,448,451,454,456,459,462,465,468,471,473,476,478,481,484,487,489,492,494,497,500,502,504],{"class":248,"line":306},[246,434,435],{"class":252},"Der ",[246,437,438],{"class":260},"SDK",[246,440,441],{"class":252}," übernimmt das konsistente Hashing für prozentuale Rollouts. Für die vollständige Einrichtung – Flags ",[246,443,444],{"class":256},"in",[246,446,447],{"class":252}," GitLab anlegen, Unleash",[246,449,450],{"class":256},"-",[246,452,453],{"class":252},"Credentials abrufen, App lokal ausführen und Flags ",[246,455,444],{"class":256},[246,457,458],{"class":252}," Echtzeit umschalten – siehe den [englischen Originalartikel](https:",[246,460,461],{"class":256},"//",[246,463,464],{"class":252},"about.gitlab.com",[246,466,467],{"class":256},"/",[246,469,470],{"class":252},"blog",[246,472,467],{"class":256},[246,474,475],{"class":252},"getting",[246,477,450],{"class":256},[246,479,480],{"class":252},"started",[246,482,483],{"class":256},"-with-",[246,485,486],{"class":252},"gitlab",[246,488,450],{"class":256},[246,490,491],{"class":252},"feature",[246,493,450],{"class":256},[246,495,496],{"class":252},"flags",[246,498,499],{"class":256},"-in-",[246,501,240],{"class":252},[246,503,467],{"class":256},[246,505,506],{"class":252},").\n",[246,508,509],{"class":248,"line":319},[246,510,339],{"emptyLinePlaceholder":338},[246,512,513],{"class":248,"line":325},[246,514,516],{"class":515},"sAwPA","### Ressourcen\n",[246,518,519],{"class":248,"line":335},[246,520,339],{"emptyLinePlaceholder":338},[246,522,523,526,529,531,534,536,539,541,544,546,549,551,553,555,557,559,561,563],{"class":248,"line":342},[246,524,525],{"class":256},"*",[246,527,528],{"class":252}," [Demo",[246,530,450],{"class":256},[246,532,533],{"class":252},"Projekt auf GitLab](https:",[246,535,461],{"class":256},[246,537,538],{"class":252},"gitlab.com",[246,540,467],{"class":256},[246,542,543],{"class":252},"omid",[246,545,450],{"class":256},[246,547,548],{"class":252},"blogs",[246,550,467],{"class":256},[246,552,486],{"class":252},[246,554,450],{"class":256},[246,556,491],{"class":252},[246,558,450],{"class":256},[246,560,496],{"class":252},[246,562,450],{"class":256},[246,564,565],{"class":252},"demo)\n",[246,567,568,570,573,575,578,580,583,585,588,590,593,595,598,600],{"class":248,"line":354},[246,569,525],{"class":256},[246,571,572],{"class":252}," [GitLab Feature",[246,574,450],{"class":256},[246,576,577],{"class":252},"Flags",[246,579,450],{"class":256},[246,581,582],{"class":252},"Dokumentation](https:",[246,584,461],{"class":256},[246,586,587],{"class":252},"docs.gitlab.com",[246,589,467],{"class":256},[246,591,592],{"class":252},"operations",[246,594,467],{"class":256},[246,596,597],{"class":252},"feature_flags",[246,599,467],{"class":256},[246,601,322],{"class":252},[246,603,604,606,609,611,614,616,619,621,624,626,629,631,633,635],{"class":248,"line":359},[246,605,525],{"class":256},[246,607,608],{"class":252}," [Unleash Python ",[246,610,438],{"class":260},[246,612,613],{"class":252}," auf GitHub](https:",[246,615,461],{"class":256},[246,617,618],{"class":252},"github.com",[246,620,467],{"class":256},[246,622,623],{"class":252},"Unleash",[246,625,467],{"class":256},[246,627,628],{"class":252},"unleash",[246,630,450],{"class":256},[246,632,240],{"class":252},[246,634,450],{"class":256},[246,636,637],{"class":252},"sdk)\n",[639,640,641],"style",{},"html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sB1qb, html code.shiki .sB1qb{--shiki-default:#B31D28;--shiki-default-font-style:italic}html pre.shiki code .s2AMW, html code.shiki .s2AMW{--shiki-default:#D73A49;--shiki-default-font-style:italic}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 .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}",{"title":242,"searchDepth":267,"depth":267,"links":643},[644,649],{"id":14,"depth":267,"text":15,"children":645},[646,647,648],{"id":26,"depth":280,"text":27},{"id":59,"depth":280,"text":60},{"id":69,"depth":280,"text":70},{"id":107,"depth":267,"text":108,"children":650},[651,652],{"id":126,"depth":280,"text":127},{"id":220,"depth":280,"text":221},"product","2026-03-26","Feature Flags in eine Python-Flask-App integrieren und Feature-Rollouts ohne Redeployment steuern – mit dem Unleash SDK und GitLab.","md",null,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png",{},"/de-de/blog/getting-started-with-gitlab-feature-flags-in-python",{"config":662,"title":5,"description":664},{"noIndex":663},false,"Feature Flags in Python-Flask-Apps mit dem Unleash SDK integrieren – GitLab-Tutorial mit Demo-Repo, Strategien und Produktionshinweisen.","getting-started-with-gitlab-feature-flags-in-python","de-de/blog/getting-started-with-gitlab-feature-flags-in-python",[668,669,653],"features","tutorial","BlogPost","be_-1UrosYPnUp8xpXKGSgikz6w2wXedPxsULkOmOpE",{"logo":673,"freeTrial":678,"sales":683,"login":688,"items":693,"search":1021,"minimal":1054,"duo":1072,"switchNav":1081,"pricingDeployment":1092},{"config":674},{"href":675,"dataGaName":676,"dataGaLocation":677},"/de-de/","gitlab logo","header",{"text":679,"config":680},"Kostenlose Testversion anfordern",{"href":681,"dataGaName":682,"dataGaLocation":677},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":684,"config":685},"Demo anfordern",{"href":686,"dataGaName":687,"dataGaLocation":677},"/de-de/sales/?contact-topic=request-demo","sales",{"text":689,"config":690},"Anmelden",{"href":691,"dataGaName":692,"dataGaLocation":677},"https://gitlab.com/users/sign_in/","sign in",[694,723,825,830,943,999],{"text":695,"config":696,"menu":698},"Plattform",{"dataNavLevelOne":697},"platform",{"type":699,"columns":700},"cards",[701,707,715],{"title":695,"description":702,"link":703},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":704,"config":705},"Die Plattform erkunden",{"href":706,"dataGaName":697,"dataGaLocation":677},"/de-de/platform/",{"title":708,"description":709,"link":710},"GitLab Duo Agent Platform","Agentische KI für den gesamten Software-Lebenszyklus",{"text":711,"config":712},"Lerne GitLab Duo kennen",{"href":713,"dataGaName":714,"dataGaLocation":677},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":716,"description":717,"link":718},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":719,"config":720},"Mehr erfahren",{"href":721,"dataGaName":722,"dataGaLocation":677},"/de-de/why-gitlab/","why gitlab",{"text":724,"left":338,"config":725,"menu":727},"Produkt",{"dataNavLevelOne":726},"solutions",{"type":728,"link":729,"columns":733,"feature":804},"lists",{"text":730,"config":731},"Alle Lösungen anzeigen",{"href":732,"dataGaName":726,"dataGaLocation":677},"/de-de/solutions/",[734,759,782],{"title":735,"description":736,"link":737,"items":742},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":738},{"icon":739,"href":740,"dataGaName":741,"dataGaLocation":677},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[743,747,750,755],{"text":744,"config":745},"CI/CD",{"href":746,"dataGaLocation":677,"dataGaName":744},"/de-de/solutions/continuous-integration/",{"text":708,"config":748},{"href":713,"dataGaLocation":677,"dataGaName":749},"gitlab duo agent platform - product menu",{"text":751,"config":752},"Quellcodeverwaltung",{"href":753,"dataGaLocation":677,"dataGaName":754},"/de-de/solutions/source-code-management/","Source Code Management",{"text":756,"config":757},"Automatische Softwarebereitstellung",{"href":740,"dataGaLocation":677,"dataGaName":758},"Automated software delivery",{"title":760,"description":761,"link":762,"items":767},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":763},{"href":764,"dataGaName":765,"dataGaLocation":677,"icon":766},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[768,772,777],{"text":769,"config":770},"Anwendungssicherheitstests",{"href":764,"dataGaName":771,"dataGaLocation":677},"Application security testing",{"text":773,"config":774},"Schutz der Software-Lieferkette",{"href":775,"dataGaLocation":677,"dataGaName":776},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":778,"config":779},"Software-Compliance",{"href":780,"dataGaName":781,"dataGaLocation":677},"/de-de/solutions/software-compliance/","software compliance",{"title":783,"link":784,"items":789},"Messung",{"config":785},{"icon":786,"href":787,"dataGaName":788,"dataGaLocation":677},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[790,794,799],{"text":791,"config":792},"Sichtbarkeit und Messung",{"href":787,"dataGaLocation":677,"dataGaName":793},"Visibility and Measurement",{"text":795,"config":796},"Wertstrommanagement",{"href":797,"dataGaLocation":677,"dataGaName":798},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":800,"config":801},"Analysen und Einblicke",{"href":802,"dataGaLocation":677,"dataGaName":803},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":805,"type":728,"items":806},"GitLab für",[807,813,819],{"text":808,"config":809},"Enterprise",{"icon":810,"href":811,"dataGaLocation":677,"dataGaName":812},"Building","/de-de/enterprise/","enterprise",{"text":814,"config":815},"Kleinunternehmen",{"icon":816,"href":817,"dataGaLocation":677,"dataGaName":818},"Work","/de-de/small-business/","small business",{"text":820,"config":821},"Öffentlicher Sektor",{"icon":822,"href":823,"dataGaLocation":677,"dataGaName":824},"Organization","/de-de/solutions/public-sector/","public sector",{"text":826,"config":827},"Preise",{"href":828,"dataGaName":829,"dataGaLocation":677,"dataNavLevelOne":829},"/de-de/pricing/","pricing",{"text":831,"config":832,"menu":834},"Ressourcen",{"dataNavLevelOne":833},"resources",{"type":728,"link":835,"columns":839,"feature":932},{"text":836,"config":837},"Alle Ressourcen anzeigen",{"href":838,"dataGaName":833,"dataGaLocation":677},"/de-de/resources/",[840,873,899],{"title":841,"items":842},"Erste Schritte",[843,848,853,858,863,868],{"text":844,"config":845},"Installieren",{"href":846,"dataGaName":847,"dataGaLocation":677},"/de-de/install/","install",{"text":849,"config":850},"Kurzanleitungen",{"href":851,"dataGaName":852,"dataGaLocation":677},"/de-de/get-started/","quick setup checklists",{"text":854,"config":855},"Lernen",{"href":856,"dataGaLocation":677,"dataGaName":857},"https://university.gitlab.com/","learn",{"text":859,"config":860},"Produktdokumentation",{"href":861,"dataGaName":862,"dataGaLocation":677},"https://docs.gitlab.com/","product documentation",{"text":864,"config":865},"Best-Practice-Videos",{"href":866,"dataGaName":867,"dataGaLocation":677},"/de-de/getting-started-videos/","best practice videos",{"text":869,"config":870},"Integrationen",{"href":871,"dataGaName":872,"dataGaLocation":677},"/de-de/integrations/","integrations",{"title":874,"items":875},"Entdecken",[876,881,885,890,894],{"text":877,"config":878},"Kundenerfolge",{"href":879,"dataGaName":880,"dataGaLocation":677},"/de-de/customers/","customer success stories",{"text":882,"config":883},"Blog",{"href":884,"dataGaName":470,"dataGaLocation":677},"/de-de/blog/",{"text":886,"config":887},"Demo-Hub",{"href":888,"dataGaName":889,"dataGaLocation":677},"/de-de/demo-hub/","demo hub",{"text":891,"config":892},"The Source",{"href":893,"dataGaName":470,"dataGaLocation":677},"/de-de/the-source/",{"text":895,"config":896},"Remote",{"href":897,"dataGaName":898,"dataGaLocation":677},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":900,"items":901},"Vernetzen",[902,907,912,917,922,927],{"text":903,"config":904},"GitLab-Services",{"href":905,"dataGaName":906,"dataGaLocation":677},"/de-de/services/","services",{"text":908,"config":909},"Beitragen",{"href":910,"dataGaName":911,"dataGaLocation":677},"https://contributors.gitlab.com","contribute",{"text":913,"config":914},"Community",{"href":915,"dataGaName":916,"dataGaLocation":677},"/community/","community",{"text":918,"config":919},"Forum",{"href":920,"dataGaName":921,"dataGaLocation":677},"https://forum.gitlab.com/","forum",{"text":923,"config":924},"Veranstaltungen",{"href":925,"dataGaName":926,"dataGaLocation":677},"/events/","events",{"text":928,"config":929},"Partner",{"href":930,"dataGaName":931,"dataGaLocation":677},"/de-de/partners/","partners",{"config":933,"title":936,"text":937,"link":938},{"background":934,"textColor":935},"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":939,"config":940},"Aktuelle Nachrichten",{"href":941,"dataGaName":942,"dataGaLocation":677},"/de-de/whats-new/","whats new",{"text":944,"config":945,"menu":947},"Unternehmen",{"dataNavLevelOne":946},"company",{"type":728,"columns":948},[949],{"items":950},[951,956,962,964,969,974,979,984,989,994],{"text":952,"config":953},"Über",{"href":954,"dataGaName":955,"dataGaLocation":677},"/de-de/company/","about",{"text":957,"config":958,"footerGa":961},"Karriere",{"href":959,"dataGaName":960,"dataGaLocation":677},"/jobs/","jobs",{"dataGaName":960},{"text":923,"config":963},{"href":925,"dataGaName":926,"dataGaLocation":677},{"text":965,"config":966},"Geschäftsführung",{"href":967,"dataGaName":968,"dataGaLocation":677},"/company/team/e-group/","leadership",{"text":970,"config":971},"Handbuch",{"href":972,"dataGaName":973,"dataGaLocation":677},"https://handbook.gitlab.com/","handbook",{"text":975,"config":976},"Investor Relations",{"href":977,"dataGaName":978,"dataGaLocation":677},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":980,"config":981},"Trust Center",{"href":982,"dataGaName":983,"dataGaLocation":677},"/de-de/security/","trust center",{"text":985,"config":986},"AI Transparency Center",{"href":987,"dataGaName":988,"dataGaLocation":677},"/de-de/ai-transparency-center/","ai transparency center",{"text":990,"config":991},"Newsletter",{"href":992,"dataGaName":993,"dataGaLocation":677},"/company/contact/#contact-forms","newsletter",{"text":995,"config":996},"Presse",{"href":997,"dataGaName":998,"dataGaLocation":677},"/press/","press",{"text":1000,"config":1001,"menu":1002},"Kontakt",{"dataNavLevelOne":946},{"type":728,"columns":1003},[1004],{"items":1005},[1006,1011,1016],{"text":1007,"config":1008},"Vertrieb kontaktieren",{"href":1009,"dataGaName":1010,"dataGaLocation":677},"/de-de/sales/","talk to sales",{"text":1012,"config":1013},"Support-Portal",{"href":1014,"dataGaName":1015,"dataGaLocation":677},"https://support.gitlab.com/hc/en-us","support portal",{"text":1017,"config":1018},"Kundenportal",{"href":1019,"dataGaName":1020,"dataGaLocation":677},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1022,"login":1023,"suggestions":1029},"Schließen",{"text":1024,"link":1025},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":538,"config":1026},{"href":691,"dataGaName":1027,"dataGaLocation":1028},"search login","search",{"text":1030,"default":1031},"Vorschläge",[1032,1034,1039,1041,1046,1051],{"text":708,"config":1033},{"href":713,"dataGaName":708,"dataGaLocation":1028},{"text":1035,"config":1036},"Codevorschläge (KI)",{"href":1037,"dataGaName":1038,"dataGaLocation":1028},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":744,"config":1040},{"href":746,"dataGaName":744,"dataGaLocation":1028},{"text":1042,"config":1043},"GitLab auf AWS",{"href":1044,"dataGaName":1045,"dataGaLocation":1028},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":1047,"config":1048},"GitLab auf Google Cloud",{"href":1049,"dataGaName":1050,"dataGaLocation":1028},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":716,"config":1052},{"href":721,"dataGaName":1053,"dataGaLocation":1028},"Why GitLab?",{"freeTrial":1055,"mobileIcon":1060,"desktopIcon":1065,"secondaryButton":1068},{"text":1056,"config":1057},"Kostenlos testen",{"href":1058,"dataGaName":682,"dataGaLocation":1059},"https://gitlab.com/-/trials/new/","nav",{"altText":1061,"config":1062},"GitLab-Symbol",{"src":1063,"dataGaName":1064,"dataGaLocation":1059},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1061,"config":1066},{"src":1067,"dataGaName":1064,"dataGaLocation":1059},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":841,"config":1069},{"href":1070,"dataGaName":1071,"dataGaLocation":1059},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":1073,"mobileIcon":1077,"desktopIcon":1079},{"text":1074,"config":1075},"Mehr über GitLab Duo erfahren",{"href":713,"dataGaName":1076,"dataGaLocation":1059},"gitlab duo",{"altText":1061,"config":1078},{"src":1063,"dataGaName":1064,"dataGaLocation":1059},{"altText":1061,"config":1080},{"src":1067,"dataGaName":1064,"dataGaLocation":1059},{"button":1082,"mobileIcon":1087,"desktopIcon":1089},{"text":1083,"config":1084},"/Option",{"href":1085,"dataGaName":1086,"dataGaLocation":1059},"#contact","switch",{"altText":1061,"config":1088},{"src":1063,"dataGaName":1064,"dataGaLocation":1059},{"altText":1061,"config":1090},{"src":1091,"dataGaName":1064,"dataGaLocation":1059},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1093,"mobileIcon":1098,"desktopIcon":1100},{"text":1094,"config":1095},"Zurück zur Preisübersicht",{"href":828,"dataGaName":1096,"dataGaLocation":1059,"icon":1097},"back to pricing","GoBack",{"altText":1061,"config":1099},{"src":1063,"dataGaName":1064,"dataGaLocation":1059},{"altText":1061,"config":1101},{"src":1067,"dataGaName":1064,"dataGaLocation":1059},{"title":1103,"button":1104,"config":1108},"GitLab Orbit ist da: die Kontextebene für KI-Agenten",{"text":719,"config":1105},{"href":1106,"dataGaName":1107,"dataGaLocation":677},"/de-de/gitlab-orbit/","orbit",{"layout":1109,"disabled":663},"release",{"data":1111},{"text":1112,"source":1113,"edit":1119,"contribute":1124,"config":1129,"items":1134,"minimal":1340},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":1114,"config":1115},"Quelltext der Seite anzeigen",{"href":1116,"dataGaName":1117,"dataGaLocation":1118},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1120,"config":1121},"Diese Seite bearbeiten",{"href":1122,"dataGaName":1123,"dataGaLocation":1118},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1125,"config":1126},"Beteilige dich",{"href":1127,"dataGaName":1128,"dataGaLocation":1118},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1130,"facebook":1131,"youtube":1132,"linkedin":1133},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1135,1180,1233,1275,1307],{"title":826,"links":1136,"subMenu":1151},[1137,1141,1146],{"text":1138,"config":1139},"Tarife anzeigen",{"href":828,"dataGaName":1140,"dataGaLocation":1118},"view plans",{"text":1142,"config":1143},"Vorteile von Premium",{"href":1144,"dataGaName":1145,"dataGaLocation":1118},"/de-de/pricing/premium/","why premium",{"text":1147,"config":1148},"Vorteile von Ultimate",{"href":1149,"dataGaName":1150,"dataGaLocation":1118},"/de-de/pricing/ultimate/","why ultimate",[1152],{"title":1000,"links":1153},[1154,1156,1158,1160,1165,1170,1175],{"text":1007,"config":1155},{"href":1009,"dataGaName":687,"dataGaLocation":1118},{"text":1012,"config":1157},{"href":1014,"dataGaName":1015,"dataGaLocation":1118},{"text":1017,"config":1159},{"href":1019,"dataGaName":1020,"dataGaLocation":1118},{"text":1161,"config":1162},"Status",{"href":1163,"dataGaName":1164,"dataGaLocation":1118},"https://status.gitlab.com/","status",{"text":1166,"config":1167},"Nutzungsbedingungen",{"href":1168,"dataGaName":1169,"dataGaLocation":1118},"/terms/","terms of use",{"text":1171,"config":1172},"Datenschutzerklärung",{"href":1173,"dataGaName":1174,"dataGaLocation":1118},"/de-de/privacy/","privacy statement",{"text":1176,"config":1177},"Cookie-Einstellungen",{"dataGaName":1178,"dataGaLocation":1118,"id":1179,"isOneTrustButton":338},"cookie preferences","ot-sdk-btn",{"title":724,"links":1181,"subMenu":1190},[1182,1186],{"text":1183,"config":1184},"DevSecOps-Plattform",{"href":706,"dataGaName":1185,"dataGaLocation":1118},"devsecops platform",{"text":1187,"config":1188},"KI-unterstützte Entwicklung",{"href":713,"dataGaName":1189,"dataGaLocation":1118},"ai-assisted development",[1191],{"title":1192,"links":1193},"Themen",[1194,1198,1203,1208,1213,1218,1223,1228],{"text":744,"config":1195},{"href":1196,"dataGaName":1197,"dataGaLocation":1118},"/de-de/topics/ci-cd/","cicd",{"text":1199,"config":1200},"GitOps",{"href":1201,"dataGaName":1202,"dataGaLocation":1118},"/de-de/topics/gitops/","gitops",{"text":1204,"config":1205},"DevOps",{"href":1206,"dataGaName":1207,"dataGaLocation":1118},"/de-de/topics/devops/","devops",{"text":1209,"config":1210},"Versionskontrolle",{"href":1211,"dataGaName":1212,"dataGaLocation":1118},"/de-de/topics/version-control/","version control",{"text":1214,"config":1215},"DevSecOps",{"href":1216,"dataGaName":1217,"dataGaLocation":1118},"/de-de/topics/devsecops/","devsecops",{"text":1219,"config":1220},"Cloud-nativ",{"href":1221,"dataGaName":1222,"dataGaLocation":1118},"/de-de/topics/cloud-native/","cloud native",{"text":1224,"config":1225},"KI für das Programmieren",{"href":1226,"dataGaName":1227,"dataGaLocation":1118},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":1229,"config":1230},"Agentische KI",{"href":1231,"dataGaName":1232,"dataGaLocation":1118},"/de-de/topics/agentic-ai/","agentic ai",{"title":1234,"links":1235},"Lösungen",[1236,1239,1241,1246,1250,1253,1256,1259,1261,1263,1265,1270],{"text":769,"config":1237},{"href":764,"dataGaName":1238,"dataGaLocation":1118},"Application Security Testing",{"text":756,"config":1240},{"href":740,"dataGaName":741,"dataGaLocation":1118},{"text":1242,"config":1243},"Agile Entwicklung",{"href":1244,"dataGaName":1245,"dataGaLocation":1118},"/de-de/solutions/agile-delivery/","agile delivery",{"text":1247,"config":1248},"SCM",{"href":753,"dataGaName":1249,"dataGaLocation":1118},"source code management",{"text":744,"config":1251},{"href":746,"dataGaName":1252,"dataGaLocation":1118},"continuous integration & delivery",{"text":795,"config":1254},{"href":797,"dataGaName":1255,"dataGaLocation":1118},"value stream management",{"text":1199,"config":1257},{"href":1258,"dataGaName":1202,"dataGaLocation":1118},"/de-de/solutions/gitops/",{"text":808,"config":1260},{"href":811,"dataGaName":812,"dataGaLocation":1118},{"text":814,"config":1262},{"href":817,"dataGaName":818,"dataGaLocation":1118},{"text":820,"config":1264},{"href":823,"dataGaName":824,"dataGaLocation":1118},{"text":1266,"config":1267},"Bildungswesen",{"href":1268,"dataGaName":1269,"dataGaLocation":1118},"/de-de/solutions/education/","education",{"text":1271,"config":1272},"Finanzdienstleistungen",{"href":1273,"dataGaName":1274,"dataGaLocation":1118},"/de-de/solutions/finance/","financial services",{"title":831,"links":1276},[1277,1279,1281,1283,1286,1288,1291,1293,1295,1297,1299,1301,1303,1305],{"text":844,"config":1278},{"href":846,"dataGaName":847,"dataGaLocation":1118},{"text":849,"config":1280},{"href":851,"dataGaName":852,"dataGaLocation":1118},{"text":854,"config":1282},{"href":856,"dataGaName":857,"dataGaLocation":1118},{"text":859,"config":1284},{"href":861,"dataGaName":1285,"dataGaLocation":1118},"docs",{"text":882,"config":1287},{"href":884,"dataGaName":470,"dataGaLocation":1118},{"text":1289,"config":1290},"Neuerungen",{"href":941,"dataGaName":942,"dataGaLocation":1118},{"text":877,"config":1292},{"href":879,"dataGaName":880,"dataGaLocation":1118},{"text":895,"config":1294},{"href":897,"dataGaName":898,"dataGaLocation":1118},{"text":903,"config":1296},{"href":905,"dataGaName":906,"dataGaLocation":1118},{"text":908,"config":1298},{"href":910,"dataGaName":911,"dataGaLocation":1118},{"text":913,"config":1300},{"href":915,"dataGaName":916,"dataGaLocation":1118},{"text":918,"config":1302},{"href":920,"dataGaName":921,"dataGaLocation":1118},{"text":923,"config":1304},{"href":925,"dataGaName":926,"dataGaLocation":1118},{"text":928,"config":1306},{"href":930,"dataGaName":931,"dataGaLocation":1118},{"title":944,"links":1308},[1309,1311,1313,1315,1317,1319,1324,1329,1331,1333,1335],{"text":952,"config":1310},{"href":954,"dataGaName":946,"dataGaLocation":1118},{"text":957,"config":1312},{"href":959,"dataGaName":960,"dataGaLocation":1118},{"text":965,"config":1314},{"href":967,"dataGaName":968,"dataGaLocation":1118},{"text":970,"config":1316},{"href":972,"dataGaName":973,"dataGaLocation":1118},{"text":975,"config":1318},{"href":977,"dataGaName":978,"dataGaLocation":1118},{"text":1320,"config":1321},"Nachhaltigkeit",{"href":1322,"dataGaName":1323,"dataGaLocation":1118},"/sustainability/","Sustainability",{"text":1325,"config":1326},"Vielfalt, Inklusion und Zugehörigkeit",{"href":1327,"dataGaName":1328,"dataGaLocation":1118},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":980,"config":1330},{"href":982,"dataGaName":983,"dataGaLocation":1118},{"text":990,"config":1332},{"href":992,"dataGaName":993,"dataGaLocation":1118},{"text":995,"config":1334},{"href":997,"dataGaName":998,"dataGaLocation":1118},{"text":1336,"config":1337},"Transparenzerklärung zu moderner Sklaverei",{"href":1338,"dataGaName":1339,"dataGaLocation":1118},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1341},[1342,1345,1348],{"text":1343,"config":1344},"Terms",{"href":1168,"dataGaName":1169,"dataGaLocation":1118},{"text":1346,"config":1347},"Cookies",{"dataGaName":1178,"dataGaLocation":1118,"id":1179,"isOneTrustButton":338},{"text":1349,"config":1350},"Datenschutz",{"href":1173,"dataGaName":1174,"dataGaLocation":1118},[1352],{"id":1353,"title":7,"body":657,"config":1354,"content":1357,"description":657,"extension":1360,"meta":1361,"navigation":338,"path":1362,"seo":1363,"stem":1364,"__hash__":1365},"blogAuthors/en-us/blog/authors/omid-khan.yml",{"template":1355,"gitlabHandle":1356},"BlogAuthor","OmidKhan",{"name":7,"config":1358,"role":242},{"headshot":1359},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1769090536/q4p3qwthtken8fpokgzu.jpg","yml",{},"/en-us/blog/authors/omid-khan",{},"en-us/blog/authors/omid-khan","4ZHOi5nEiZLdJm1phW-47SM0x-BGo8jNbg_Zt0oSzEQ",[1367,1375,1382],{"title":1368,"description":1369,"heroImage":1370,"category":653,"date":1371,"authors":1372,"slug":1374,"externalUrl":657},"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",[1373],"GitLab Germany Team","devops-stack",{"title":1376,"description":1377,"heroImage":1378,"category":653,"date":1379,"authors":1380,"slug":1381,"externalUrl":657},"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.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1775486753/cswmwtygkgkbdsibo09v.png","2026-07-20",[1373],"reduce-devops-costs",{"title":1383,"description":1384,"heroImage":1385,"category":653,"date":1379,"authors":1386,"slug":1388,"externalUrl":657},"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",[1387],"Cesar Saavedra","how-to-use-a-work-item-created-trigger",{"promotions":1390},[1391,1405,1416,1428],{"id":1392,"categories":1393,"header":1395,"text":1396,"button":1397,"image":1402},"ai-modernization",[1394],"ai","Hält KI, was uns versprochen wurde?","Das Quiz dauert maximal 5 Minuten.",{"text":1398,"config":1399},"Ermittle deinen KI-Reifegrad",{"href":1400,"dataGaName":1401,"dataGaLocation":470},"/de-de/assessments/ai-modernization-assessment/","modernization assessment",{"config":1403},{"src":1404},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1406,"categories":1407,"header":1408,"text":1396,"button":1409,"image":1413},"devops-modernization",[653,1217],"Verwaltest du Tool-Chaos oder stellst du Innovationen bereit?",{"text":1410,"config":1411},"Ermittle deinen DevOps-Reifegrad",{"href":1412,"dataGaName":1401,"dataGaLocation":470},"/de-de/assessments/devops-modernization-assessment/",{"config":1414},{"src":1415},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1417,"categories":1418,"header":1420,"text":1396,"button":1421,"image":1425},"security-modernization",[1419],"security","Tauschst du Schnelligkeit gegen Sicherheit ein?",{"text":1422,"config":1423},"Ermittle deinen Sicherheitsreifegrad",{"href":1424,"dataGaName":1401,"dataGaLocation":470},"/de-de/assessments/security-modernization-assessment/",{"config":1426},{"src":1427},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1429,"paths":1430,"header":1433,"text":1434,"button":1435,"image":1440},"github-azure-migration",[1431,1432],"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":1436,"config":1437},"Erfahre, wie GitLab im Vergleich zu GitHub abschneidet",{"href":1438,"dataGaName":1439,"dataGaLocation":470},"/de-de/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1441},{"src":1415},{"header":1443,"blurb":1444,"button":1445,"secondaryButton":1449},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":1446,"config":1447},"Kostenlosen Test starten",{"href":1448,"dataGaName":682,"dataGaLocation":491},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/",{"text":1007,"config":1450},{"href":1009,"dataGaName":687,"dataGaLocation":491},1786803739706]