[{"data":1,"prerenderedAt":1006},["ShallowReactive",2],{"/blog/multi-step-software-delivery-with-agentic-flows":3,"navigation-en-us":231,"banner-en-us":654,"footer-en-us":662,"blog-post-authors-en-us-Ozer Dondurmacioglu":907,"blog-related-posts-en-us-multi-step-software-delivery-with-agentic-flows":923,"blog-promotions-en-us":944,"next-steps-en-us":996},{"id":4,"title":5,"authors":6,"body":8,"category":211,"date":212,"description":213,"extension":214,"externalUrl":215,"featured":216,"heroImage":217,"meta":218,"navigation":219,"path":220,"seo":221,"slug":223,"stem":224,"tags":225,"template":229,"updatedDate":215,"__hash__":230},"blogPosts/en-us/blog/multi-step-software-delivery-with-agentic-flows.md","Turn multi-step software delivery into agentic flows you can trust",[7],"Ozer Dondurmacioglu",{"type":9,"value":10,"toc":203},"minimark",[11,15,35,44,47,52,55,58,62,99,104,113,117,121,139,145,156,160,163,175,189],[12,13,14],"p",{},"Knowing what to do next in software development is rarely the hard part. Doing it again in the exact same steps — implement an issue, fix a pipeline, review a merge request — is. Chat that only provides answers still leaves every handoff to you. Homegrown scripts don’t inherit changes in access controls, new triggers, or updated review gates. In both cases, the multi-step paths teams rely on continue to stay stuck as runbooks in someone’s head.",[12,16,17,23,24,29,30,34],{},[18,19,22],"a",{"href":20,"rel":21},"https://docs.gitlab.com/releases/19/gitlab-19-2-released/",[],"GitLab 19.2"," closes that gap as ",[18,25,28],{"href":26,"rel":27},"https://docs.gitlab.com/user/duo_agent_platform/flows/custom/",[],"Custom Flows"," reach general availability: AI-powered workflows you define once, trigger from native GitLab events, and run in CI/CD pipeline. A self-healing pipeline pattern like ",[31,32,33],"em",{},"analyze failed test → generate fix → commit → notify team"," becomes something the platform can run end to end.",[12,36,37,38,43],{},"In addition, ",[18,39,42],{"href":40,"rel":41},"https://docs.gitlab.com/releases/19/gitlab-19-2-released/#start-foundational-flows-from-agentic-chat",[],"Foundational Flows"," no longer start only from a button, mention, or assignment. Now, when your request in GitLab Duo Agentic Chat matches specialist work — implement a change, review a merge request, fix a failed pipeline — Duo recommends the flow, you approve the handoff, and you follow it from the conversation.",[12,45,46],{},"As a result, agentic software delivery gets past single-turn chat. Teams encode the sequences they already trust, kick them off from events or chat, and keep humans on approval instead of on every intermediate step.",[48,49,51],"h2",{"id":50},"why-multi-step-software-delivery-stays-manual","Why multi-step software delivery stays manual",[12,53,54],{},"Agentic demos favor single turns. Real delivery work is a chain: gather context, change code, open a merge request, wait on CI, and respond to review. Without flows, every link in that chain is a person clicking, pasting, or remembering tribal steps.",[12,56,57],{},"Building those chains used to feel provisional while custom flows within GitLab Duo Agent Platform were still maturing. Teams delayed encoding the paths they already trust, such as self-healing pipelines, “implement this issue,” and event-driven follow-ups, because production readiness and event coverage weren’t there yet.",[48,59,61],{"id":60},"what-agentic-flows-change-for-engineering-teams","What agentic flows change for engineering teams",[63,64,65,73,79],"ul",{},[66,67,68,72],"li",{},[69,70,71],"strong",{},"Automate the sequences you already trust."," Custom flows run multi-step tasks across projects, triggered by GitLab events you already work with: mentions, assignments, pipelines, merge request lifecycle, work item changes, and more. They run under composite identity, so access stays bounded and actions stay attributable.",[66,74,75,78],{},[69,76,77],{},"Start specialist work from chat."," Ask Agentic Chat to use the Developer Flow to implement work, the Code Review Flow to review a merge request, or Fix CI/CD Pipeline Flow to diagnose and repair a failed pipeline. Approve the handoff, then keep working while progress shows inline.",[66,80,81,84,85,90,91,94,95,98],{},[69,82,83],{},"Keep automatic review intentional."," In GitLab 19.2, exclusion rules let you skip auto-review for bot-authored or branch-pattern merge requests you don’t want burning credits. ",[18,86,89],{"href":87,"rel":88},"https://docs.gitlab.com/user/duo_agent_platform/customize/review_instructions/",[],"Custom review instructions"," shape what review looks for, so you’re not only choosing ",[31,92,93],{},"which"," merge requests get reviewed, but ",[31,96,97],{},"how",".",[12,100,101],{},[69,102,103],{},"See Duo agentic flows in action:",[105,106],"iframe",{"src":107,"frameBorder":108,"allow":109,"referrerPolicy":110,"style":111,"title":112},"https://player.vimeo.com/video/1210303097?badge=0&autopause=0&player_id=0&app_id=58479","0","autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share","strict-origin-when-cross-origin","position:absolute;top:0;left:0;width:100%;height:100%;","19.2 Custom Flows Reach GA Status",[114,115],"script",{"src":116},"https://player.vimeo.com/api/player.js",[48,118,120],{"id":119},"how-do-they-work","How do they work?",[12,122,123,126,127,132,133,138],{},[69,124,125],{},"Custom flows."," Create one from a project or the ",[18,128,131],{"href":129,"rel":130},"https://docs.gitlab.com/user/duo_agent_platform/ai_catalog/",[],"AI Catalog",", choose visibility, enable it where you need it, and attach a ",[18,134,137],{"href":135,"rel":136},"https://docs.gitlab.com/user/duo_agent_platform/triggers/",[],"trigger"," so the right GitLab events start it. You can add human-in-the-loop checkpoints at sensitive steps. In 19.2, custom flows also pick up a \"work item status changed\" trigger and bulk enablement for public flows across up to 100 projects. Looking ahead, a Flow Creation Agent is on the roadmap so teams can describe a flow in plain language and get a runnable definition, without hand-writing the full schema first.",[12,140,141,144],{},[69,142,143],{},"Foundational Flows in Agentic Chat."," When your request matches specialist work, it can be handed to a foundational flow, you approve before anything runs, and you stay in the conversation while it works. That’s the difference from chat that only answers: The multi-step part leaves your hands without leaving GitLab.",[12,146,147,150,151,155],{},[69,148,149],{},"Updated Automation for Code Review Flow."," Exclusion rules keep bot-driven or out-of-scope merge requests from burning code review cycles you didn’t mean to spend. And, ",[18,152,154],{"href":87,"rel":153},[],"custom review instructions"," shape what “good” looks like for your team, so that expanding automation doesn’t mean reviewing everything the same way.",[48,157,159],{"id":158},"start-encoding-the-paths-you-already-run","Start encoding the paths you already run",[12,161,162],{},"Custom Flows are now generally available, and Foundational Flows can now start from Agentic Chat which routes your request to the right specialist flow as you describe what you need — translating the agentic software delivery sequences your team already trusts to predictable automation, beyond tribal knowledge.",[12,164,165,166,169,170,174],{},"Ready to learn more? Start by reviewing our documentation for ",[18,167,28],{"href":26,"rel":168},[]," and ",[18,171,42],{"href":172,"rel":173},"https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/",[],". One thing to plan for: Event-driven flows consume credits based on the work they do. Try them on a few projects before you turn them loose across a large group.",[12,176,177,178,183,184,98],{},"Similar to other capabilities of Duo Agent Platform, you can get access to agentic flows with a ",[18,179,182],{"href":180,"rel":181},"https://about.gitlab.com/gitlab-duo-agent-platform/",[],"free trial of GitLab Duo Agent Platform",". On the Free tier, you can ",[18,185,188],{"href":186,"rel":187},"https://docs.gitlab.com/subscriptions/gitlab_credits/#for-the-free-tier-on-gitlabcom",[],"sign up in a few simple steps",[12,190,191,192,197,198,98],{},"Already on GitLab Premium or Ultimate? Start by ",[18,193,196],{"href":194,"rel":195},"https://docs.gitlab.com/user/duo_agent_platform/turn_on_off/",[],"turning on Duo Agent Platform"," and use the ",[18,199,202],{"href":200,"rel":201},"https://docs.gitlab.com/subscriptions/gitlab_credits/#included-credits/",[],"GitLab Credits included with your subscription",{"title":204,"searchDepth":205,"depth":205,"links":206},"",2,[207,208,209,210],{"id":50,"depth":205,"text":51},{"id":60,"depth":205,"text":61},{"id":119,"depth":205,"text":120},{"id":158,"depth":205,"text":159},"ai","2026-07-16","GitLab Duo Agent Platform's Custom Flows are now generally available.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1783980535/t3gez0gpayfndrhncunf.png",{},true,"/en-us/blog/multi-step-software-delivery-with-agentic-flows",{"config":222,"title":5,"description":213},{"noIndex":216},"multi-step-software-delivery-with-agentic-flows","en-us/blog/multi-step-software-delivery-with-agentic-flows",[226,227,228],"product","AI","features","BlogPost","TbMyMK7T-VSOyslVpa29viWcv2w8LYO_RideIIni84g",{"logo":232,"freeTrial":237,"sales":242,"login":247,"items":252,"search":574,"minimal":605,"duo":624,"switchNav":633,"pricingDeployment":644},{"config":233},{"href":234,"dataGaName":235,"dataGaLocation":236},"/","gitlab logo","header",{"text":238,"config":239},"Get free trial",{"href":240,"dataGaName":241,"dataGaLocation":236},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":243,"config":244},"Request a demo",{"href":245,"dataGaName":246,"dataGaLocation":236},"/sales/?contact-topic=request-demo","sales",{"text":248,"config":249},"Sign in",{"href":250,"dataGaName":251,"dataGaLocation":236},"https://gitlab.com/users/sign_in/","sign in",[253,282,382,387,496,552],{"text":254,"config":255,"menu":257},"Platform",{"dataNavLevelOne":256},"platform",{"type":258,"columns":259},"cards",[260,266,274],{"title":254,"description":261,"link":262},"The intelligent orchestration platform for DevSecOps",{"text":263,"config":264},"Explore our Platform",{"href":265,"dataGaName":256,"dataGaLocation":236},"/platform/",{"title":267,"description":268,"link":269},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":270,"config":271},"Meet GitLab Duo",{"href":272,"dataGaName":273,"dataGaLocation":236},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":275,"description":276,"link":277},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":278,"config":279},"Learn more",{"href":280,"dataGaName":281,"dataGaLocation":236},"/why-gitlab/","why gitlab",{"text":283,"left":219,"config":284,"menu":286},"Product",{"dataNavLevelOne":285},"solutions",{"type":287,"link":288,"columns":292,"feature":361},"lists",{"text":289,"config":290},"View all Solutions",{"href":291,"dataGaName":285,"dataGaLocation":236},"/solutions/",[293,317,340],{"title":294,"description":295,"link":296,"items":301},"Automation","CI/CD and automation to accelerate deployment",{"config":297},{"icon":298,"href":299,"dataGaName":300,"dataGaLocation":236},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[302,306,309,313],{"text":303,"config":304},"CI/CD",{"href":305,"dataGaLocation":236,"dataGaName":303},"/solutions/continuous-integration/",{"text":267,"config":307},{"href":272,"dataGaLocation":236,"dataGaName":308},"gitlab duo agent platform - product menu",{"text":310,"config":311},"Source Code Management",{"href":312,"dataGaLocation":236,"dataGaName":310},"/solutions/source-code-management/",{"text":314,"config":315},"Automated Software Delivery",{"href":299,"dataGaLocation":236,"dataGaName":316},"Automated software delivery",{"title":318,"description":319,"link":320,"items":325},"Security","Deliver code faster without compromising security",{"config":321},{"href":322,"dataGaName":323,"dataGaLocation":236,"icon":324},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[326,330,335],{"text":327,"config":328},"Application Security Testing",{"href":322,"dataGaName":329,"dataGaLocation":236},"Application security testing",{"text":331,"config":332},"Software Supply Chain Security",{"href":333,"dataGaLocation":236,"dataGaName":334},"/solutions/supply-chain/","Software supply chain security",{"text":336,"config":337},"Software Compliance",{"href":338,"dataGaName":339,"dataGaLocation":236},"/solutions/software-compliance/","software compliance",{"title":341,"link":342,"items":347},"Measurement",{"config":343},{"icon":344,"href":345,"dataGaName":346,"dataGaLocation":236},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[348,352,356],{"text":349,"config":350},"Visibility & Measurement",{"href":345,"dataGaLocation":236,"dataGaName":351},"Visibility and Measurement",{"text":353,"config":354},"Value Stream Management",{"href":355,"dataGaLocation":236,"dataGaName":353},"/solutions/value-stream-management/",{"text":357,"config":358},"Analytics & Insights",{"href":359,"dataGaLocation":236,"dataGaName":360},"/solutions/analytics-and-insights/","Analytics and insights",{"title":362,"type":287,"items":363},"GitLab for",[364,370,376],{"text":365,"config":366},"Enterprise",{"icon":367,"href":368,"dataGaLocation":236,"dataGaName":369},"Building","/enterprise/","enterprise",{"text":371,"config":372},"Small Business",{"icon":373,"href":374,"dataGaLocation":236,"dataGaName":375},"Work","/small-business/","small business",{"text":377,"config":378},"Public Sector",{"icon":379,"href":380,"dataGaLocation":236,"dataGaName":381},"Organization","/solutions/public-sector/","public sector",{"text":383,"config":384},"Pricing",{"href":385,"dataGaName":386,"dataGaLocation":236,"dataNavLevelOne":386},"/pricing/","pricing",{"text":388,"config":389,"menu":391},"Resources",{"dataNavLevelOne":390},"resources",{"type":287,"link":392,"columns":396,"feature":485},{"text":393,"config":394},"View all resources",{"href":395,"dataGaName":390,"dataGaLocation":236},"/resources/",[397,430,452],{"title":398,"items":399},"Getting started",[400,405,410,415,420,425],{"text":401,"config":402},"Install",{"href":403,"dataGaName":404,"dataGaLocation":236},"/install/","install",{"text":406,"config":407},"Quick start guides",{"href":408,"dataGaName":409,"dataGaLocation":236},"/get-started/","quick setup checklists",{"text":411,"config":412},"Learn",{"href":413,"dataGaLocation":236,"dataGaName":414},"https://university.gitlab.com/","learn",{"text":416,"config":417},"Product documentation",{"href":418,"dataGaName":419,"dataGaLocation":236},"https://docs.gitlab.com/","product documentation",{"text":421,"config":422},"Best practice videos",{"href":423,"dataGaName":424,"dataGaLocation":236},"/getting-started-videos/","best practice videos",{"text":426,"config":427},"Integrations",{"href":428,"dataGaName":429,"dataGaLocation":236},"/integrations/","integrations",{"title":431,"items":432},"Discover",[433,438,443,447],{"text":434,"config":435},"Customer success stories",{"href":436,"dataGaName":437,"dataGaLocation":236},"/customers/","customer success stories",{"text":439,"config":440},"Blog",{"href":441,"dataGaName":442,"dataGaLocation":236},"/blog/","blog",{"text":444,"config":445},"The Source",{"href":446,"dataGaName":442,"dataGaLocation":236},"/the-source/",{"text":448,"config":449},"Remote",{"href":450,"dataGaName":451,"dataGaLocation":236},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":453,"items":454},"Connect",[455,460,465,470,475,480],{"text":456,"config":457},"GitLab Services",{"href":458,"dataGaName":459,"dataGaLocation":236},"/services/","services",{"text":461,"config":462},"Contribute",{"href":463,"dataGaName":464,"dataGaLocation":236},"https://contributors.gitlab.com","contribute",{"text":466,"config":467},"Community",{"href":468,"dataGaName":469,"dataGaLocation":236},"/community/","community",{"text":471,"config":472},"Forum",{"href":473,"dataGaName":474,"dataGaLocation":236},"https://forum.gitlab.com/","forum",{"text":476,"config":477},"Events",{"href":478,"dataGaName":479,"dataGaLocation":236},"/events/","events",{"text":481,"config":482},"Partners",{"href":483,"dataGaName":484,"dataGaLocation":236},"/partners/","partners",{"config":486,"title":489,"text":490,"link":491},{"background":487,"textColor":488},"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":492,"config":493},"Read the latest",{"href":494,"dataGaName":495,"dataGaLocation":236},"/whats-new/","whats new",{"text":497,"config":498,"menu":500},"Company",{"dataNavLevelOne":499},"company",{"type":287,"columns":501},[502],{"items":503},[504,509,515,517,522,527,532,537,542,547],{"text":505,"config":506},"About",{"href":507,"dataGaName":508,"dataGaLocation":236},"/company/","about",{"text":510,"config":511,"footerGa":514},"Jobs",{"href":512,"dataGaName":513,"dataGaLocation":236},"/jobs/","jobs",{"dataGaName":513},{"text":476,"config":516},{"href":478,"dataGaName":479,"dataGaLocation":236},{"text":518,"config":519},"Leadership",{"href":520,"dataGaName":521,"dataGaLocation":236},"/company/team/e-group/","leadership",{"text":523,"config":524},"Handbook",{"href":525,"dataGaName":526,"dataGaLocation":236},"https://handbook.gitlab.com/","handbook",{"text":528,"config":529},"Investor relations",{"href":530,"dataGaName":531,"dataGaLocation":236},"https://ir.gitlab.com/","investor relations",{"text":533,"config":534},"Trust Center",{"href":535,"dataGaName":536,"dataGaLocation":236},"/security/","trust center",{"text":538,"config":539},"AI Transparency Center",{"href":540,"dataGaName":541,"dataGaLocation":236},"/ai-transparency-center/","ai transparency center",{"text":543,"config":544},"Newsletter",{"href":545,"dataGaName":546,"dataGaLocation":236},"/company/contact/#contact-forms","newsletter",{"text":548,"config":549},"Press",{"href":550,"dataGaName":551,"dataGaLocation":236},"/press/","press",{"text":553,"config":554,"menu":555},"Contact us",{"dataNavLevelOne":499},{"type":287,"columns":556},[557],{"items":558},[559,564,569],{"text":560,"config":561},"Talk to sales",{"href":562,"dataGaName":563,"dataGaLocation":236},"/sales/","talk to sales",{"text":565,"config":566},"Support portal",{"href":567,"dataGaName":568,"dataGaLocation":236},"https://support.gitlab.com","support portal",{"text":570,"config":571},"Customer portal",{"href":572,"dataGaName":573,"dataGaLocation":236},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":575,"login":576,"suggestions":583},"Close",{"text":577,"link":578},"To search repositories and projects, login to",{"text":579,"config":580},"gitlab.com",{"href":250,"dataGaName":581,"dataGaLocation":582},"search login","search",{"text":584,"default":585},"Suggestions",[586,588,592,594,598,602],{"text":267,"config":587},{"href":272,"dataGaName":267,"dataGaLocation":582},{"text":589,"config":590},"Code Suggestions (AI)",{"href":591,"dataGaName":589,"dataGaLocation":582},"/solutions/code-suggestions/",{"text":303,"config":593},{"href":305,"dataGaName":303,"dataGaLocation":582},{"text":595,"config":596},"GitLab on AWS",{"href":597,"dataGaName":595,"dataGaLocation":582},"/partners/technology-partners/aws/",{"text":599,"config":600},"GitLab on Google Cloud",{"href":601,"dataGaName":599,"dataGaLocation":582},"/partners/technology-partners/google-cloud-platform/",{"text":603,"config":604},"Why GitLab?",{"href":280,"dataGaName":603,"dataGaLocation":582},{"freeTrial":606,"mobileIcon":611,"desktopIcon":616,"secondaryButton":619},{"text":607,"config":608},"Start free trial",{"href":609,"dataGaName":241,"dataGaLocation":610},"https://gitlab.com/-/trials/new/","nav",{"altText":612,"config":613},"Gitlab Icon",{"src":614,"dataGaName":615,"dataGaLocation":610},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":612,"config":617},{"src":618,"dataGaName":615,"dataGaLocation":610},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":620,"config":621},"Get Started",{"href":622,"dataGaName":623,"dataGaLocation":610},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":625,"mobileIcon":629,"desktopIcon":631},{"text":626,"config":627},"Learn more about GitLab Duo",{"href":272,"dataGaName":628,"dataGaLocation":610},"gitlab duo",{"altText":612,"config":630},{"src":614,"dataGaName":615,"dataGaLocation":610},{"altText":612,"config":632},{"src":618,"dataGaName":615,"dataGaLocation":610},{"button":634,"mobileIcon":639,"desktopIcon":641},{"text":635,"config":636},"/switch",{"href":637,"dataGaName":638,"dataGaLocation":610},"#contact","switch",{"altText":612,"config":640},{"src":614,"dataGaName":615,"dataGaLocation":610},{"altText":612,"config":642},{"src":643,"dataGaName":615,"dataGaLocation":610},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":645,"mobileIcon":650,"desktopIcon":652},{"text":646,"config":647},"Back to pricing",{"href":385,"dataGaName":648,"dataGaLocation":610,"icon":649},"back to pricing","GoBack",{"altText":612,"config":651},{"src":614,"dataGaName":615,"dataGaLocation":610},{"altText":612,"config":653},{"src":618,"dataGaName":615,"dataGaLocation":610},{"title":655,"button":656,"config":660},"GitLab Orbit is here: The context layer for AI agents.",{"text":278,"config":657},{"href":658,"dataGaName":659,"dataGaLocation":236},"/gitlab-orbit/","orbit",{"layout":661,"disabled":216},"release",{"data":663},{"text":664,"source":665,"edit":671,"contribute":676,"config":681,"items":686,"minimal":896},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":666,"config":667},"View page source",{"href":668,"dataGaName":669,"dataGaLocation":670},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":672,"config":673},"Edit this page",{"href":674,"dataGaName":675,"dataGaLocation":670},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":677,"config":678},"Please contribute",{"href":679,"dataGaName":680,"dataGaLocation":670},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":682,"facebook":683,"youtube":684,"linkedin":685},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[687,734,788,832,864],{"title":383,"links":688,"subMenu":703},[689,693,698],{"text":690,"config":691},"View plans",{"href":385,"dataGaName":692,"dataGaLocation":670},"view plans",{"text":694,"config":695},"Why Premium?",{"href":696,"dataGaName":697,"dataGaLocation":670},"/pricing/premium/","why premium",{"text":699,"config":700},"Why Ultimate?",{"href":701,"dataGaName":702,"dataGaLocation":670},"/pricing/ultimate/","why ultimate",[704],{"title":705,"links":706},"Contact Us",[707,710,712,714,719,724,729],{"text":708,"config":709},"Contact sales",{"href":562,"dataGaName":246,"dataGaLocation":670},{"text":565,"config":711},{"href":567,"dataGaName":568,"dataGaLocation":670},{"text":570,"config":713},{"href":572,"dataGaName":573,"dataGaLocation":670},{"text":715,"config":716},"Status",{"href":717,"dataGaName":718,"dataGaLocation":670},"https://status.gitlab.com/","status",{"text":720,"config":721},"Terms of use",{"href":722,"dataGaName":723,"dataGaLocation":670},"/terms/","terms of use",{"text":725,"config":726},"Privacy statement",{"href":727,"dataGaName":728,"dataGaLocation":670},"/privacy/","privacy statement",{"text":730,"config":731},"Cookie preferences",{"dataGaName":732,"dataGaLocation":670,"id":733,"isOneTrustButton":219},"cookie preferences","ot-sdk-btn",{"title":283,"links":735,"subMenu":744},[736,740],{"text":737,"config":738},"DevSecOps platform",{"href":265,"dataGaName":739,"dataGaLocation":670},"devsecops platform",{"text":741,"config":742},"AI-Assisted Development",{"href":272,"dataGaName":743,"dataGaLocation":670},"ai-assisted development",[745],{"title":746,"links":747},"Topics",[748,753,758,763,768,773,778,783],{"text":749,"config":750},"CICD",{"href":751,"dataGaName":752,"dataGaLocation":670},"/topics/ci-cd/","cicd",{"text":754,"config":755},"GitOps",{"href":756,"dataGaName":757,"dataGaLocation":670},"/topics/gitops/","gitops",{"text":759,"config":760},"DevOps",{"href":761,"dataGaName":762,"dataGaLocation":670},"/topics/devops/","devops",{"text":764,"config":765},"Version Control",{"href":766,"dataGaName":767,"dataGaLocation":670},"/topics/version-control/","version control",{"text":769,"config":770},"DevSecOps",{"href":771,"dataGaName":772,"dataGaLocation":670},"/topics/devsecops/","devsecops",{"text":774,"config":775},"Cloud Native",{"href":776,"dataGaName":777,"dataGaLocation":670},"/topics/cloud-native/","cloud native",{"text":779,"config":780},"AI for Coding",{"href":781,"dataGaName":782,"dataGaLocation":670},"/topics/devops/ai-for-coding/","ai for coding",{"text":784,"config":785},"Agentic AI",{"href":786,"dataGaName":787,"dataGaLocation":670},"/topics/agentic-ai/","agentic ai",{"title":789,"links":790},"Solutions",[791,793,795,800,804,807,811,814,816,819,822,827],{"text":327,"config":792},{"href":322,"dataGaName":327,"dataGaLocation":670},{"text":316,"config":794},{"href":299,"dataGaName":300,"dataGaLocation":670},{"text":796,"config":797},"Agile development",{"href":798,"dataGaName":799,"dataGaLocation":670},"/solutions/agile-delivery/","agile delivery",{"text":801,"config":802},"SCM",{"href":312,"dataGaName":803,"dataGaLocation":670},"source code management",{"text":749,"config":805},{"href":305,"dataGaName":806,"dataGaLocation":670},"continuous integration & delivery",{"text":808,"config":809},"Value stream management",{"href":355,"dataGaName":810,"dataGaLocation":670},"value stream management",{"text":754,"config":812},{"href":813,"dataGaName":757,"dataGaLocation":670},"/solutions/gitops/",{"text":365,"config":815},{"href":368,"dataGaName":369,"dataGaLocation":670},{"text":817,"config":818},"Small business",{"href":374,"dataGaName":375,"dataGaLocation":670},{"text":820,"config":821},"Public sector",{"href":380,"dataGaName":381,"dataGaLocation":670},{"text":823,"config":824},"Education",{"href":825,"dataGaName":826,"dataGaLocation":670},"/solutions/education/","education",{"text":828,"config":829},"Financial services",{"href":830,"dataGaName":831,"dataGaLocation":670},"/solutions/finance/","financial services",{"title":388,"links":833},[834,836,838,840,843,845,848,850,852,854,856,858,860,862],{"text":401,"config":835},{"href":403,"dataGaName":404,"dataGaLocation":670},{"text":406,"config":837},{"href":408,"dataGaName":409,"dataGaLocation":670},{"text":411,"config":839},{"href":413,"dataGaName":414,"dataGaLocation":670},{"text":416,"config":841},{"href":418,"dataGaName":842,"dataGaLocation":670},"docs",{"text":439,"config":844},{"href":441,"dataGaName":442,"dataGaLocation":670},{"text":846,"config":847},"What's new",{"href":494,"dataGaName":495,"dataGaLocation":670},{"text":434,"config":849},{"href":436,"dataGaName":437,"dataGaLocation":670},{"text":448,"config":851},{"href":450,"dataGaName":451,"dataGaLocation":670},{"text":456,"config":853},{"href":458,"dataGaName":459,"dataGaLocation":670},{"text":461,"config":855},{"href":463,"dataGaName":464,"dataGaLocation":670},{"text":466,"config":857},{"href":468,"dataGaName":469,"dataGaLocation":670},{"text":471,"config":859},{"href":473,"dataGaName":474,"dataGaLocation":670},{"text":476,"config":861},{"href":478,"dataGaName":479,"dataGaLocation":670},{"text":481,"config":863},{"href":483,"dataGaName":484,"dataGaLocation":670},{"title":497,"links":865},[866,868,870,872,874,876,880,885,887,889,891],{"text":505,"config":867},{"href":507,"dataGaName":499,"dataGaLocation":670},{"text":510,"config":869},{"href":512,"dataGaName":513,"dataGaLocation":670},{"text":518,"config":871},{"href":520,"dataGaName":521,"dataGaLocation":670},{"text":523,"config":873},{"href":525,"dataGaName":526,"dataGaLocation":670},{"text":528,"config":875},{"href":530,"dataGaName":531,"dataGaLocation":670},{"text":877,"config":878},"Sustainability",{"href":879,"dataGaName":877,"dataGaLocation":670},"/sustainability/",{"text":881,"config":882},"Diversity, inclusion and belonging (DIB)",{"href":883,"dataGaName":884,"dataGaLocation":670},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":533,"config":886},{"href":535,"dataGaName":536,"dataGaLocation":670},{"text":543,"config":888},{"href":545,"dataGaName":546,"dataGaLocation":670},{"text":548,"config":890},{"href":550,"dataGaName":551,"dataGaLocation":670},{"text":892,"config":893},"Modern Slavery Transparency Statement",{"href":894,"dataGaName":895,"dataGaLocation":670},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":897},[898,901,904],{"text":899,"config":900},"Terms",{"href":722,"dataGaName":723,"dataGaLocation":670},{"text":902,"config":903},"Cookies",{"dataGaName":732,"dataGaLocation":670,"id":733,"isOneTrustButton":219},{"text":905,"config":906},"Privacy",{"href":727,"dataGaName":728,"dataGaLocation":670},[908],{"id":909,"title":7,"body":215,"config":910,"content":912,"description":215,"extension":917,"meta":918,"navigation":219,"path":919,"seo":920,"stem":921,"__hash__":922},"blogAuthors/en-us/blog/authors/ozer-dondurmacioglu.yml",{"template":911},"BlogAuthor",{"name":7,"config":913},{"headshot":914,"socialProof":915},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1784210286/n8ji1r6znabeygwdjgfo.jpg",{"gitlabHandle":916},"ozerdo","yml",{},"/en-us/blog/authors/ozer-dondurmacioglu",{},"en-us/blog/authors/ozer-dondurmacioglu","B6W_Lw7jpk4DE9NOHQ0NA9KowaAWRKKtvALJhzXy6yA",[924,929,936],{"title":925,"description":926,"heroImage":217,"category":211,"date":212,"authors":927,"slug":928,"externalUrl":215},"Bring GitLab Duo Agent Platform to your terminal","Duo CLI is now generally available with GitLab 19.2 – stay in the shell for code, pipelines, and multi-step work.",[7],"gitlab-duo-cli-generally-available",{"title":930,"description":931,"heroImage":932,"category":211,"date":212,"authors":933,"slug":935,"externalUrl":215},"Forrester Consulting: GitLab Duo Agent Platform delivers 400% ROI","New study shows GitLab's agentic infrastructure accelerates time to value with increased productivity, faster security remediation, and efficient developer onboarding.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1772058602/epl3sinfezlzxnppxak6.png",[934],"Jessica Taylor","gitlab-duo-agent-platform-delivers-400-percent-roi",{"title":937,"description":938,"heroImage":939,"category":211,"date":940,"authors":941,"slug":943,"externalUrl":215},"How we used AI agents to migrate GitLab rate limiting","Learn how our three-person pod used GitLab Duo Agent platform, along with other AI tools, to successfully migrate the rate limiting system, and what we learned.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773075582/yiosxfhwk8rfkulrtchv.png","2026-07-08",[942],"Sam Wiskow","ai-agents-for-migrating-rate-limiting-system",{"promotions":945},[946,959,970,982],{"id":947,"categories":948,"header":949,"text":950,"button":951,"image":956},"ai-modernization",[211],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":952,"config":953},"Get your AI maturity score",{"href":954,"dataGaName":955,"dataGaLocation":442},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":957},{"src":958},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":960,"categories":961,"header":962,"text":950,"button":963,"image":967},"devops-modernization",[226,772],"Are you just managing tools or shipping innovation?",{"text":964,"config":965},"Get your DevOps maturity score",{"href":966,"dataGaName":955,"dataGaLocation":442},"/assessments/devops-modernization-assessment/",{"config":968},{"src":969},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":971,"categories":972,"header":974,"text":950,"button":975,"image":979},"security-modernization",[973],"security","Are you trading speed for security?",{"text":976,"config":977},"Get your security maturity score",{"href":978,"dataGaName":955,"dataGaLocation":442},"/assessments/security-modernization-assessment/",{"config":980},{"src":981},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":983,"paths":984,"header":987,"text":988,"button":989,"image":994},"github-azure-migration",[985,986],"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":990,"config":991},"See how GitLab compares to GitHub",{"href":992,"dataGaName":993,"dataGaLocation":442},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":995},{"src":969},{"header":997,"blurb":998,"button":999,"secondaryButton":1004},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1000,"config":1001},"Get your free trial",{"href":1002,"dataGaName":241,"dataGaLocation":1003},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":708,"config":1005},{"href":562,"dataGaName":246,"dataGaLocation":1003},1784253791259]