[{"data":1,"prerenderedAt":947},["ShallowReactive",2],{"/blog/auto-devops-where-we-are-and-where-we-are-headed":3,"navigation-en-us":162,"banner-en-us":590,"footer-en-us":600,"blog-post-authors-en-us-Viktor Nagy":844,"blog-related-posts-en-us-auto-devops-where-we-are-and-where-we-are-headed":859,"blog-promotions-en-us":883,"next-steps-en-us":937},{"id":4,"title":5,"authors":6,"body":8,"category":141,"date":142,"description":143,"extension":144,"externalUrl":145,"faq":145,"featured":146,"heroImage":147,"meta":148,"navigation":149,"path":150,"seo":151,"slug":155,"stem":156,"tags":157,"template":160,"updatedDate":145,"__hash__":161},"blogPosts/en-us/blog/auto-devops-where-we-are-and-where-we-are-headed.md","Auto DevOps: Where we are and where we are headed",[7],"Viktor Nagy",{"type":9,"value":10,"toc":125},"minimark",[11,22,27,42,45,49,52,57,60,64,67,71,74,78,81,85,88,92,95,99,102,112,116],[12,13,14,15,21],"p",{},"Auto DevOps is an advanced GitLab feature-set that leverages GitLab's ",[16,17,20],"a",{"href":18,"rel":19},"https://handbook.gitlab.com/handbook/product/categories/gitlab-the-product/single-application/",[],"single application"," to assist users in every phase of the development and delivery process, implementing automatic tasks that can be customized and refined to get the best fit for their needs. The Three Ways of DevOps put forward a rigorous flow of work from development to production, short and amply feedback loops to fix quality issues early and avoid rework, and a culture of learning by balanced experimentation and repetition. GitLab, as a technological solution, can help with the first two ways, and can make the cultural changes less heavy and costly. Auto DevOps is our solution to support DevOps best practices with a convention over configuration approach.",[23,24,26],"h2",{"id":25},"a-bit-of-history","A Bit of History",[12,28,29,30,35,36,41],{},"Auto DevOps was released in GitLab 11.0, on 22. June 2018. From the very beginning, it included License Management, Security tests, and support for Kubernetes deployments. In the past years, the Auto DevOps offering was extended in many ways, and today ",[16,31,34],{"href":32,"rel":33},"https://docs.gitlab.com/topics/autodevops/stages/",[],"it ties together 15 stages"," from building a project to deploying it. Besides being \"Auto\" as in automatic, it supports ",[16,37,40],{"href":38,"rel":39},"https://docs.gitlab.com/topics/autodevops/customize/",[],"a vast array of customization possibilities"," too.",[12,43,44],{},"Throughout these years, the goal of Auto DevOps remained the same: to simplify DevOps best practices adoption at every organisation.",[23,46,48],{"id":47},"feedback-we-have-heard","Feedback we have heard",[12,50,51],{},"After running a dozen interviews with our customers, I have noticed a few emerging patterns that I would like to share with you:",[53,54,56],"h3",{"id":55},"its-highly-valued","It's highly valued",[12,58,59],{},"First of all, Auto DevOps is highly valued by our users. I talked with customers who were transitioning from legacy infrastructure to Kubernetes, and after 2 years of transitioning are looking forward to start using Auto DevOps with its built-in security scanners and review apps support. We have a great market to serve, and this is an amazing position to be at!",[53,61,63],{"id":62},"auto-devops-utilized-as-exemplar-templates","Auto DevOps utilized as exemplar templates",[12,65,66],{},"For various reasons, many customers find Auto DevOps to be unsuitable as-is. In these cases, it's considered as a set of GitLab CI templates that platform engineers can look at and learn from as they build out their own Auto DevOps forks. While we think it's great that these customers have found value in our Auto DevOps templates, we'd much rather create a solution that fulfills their needs without them having to write and maintain these templates forever.",[53,68,70],{"id":69},"auto-devops-is-slow","Auto DevOps is slow",[12,72,73],{},"An often heard problem with Auto DevOps pipelines is that they are slow. Especially, its Auto Testing features, which end up getting switched off for this reason. One of the core principles of DevOps is to have a fast feedback loop; slow pipelines are counter to that principles and are therefore unacceptable. Our solution should accept this as a basic tenant and requirement.",[53,75,77],{"id":76},"auto-devops-is-hard-to-troubleshoot","Auto DevOps is hard to troubleshoot",[12,79,80],{},"Inherent in its name, it seems to be an automatic solution. While in actuality, it's a rather complex product with many pieces having to fit together just right to get it to work. As a result, if something goes wrong, then our users often turn to GitLab support for assistance. This is especially problematic, as erroneous configurations usually happen when Auto DevOps is tried out for the first time. Leading to a negative first impression. We should be able to provide a better experience by putting more effort into its onboarding flow.",[53,82,84],{"id":83},"auto-devops-does-not-scale-well","Auto DevOps does not scale well",[12,86,87],{},"Many GitLab users who claim that they use Auto DevOps actually use a forked version of it that incorporates custom CI templates, some Auto DevOps templates, and some custom logic too. In these situations, every new project created requires the redundant setup of these custom templates, because simply enabling Auto DevOps would only use the GitLab templates. This can be a problem in larger organizations, with dedicated platform teams, because they often have a requirement for standardization to simplify their engineering team's life. The current state of Auto DevOps does not serve this need well.",[53,89,91],{"id":90},"auto-devops-targets-only-kubernetes","Auto DevOps targets only Kubernetes",[12,93,94],{},"For a long time, the only supported deployment target for Auto DevOps was Kubernetes. This has changed in the past year with her additional support of AWS EC2 and ECS. Nevertheless, we still do not support application stores for mobile development, simple package creation, Lambda function, etc. On one hand, Kubernetes already restricts Auto DevOps to a special set of companies where there is likely a central platform team, while on the other hand, we don't have support for platform team-level customizations. At the same time, we were missing support for the most common deployment targets without a platform team.",[23,96,98],{"id":97},"who-is-the-target-user","Who is the target user",[12,100,101],{},"The patterns show that there are two different user types (aka personas) for Auto DevOps:",[103,104,105,109],"ul",{},[106,107,108],"li",{},"There are the bigger companies with standardized processes and a dedicated platform team that owns these processes. This team is responsible for every developer teams' pipelines and their primary job is to allow developers to focus only on developing the business logic, instead of working on deployments and infrastructure. These platform teams require a product that enables them to apply special company policies automatically to every project that works. While Auto DevOps allows many customizations, those customizations are brittle to changes in GitLab, and we don't have special logic in using these customized setups automatically.",[106,110,111],{},"Then there are smaller companies, without a dedicated platform team. In these situations, usually, a lead engineer wears the platform engineer hat and takes care of the pipelines from the initial build through various scanners and non-production deployments to the final production deployment. These teams don't mind following our conventions as long as our solution doesn't require much time from them to get started while also supporting their deployment targets. Tools like Heroku, Vercel, or Netlify already paved the way for this approach.",[23,113,115],{"id":114},"whats-next","What's next",[12,117,118,119,124],{},"In the past 3 years, we have learned a lot about our users, this allows us to take a new look at Auto DevOps, and see how we can best serve our users' current goals and needs. For this reason, we're planning on running a Design Sprint in the coming month to determine the new direction and come up with a solution that will help teams to more easily adopt DevSecOps best practices. While moving through this journey we would love for you to ",[16,120,123],{"href":121,"rel":122},"https://gitlab.com/groups/gitlab-org/-/epics/5148",[],"join the discussion on the Reimagining Auto DevOps epic","... in the meantime, thank you for reading and I hope you're all as excited as we are to move Auto DevOps back to the future!",{"title":126,"searchDepth":127,"depth":127,"links":128},"",2,[129,130,139,140],{"id":25,"depth":127,"text":26},{"id":47,"depth":127,"text":48,"children":131},[132,134,135,136,137,138],{"id":55,"depth":133,"text":56},3,{"id":62,"depth":133,"text":63},{"id":69,"depth":133,"text":70},{"id":76,"depth":133,"text":77},{"id":83,"depth":133,"text":84},{"id":90,"depth":133,"text":91},{"id":97,"depth":127,"text":98},{"id":114,"depth":127,"text":115},"unfiltered","2021-05-05","As we will soon start an Auto DevOps design sprint, this article aims to summarize our current knowledge about Auto DevOps, and sets the stage for future discussions.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679516/Blog/Hero%20Images/gitlab-11-0-released-cover.jpg",{},true,"/en-us/blog/auto-devops-where-we-are-and-where-we-are-headed",{"title":5,"description":143,"ogTitle":5,"ogDescription":143,"noIndex":146,"ogImage":147,"ogUrl":152,"ogSiteName":153,"ogType":154,"canonicalUrls":152},"https://about.gitlab.com/blog/auto-devops-where-we-are-and-where-we-are-headed","https://about.gitlab.com","article","auto-devops-where-we-are-and-where-we-are-headed","en-us/blog/auto-devops-where-we-are-and-where-we-are-headed",[158,159],"DevOps","customers","BlogPost","Q5Fwg_rY-X_1Y4AJoIODTC7HIAb1EbV0_lHI4x_GGyw",{"logo":163,"freeTrial":168,"sales":173,"login":178,"items":183,"search":510,"minimal":541,"duo":560,"switchNav":569,"pricingDeployment":580},{"config":164},{"href":165,"dataGaName":166,"dataGaLocation":167},"/","gitlab logo","header",{"text":169,"config":170},"Get free trial",{"href":171,"dataGaName":172,"dataGaLocation":167},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":174,"config":175},"Request a demo",{"href":176,"dataGaName":177,"dataGaLocation":167},"/sales/?contact-topic=request-demo","sales",{"text":179,"config":180},"Sign in",{"href":181,"dataGaName":182,"dataGaLocation":167},"https://gitlab.com/users/sign_in/","sign in",[184,213,313,318,432,488],{"text":185,"config":186,"menu":188},"Platform",{"dataNavLevelOne":187},"platform",{"type":189,"columns":190},"cards",[191,197,205],{"title":185,"description":192,"link":193},"The intelligent orchestration platform for DevSecOps",{"text":194,"config":195},"Explore our Platform",{"href":196,"dataGaName":187,"dataGaLocation":167},"/platform/",{"title":198,"description":199,"link":200},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":201,"config":202},"Meet GitLab Duo",{"href":203,"dataGaName":204,"dataGaLocation":167},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":206,"description":207,"link":208},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":209,"config":210},"Learn more",{"href":211,"dataGaName":212,"dataGaLocation":167},"/why-gitlab/","why gitlab",{"text":214,"left":149,"config":215,"menu":217},"Product",{"dataNavLevelOne":216},"solutions",{"type":218,"link":219,"columns":223,"feature":292},"lists",{"text":220,"config":221},"View all Solutions",{"href":222,"dataGaName":216,"dataGaLocation":167},"/solutions/",[224,248,271],{"title":225,"description":226,"link":227,"items":232},"Automation","CI/CD and automation to accelerate deployment",{"config":228},{"icon":229,"href":230,"dataGaName":231,"dataGaLocation":167},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[233,237,240,244],{"text":234,"config":235},"CI/CD",{"href":236,"dataGaLocation":167,"dataGaName":234},"/solutions/continuous-integration/",{"text":198,"config":238},{"href":203,"dataGaLocation":167,"dataGaName":239},"gitlab duo agent platform - product menu",{"text":241,"config":242},"Source Code Management",{"href":243,"dataGaLocation":167,"dataGaName":241},"/solutions/source-code-management/",{"text":245,"config":246},"Automated Software Delivery",{"href":230,"dataGaLocation":167,"dataGaName":247},"Automated software delivery",{"title":249,"description":250,"link":251,"items":256},"Security","Deliver code faster without compromising security",{"config":252},{"href":253,"dataGaName":254,"dataGaLocation":167,"icon":255},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[257,261,266],{"text":258,"config":259},"Application Security Testing",{"href":253,"dataGaName":260,"dataGaLocation":167},"Application security testing",{"text":262,"config":263},"Software Supply Chain Security",{"href":264,"dataGaLocation":167,"dataGaName":265},"/solutions/supply-chain/","Software supply chain security",{"text":267,"config":268},"Software Compliance",{"href":269,"dataGaName":270,"dataGaLocation":167},"/solutions/software-compliance/","software compliance",{"title":272,"link":273,"items":278},"Measurement",{"config":274},{"icon":275,"href":276,"dataGaName":277,"dataGaLocation":167},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[279,283,287],{"text":280,"config":281},"Visibility & Measurement",{"href":276,"dataGaLocation":167,"dataGaName":282},"Visibility and Measurement",{"text":284,"config":285},"Value Stream Management",{"href":286,"dataGaLocation":167,"dataGaName":284},"/solutions/value-stream-management/",{"text":288,"config":289},"Analytics & Insights",{"href":290,"dataGaLocation":167,"dataGaName":291},"/solutions/analytics-and-insights/","Analytics and insights",{"title":293,"type":218,"items":294},"GitLab for",[295,301,307],{"text":296,"config":297},"Enterprise",{"icon":298,"href":299,"dataGaLocation":167,"dataGaName":300},"Building","/enterprise/","enterprise",{"text":302,"config":303},"Small Business",{"icon":304,"href":305,"dataGaLocation":167,"dataGaName":306},"Work","/small-business/","small business",{"text":308,"config":309},"Public Sector",{"icon":310,"href":311,"dataGaLocation":167,"dataGaName":312},"Organization","/solutions/public-sector/","public sector",{"text":314,"config":315},"Pricing",{"href":316,"dataGaName":317,"dataGaLocation":167,"dataNavLevelOne":317},"/pricing/","pricing",{"text":319,"config":320,"menu":322},"Resources",{"dataNavLevelOne":321},"resources",{"type":218,"link":323,"columns":327,"feature":421},{"text":324,"config":325},"View all resources",{"href":326,"dataGaName":321,"dataGaLocation":167},"/resources/",[328,361,388],{"title":329,"items":330},"Getting started",[331,336,341,346,351,356],{"text":332,"config":333},"Install",{"href":334,"dataGaName":335,"dataGaLocation":167},"/install/","install",{"text":337,"config":338},"Quick start guides",{"href":339,"dataGaName":340,"dataGaLocation":167},"/get-started/","quick setup checklists",{"text":342,"config":343},"Learn",{"href":344,"dataGaLocation":167,"dataGaName":345},"https://university.gitlab.com/","learn",{"text":347,"config":348},"Product documentation",{"href":349,"dataGaName":350,"dataGaLocation":167},"https://docs.gitlab.com/","product documentation",{"text":352,"config":353},"Best practice videos",{"href":354,"dataGaName":355,"dataGaLocation":167},"/getting-started-videos/","best practice videos",{"text":357,"config":358},"Integrations",{"href":359,"dataGaName":360,"dataGaLocation":167},"/integrations/","integrations",{"title":362,"items":363},"Discover",[364,369,374,379,383],{"text":365,"config":366},"Customer success stories",{"href":367,"dataGaName":368,"dataGaLocation":167},"/customers/","customer success stories",{"text":370,"config":371},"Blog",{"href":372,"dataGaName":373,"dataGaLocation":167},"/blog/","blog",{"text":375,"config":376},"Demo Hub",{"href":377,"dataGaName":378,"dataGaLocation":167},"/demo-hub/","demo hub",{"text":380,"config":381},"The Source",{"href":382,"dataGaName":373,"dataGaLocation":167},"/the-source/",{"text":384,"config":385},"Remote",{"href":386,"dataGaName":387,"dataGaLocation":167},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":389,"items":390},"Connect",[391,396,401,406,411,416],{"text":392,"config":393},"GitLab Services",{"href":394,"dataGaName":395,"dataGaLocation":167},"/services/","services",{"text":397,"config":398},"Contribute",{"href":399,"dataGaName":400,"dataGaLocation":167},"https://contributors.gitlab.com","contribute",{"text":402,"config":403},"Community",{"href":404,"dataGaName":405,"dataGaLocation":167},"/community/","community",{"text":407,"config":408},"Forum",{"href":409,"dataGaName":410,"dataGaLocation":167},"https://forum.gitlab.com/","forum",{"text":412,"config":413},"Events",{"href":414,"dataGaName":415,"dataGaLocation":167},"/events/","events",{"text":417,"config":418},"Partners",{"href":419,"dataGaName":420,"dataGaLocation":167},"/partners/","partners",{"config":422,"title":425,"text":426,"link":427},{"background":423,"textColor":424},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":428,"config":429},"Read the latest",{"href":430,"dataGaName":431,"dataGaLocation":167},"/whats-new/","whats new",{"text":433,"config":434,"menu":436},"Company",{"dataNavLevelOne":435},"company",{"type":218,"columns":437},[438],{"items":439},[440,445,451,453,458,463,468,473,478,483],{"text":441,"config":442},"About",{"href":443,"dataGaName":444,"dataGaLocation":167},"/company/","about",{"text":446,"config":447,"footerGa":450},"Jobs",{"href":448,"dataGaName":449,"dataGaLocation":167},"/jobs/","jobs",{"dataGaName":449},{"text":412,"config":452},{"href":414,"dataGaName":415,"dataGaLocation":167},{"text":454,"config":455},"Leadership",{"href":456,"dataGaName":457,"dataGaLocation":167},"/company/team/e-group/","leadership",{"text":459,"config":460},"Handbook",{"href":461,"dataGaName":462,"dataGaLocation":167},"https://handbook.gitlab.com/","handbook",{"text":464,"config":465},"Investor relations",{"href":466,"dataGaName":467,"dataGaLocation":167},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":469,"config":470},"Trust Center",{"href":471,"dataGaName":472,"dataGaLocation":167},"/security/","trust center",{"text":474,"config":475},"AI Transparency Center",{"href":476,"dataGaName":477,"dataGaLocation":167},"/ai-transparency-center/","ai transparency center",{"text":479,"config":480},"Newsletter",{"href":481,"dataGaName":482,"dataGaLocation":167},"/company/contact/#contact-forms","newsletter",{"text":484,"config":485},"Press",{"href":486,"dataGaName":487,"dataGaLocation":167},"/press/","press",{"text":489,"config":490,"menu":491},"Contact us",{"dataNavLevelOne":435},{"type":218,"columns":492},[493],{"items":494},[495,500,505],{"text":496,"config":497},"Talk to sales",{"href":498,"dataGaName":499,"dataGaLocation":167},"/sales/","talk to sales",{"text":501,"config":502},"Support portal",{"href":503,"dataGaName":504,"dataGaLocation":167},"https://support.gitlab.com/hc/en-us","support portal",{"text":506,"config":507},"Customer portal",{"href":508,"dataGaName":509,"dataGaLocation":167},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":511,"login":512,"suggestions":519},"Close",{"text":513,"link":514},"To search repositories and projects, login to",{"text":515,"config":516},"gitlab.com",{"href":181,"dataGaName":517,"dataGaLocation":518},"search login","search",{"text":520,"default":521},"Suggestions",[522,524,528,530,534,538],{"text":198,"config":523},{"href":203,"dataGaName":198,"dataGaLocation":518},{"text":525,"config":526},"Code Suggestions (AI)",{"href":527,"dataGaName":525,"dataGaLocation":518},"/solutions/code-suggestions/",{"text":234,"config":529},{"href":236,"dataGaName":234,"dataGaLocation":518},{"text":531,"config":532},"GitLab on AWS",{"href":533,"dataGaName":531,"dataGaLocation":518},"/partners/technology-partners/aws/",{"text":535,"config":536},"GitLab on Google Cloud",{"href":537,"dataGaName":535,"dataGaLocation":518},"/partners/technology-partners/google-cloud-platform/",{"text":539,"config":540},"Why GitLab?",{"href":211,"dataGaName":539,"dataGaLocation":518},{"freeTrial":542,"mobileIcon":547,"desktopIcon":552,"secondaryButton":555},{"text":543,"config":544},"Start free trial",{"href":545,"dataGaName":172,"dataGaLocation":546},"https://gitlab.com/-/trials/new/","nav",{"altText":548,"config":549},"Gitlab Icon",{"src":550,"dataGaName":551,"dataGaLocation":546},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":548,"config":553},{"src":554,"dataGaName":551,"dataGaLocation":546},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":556,"config":557},"Get Started",{"href":558,"dataGaName":559,"dataGaLocation":546},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":561,"mobileIcon":565,"desktopIcon":567},{"text":562,"config":563},"Learn more about GitLab Duo",{"href":203,"dataGaName":564,"dataGaLocation":546},"gitlab duo",{"altText":548,"config":566},{"src":550,"dataGaName":551,"dataGaLocation":546},{"altText":548,"config":568},{"src":554,"dataGaName":551,"dataGaLocation":546},{"button":570,"mobileIcon":575,"desktopIcon":577},{"text":571,"config":572},"/switch",{"href":573,"dataGaName":574,"dataGaLocation":546},"#contact","switch",{"altText":548,"config":576},{"src":550,"dataGaName":551,"dataGaLocation":546},{"altText":548,"config":578},{"src":579,"dataGaName":551,"dataGaLocation":546},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":581,"mobileIcon":586,"desktopIcon":588},{"text":582,"config":583},"Back to pricing",{"href":316,"dataGaName":584,"dataGaLocation":546,"icon":585},"back to pricing","GoBack",{"altText":548,"config":587},{"src":550,"dataGaName":551,"dataGaLocation":546},{"altText":548,"config":589},{"src":554,"dataGaName":551,"dataGaLocation":546},{"title":591,"titleMobile":592,"button":593,"config":598},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":209,"config":594},{"href":595,"dataGaName":596,"dataGaLocation":597},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":599,"disabled":146},"release",{"data":601},{"text":602,"source":603,"edit":609,"contribute":614,"config":619,"items":624,"minimal":833},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":604,"config":605},"View page source",{"href":606,"dataGaName":607,"dataGaLocation":608},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":610,"config":611},"Edit this page",{"href":612,"dataGaName":613,"dataGaLocation":608},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":615,"config":616},"Please contribute",{"href":617,"dataGaName":618,"dataGaLocation":608},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":620,"facebook":621,"youtube":622,"linkedin":623},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[625,672,725,769,801],{"title":314,"links":626,"subMenu":641},[627,631,636],{"text":628,"config":629},"View plans",{"href":316,"dataGaName":630,"dataGaLocation":608},"view plans",{"text":632,"config":633},"Why Premium?",{"href":634,"dataGaName":635,"dataGaLocation":608},"/pricing/premium/","why premium",{"text":637,"config":638},"Why Ultimate?",{"href":639,"dataGaName":640,"dataGaLocation":608},"/pricing/ultimate/","why ultimate",[642],{"title":643,"links":644},"Contact Us",[645,648,650,652,657,662,667],{"text":646,"config":647},"Contact sales",{"href":498,"dataGaName":177,"dataGaLocation":608},{"text":501,"config":649},{"href":503,"dataGaName":504,"dataGaLocation":608},{"text":506,"config":651},{"href":508,"dataGaName":509,"dataGaLocation":608},{"text":653,"config":654},"Status",{"href":655,"dataGaName":656,"dataGaLocation":608},"https://status.gitlab.com/","status",{"text":658,"config":659},"Terms of use",{"href":660,"dataGaName":661,"dataGaLocation":608},"/terms/","terms of use",{"text":663,"config":664},"Privacy statement",{"href":665,"dataGaName":666,"dataGaLocation":608},"/privacy/","privacy statement",{"text":668,"config":669},"Cookie preferences",{"dataGaName":670,"dataGaLocation":608,"id":671,"isOneTrustButton":149},"cookie preferences","ot-sdk-btn",{"title":214,"links":673,"subMenu":682},[674,678],{"text":675,"config":676},"DevSecOps platform",{"href":196,"dataGaName":677,"dataGaLocation":608},"devsecops platform",{"text":679,"config":680},"AI-Assisted Development",{"href":203,"dataGaName":681,"dataGaLocation":608},"ai-assisted development",[683],{"title":684,"links":685},"Topics",[686,691,696,700,705,710,715,720],{"text":687,"config":688},"CICD",{"href":689,"dataGaName":690,"dataGaLocation":608},"/topics/ci-cd/","cicd",{"text":692,"config":693},"GitOps",{"href":694,"dataGaName":695,"dataGaLocation":608},"/topics/gitops/","gitops",{"text":158,"config":697},{"href":698,"dataGaName":699,"dataGaLocation":608},"/topics/devops/","devops",{"text":701,"config":702},"Version Control",{"href":703,"dataGaName":704,"dataGaLocation":608},"/topics/version-control/","version control",{"text":706,"config":707},"DevSecOps",{"href":708,"dataGaName":709,"dataGaLocation":608},"/topics/devsecops/","devsecops",{"text":711,"config":712},"Cloud Native",{"href":713,"dataGaName":714,"dataGaLocation":608},"/topics/cloud-native/","cloud native",{"text":716,"config":717},"AI for Coding",{"href":718,"dataGaName":719,"dataGaLocation":608},"/topics/devops/ai-for-coding/","ai for coding",{"text":721,"config":722},"Agentic AI",{"href":723,"dataGaName":724,"dataGaLocation":608},"/topics/agentic-ai/","agentic ai",{"title":726,"links":727},"Solutions",[728,730,732,737,741,744,748,751,753,756,759,764],{"text":258,"config":729},{"href":253,"dataGaName":258,"dataGaLocation":608},{"text":247,"config":731},{"href":230,"dataGaName":231,"dataGaLocation":608},{"text":733,"config":734},"Agile development",{"href":735,"dataGaName":736,"dataGaLocation":608},"/solutions/agile-delivery/","agile delivery",{"text":738,"config":739},"SCM",{"href":243,"dataGaName":740,"dataGaLocation":608},"source code management",{"text":687,"config":742},{"href":236,"dataGaName":743,"dataGaLocation":608},"continuous integration & delivery",{"text":745,"config":746},"Value stream management",{"href":286,"dataGaName":747,"dataGaLocation":608},"value stream management",{"text":692,"config":749},{"href":750,"dataGaName":695,"dataGaLocation":608},"/solutions/gitops/",{"text":296,"config":752},{"href":299,"dataGaName":300,"dataGaLocation":608},{"text":754,"config":755},"Small business",{"href":305,"dataGaName":306,"dataGaLocation":608},{"text":757,"config":758},"Public sector",{"href":311,"dataGaName":312,"dataGaLocation":608},{"text":760,"config":761},"Education",{"href":762,"dataGaName":763,"dataGaLocation":608},"/solutions/education/","education",{"text":765,"config":766},"Financial services",{"href":767,"dataGaName":768,"dataGaLocation":608},"/solutions/finance/","financial services",{"title":319,"links":770},[771,773,775,777,780,782,785,787,789,791,793,795,797,799],{"text":332,"config":772},{"href":334,"dataGaName":335,"dataGaLocation":608},{"text":337,"config":774},{"href":339,"dataGaName":340,"dataGaLocation":608},{"text":342,"config":776},{"href":344,"dataGaName":345,"dataGaLocation":608},{"text":347,"config":778},{"href":349,"dataGaName":779,"dataGaLocation":608},"docs",{"text":370,"config":781},{"href":372,"dataGaName":373,"dataGaLocation":608},{"text":783,"config":784},"What's new",{"href":430,"dataGaName":431,"dataGaLocation":608},{"text":365,"config":786},{"href":367,"dataGaName":368,"dataGaLocation":608},{"text":384,"config":788},{"href":386,"dataGaName":387,"dataGaLocation":608},{"text":392,"config":790},{"href":394,"dataGaName":395,"dataGaLocation":608},{"text":397,"config":792},{"href":399,"dataGaName":400,"dataGaLocation":608},{"text":402,"config":794},{"href":404,"dataGaName":405,"dataGaLocation":608},{"text":407,"config":796},{"href":409,"dataGaName":410,"dataGaLocation":608},{"text":412,"config":798},{"href":414,"dataGaName":415,"dataGaLocation":608},{"text":417,"config":800},{"href":419,"dataGaName":420,"dataGaLocation":608},{"title":433,"links":802},[803,805,807,809,811,813,817,822,824,826,828],{"text":441,"config":804},{"href":443,"dataGaName":435,"dataGaLocation":608},{"text":446,"config":806},{"href":448,"dataGaName":449,"dataGaLocation":608},{"text":454,"config":808},{"href":456,"dataGaName":457,"dataGaLocation":608},{"text":459,"config":810},{"href":461,"dataGaName":462,"dataGaLocation":608},{"text":464,"config":812},{"href":466,"dataGaName":467,"dataGaLocation":608},{"text":814,"config":815},"Sustainability",{"href":816,"dataGaName":814,"dataGaLocation":608},"/sustainability/",{"text":818,"config":819},"Diversity, inclusion and belonging (DIB)",{"href":820,"dataGaName":821,"dataGaLocation":608},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":469,"config":823},{"href":471,"dataGaName":472,"dataGaLocation":608},{"text":479,"config":825},{"href":481,"dataGaName":482,"dataGaLocation":608},{"text":484,"config":827},{"href":486,"dataGaName":487,"dataGaLocation":608},{"text":829,"config":830},"Modern Slavery Transparency Statement",{"href":831,"dataGaName":832,"dataGaLocation":608},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":834},[835,838,841],{"text":836,"config":837},"Terms",{"href":660,"dataGaName":661,"dataGaLocation":608},{"text":839,"config":840},"Cookies",{"dataGaName":670,"dataGaLocation":608,"id":671,"isOneTrustButton":149},{"text":842,"config":843},"Privacy",{"href":665,"dataGaName":666,"dataGaLocation":608},[845],{"id":846,"title":7,"body":145,"config":847,"content":849,"description":145,"extension":853,"meta":854,"navigation":149,"path":855,"seo":856,"stem":857,"__hash__":858},"blogAuthors/en-us/blog/authors/viktor-nagy.yml",{"template":848},"BlogAuthor",{"name":7,"config":850},{"headshot":851,"ctfId":852},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662918/Blog/Author%20Headshots/nagy-headshot.jpg","nagyvgitlab","yml",{},"/en-us/blog/authors/viktor-nagy",{},"en-us/blog/authors/viktor-nagy","rM3QZ5iaPa1fk9rDH9Dq-owlsuuFm699I03jWP1dUY4",[860,868,876],{"title":861,"description":862,"heroImage":863,"category":141,"date":864,"authors":865,"slug":867,"externalUrl":145},"CEO Shadow Takeaways from Jacie","Recap of my experience in the CEO Shadow Program.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664102/Blog/Hero%20Images/gitlab-values-cover.png","2021-05-18",[866],"Jacie Bandur","ceo-shadow-recap",{"title":869,"description":870,"heroImage":871,"category":141,"date":872,"authors":873,"slug":875,"externalUrl":145},"Why I love contributing to GitLab","Making small meaningful changes is what it's all about.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679501/Blog/Hero%20Images/new-feature.png","2021-05-11",[874],"Austin Regnery","why-i-love-contributing-to-gitlab",{"title":877,"description":878,"heroImage":879,"category":141,"date":872,"authors":880,"slug":882,"externalUrl":145},"Placebo Lines on the Pipeline Graph","Have you noticed the connecting lines missing on your pipelines lately? Here's why","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679507/Blog/Hero%20Images/ci-cd.png",[881],"Sam Beckham","placebo-lines-on-the-pipeline-graph",{"promotions":884},[885,899,911,923],{"id":886,"categories":887,"header":889,"text":890,"button":891,"image":896},"ai-modernization",[888],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":892,"config":893},"Get your AI maturity score",{"href":894,"dataGaName":895,"dataGaLocation":373},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":897},{"src":898},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":900,"categories":901,"header":903,"text":890,"button":904,"image":908},"devops-modernization",[902,709],"product","Are you just managing tools or shipping innovation?",{"text":905,"config":906},"Get your DevOps maturity score",{"href":907,"dataGaName":895,"dataGaLocation":373},"/assessments/devops-modernization-assessment/",{"config":909},{"src":910},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":912,"categories":913,"header":915,"text":890,"button":916,"image":920},"security-modernization",[914],"security","Are you trading speed for security?",{"text":917,"config":918},"Get your security maturity score",{"href":919,"dataGaName":895,"dataGaLocation":373},"/assessments/security-modernization-assessment/",{"config":921},{"src":922},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":924,"paths":925,"header":928,"text":929,"button":930,"image":935},"github-azure-migration",[926,927],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":931,"config":932},"See how GitLab compares to GitHub",{"href":933,"dataGaName":934,"dataGaLocation":373},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":936},{"src":910},{"header":938,"blurb":939,"button":940,"secondaryButton":945},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":941,"config":942},"Get your free trial",{"href":943,"dataGaName":172,"dataGaLocation":944},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":646,"config":946},{"href":498,"dataGaName":177,"dataGaLocation":944},1786803764678]