[{"data":1,"prerenderedAt":936},["ShallowReactive",2],{"/blog/pipelines-as-code":3,"navigation-en-us":150,"banner-en-us":578,"footer-en-us":588,"blog-post-authors-en-us-Robert Williams":831,"blog-related-posts-en-us-pipelines-as-code":846,"blog-promotions-en-us":872,"next-steps-en-us":926},{"id":4,"title":5,"authors":6,"body":8,"category":128,"date":129,"description":130,"extension":131,"externalUrl":132,"faq":132,"featured":133,"heroImage":134,"meta":135,"navigation":136,"path":137,"seo":138,"slug":142,"stem":143,"tags":144,"template":148,"updatedDate":132,"__hash__":149},"blogPosts/en-us/blog/pipelines-as-code.md","Pipelines-as-Code: How to improve speed from idea to production",[7],"Robert Williams",{"type":9,"value":10,"toc":116},"minimark",[11,15,20,34,37,40,56,59,64,67,71,74,78,81,85,88,92,95,110,113],[12,13,14],"p",{},"Today’s DevOps platform-centric world is moving steadily towards an \"Everything-as-Code\" mentality. Add in cloud native, and it's clearly even more important to standardize how you define your DevOps processes.",[16,17,19],"h2",{"id":18},"why-as-code","Why ‘as-Code’?",[12,21,22,23,27,28,33],{},"Thanks to faster iteration, cloud native computing, and ",[24,25,26],"span",{},"microservices-based architectures","\n(",[29,30,31],"a",{"href":31,"rel":32},"https://about.gitlab.com/topics/microservices/",[],"), as-Code technologies have become the de-facto standard for a lot of different parts of the software development lifecycle.",[12,35,36],{},"The need to release faster requires a single spot for teams to collaborate on any kind of change – code, infrastructure, configuration, networking, or testing. And to implement that change quickly we need to be able to see and review it before it goes into production.",[12,38,39],{},"As-Code solutions are at the core of cloud native technologies such as Kubernetes, where you utilize YAML or JSON formats to configure and manage. Here are the key advantages of 'as-Code':",[41,42,43,47,50,53],"ul",{},[44,45,46],"li",{},"auditability",[44,48,49],{},"scalability",[44,51,52],{},"efficiency",[44,54,55],{},"collaboration",[12,57,58],{},"These benefits come into play with every piece of technology that moves into as-Code; we have seen it time and again as DevOps processes mature and we automate each piece of the software development lifecycle. Here are the critical 'as-Code' stages:",[60,61,63],"h3",{"id":62},"build-as-code","Build-as-Code",[12,65,66],{},"One of the first steps when building a new pipeline is to implement a way to build your application automatically. Containerization is one of the most common ways: You define your build steps as a Dockerfile and then you have automated the build of the application.",[60,68,70],{"id":69},"test-as-code","Test-as-Code",[12,72,73],{},"As our deployment frequency and team size scales, the need for test cases to be automated scales as well. So we automate, we write unit tests and test scripts to execute unit tests, and then we ensure the changes can be continuously integrated safely, without introducing unplanned bugs.",[60,75,77],{"id":76},"security-as-code","Security-as-Code",[12,79,80],{},"To ensure software gets to market quickly, security must be included in your testing process. The testing has to happen either through tools integrated with each individual project, or implemented as code, creating job templates for security scanners that can be ingested by projects as required. These steps enable teams to quickly become compliant with various security frameworks (like PCI-DSS, HIPAA,,or ISO) as they become relevant for the project.",[60,82,84],{"id":83},"deployment-as-code","Deployment-as-Code",[12,86,87],{},"Deployments need to be standardized so they are predictable every time. To ensure successful peer review, production and development environment deployments need to be the same, and there's an added bonus of a quality gate between them. Through scripting and implementation of Deployment-as-Code, we end up with the ability to continuously deploy code and continuously deliver value.",[16,89,91],{"id":90},"why-pipelines-as-code","Why Pipelines-as-Code?",[12,93,94],{},"Pipelines are the center of the CI/CD workflow – they're the automation heart that powers all of the benefits of as-Code technologies. Once you have the Build-as-Code, Test-as-Code, Deployment-as-Code, Infrastructure-as-Code, and Configuration-as-Code, you have all the parts needed to ensure that you can reliably and predictably take your application into production environments. But, to move changes in with agility, you need to take all those parts and string them together into a pipeline.",[12,96,97,98,103,104,109],{},"The technology behind Pipelines-as-Code makes it possible to create centralized repositories for your organization's pipelines. Pipelines-as-Code can be set up to fit all boxes for varied languages and use cases (like ",[29,99,102],{"href":100,"rel":101},"https://docs.gitlab.com/topics/autodevops/",[],"Auto DevOps",") or with a ",[29,105,108],{"href":106,"rel":107},"https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates",[],"number of options"," so that developers can pick base pipelines to fit their use case. It's important to have a baseline that conforms to the organization's standards because that always increases the speed to production.",[12,111,112],{},"The entire team can collaborate on changes to each part of the workflow. Version history can be easily maintained in the same version control system as everything else that touches the DevOps lifecycle.",[12,114,115],{},"The benefits of as-Code technology reach a pinnacle with Pipelines-as-Code, so teams gain increases in efficiency, scalability, auditability, and collaboration. Pipelines-as-Code are at the center of automated GitOps, DevOps, and SecOps workflows.",{"title":117,"searchDepth":118,"depth":118,"links":119},"",2,[120,127],{"id":18,"depth":118,"text":19,"children":121},[122,124,125,126],{"id":62,"depth":123,"text":63},3,{"id":69,"depth":123,"text":70},{"id":76,"depth":123,"text":77},{"id":83,"depth":123,"text":84},{"id":90,"depth":118,"text":91},"engineering","2022-01-18","Pipelines-as-Code streamline automatic building, testing, and deploying of applications using prebuilt pipelines and infrastructure components. Here's how it works.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg",{},true,"/en-us/blog/pipelines-as-code",{"title":5,"description":130,"ogTitle":5,"ogDescription":130,"noIndex":133,"ogImage":134,"ogUrl":139,"ogSiteName":140,"ogType":141,"canonicalUrls":139},"https://about.gitlab.com/blog/pipelines-as-code","https://about.gitlab.com","article","pipelines-as-code","en-us/blog/pipelines-as-code",[145,146,147],"AI","cloud native","DevOps","BlogPost","14_1OuprIwU8hpAaH8VbCpn_dW39iNSPzuia_q_xcKA",{"logo":151,"freeTrial":156,"sales":161,"login":166,"items":171,"search":498,"minimal":529,"duo":548,"switchNav":557,"pricingDeployment":568},{"config":152},{"href":153,"dataGaName":154,"dataGaLocation":155},"/","gitlab logo","header",{"text":157,"config":158},"Get free trial",{"href":159,"dataGaName":160,"dataGaLocation":155},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":162,"config":163},"Request a demo",{"href":164,"dataGaName":165,"dataGaLocation":155},"/sales/?contact-topic=request-demo","sales",{"text":167,"config":168},"Sign in",{"href":169,"dataGaName":170,"dataGaLocation":155},"https://gitlab.com/users/sign_in/","sign in",[172,201,301,306,420,476],{"text":173,"config":174,"menu":176},"Platform",{"dataNavLevelOne":175},"platform",{"type":177,"columns":178},"cards",[179,185,193],{"title":173,"description":180,"link":181},"The intelligent orchestration platform for DevSecOps",{"text":182,"config":183},"Explore our Platform",{"href":184,"dataGaName":175,"dataGaLocation":155},"/platform/",{"title":186,"description":187,"link":188},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":189,"config":190},"Meet GitLab Duo",{"href":191,"dataGaName":192,"dataGaLocation":155},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":194,"description":195,"link":196},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":197,"config":198},"Learn more",{"href":199,"dataGaName":200,"dataGaLocation":155},"/why-gitlab/","why gitlab",{"text":202,"left":136,"config":203,"menu":205},"Product",{"dataNavLevelOne":204},"solutions",{"type":206,"link":207,"columns":211,"feature":280},"lists",{"text":208,"config":209},"View all Solutions",{"href":210,"dataGaName":204,"dataGaLocation":155},"/solutions/",[212,236,259],{"title":213,"description":214,"link":215,"items":220},"Automation","CI/CD and automation to accelerate deployment",{"config":216},{"icon":217,"href":218,"dataGaName":219,"dataGaLocation":155},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[221,225,228,232],{"text":222,"config":223},"CI/CD",{"href":224,"dataGaLocation":155,"dataGaName":222},"/solutions/continuous-integration/",{"text":186,"config":226},{"href":191,"dataGaLocation":155,"dataGaName":227},"gitlab duo agent platform - product menu",{"text":229,"config":230},"Source Code Management",{"href":231,"dataGaLocation":155,"dataGaName":229},"/solutions/source-code-management/",{"text":233,"config":234},"Automated Software Delivery",{"href":218,"dataGaLocation":155,"dataGaName":235},"Automated software delivery",{"title":237,"description":238,"link":239,"items":244},"Security","Deliver code faster without compromising security",{"config":240},{"href":241,"dataGaName":242,"dataGaLocation":155,"icon":243},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[245,249,254],{"text":246,"config":247},"Application Security Testing",{"href":241,"dataGaName":248,"dataGaLocation":155},"Application security testing",{"text":250,"config":251},"Software Supply Chain Security",{"href":252,"dataGaLocation":155,"dataGaName":253},"/solutions/supply-chain/","Software supply chain security",{"text":255,"config":256},"Software Compliance",{"href":257,"dataGaName":258,"dataGaLocation":155},"/solutions/software-compliance/","software compliance",{"title":260,"link":261,"items":266},"Measurement",{"config":262},{"icon":263,"href":264,"dataGaName":265,"dataGaLocation":155},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[267,271,275],{"text":268,"config":269},"Visibility & Measurement",{"href":264,"dataGaLocation":155,"dataGaName":270},"Visibility and Measurement",{"text":272,"config":273},"Value Stream Management",{"href":274,"dataGaLocation":155,"dataGaName":272},"/solutions/value-stream-management/",{"text":276,"config":277},"Analytics & Insights",{"href":278,"dataGaLocation":155,"dataGaName":279},"/solutions/analytics-and-insights/","Analytics and insights",{"title":281,"type":206,"items":282},"GitLab for",[283,289,295],{"text":284,"config":285},"Enterprise",{"icon":286,"href":287,"dataGaLocation":155,"dataGaName":288},"Building","/enterprise/","enterprise",{"text":290,"config":291},"Small Business",{"icon":292,"href":293,"dataGaLocation":155,"dataGaName":294},"Work","/small-business/","small business",{"text":296,"config":297},"Public Sector",{"icon":298,"href":299,"dataGaLocation":155,"dataGaName":300},"Organization","/solutions/public-sector/","public sector",{"text":302,"config":303},"Pricing",{"href":304,"dataGaName":305,"dataGaLocation":155,"dataNavLevelOne":305},"/pricing/","pricing",{"text":307,"config":308,"menu":310},"Resources",{"dataNavLevelOne":309},"resources",{"type":206,"link":311,"columns":315,"feature":409},{"text":312,"config":313},"View all resources",{"href":314,"dataGaName":309,"dataGaLocation":155},"/resources/",[316,349,376],{"title":317,"items":318},"Getting started",[319,324,329,334,339,344],{"text":320,"config":321},"Install",{"href":322,"dataGaName":323,"dataGaLocation":155},"/install/","install",{"text":325,"config":326},"Quick start guides",{"href":327,"dataGaName":328,"dataGaLocation":155},"/get-started/","quick setup checklists",{"text":330,"config":331},"Learn",{"href":332,"dataGaLocation":155,"dataGaName":333},"https://university.gitlab.com/","learn",{"text":335,"config":336},"Product documentation",{"href":337,"dataGaName":338,"dataGaLocation":155},"https://docs.gitlab.com/","product documentation",{"text":340,"config":341},"Best practice videos",{"href":342,"dataGaName":343,"dataGaLocation":155},"/getting-started-videos/","best practice videos",{"text":345,"config":346},"Integrations",{"href":347,"dataGaName":348,"dataGaLocation":155},"/integrations/","integrations",{"title":350,"items":351},"Discover",[352,357,362,367,371],{"text":353,"config":354},"Customer success stories",{"href":355,"dataGaName":356,"dataGaLocation":155},"/customers/","customer success stories",{"text":358,"config":359},"Blog",{"href":360,"dataGaName":361,"dataGaLocation":155},"/blog/","blog",{"text":363,"config":364},"Demo Hub",{"href":365,"dataGaName":366,"dataGaLocation":155},"/demo-hub/","demo hub",{"text":368,"config":369},"The Source",{"href":370,"dataGaName":361,"dataGaLocation":155},"/the-source/",{"text":372,"config":373},"Remote",{"href":374,"dataGaName":375,"dataGaLocation":155},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":377,"items":378},"Connect",[379,384,389,394,399,404],{"text":380,"config":381},"GitLab Services",{"href":382,"dataGaName":383,"dataGaLocation":155},"/services/","services",{"text":385,"config":386},"Contribute",{"href":387,"dataGaName":388,"dataGaLocation":155},"https://contributors.gitlab.com","contribute",{"text":390,"config":391},"Community",{"href":392,"dataGaName":393,"dataGaLocation":155},"/community/","community",{"text":395,"config":396},"Forum",{"href":397,"dataGaName":398,"dataGaLocation":155},"https://forum.gitlab.com/","forum",{"text":400,"config":401},"Events",{"href":402,"dataGaName":403,"dataGaLocation":155},"/events/","events",{"text":405,"config":406},"Partners",{"href":407,"dataGaName":408,"dataGaLocation":155},"/partners/","partners",{"config":410,"title":413,"text":414,"link":415},{"background":411,"textColor":412},"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":416,"config":417},"Read the latest",{"href":418,"dataGaName":419,"dataGaLocation":155},"/whats-new/","whats new",{"text":421,"config":422,"menu":424},"Company",{"dataNavLevelOne":423},"company",{"type":206,"columns":425},[426],{"items":427},[428,433,439,441,446,451,456,461,466,471],{"text":429,"config":430},"About",{"href":431,"dataGaName":432,"dataGaLocation":155},"/company/","about",{"text":434,"config":435,"footerGa":438},"Jobs",{"href":436,"dataGaName":437,"dataGaLocation":155},"/jobs/","jobs",{"dataGaName":437},{"text":400,"config":440},{"href":402,"dataGaName":403,"dataGaLocation":155},{"text":442,"config":443},"Leadership",{"href":444,"dataGaName":445,"dataGaLocation":155},"/company/team/e-group/","leadership",{"text":447,"config":448},"Handbook",{"href":449,"dataGaName":450,"dataGaLocation":155},"https://handbook.gitlab.com/","handbook",{"text":452,"config":453},"Investor relations",{"href":454,"dataGaName":455,"dataGaLocation":155},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":457,"config":458},"Trust Center",{"href":459,"dataGaName":460,"dataGaLocation":155},"/security/","trust center",{"text":462,"config":463},"AI Transparency Center",{"href":464,"dataGaName":465,"dataGaLocation":155},"/ai-transparency-center/","ai transparency center",{"text":467,"config":468},"Newsletter",{"href":469,"dataGaName":470,"dataGaLocation":155},"/company/contact/#contact-forms","newsletter",{"text":472,"config":473},"Press",{"href":474,"dataGaName":475,"dataGaLocation":155},"/press/","press",{"text":477,"config":478,"menu":479},"Contact us",{"dataNavLevelOne":423},{"type":206,"columns":480},[481],{"items":482},[483,488,493],{"text":484,"config":485},"Talk to sales",{"href":486,"dataGaName":487,"dataGaLocation":155},"/sales/","talk to sales",{"text":489,"config":490},"Support portal",{"href":491,"dataGaName":492,"dataGaLocation":155},"https://support.gitlab.com/hc/en-us","support portal",{"text":494,"config":495},"Customer portal",{"href":496,"dataGaName":497,"dataGaLocation":155},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":499,"login":500,"suggestions":507},"Close",{"text":501,"link":502},"To search repositories and projects, login to",{"text":503,"config":504},"gitlab.com",{"href":169,"dataGaName":505,"dataGaLocation":506},"search login","search",{"text":508,"default":509},"Suggestions",[510,512,516,518,522,526],{"text":186,"config":511},{"href":191,"dataGaName":186,"dataGaLocation":506},{"text":513,"config":514},"Code Suggestions (AI)",{"href":515,"dataGaName":513,"dataGaLocation":506},"/solutions/code-suggestions/",{"text":222,"config":517},{"href":224,"dataGaName":222,"dataGaLocation":506},{"text":519,"config":520},"GitLab on AWS",{"href":521,"dataGaName":519,"dataGaLocation":506},"/partners/technology-partners/aws/",{"text":523,"config":524},"GitLab on Google Cloud",{"href":525,"dataGaName":523,"dataGaLocation":506},"/partners/technology-partners/google-cloud-platform/",{"text":527,"config":528},"Why GitLab?",{"href":199,"dataGaName":527,"dataGaLocation":506},{"freeTrial":530,"mobileIcon":535,"desktopIcon":540,"secondaryButton":543},{"text":531,"config":532},"Start free trial",{"href":533,"dataGaName":160,"dataGaLocation":534},"https://gitlab.com/-/trials/new/","nav",{"altText":536,"config":537},"Gitlab Icon",{"src":538,"dataGaName":539,"dataGaLocation":534},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":536,"config":541},{"src":542,"dataGaName":539,"dataGaLocation":534},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":544,"config":545},"Get Started",{"href":546,"dataGaName":547,"dataGaLocation":534},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":549,"mobileIcon":553,"desktopIcon":555},{"text":550,"config":551},"Learn more about GitLab Duo",{"href":191,"dataGaName":552,"dataGaLocation":534},"gitlab duo",{"altText":536,"config":554},{"src":538,"dataGaName":539,"dataGaLocation":534},{"altText":536,"config":556},{"src":542,"dataGaName":539,"dataGaLocation":534},{"button":558,"mobileIcon":563,"desktopIcon":565},{"text":559,"config":560},"/switch",{"href":561,"dataGaName":562,"dataGaLocation":534},"#contact","switch",{"altText":536,"config":564},{"src":538,"dataGaName":539,"dataGaLocation":534},{"altText":536,"config":566},{"src":567,"dataGaName":539,"dataGaLocation":534},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":569,"mobileIcon":574,"desktopIcon":576},{"text":570,"config":571},"Back to pricing",{"href":304,"dataGaName":572,"dataGaLocation":534,"icon":573},"back to pricing","GoBack",{"altText":536,"config":575},{"src":538,"dataGaName":539,"dataGaLocation":534},{"altText":536,"config":577},{"src":542,"dataGaName":539,"dataGaLocation":534},{"title":579,"titleMobile":580,"button":581,"config":586},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":197,"config":582},{"href":583,"dataGaName":584,"dataGaLocation":585},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":587,"disabled":133},"release",{"data":589},{"text":590,"source":591,"edit":597,"contribute":602,"config":607,"items":612,"minimal":820},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":592,"config":593},"View page source",{"href":594,"dataGaName":595,"dataGaLocation":596},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":598,"config":599},"Edit this page",{"href":600,"dataGaName":601,"dataGaLocation":596},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":603,"config":604},"Please contribute",{"href":605,"dataGaName":606,"dataGaLocation":596},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":608,"facebook":609,"youtube":610,"linkedin":611},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[613,660,712,756,788],{"title":302,"links":614,"subMenu":629},[615,619,624],{"text":616,"config":617},"View plans",{"href":304,"dataGaName":618,"dataGaLocation":596},"view plans",{"text":620,"config":621},"Why Premium?",{"href":622,"dataGaName":623,"dataGaLocation":596},"/pricing/premium/","why premium",{"text":625,"config":626},"Why Ultimate?",{"href":627,"dataGaName":628,"dataGaLocation":596},"/pricing/ultimate/","why ultimate",[630],{"title":631,"links":632},"Contact Us",[633,636,638,640,645,650,655],{"text":634,"config":635},"Contact sales",{"href":486,"dataGaName":165,"dataGaLocation":596},{"text":489,"config":637},{"href":491,"dataGaName":492,"dataGaLocation":596},{"text":494,"config":639},{"href":496,"dataGaName":497,"dataGaLocation":596},{"text":641,"config":642},"Status",{"href":643,"dataGaName":644,"dataGaLocation":596},"https://status.gitlab.com/","status",{"text":646,"config":647},"Terms of use",{"href":648,"dataGaName":649,"dataGaLocation":596},"/terms/","terms of use",{"text":651,"config":652},"Privacy statement",{"href":653,"dataGaName":654,"dataGaLocation":596},"/privacy/","privacy statement",{"text":656,"config":657},"Cookie preferences",{"dataGaName":658,"dataGaLocation":596,"id":659,"isOneTrustButton":136},"cookie preferences","ot-sdk-btn",{"title":202,"links":661,"subMenu":670},[662,666],{"text":663,"config":664},"DevSecOps platform",{"href":184,"dataGaName":665,"dataGaLocation":596},"devsecops platform",{"text":667,"config":668},"AI-Assisted Development",{"href":191,"dataGaName":669,"dataGaLocation":596},"ai-assisted development",[671],{"title":672,"links":673},"Topics",[674,679,684,688,693,698,702,707],{"text":675,"config":676},"CICD",{"href":677,"dataGaName":678,"dataGaLocation":596},"/topics/ci-cd/","cicd",{"text":680,"config":681},"GitOps",{"href":682,"dataGaName":683,"dataGaLocation":596},"/topics/gitops/","gitops",{"text":147,"config":685},{"href":686,"dataGaName":687,"dataGaLocation":596},"/topics/devops/","devops",{"text":689,"config":690},"Version Control",{"href":691,"dataGaName":692,"dataGaLocation":596},"/topics/version-control/","version control",{"text":694,"config":695},"DevSecOps",{"href":696,"dataGaName":697,"dataGaLocation":596},"/topics/devsecops/","devsecops",{"text":699,"config":700},"Cloud Native",{"href":701,"dataGaName":146,"dataGaLocation":596},"/topics/cloud-native/",{"text":703,"config":704},"AI for Coding",{"href":705,"dataGaName":706,"dataGaLocation":596},"/topics/devops/ai-for-coding/","ai for coding",{"text":708,"config":709},"Agentic AI",{"href":710,"dataGaName":711,"dataGaLocation":596},"/topics/agentic-ai/","agentic ai",{"title":713,"links":714},"Solutions",[715,717,719,724,728,731,735,738,740,743,746,751],{"text":246,"config":716},{"href":241,"dataGaName":246,"dataGaLocation":596},{"text":235,"config":718},{"href":218,"dataGaName":219,"dataGaLocation":596},{"text":720,"config":721},"Agile development",{"href":722,"dataGaName":723,"dataGaLocation":596},"/solutions/agile-delivery/","agile delivery",{"text":725,"config":726},"SCM",{"href":231,"dataGaName":727,"dataGaLocation":596},"source code management",{"text":675,"config":729},{"href":224,"dataGaName":730,"dataGaLocation":596},"continuous integration & delivery",{"text":732,"config":733},"Value stream management",{"href":274,"dataGaName":734,"dataGaLocation":596},"value stream management",{"text":680,"config":736},{"href":737,"dataGaName":683,"dataGaLocation":596},"/solutions/gitops/",{"text":284,"config":739},{"href":287,"dataGaName":288,"dataGaLocation":596},{"text":741,"config":742},"Small business",{"href":293,"dataGaName":294,"dataGaLocation":596},{"text":744,"config":745},"Public sector",{"href":299,"dataGaName":300,"dataGaLocation":596},{"text":747,"config":748},"Education",{"href":749,"dataGaName":750,"dataGaLocation":596},"/solutions/education/","education",{"text":752,"config":753},"Financial services",{"href":754,"dataGaName":755,"dataGaLocation":596},"/solutions/finance/","financial services",{"title":307,"links":757},[758,760,762,764,767,769,772,774,776,778,780,782,784,786],{"text":320,"config":759},{"href":322,"dataGaName":323,"dataGaLocation":596},{"text":325,"config":761},{"href":327,"dataGaName":328,"dataGaLocation":596},{"text":330,"config":763},{"href":332,"dataGaName":333,"dataGaLocation":596},{"text":335,"config":765},{"href":337,"dataGaName":766,"dataGaLocation":596},"docs",{"text":358,"config":768},{"href":360,"dataGaName":361,"dataGaLocation":596},{"text":770,"config":771},"What's new",{"href":418,"dataGaName":419,"dataGaLocation":596},{"text":353,"config":773},{"href":355,"dataGaName":356,"dataGaLocation":596},{"text":372,"config":775},{"href":374,"dataGaName":375,"dataGaLocation":596},{"text":380,"config":777},{"href":382,"dataGaName":383,"dataGaLocation":596},{"text":385,"config":779},{"href":387,"dataGaName":388,"dataGaLocation":596},{"text":390,"config":781},{"href":392,"dataGaName":393,"dataGaLocation":596},{"text":395,"config":783},{"href":397,"dataGaName":398,"dataGaLocation":596},{"text":400,"config":785},{"href":402,"dataGaName":403,"dataGaLocation":596},{"text":405,"config":787},{"href":407,"dataGaName":408,"dataGaLocation":596},{"title":421,"links":789},[790,792,794,796,798,800,804,809,811,813,815],{"text":429,"config":791},{"href":431,"dataGaName":423,"dataGaLocation":596},{"text":434,"config":793},{"href":436,"dataGaName":437,"dataGaLocation":596},{"text":442,"config":795},{"href":444,"dataGaName":445,"dataGaLocation":596},{"text":447,"config":797},{"href":449,"dataGaName":450,"dataGaLocation":596},{"text":452,"config":799},{"href":454,"dataGaName":455,"dataGaLocation":596},{"text":801,"config":802},"Sustainability",{"href":803,"dataGaName":801,"dataGaLocation":596},"/sustainability/",{"text":805,"config":806},"Diversity, inclusion and belonging (DIB)",{"href":807,"dataGaName":808,"dataGaLocation":596},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":457,"config":810},{"href":459,"dataGaName":460,"dataGaLocation":596},{"text":467,"config":812},{"href":469,"dataGaName":470,"dataGaLocation":596},{"text":472,"config":814},{"href":474,"dataGaName":475,"dataGaLocation":596},{"text":816,"config":817},"Modern Slavery Transparency Statement",{"href":818,"dataGaName":819,"dataGaLocation":596},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":821},[822,825,828],{"text":823,"config":824},"Terms",{"href":648,"dataGaName":649,"dataGaLocation":596},{"text":826,"config":827},"Cookies",{"dataGaName":658,"dataGaLocation":596,"id":659,"isOneTrustButton":136},{"text":829,"config":830},"Privacy",{"href":653,"dataGaName":654,"dataGaLocation":596},[832],{"id":833,"title":7,"body":132,"config":834,"content":836,"description":132,"extension":840,"meta":841,"navigation":136,"path":842,"seo":843,"stem":844,"__hash__":845},"blogAuthors/en-us/blog/authors/robert-williams.yml",{"template":835},"BlogAuthor",{"name":7,"config":837},{"headshot":838,"ctfId":839},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682973/Blog/Author%20Headshots/r_williams-headshot.png","rwilliams","yml",{},"/en-us/blog/authors/robert-williams",{},"en-us/blog/authors/robert-williams","CnGmu_Lth5_H3LnwhYesaht-giR87QXTF1sVXHvBEJY",[847,856,864],{"title":848,"description":849,"heroImage":850,"category":128,"date":851,"authors":852,"slug":855,"externalUrl":132},"Confidential AI for GitLab Self-Hosted","Give developers AI coding agents in GitLab Duo without source code leaving a hardware-encrypted boundary — no GPUs needed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-08-06",[853,854],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":857,"description":858,"heroImage":859,"category":128,"date":860,"authors":861,"slug":863,"externalUrl":132},"Green DevOps: Why carbon measurement belongs in your CI/CD pipeline","CI/CD pipelines have a hidden carbon cost. Here's why measuring it matters, and how you can get started with Eco CI and Carmen in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-07-09",[862],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":865,"description":866,"heroImage":867,"category":128,"date":868,"authors":869,"slug":871,"externalUrl":132},"How to build CI/CD observability at scale","This practical guide to GitLab pipeline analytics helps self-managed users gain operational insights using Prometheus and Grafana.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-28",[870],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":873},[874,888,900,912],{"id":875,"categories":876,"header":878,"text":879,"button":880,"image":885},"ai-modernization",[877],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":881,"config":882},"Get your AI maturity score",{"href":883,"dataGaName":884,"dataGaLocation":361},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":886},{"src":887},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":889,"categories":890,"header":892,"text":879,"button":893,"image":897},"devops-modernization",[891,697],"product","Are you just managing tools or shipping innovation?",{"text":894,"config":895},"Get your DevOps maturity score",{"href":896,"dataGaName":884,"dataGaLocation":361},"/assessments/devops-modernization-assessment/",{"config":898},{"src":899},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":901,"categories":902,"header":904,"text":879,"button":905,"image":909},"security-modernization",[903],"security","Are you trading speed for security?",{"text":906,"config":907},"Get your security maturity score",{"href":908,"dataGaName":884,"dataGaLocation":361},"/assessments/security-modernization-assessment/",{"config":910},{"src":911},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":913,"paths":914,"header":917,"text":918,"button":919,"image":924},"github-azure-migration",[915,916],"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":920,"config":921},"See how GitLab compares to GitHub",{"href":922,"dataGaName":923,"dataGaLocation":361},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":925},{"src":899},{"header":927,"blurb":928,"button":929,"secondaryButton":934},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":930,"config":931},"Get your free trial",{"href":932,"dataGaName":160,"dataGaLocation":933},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":634,"config":935},{"href":486,"dataGaName":165,"dataGaLocation":933},1786803754050]