[{"data":1,"prerenderedAt":999},["ShallowReactive",2],{"/en-us/blog/transform-mrs-to-automated-workflow":3,"navigation-en-us":225,"banner-en-us":645,"footer-en-us":654,"blog-post-authors-en-us-Corinne Dent":899,"blog-related-posts-en-us-transform-mrs-to-automated-workflow":915,"blog-promotions-en-us":937,"next-steps-en-us":989},{"id":4,"title":5,"authors":6,"body":8,"category":205,"date":206,"description":207,"extension":208,"externalUrl":209,"featured":210,"heroImage":211,"meta":212,"navigation":213,"path":214,"seo":215,"slug":217,"stem":218,"tags":219,"template":223,"updatedDate":209,"__hash__":224},"blogPosts/en-us/blog/transform-mrs-to-automated-workflow.md","Transform MRs from manual tasks to an automated workflow",[7],"Corinne Dent",{"type":9,"value":10,"toc":195},"minimark",[11,15,18,21,26,29,32,35,51,57,63,78,81,91,100,104,108,111,118,121,125,131,134,138,141,145,153,162,166],[12,13,14],"p",{},"AI made writing code dramatically faster, but the work between opening a merge request and merging it has stayed almost entirely manual. Assigning reviewers, addressing feedback round after round, untangling conflicts, rebasing before merge — each step still requires a developer's attention. The bottleneck moved but the tools didn't adapt.",[12,16,17],{},"GitLab 19.0 changes that. Developer Flow now extends across the full MR lifecycle: a single AI agent that addresses reviewer feedback, resolves conflicts on long-running branches, researches unfamiliar codebases, and splits MRs that grew too large. Paired with autonomous merge conflict resolution and one-click rebase and merge, it cuts the manual work between opening an MR and merging it.",[12,19,20],{},"Developer Flow is part of a new category of AI coding tools. The first wave accelerated the next line of code. The second wave gave developers a chat window. What's emerging now is different: agents that participate across the work, not for a fixed moment. Developers can now stay above the loop, delegating and reviewing while the agent handles execution.",[22,23,25],"h2",{"id":24},"developer-flow-across-the-whole-mr","Developer Flow, across the whole MR",[12,27,28],{},"We launched Developer Flow last year to turn an issue into a merge request. Automating the repetitive setup work between \"here's what needs to be built\" and \"here's an MR to review\" was only a starting point. But it was one task, and once the MR existed, the work of iterating on it was still entirely manual.",[12,30,31],{},"This new iteration of Developer Flow picks up the rest of the manual work. An agent that does the work a developer would otherwise do now extends across the lifecycle of an MR.",[12,33,34],{},"Here’s what Developer Flow looks like in practice:",[12,36,37,41,42,45,46,50],{},[38,39,40],"strong",{},"Triggers at any stage."," Start Developer Flow from an issue with the ",[38,43,44],{},"Generate MR"," button, assign the Duo Developer service account directly to an issue or MR, or invoke it from any discussion thread on an issue or merge request with the new @mention trigger. The agent picks up the conversation and iterates on the ",[47,48,49],"em",{},"same"," MR, instead of producing a new one you have to reconcile.",[12,52,53,56],{},[38,54,55],{},"Handles the work that surrounds the code."," Developer Flow can now address reviewer feedback across multiple rounds in the same MR, resolve merge conflicts on long-running branches, research an unfamiliar codebase or evaluate an approach and report back, split an MR that grew too large, and implement features from scratch.",[12,58,59,62],{},[38,60,61],{},"Is rebuilt to take actions across the entire lifecycle."," Under the hood, Developer Flow is now a single agentic loop with a full developer toolset (read, grep, edit, run commands) that decides for itself which to use and when. More importantly, it's the architectural foundation that lets a single agent participate across the whole MR lifecycle.",[12,64,65,68,69,73,74,77],{},[38,66,67],{},"Includes the proper project setup to be able to go further than AI coding tools."," Developer Flow reads ",[70,71,72],"code",{},"AGENTS.md"," for what isn't in the code: non-obvious bash commands, project conventions, environment quirks, and architectural decisions the agent needs to get things right the first time. ",[70,75,76],{},"agent-config.yml"," prepares the coding environment with the right dependencies, tooling, and configuration so the agent can run tests, execute pre-commit hooks, and close the loop before it commits. It is how you give the agent a machine that is ready to go, so the output matches your standards instead of creating rework.",[12,79,80],{},"You stay above the loop: steering, reviewing, deciding. The agent handles execution.",[12,82,83,84,90],{},"The new Developer Flow capabilities are available with ",[85,86,89],"a",{"href":87,"rel":88},"https://about.gitlab.com/gitlab-duo-agent-platform/",[],"GitLab Duo Agent Platform"," on Premium and Ultimate.",[92,93],"iframe",{"src":94,"frameBorder":95,"allow":96,"referrerPolicy":97,"style":98,"title":99},"https://player.vimeo.com/video/1193748336?title=0&byline=0&portrait=0&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%;","GitLab Duo Agent Platform Developer Flow",[101,102],"script",{"src":103},"https://player.vimeo.com/api/player.js",[22,105,107],{"id":106},"resolving-merge-conflicts-now-part-of-the-flow","Resolving merge conflicts, now part of the flow",[12,109,110],{},"Merge conflict resolution is one of the most painful recurring tasks in an MR workflow, and the more complex the code is, the more likely it is for bugs to emerge. Resolving a conflict means reconstructing the intent of two branches at the same time, in your head, in a text editor, with no tests running. For teams managing backports and cascading MRs across multiple release branches, this isn't an occasional annoyance. It's a recurring tax on delivery velocity.",[12,112,113,114,117],{},"In GitLab 19.0, you can hand that work to an agent without leaving the MR. The ",[38,115,116],{},"Resolve with Duo"," button (now in beta) appears directly on the MR conflict page and in the merge checks widget.",[12,119,120],{},"The agent reads the MR's intent, looks at both branches, picks a resolution strategy, edits the conflicting files, commits, and pushes the fix. When the agent is done, it leaves a comment summarizing the conflict it found and the path it took to resolve it, so the next reviewer doesn't have to reverse-engineer the decision, and the audit trail stays intact. If the agent can't resolve the conflict safely, it tells you that instead of guessing.",[22,122,124],{"id":123},"rebase-and-merge-with-one-click","Rebase and merge with one click",[12,126,127,128],{},"The capabilities above handle the work inside an MR. Another 19.0 feature removes friction at the end of the workflow when you merge the MR: ",[38,129,130],{},"One-click rebase and merge (now in beta).",[12,132,133],{},"For teams using semi-linear history or fast-forward merge methods, rebasing before merge used to be two clicks with a wait in between: rebase, watch, come back, merge. Now it's one. This feature is available across Free, Premium, and Ultimate tiers.",[22,135,137],{"id":136},"shrinking-the-mr-tax","Shrinking the MR tax",[12,139,140],{},"With all of these capabilities, AI handles the judgment-heavy work: writing code, addressing feedback, and resolving conflicts. Automation handles the mechanics, such as rebasing before merge. They're different capabilities aimed at the same outcome: less manual work between opening an MR and merging it, and less of the developer's day spent on the parts of the MR that shouldn't need their attention.",[22,142,144],{"id":143},"try-developer-flow-today","Try Developer Flow today",[12,146,147,148,152],{},"Current GitLab customers can experience the benefits of Developer Flow by ",[85,149,151],{"href":87,"rel":150},[],"starting a free trial of GitLab Duo Agent Platform",". If you’re already on Premium or Ultimate with Duo Agent Platform, you can use Developer Flow on your next merge request today, regardless of which version you are on. If you're on a version earlier than 19.0, you may need to set up the mention trigger manually to use the @-mention workflow.",[12,154,155,156,161],{},"If you are already using GitLab in the Free tier, you can sign up for GitLab Duo Agent Platform by ",[85,157,160],{"href":158,"rel":159},"https://docs.gitlab.com/subscriptions/gitlab_credits/#for-the-free-tier",[],"following a few simple steps",".",[22,163,165],{"id":164},"read-more-about-whats-in-gitlab-190","Read more about what's in GitLab 19.0",[167,168,169,177,183,189],"ul",{},[170,171,172],"li",{},[85,173,176],{"href":174,"rel":175},"https://docs.gitlab.com/releases/19/gitlab-19-0-released/",[],"GitLab 19.0 released",[170,178,179],{},[85,180,182],{"href":181},"about.gitlab.com/blog/more-ai-models-for-duo-agent-platform-self-hosted/","More AI models for GitLab Duo Agent Platform Self-Hosted",[170,184,185],{},[85,186,188],{"href":187},"about.gitlab.com/blog/secrets-manager-in-public-beta/","Manage CI/CD credentials with GitLab Secrets Manager",[170,190,191],{},[85,192,194],{"href":193},"about.gitlab.com/blog/track-ci-component-usage/","Track CI component usage across your organization",{"title":196,"searchDepth":197,"depth":197,"links":198},"",2,[199,200,201,202,203,204],{"id":24,"depth":197,"text":25},{"id":106,"depth":197,"text":107},{"id":123,"depth":197,"text":124},{"id":136,"depth":197,"text":137},{"id":143,"depth":197,"text":144},{"id":164,"depth":197,"text":165},"ai","2026-05-21","This release brings a more powerful Developer Flow, autonomous merge conflict resolution, and one-click rebase and merge to GitLab.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1779189265/iqzyhhiwagxzwywvjzow.png",{},true,"/en-us/blog/transform-mrs-to-automated-workflow",{"config":216,"title":5,"description":207},{"noIndex":210},"transform-mrs-to-automated-workflow","en-us/blog/transform-mrs-to-automated-workflow",[220,221,222],"AI","product","features","BlogPost","Drf0k9jpY5gsrptZ8nLy3uuoSVW5d9RVlWTxVY7gpyE",{"logo":226,"freeTrial":231,"sales":236,"login":241,"items":246,"search":565,"minimal":596,"duo":615,"switchNav":624,"pricingDeployment":635},{"config":227},{"href":228,"dataGaName":229,"dataGaLocation":230},"/","gitlab logo","header",{"text":232,"config":233},"Get free trial",{"href":234,"dataGaName":235,"dataGaLocation":230},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":237,"config":238},"Talk to sales",{"href":239,"dataGaName":240,"dataGaLocation":230},"/sales/","sales",{"text":242,"config":243},"Sign in",{"href":244,"dataGaName":245,"dataGaLocation":230},"https://gitlab.com/users/sign_in/","sign in",[247,275,375,380,484,545],{"text":248,"config":249,"menu":251},"Platform",{"dataNavLevelOne":250},"platform",{"type":252,"columns":253},"cards",[254,260,267],{"title":248,"description":255,"link":256},"The intelligent orchestration platform for DevSecOps",{"text":257,"config":258},"Explore our Platform",{"href":259,"dataGaName":250,"dataGaLocation":230},"/platform/",{"title":89,"description":261,"link":262},"Agentic AI for the entire software lifecycle",{"text":263,"config":264},"Meet GitLab Duo",{"href":265,"dataGaName":266,"dataGaLocation":230},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":268,"description":269,"link":270},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":271,"config":272},"Learn more",{"href":273,"dataGaName":274,"dataGaLocation":230},"/why-gitlab/","why gitlab",{"text":276,"left":213,"config":277,"menu":279},"Product",{"dataNavLevelOne":278},"solutions",{"type":280,"link":281,"columns":285,"feature":354},"lists",{"text":282,"config":283},"View all Solutions",{"href":284,"dataGaName":278,"dataGaLocation":230},"/solutions/",[286,310,333],{"title":287,"description":288,"link":289,"items":294},"Automation","CI/CD and automation to accelerate deployment",{"config":290},{"icon":291,"href":292,"dataGaName":293,"dataGaLocation":230},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[295,299,302,306],{"text":296,"config":297},"CI/CD",{"href":298,"dataGaLocation":230,"dataGaName":296},"/solutions/continuous-integration/",{"text":89,"config":300},{"href":265,"dataGaLocation":230,"dataGaName":301},"gitlab duo agent platform - product menu",{"text":303,"config":304},"Source Code Management",{"href":305,"dataGaLocation":230,"dataGaName":303},"/solutions/source-code-management/",{"text":307,"config":308},"Automated Software Delivery",{"href":292,"dataGaLocation":230,"dataGaName":309},"Automated software delivery",{"title":311,"description":312,"link":313,"items":318},"Security","Deliver code faster without compromising security",{"config":314},{"href":315,"dataGaName":316,"dataGaLocation":230,"icon":317},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[319,323,328],{"text":320,"config":321},"Application Security Testing",{"href":315,"dataGaName":322,"dataGaLocation":230},"Application security testing",{"text":324,"config":325},"Software Supply Chain Security",{"href":326,"dataGaLocation":230,"dataGaName":327},"/solutions/supply-chain/","Software supply chain security",{"text":329,"config":330},"Software Compliance",{"href":331,"dataGaName":332,"dataGaLocation":230},"/solutions/software-compliance/","software compliance",{"title":334,"link":335,"items":340},"Measurement",{"config":336},{"icon":337,"href":338,"dataGaName":339,"dataGaLocation":230},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[341,345,349],{"text":342,"config":343},"Visibility & Measurement",{"href":338,"dataGaLocation":230,"dataGaName":344},"Visibility and Measurement",{"text":346,"config":347},"Value Stream Management",{"href":348,"dataGaLocation":230,"dataGaName":346},"/solutions/value-stream-management/",{"text":350,"config":351},"Analytics & Insights",{"href":352,"dataGaLocation":230,"dataGaName":353},"/solutions/analytics-and-insights/","Analytics and insights",{"title":355,"type":280,"items":356},"GitLab for",[357,363,369],{"text":358,"config":359},"Enterprise",{"icon":360,"href":361,"dataGaLocation":230,"dataGaName":362},"Building","/enterprise/","enterprise",{"text":364,"config":365},"Small Business",{"icon":366,"href":367,"dataGaLocation":230,"dataGaName":368},"Work","/small-business/","small business",{"text":370,"config":371},"Public Sector",{"icon":372,"href":373,"dataGaLocation":230,"dataGaName":374},"Organization","/solutions/public-sector/","public sector",{"text":376,"config":377},"Pricing",{"href":378,"dataGaName":379,"dataGaLocation":230,"dataNavLevelOne":379},"/pricing/","pricing",{"text":381,"config":382,"menu":384},"Resources",{"dataNavLevelOne":383},"resources",{"type":280,"link":385,"columns":389,"feature":473},{"text":386,"config":387},"View all resources",{"href":388,"dataGaName":383,"dataGaLocation":230},"/resources/",[390,423,445],{"title":391,"items":392},"Getting started",[393,398,403,408,413,418],{"text":394,"config":395},"Install",{"href":396,"dataGaName":397,"dataGaLocation":230},"/install/","install",{"text":399,"config":400},"Quick start guides",{"href":401,"dataGaName":402,"dataGaLocation":230},"/get-started/","quick setup checklists",{"text":404,"config":405},"Learn",{"href":406,"dataGaLocation":230,"dataGaName":407},"https://university.gitlab.com/","learn",{"text":409,"config":410},"Product documentation",{"href":411,"dataGaName":412,"dataGaLocation":230},"https://docs.gitlab.com/","product documentation",{"text":414,"config":415},"Best practice videos",{"href":416,"dataGaName":417,"dataGaLocation":230},"/getting-started-videos/","best practice videos",{"text":419,"config":420},"Integrations",{"href":421,"dataGaName":422,"dataGaLocation":230},"/integrations/","integrations",{"title":424,"items":425},"Discover",[426,431,436,440],{"text":427,"config":428},"Customer success stories",{"href":429,"dataGaName":430,"dataGaLocation":230},"/customers/","customer success stories",{"text":432,"config":433},"Blog",{"href":434,"dataGaName":435,"dataGaLocation":230},"/blog/","blog",{"text":437,"config":438},"The Source",{"href":439,"dataGaName":435,"dataGaLocation":230},"/the-source/",{"text":441,"config":442},"Remote",{"href":443,"dataGaName":444,"dataGaLocation":230},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":446,"items":447},"Connect",[448,453,458,463,468],{"text":449,"config":450},"GitLab Services",{"href":451,"dataGaName":452,"dataGaLocation":230},"/services/","services",{"text":454,"config":455},"Community",{"href":456,"dataGaName":457,"dataGaLocation":230},"/community/","community",{"text":459,"config":460},"Forum",{"href":461,"dataGaName":462,"dataGaLocation":230},"https://forum.gitlab.com/","forum",{"text":464,"config":465},"Events",{"href":466,"dataGaName":467,"dataGaLocation":230},"/events/","events",{"text":469,"config":470},"Partners",{"href":471,"dataGaName":472,"dataGaLocation":230},"/partners/","partners",{"config":474,"title":477,"text":478,"link":479},{"background":475,"textColor":476},"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":480,"config":481},"Read the latest",{"href":482,"dataGaName":483,"dataGaLocation":230},"/whats-new/","whats new",{"text":485,"config":486,"menu":488},"Company",{"dataNavLevelOne":487},"company",{"type":280,"columns":489},[490],{"items":491},[492,497,503,505,510,515,520,525,530,535,540],{"text":493,"config":494},"About",{"href":495,"dataGaName":496,"dataGaLocation":230},"/company/","about",{"text":498,"config":499,"footerGa":502},"Jobs",{"href":500,"dataGaName":501,"dataGaLocation":230},"/jobs/","jobs",{"dataGaName":501},{"text":464,"config":504},{"href":466,"dataGaName":467,"dataGaLocation":230},{"text":506,"config":507},"Leadership",{"href":508,"dataGaName":509,"dataGaLocation":230},"/company/team/e-group/","leadership",{"text":511,"config":512},"Team",{"href":513,"dataGaName":514,"dataGaLocation":230},"/company/team/","team",{"text":516,"config":517},"Handbook",{"href":518,"dataGaName":519,"dataGaLocation":230},"https://handbook.gitlab.com/","handbook",{"text":521,"config":522},"Investor relations",{"href":523,"dataGaName":524,"dataGaLocation":230},"https://ir.gitlab.com/","investor relations",{"text":526,"config":527},"Trust Center",{"href":528,"dataGaName":529,"dataGaLocation":230},"/security/","trust center",{"text":531,"config":532},"AI Transparency Center",{"href":533,"dataGaName":534,"dataGaLocation":230},"/ai-transparency-center/","ai transparency center",{"text":536,"config":537},"Newsletter",{"href":538,"dataGaName":539,"dataGaLocation":230},"/company/contact/#contact-forms","newsletter",{"text":541,"config":542},"Press",{"href":543,"dataGaName":544,"dataGaLocation":230},"/press/","press",{"text":546,"config":547,"menu":548},"Contact us",{"dataNavLevelOne":487},{"type":280,"columns":549},[550],{"items":551},[552,555,560],{"text":237,"config":553},{"href":239,"dataGaName":554,"dataGaLocation":230},"talk to sales",{"text":556,"config":557},"Support portal",{"href":558,"dataGaName":559,"dataGaLocation":230},"https://support.gitlab.com","support portal",{"text":561,"config":562},"Customer portal",{"href":563,"dataGaName":564,"dataGaLocation":230},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":566,"login":567,"suggestions":574},"Close",{"text":568,"link":569},"To search repositories and projects, login to",{"text":570,"config":571},"gitlab.com",{"href":244,"dataGaName":572,"dataGaLocation":573},"search login","search",{"text":575,"default":576},"Suggestions",[577,579,583,585,589,593],{"text":89,"config":578},{"href":265,"dataGaName":89,"dataGaLocation":573},{"text":580,"config":581},"Code Suggestions (AI)",{"href":582,"dataGaName":580,"dataGaLocation":573},"/solutions/code-suggestions/",{"text":296,"config":584},{"href":298,"dataGaName":296,"dataGaLocation":573},{"text":586,"config":587},"GitLab on AWS",{"href":588,"dataGaName":586,"dataGaLocation":573},"/partners/technology-partners/aws/",{"text":590,"config":591},"GitLab on Google Cloud",{"href":592,"dataGaName":590,"dataGaLocation":573},"/partners/technology-partners/google-cloud-platform/",{"text":594,"config":595},"Why GitLab?",{"href":273,"dataGaName":594,"dataGaLocation":573},{"freeTrial":597,"mobileIcon":602,"desktopIcon":607,"secondaryButton":610},{"text":598,"config":599},"Start free trial",{"href":600,"dataGaName":235,"dataGaLocation":601},"https://gitlab.com/-/trials/new/","nav",{"altText":603,"config":604},"Gitlab Icon",{"src":605,"dataGaName":606,"dataGaLocation":601},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":603,"config":608},{"src":609,"dataGaName":606,"dataGaLocation":601},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":611,"config":612},"Get Started",{"href":613,"dataGaName":614,"dataGaLocation":601},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":616,"mobileIcon":620,"desktopIcon":622},{"text":617,"config":618},"Learn more about GitLab Duo",{"href":265,"dataGaName":619,"dataGaLocation":601},"gitlab duo",{"altText":603,"config":621},{"src":605,"dataGaName":606,"dataGaLocation":601},{"altText":603,"config":623},{"src":609,"dataGaName":606,"dataGaLocation":601},{"button":625,"mobileIcon":630,"desktopIcon":632},{"text":626,"config":627},"/switch",{"href":628,"dataGaName":629,"dataGaLocation":601},"#contact","switch",{"altText":603,"config":631},{"src":605,"dataGaName":606,"dataGaLocation":601},{"altText":603,"config":633},{"src":634,"dataGaName":606,"dataGaLocation":601},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":636,"mobileIcon":641,"desktopIcon":643},{"text":637,"config":638},"Back to pricing",{"href":378,"dataGaName":639,"dataGaLocation":601,"icon":640},"back to pricing","GoBack",{"altText":603,"config":642},{"src":605,"dataGaName":606,"dataGaLocation":601},{"altText":603,"config":644},{"src":609,"dataGaName":606,"dataGaLocation":601},{"title":646,"button":647,"config":652},"See how agentic AI transforms software delivery",{"text":648,"config":649},"Sign up for GitLab Transcend on June 10",{"href":650,"dataGaName":651,"dataGaLocation":230},"/events/transcend/virtual/","transcend event",{"layout":653,"disabled":210},"release",{"data":655},{"text":656,"source":657,"edit":663,"contribute":668,"config":673,"items":678,"minimal":888},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":658,"config":659},"View page source",{"href":660,"dataGaName":661,"dataGaLocation":662},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":664,"config":665},"Edit this page",{"href":666,"dataGaName":667,"dataGaLocation":662},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":669,"config":670},"Please contribute",{"href":671,"dataGaName":672,"dataGaLocation":662},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":674,"facebook":675,"youtube":676,"linkedin":677},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[679,726,780,824,854],{"title":376,"links":680,"subMenu":695},[681,685,690],{"text":682,"config":683},"View plans",{"href":378,"dataGaName":684,"dataGaLocation":662},"view plans",{"text":686,"config":687},"Why Premium?",{"href":688,"dataGaName":689,"dataGaLocation":662},"/pricing/premium/","why premium",{"text":691,"config":692},"Why Ultimate?",{"href":693,"dataGaName":694,"dataGaLocation":662},"/pricing/ultimate/","why ultimate",[696],{"title":697,"links":698},"Contact Us",[699,702,704,706,711,716,721],{"text":700,"config":701},"Contact sales",{"href":239,"dataGaName":240,"dataGaLocation":662},{"text":556,"config":703},{"href":558,"dataGaName":559,"dataGaLocation":662},{"text":561,"config":705},{"href":563,"dataGaName":564,"dataGaLocation":662},{"text":707,"config":708},"Status",{"href":709,"dataGaName":710,"dataGaLocation":662},"https://status.gitlab.com/","status",{"text":712,"config":713},"Terms of use",{"href":714,"dataGaName":715,"dataGaLocation":662},"/terms/","terms of use",{"text":717,"config":718},"Privacy statement",{"href":719,"dataGaName":720,"dataGaLocation":662},"/privacy/","privacy statement",{"text":722,"config":723},"Cookie preferences",{"dataGaName":724,"dataGaLocation":662,"id":725,"isOneTrustButton":213},"cookie preferences","ot-sdk-btn",{"title":276,"links":727,"subMenu":736},[728,732],{"text":729,"config":730},"DevSecOps platform",{"href":259,"dataGaName":731,"dataGaLocation":662},"devsecops platform",{"text":733,"config":734},"AI-Assisted Development",{"href":265,"dataGaName":735,"dataGaLocation":662},"ai-assisted development",[737],{"title":738,"links":739},"Topics",[740,745,750,755,760,765,770,775],{"text":741,"config":742},"CICD",{"href":743,"dataGaName":744,"dataGaLocation":662},"/topics/ci-cd/","cicd",{"text":746,"config":747},"GitOps",{"href":748,"dataGaName":749,"dataGaLocation":662},"/topics/gitops/","gitops",{"text":751,"config":752},"DevOps",{"href":753,"dataGaName":754,"dataGaLocation":662},"/topics/devops/","devops",{"text":756,"config":757},"Version Control",{"href":758,"dataGaName":759,"dataGaLocation":662},"/topics/version-control/","version control",{"text":761,"config":762},"DevSecOps",{"href":763,"dataGaName":764,"dataGaLocation":662},"/topics/devsecops/","devsecops",{"text":766,"config":767},"Cloud Native",{"href":768,"dataGaName":769,"dataGaLocation":662},"/topics/cloud-native/","cloud native",{"text":771,"config":772},"AI for Coding",{"href":773,"dataGaName":774,"dataGaLocation":662},"/topics/devops/ai-for-coding/","ai for coding",{"text":776,"config":777},"Agentic AI",{"href":778,"dataGaName":779,"dataGaLocation":662},"/topics/agentic-ai/","agentic ai",{"title":781,"links":782},"Solutions",[783,785,787,792,796,799,803,806,808,811,814,819],{"text":320,"config":784},{"href":315,"dataGaName":320,"dataGaLocation":662},{"text":309,"config":786},{"href":292,"dataGaName":293,"dataGaLocation":662},{"text":788,"config":789},"Agile development",{"href":790,"dataGaName":791,"dataGaLocation":662},"/solutions/agile-delivery/","agile delivery",{"text":793,"config":794},"SCM",{"href":305,"dataGaName":795,"dataGaLocation":662},"source code management",{"text":741,"config":797},{"href":298,"dataGaName":798,"dataGaLocation":662},"continuous integration & delivery",{"text":800,"config":801},"Value stream management",{"href":348,"dataGaName":802,"dataGaLocation":662},"value stream management",{"text":746,"config":804},{"href":805,"dataGaName":749,"dataGaLocation":662},"/solutions/gitops/",{"text":358,"config":807},{"href":361,"dataGaName":362,"dataGaLocation":662},{"text":809,"config":810},"Small business",{"href":367,"dataGaName":368,"dataGaLocation":662},{"text":812,"config":813},"Public sector",{"href":373,"dataGaName":374,"dataGaLocation":662},{"text":815,"config":816},"Education",{"href":817,"dataGaName":818,"dataGaLocation":662},"/solutions/education/","education",{"text":820,"config":821},"Financial services",{"href":822,"dataGaName":823,"dataGaLocation":662},"/solutions/finance/","financial services",{"title":381,"links":825},[826,828,830,832,835,837,840,842,844,846,848,850,852],{"text":394,"config":827},{"href":396,"dataGaName":397,"dataGaLocation":662},{"text":399,"config":829},{"href":401,"dataGaName":402,"dataGaLocation":662},{"text":404,"config":831},{"href":406,"dataGaName":407,"dataGaLocation":662},{"text":409,"config":833},{"href":411,"dataGaName":834,"dataGaLocation":662},"docs",{"text":432,"config":836},{"href":434,"dataGaName":435,"dataGaLocation":662},{"text":838,"config":839},"What's new",{"href":482,"dataGaName":483,"dataGaLocation":662},{"text":427,"config":841},{"href":429,"dataGaName":430,"dataGaLocation":662},{"text":441,"config":843},{"href":443,"dataGaName":444,"dataGaLocation":662},{"text":449,"config":845},{"href":451,"dataGaName":452,"dataGaLocation":662},{"text":454,"config":847},{"href":456,"dataGaName":457,"dataGaLocation":662},{"text":459,"config":849},{"href":461,"dataGaName":462,"dataGaLocation":662},{"text":464,"config":851},{"href":466,"dataGaName":467,"dataGaLocation":662},{"text":469,"config":853},{"href":471,"dataGaName":472,"dataGaLocation":662},{"title":485,"links":855},[856,858,860,862,864,866,868,872,877,879,881,883],{"text":493,"config":857},{"href":495,"dataGaName":487,"dataGaLocation":662},{"text":498,"config":859},{"href":500,"dataGaName":501,"dataGaLocation":662},{"text":506,"config":861},{"href":508,"dataGaName":509,"dataGaLocation":662},{"text":511,"config":863},{"href":513,"dataGaName":514,"dataGaLocation":662},{"text":516,"config":865},{"href":518,"dataGaName":519,"dataGaLocation":662},{"text":521,"config":867},{"href":523,"dataGaName":524,"dataGaLocation":662},{"text":869,"config":870},"Sustainability",{"href":871,"dataGaName":869,"dataGaLocation":662},"/sustainability/",{"text":873,"config":874},"Diversity, inclusion and belonging (DIB)",{"href":875,"dataGaName":876,"dataGaLocation":662},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":526,"config":878},{"href":528,"dataGaName":529,"dataGaLocation":662},{"text":536,"config":880},{"href":538,"dataGaName":539,"dataGaLocation":662},{"text":541,"config":882},{"href":543,"dataGaName":544,"dataGaLocation":662},{"text":884,"config":885},"Modern Slavery Transparency Statement",{"href":886,"dataGaName":887,"dataGaLocation":662},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":889},[890,893,896],{"text":891,"config":892},"Terms",{"href":714,"dataGaName":715,"dataGaLocation":662},{"text":894,"config":895},"Cookies",{"dataGaName":724,"dataGaLocation":662,"id":725,"isOneTrustButton":213},{"text":897,"config":898},"Privacy",{"href":719,"dataGaName":720,"dataGaLocation":662},[900],{"id":901,"title":7,"body":209,"config":902,"content":904,"description":209,"extension":909,"meta":910,"navigation":213,"path":911,"seo":912,"stem":913,"__hash__":914},"blogAuthors/en-us/blog/authors/corinne-dent.yml",{"template":903},"BlogAuthor",{"name":7,"config":905},{"headshot":906,"socialProof":907},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1776259325/wleadycsbhxupfjk429x.jpg",{"gitlabHandle":908},"cdentpmm","yml",{},"/en-us/blog/authors/corinne-dent",{},"en-us/blog/authors/corinne-dent","gIXSYvPo4R_gcT_E81HVjh6tw7d7pqkxqMlBL5z_sow",[916,921,929],{"title":182,"description":917,"heroImage":211,"category":205,"date":206,"authors":918,"slug":920,"externalUrl":209},"GitLab 19.0 brings broader open source model support for Duo Agent Platform Self-Hosted. Customers in air-gapped and regulated environments now have more capable AI options.",[919],"Jordan Janes","more-ai-models-for-duo-agent-platform-self-hosted",{"title":922,"description":923,"heroImage":924,"category":205,"date":925,"authors":926,"slug":928,"externalUrl":209},"Beyond BYOK: Why governance matters for AI agents","Copilot's BYOK offers flexibility, but true enterprise governance requires more. GitLab Duo CLI provides auditable, controlled CI/CD automation for AI agents.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-05-18",[927],"Jessica Hurwitz","gitlab-duo-cli-governance",{"title":930,"description":931,"heroImage":932,"category":205,"date":933,"authors":934,"slug":936,"externalUrl":209},"Automate deployment processes using a custom agent in GitLab Duo Agent Platform","Custom AI agents automate complex, repetitive GitOps work in minutes, while remaining versioned, governed, and secured within enterprise guardrails.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773856365/gsx2c0vqlswox3ldmq88.jpg","2026-05-07",[935],"Cesar Saavedra","automate-deployment-with-duo-agent-platform",{"promotions":938},[939,952,963,975],{"id":940,"categories":941,"header":942,"text":943,"button":944,"image":949},"ai-modernization",[205],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":945,"config":946},"Get your AI maturity score",{"href":947,"dataGaName":948,"dataGaLocation":435},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":950},{"src":951},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":953,"categories":954,"header":955,"text":943,"button":956,"image":960},"devops-modernization",[221,764],"Are you just managing tools or shipping innovation?",{"text":957,"config":958},"Get your DevOps maturity score",{"href":959,"dataGaName":948,"dataGaLocation":435},"/assessments/devops-modernization-assessment/",{"config":961},{"src":962},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":964,"categories":965,"header":967,"text":943,"button":968,"image":972},"security-modernization",[966],"security","Are you trading speed for security?",{"text":969,"config":970},"Get your security maturity score",{"href":971,"dataGaName":948,"dataGaLocation":435},"/assessments/security-modernization-assessment/",{"config":973},{"src":974},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":976,"paths":977,"header":980,"text":981,"button":982,"image":987},"github-azure-migration",[978,979],"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":983,"config":984},"See how GitLab compares to GitHub",{"href":985,"dataGaName":986,"dataGaLocation":435},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":988},{"src":962},{"header":990,"blurb":991,"button":992,"secondaryButton":997},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":993,"config":994},"Get your free trial",{"href":995,"dataGaName":235,"dataGaLocation":996},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":700,"config":998},{"href":239,"dataGaName":240,"dataGaLocation":996},1779401944942]