[{"data":1,"prerenderedAt":1048},["ShallowReactive",2],{"/blog/gitlab-duo-cli-drives-automation":3,"navigation-en-us":289,"banner-en-us":721,"footer-en-us":731,"blog-post-authors-en-us-Rebecca Carter":992,"blog-related-posts-en-us-gitlab-duo-cli-drives-automation":1006,"blog-share-wrapper-en-us":1028,"next-steps-en-us":1038},{"id":4,"title":5,"authors":6,"body":8,"category":271,"date":272,"description":273,"extension":274,"externalUrl":275,"faq":275,"featured":276,"heroImage":277,"meta":278,"navigation":276,"path":279,"seo":280,"slug":283,"stem":284,"tags":285,"template":287,"updatedDate":275,"__hash__":288},"blogPosts/en-us/blog/gitlab-duo-cli-drives-automation.md","GitLab Duo CLI takes a task from goal to done",[7],"Rebecca Carter",{"type":9,"value":10,"toc":261},"minimark",[11,15,18,33,60,65,68,72,78,82,85,94,97,101,107,129,132,136,142,148,151,157,163,172,176,180,186,199,203,208,220,225,241,255],[12,13,14],"p",{},"Complex tasks hit a wall at the end of every chat turn. Developers already know what they're trying to accomplish. What stalls the work is the handoff back and forth between each step. Without a pre-defined definition of success, the agent stops and waits for direction or clarification, so you end up re-prompting it step by step, effectively acting as its continue button until the task is done.",[12,16,17],{},"Depending on the team, that handoff can mean minutes of back-and-forth, or it can mean the request sits until someone is free to look at it again. A back-and-forth like this is manageable for small, well-scoped requests, but it breaks down for the kind of open-ended work developers actually spend their time on: fixing the failing tests, getting this build past checks, or cleaning up the lint errors across a module.",[12,19,20,21,27,28,32],{},"With GitLab 19.4, ",[22,23,26],"a",{"href":24,"rel":25},"https://docs.gitlab.com/user/gitlab_duo_cli/",[],"GitLab Duo CLI"," includes the ",[29,30,31],"code",{},"/goal"," slash command, a governed, goal-driven flow that takes on that open-ended work directly, running locally while you stay in control.",[34,35,36,50,53],"blockquote",{},[12,37,38,45,46],{},[39,40],"img",{"src":41,"alt":42,"width":43,"style":44},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1789485538/b1oin7kqcqoa4ezvabs0.png","",40,"vertical-align:middle;display:inline-block"," ",[47,48,49],"strong",{},"GitLab Transcend returns in October",[12,51,52],{},"Coding agents are increasing your speed of development, but your reviews, security policies, and release cycles still have to keep pace. Our Transcend event on October 6 will demonstrate how GitLab is helping teams close that gap and explore what it takes to carry the speed of agentic AI across the software lifecycle.",[12,54,55],{},[22,56,59],{"href":57,"rel":58},"https://about.gitlab.com/events/transcend/virtual/",[],"Register for the livestream today!",[61,62,64],"h2",{"id":63},"why-turn-by-turn-chat-keeps-costing-you-time","Why turn-by-turn chat keeps costing you time",[12,66,67],{},"This isn't about the assistant getting smarter. Turn-by-turn chat requires someone to keep it moving: read the response, decide the next instruction, send it, repeat. Even a capable model still waits at the end of each turn for a person to unstick it, so a developer's attention stays tied to how long a task takes, not how much of it they actually need to do by hand. That's why AI assistance so far has mostly changed the shape of a developer's time rather than given much of it back.",[61,69,71],{"id":70},"delegate-it-and-get-a-verified-result-back","Delegate it, and get a verified result back",[12,73,74,75,77],{},"With ",[29,76,31],{},", you describe the outcome you want and move on. No one needs to babysit the run: work continues, gets checked against what you asked for, and either finishes or tells you what it couldn't resolve. You come back to a completed result and a record of what was verified, the same way you'd check in on something you delegated to a colleague, instead of staying anchored to the conversation until it's done.",[61,79,81],{"id":80},"from-single-prompts-to-standing-goals","From single prompts to standing goals",[12,83,84],{},"You just name the job and define what \"done\" looks like, and GitLab takes the wheel, staying active and focused until that specific finish line is crossed.",[86,87,92],"pre",{"className":88,"code":90,"language":91},[89],"language-text","/goal Fix the failing tests. Ensure CI is fully green and the fix is reviewed by Duo Developer.\n","text",[29,93,90],{"__ignoreMap":42},[12,95,96],{},"GitLab then works the problem: It makes changes and runs verification, iterating as needed. A separate model checks that work against your stated goal at each step, deciding whether it's genuinely done or another iteration is needed, up to a configured limit. This is the difference between an assistant that answers questions and one that drives a task to completion.",[61,98,100],{"id":99},"automation-that-stays-governed","Automation that stays governed",[12,102,103,104,106],{},"Handing off a goal does not mean losing visibility into it, though. You can stop a ",[29,105,31],{}," run at any point and set a new goal if requirements change, so a session in progress never has to run to its full conclusion if it's off-track.",[108,109,110,117,123],"ul",{},[111,112,113,116],"li",{},[47,114,115],{},"Stop the run"," at any point if you need to step in.",[111,118,119,122],{},[47,120,121],{},"Set a new goal"," and restart, if requirements have changed.",[111,124,125,128],{},[47,126,127],{},"Review what the verifier checked"," at the end of each turn, so you can see why it decided to continue or stop.",[12,130,131],{},"That combination — an agent that can work autonomously toward a defined outcome without requiring a supervising human to stay glued to every step, while still exposing clear points of human oversight — is what makes this a step toward practical automation rather than a novelty.",[61,133,135],{"id":134},"getting-started","Getting started",[12,137,138,139,141],{},"The ",[29,140,31],{}," slash command is available now in interactive mode. To use it, run:",[86,143,146],{"className":144,"code":145,"language":91},[89],"/goal \u003Ctask>. \u003Cdone when...>\n",[29,147,145],{"__ignoreMap":42},[12,149,150],{},"For example:",[86,152,155],{"className":153,"code":154,"language":91},[89],"/goal Fix the failing tests in spec/models/user_spec.rb. Continue until all tests pass locally and CI is green.\n",[29,156,154],{"__ignoreMap":42},[12,158,159,160,162],{},"Watch ",[29,161,31],{}," in action in this demo:",[164,165],"iframe",{"src":166,"frameBorder":167,"allow":168,"referrerPolicy":169,"style":170,"title":171},"https://player.vimeo.com/video/1227807905?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.4 Deploy Autonomous Agents with /goal in Duo CLI",[173,174],"script",{"src":175},"https://player.vimeo.com/api/player.js",[61,177,179],{"id":178},"meeting-developers-where-they-work","Meeting developers where they work",[12,181,182,183,185],{},"The value of a goal-driven flow depends on the surfaces through which developers can reach it. ",[29,184,31],{}," launches first in the CLI because much of this iterative, hands-on work already takes place in the terminal, but the underlying capability is not limited to any single client. Developers should be able to delegate a goal from within the tools they already use, rather than switching to a separate interface to access this automation.",[12,187,188,189,194,195,198],{},"A ",[22,190,193],{"href":191,"rel":192},"https://docs.gitlab.com/releases/19/gitlab-19-4-released/#gitlab-duo-slack-integration-experimental",[],"GitLab Duo Slack agent"," is coming soon, letting developers work with GitLab Duo Agent Platform conversationally, right inside Slack. Mention ",[29,196,197],{},"@GitLab"," in any channel or thread to ask questions about your codebase, trigger an agent flow, or create a GitLab issue from the conversation, with no separate tool, tab, or command syntax required. GitLab Duo streams its progress back into the thread in real time, so the whole exchange — ask, work, and result — stays where the conversation is already happening.",[61,200,202],{"id":201},"start-delegating-the-work-you-already-repeat","Start delegating the work you already repeat",[12,204,205,207],{},[29,206,31],{}," is now available in GitLab Duo CLI, and it marks a first step toward moving the decision-making behind a task, including when a goal is done and when to keep going, out of any single client and into a governed workflow that every GitLab surface can call on. As that same capability extends to Slack, the iterative fixes and verifications your team already runs by hand become governed, goal-driven flows, without asking developers to change where they work.",[12,209,210,211,213,214,219],{},"Ready to try ",[29,212,31],{},"? Start with the ",[22,215,218],{"href":216,"rel":217},"https://docs.gitlab.com/user/gitlab_duo_cli/use/#slash-commands",[],"documentation for GitLab Duo CLI slash commands",".",[12,221,222,224],{},[29,223,31],{}," requires GitLab 19.3 and later, and GitLab Duo CLI 9.17.0 and later. It's available on GitLab.com, GitLab Self-Managed, and GitLab Dedicated, on the Premium and Ultimate tiers.",[12,226,227,229,230,235,236,219],{},[29,228,31],{}," is part of GitLab Duo Agent Platform, so you'll need it turned on to use this and other agentic capabilities. You can get access with a ",[22,231,234],{"href":232,"rel":233},"https://about.gitlab.com/gitlab-duo-agent-platform/",[],"free trial of GitLab Duo Agent Platform",". On the Free tier, you can ",[22,237,240],{"href":238,"rel":239},"https://docs.gitlab.com/subscriptions/gitlab_credits/#for-the-free-tier-on-gitlabcom",[],"sign up in a few simple steps",[12,242,243,244,249,250,219],{},"Already on GitLab Premium or Ultimate? Start by ",[22,245,248],{"href":246,"rel":247},"https://docs.gitlab.com/user/duo_agent_platform/turn_on_off/",[],"turning on Duo Agent Platform"," and use the ",[22,251,254],{"href":252,"rel":253},"https://docs.gitlab.com/subscriptions/gitlab_credits/#included-credits/",[],"GitLab Credits included with your subscription",[12,256,257],{},[258,259,260],"em",{},"This blog post contains \"forward‑looking statements\" within the meaning of Section 27A of the Securities Act of 1933, as amended, and Section 21E of the Securities Exchange Act of 1934. Although we believe that the expectations reflected in these statements are reasonable, they are subject to known and unknown risks, uncertainties, assumptions and other factors that may cause actual results or outcomes to differ materially. Further information on these risks and other factors is included under the caption \"Risk Factors\" in our filings with the SEC. We do not undertake any obligation to update or revise these statements after the date of this blog post, except as required by law.",{"title":42,"searchDepth":262,"depth":262,"links":263},2,[264,265,266,267,268,269,270],{"id":63,"depth":262,"text":64},{"id":70,"depth":262,"text":71},{"id":80,"depth":262,"text":81},{"id":99,"depth":262,"text":100},{"id":134,"depth":262,"text":135},{"id":178,"depth":262,"text":179},{"id":201,"depth":262,"text":202},"product","2026-09-17","Describe the outcome you want, and let GitLab Duo CLI drive the work while you stay in control.\n","md",null,true,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1789480051/evgeumxt5qkdgzlc9e27.png",{},"/en-us/blog/gitlab-duo-cli-drives-automation",{"config":281,"title":5,"description":273},{"noIndex":282},false,"gitlab-duo-cli-drives-automation","en-us/blog/gitlab-duo-cli-drives-automation",[271,286],"features","BlogPost","YYq_pYhUyYVHStrnK6h7Y834G2AngSFSYuixRfR1kw8",{"logo":290,"freeTrial":295,"sales":300,"login":305,"items":310,"search":641,"minimal":672,"duo":691,"switchNav":700,"pricingDeployment":711},{"config":291},{"href":292,"dataGaName":293,"dataGaLocation":294},"/","gitlab logo","header",{"text":296,"config":297},"Get free trial",{"href":298,"dataGaName":299,"dataGaLocation":294},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":301,"config":302},"Request a demo",{"href":303,"dataGaName":304,"dataGaLocation":294},"/request-a-demo/","sales",{"text":306,"config":307},"Sign in",{"href":308,"dataGaName":309,"dataGaLocation":294},"https://gitlab.com/users/sign_in/","sign in",[311,397,485,490,565,619],{"text":312,"left":276,"config":313,"menu":315},"Platform",{"dataNavLevelOne":314},"platform",{"type":316,"link":317,"columns":321,"feature":386},"lists",{"text":318,"config":319},"Explore the Platform",{"href":320,"dataGaName":314,"dataGaLocation":294},"/platform/",[322,345,368],{"title":323,"items":324},"Execution & Workflows",[325,330,335,340],{"text":326,"config":327},"CI/CD",{"href":328,"dataGaLocation":294,"dataGaName":329},"/solutions/continuous-integration/","ci/cd",{"text":331,"config":332},"Source Code Management",{"href":333,"dataGaLocation":294,"dataGaName":334},"/solutions/source-code-management/","source code management",{"text":336,"config":337},"Agile Delivery",{"href":338,"dataGaLocation":294,"dataGaName":339},"/solutions/agile-delivery/","agile delivery",{"text":341,"config":342},"Artifact Management",{"href":343,"dataGaLocation":294,"dataGaName":344},"/artifact-central/","artifact management",{"title":346,"items":347},"Security & Governance",[348,353,358,363],{"text":349,"config":350},"Application Security Testing",{"href":351,"dataGaLocation":294,"dataGaName":352},"/solutions/application-security-testing/","application security testing",{"text":354,"config":355},"Governance & Compliance",{"href":356,"dataGaLocation":294,"dataGaName":357},"/solutions/software-compliance/","governance and compliance",{"text":359,"config":360},"Secrets Management",{"href":361,"dataGaLocation":294,"dataGaName":362},"/gitlab-secrets-manager/","secrets management",{"text":364,"config":365},"Supply Chain Security",{"href":366,"dataGaLocation":294,"dataGaName":367},"/solutions/supply-chain/","supply chain security",{"title":369,"items":370},"Context & AI",[371,376,381],{"text":372,"config":373},"Agentic Orchestration",{"href":374,"dataGaLocation":294,"dataGaName":375},"/gitlab-duo-agent-platform/","agentic orchestration",{"text":377,"config":378},"Context Graph",{"href":379,"dataGaLocation":294,"dataGaName":380},"/gitlab-orbit/","context graph",{"text":382,"config":383},"Visibility & Measurement",{"href":384,"dataGaLocation":294,"dataGaName":385},"/solutions/visibility-measurement/","visibility and measurement",{"config":387,"title":390,"text":391,"link":392},{"background":388,"textColor":389},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1790185102/o7dn32anqcb6z8dgd3as.jpg')","#000","Why GitLab","One platform for speed with control across your software lifecycle.",{"text":393,"config":394},"Learn more",{"href":395,"dataGaName":396,"dataGaLocation":294},"/why-gitlab/","why gitlab",{"text":398,"left":276,"config":399,"menu":401},"Solutions",{"dataNavLevelOne":400},"solutions",{"type":316,"link":402,"columns":406,"feature":476},{"text":403,"config":404},"View all Solutions",{"href":405,"dataGaName":400,"dataGaLocation":294},"/solutions/",[407,425,443],{"title":408,"items":409},"Outcomes",[410,415,420],{"text":411,"config":412},"DevOps Modernization",{"href":413,"dataGaLocation":294,"dataGaName":414},"/assessments/devops-modernization-assessment/","devops modernization",{"text":416,"config":417},"Security Modernization",{"href":418,"dataGaLocation":294,"dataGaName":419},"/assessments/security-modernization-assessment/","security modernization",{"text":421,"config":422},"AI Modernization",{"href":423,"dataGaLocation":294,"dataGaName":424},"/assessments/ai-modernization-assessment/","ai modernization",{"title":426,"items":427},"By size",[428,433,438],{"text":429,"config":430},"Enterprise",{"href":431,"dataGaLocation":294,"dataGaName":432},"/enterprise/","enterprise",{"text":434,"config":435},"Small Business",{"href":436,"dataGaLocation":294,"dataGaName":437},"/small-business/","small business",{"text":439,"config":440},"Startups",{"href":441,"dataGaLocation":294,"dataGaName":442},"/solutions/startups/","startups",{"title":444,"items":445},"Industries",[446,451,456,461,466,471],{"text":447,"config":448},"Financial Services",{"href":449,"dataGaLocation":294,"dataGaName":450},"/solutions/finance/","financial services",{"text":452,"config":453},"Public Sector",{"href":454,"dataGaLocation":294,"dataGaName":455},"/solutions/public-sector/","public sector",{"text":457,"config":458},"Telecommunications",{"href":459,"dataGaLocation":294,"dataGaName":460},"/solutions/telecommunications/","telecommunications",{"text":462,"config":463},"Automotive",{"href":464,"dataGaLocation":294,"dataGaName":465},"/solutions/automotive/","automotive",{"text":467,"config":468},"Education",{"href":469,"dataGaLocation":294,"dataGaName":470},"/solutions/education/","education",{"text":472,"config":473},"Aerospace",{"href":474,"dataGaLocation":294,"dataGaName":475},"/solutions/aerospace/","aerospace",{"config":477,"title":478,"text":479,"link":480},{"background":388,"textColor":389},"GitLab Security Standard","Learn how to harden your software factory and let AI agents earn autonomy, without trading away security.",{"text":481,"config":482},"Explore the standard",{"href":483,"dataGaName":484,"dataGaLocation":294},"/gitlab-security-standard/","gitlab security standard",{"text":486,"config":487},"Pricing",{"href":488,"dataGaName":489,"dataGaLocation":294,"dataNavLevelOne":489},"/pricing/","pricing",{"text":491,"config":492,"menu":494},"Resources",{"dataNavLevelOne":493},"resources",{"type":316,"link":495,"columns":499,"feature":556},{"text":496,"config":497},"View all resources",{"href":498,"dataGaName":493,"dataGaLocation":294},"/resources/",[500,528],{"title":501,"items":502},"Discover",[503,508,513,518,523],{"text":504,"config":505},"Docs",{"href":506,"dataGaName":507,"dataGaLocation":294},"https://docs.gitlab.com/","docs",{"text":509,"config":510},"University",{"href":511,"dataGaName":512,"dataGaLocation":294},"https://university.gitlab.com/","university",{"text":514,"config":515},"Demo Series",{"href":516,"dataGaName":517,"dataGaLocation":294},"/gitlab-technical-demo-series/","demo series",{"text":519,"config":520},"Demo Hub",{"href":521,"dataGaName":522,"dataGaLocation":294},"/demo-hub/","demo hub",{"text":524,"config":525},"Services",{"href":526,"dataGaName":527,"dataGaLocation":294},"/services/","services",{"title":529,"items":530},"Connect",[531,536,541,546,551],{"text":532,"config":533},"Blog",{"href":534,"dataGaName":535,"dataGaLocation":294},"/blog/","blog",{"text":537,"config":538},"Community",{"href":539,"dataGaName":540,"dataGaLocation":294},"/community/","community",{"text":542,"config":543},"Customers",{"href":544,"dataGaName":545,"dataGaLocation":294},"/customers/","customers",{"text":547,"config":548},"Partners",{"href":549,"dataGaName":550,"dataGaLocation":294},"/partners/","partners",{"text":552,"config":553},"Events",{"href":554,"dataGaName":555,"dataGaLocation":294},"/events/","events",{"config":557,"title":558,"text":559,"link":560},{"background":388,"textColor":389},"What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":561,"config":562},"Read the latest",{"href":563,"dataGaName":564,"dataGaLocation":294},"/whats-new/","whats new",{"text":566,"config":567,"menu":569},"Company",{"dataNavLevelOne":568},"company",{"type":316,"columns":570},[571],{"items":572},[573,578,584,589,594,599,604,609,614],{"text":574,"config":575},"About",{"href":576,"dataGaName":577,"dataGaLocation":294},"/company/","about",{"text":579,"config":580,"footerGa":583},"Jobs",{"href":581,"dataGaName":582,"dataGaLocation":294},"/jobs/","jobs",{"dataGaName":582},{"text":585,"config":586},"Press",{"href":587,"dataGaName":588,"dataGaLocation":294},"/press/","press",{"text":590,"config":591},"Handbook",{"href":592,"dataGaName":593,"dataGaLocation":294},"https://handbook.gitlab.com/","handbook",{"text":595,"config":596},"Leadership",{"href":597,"dataGaName":598,"dataGaLocation":294},"/company/team/e-group/","leadership",{"text":600,"config":601},"Investor relations",{"href":602,"dataGaName":603,"dataGaLocation":294},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":605,"config":606},"Trust Center",{"href":607,"dataGaName":608,"dataGaLocation":294},"/security/","trust center",{"text":610,"config":611},"AI Transparency Center",{"href":612,"dataGaName":613,"dataGaLocation":294},"/ai-transparency-center/","ai transparency center",{"text":615,"config":616},"Newsletter",{"href":617,"dataGaName":618,"dataGaLocation":294},"/company/contact/#contact-forms","newsletter",{"text":620,"config":621,"menu":622},"Contact us",{"dataNavLevelOne":568},{"type":316,"columns":623},[624],{"items":625},[626,631,636],{"text":627,"config":628},"Talk to sales",{"href":629,"dataGaName":630,"dataGaLocation":294},"/sales/","talk to sales",{"text":632,"config":633},"Support portal",{"href":634,"dataGaName":635,"dataGaLocation":294},"https://support.gitlab.com/hc/en-us","support portal",{"text":637,"config":638},"Customer portal",{"href":639,"dataGaName":640,"dataGaLocation":294},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":642,"login":643,"suggestions":650},"Close",{"text":644,"link":645},"To search repositories and projects, login to",{"text":646,"config":647},"gitlab.com",{"href":308,"dataGaName":648,"dataGaLocation":649},"search login","search",{"text":651,"default":652},"Suggestions",[653,656,659,661,665,669],{"text":654,"config":655},"GitLab Duo Agent Platform",{"href":374,"dataGaName":654,"dataGaLocation":649},{"text":657,"config":658},"Code Suggestions (AI)",{"href":374,"dataGaName":657,"dataGaLocation":649},{"text":326,"config":660},{"href":328,"dataGaName":326,"dataGaLocation":649},{"text":662,"config":663},"GitLab on AWS",{"href":664,"dataGaName":662,"dataGaLocation":649},"/partners/technology-partners/aws/",{"text":666,"config":667},"GitLab on Google Cloud",{"href":668,"dataGaName":666,"dataGaLocation":649},"/partners/technology-partners/google-cloud-platform/",{"text":670,"config":671},"Why GitLab?",{"href":395,"dataGaName":670,"dataGaLocation":649},{"freeTrial":673,"mobileIcon":678,"desktopIcon":683,"secondaryButton":686},{"text":674,"config":675},"Start free trial",{"href":676,"dataGaName":299,"dataGaLocation":677},"https://gitlab.com/-/trials/new/","nav",{"altText":679,"config":680},"Gitlab Icon",{"src":681,"dataGaName":682,"dataGaLocation":677},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":679,"config":684},{"src":685,"dataGaName":682,"dataGaLocation":677},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":687,"config":688},"Get Started",{"href":689,"dataGaName":690,"dataGaLocation":677},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":692,"mobileIcon":696,"desktopIcon":698},{"text":693,"config":694},"Learn more about GitLab Duo",{"href":374,"dataGaName":695,"dataGaLocation":677},"gitlab duo",{"altText":679,"config":697},{"src":681,"dataGaName":682,"dataGaLocation":677},{"altText":679,"config":699},{"src":685,"dataGaName":682,"dataGaLocation":677},{"button":701,"mobileIcon":706,"desktopIcon":708},{"text":702,"config":703},"/switch",{"href":704,"dataGaName":705,"dataGaLocation":677},"#contact","switch",{"altText":679,"config":707},{"src":681,"dataGaName":682,"dataGaLocation":677},{"altText":679,"config":709},{"src":710,"dataGaName":682,"dataGaLocation":677},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":712,"mobileIcon":717,"desktopIcon":719},{"text":713,"config":714},"Back to pricing",{"href":488,"dataGaName":715,"dataGaLocation":677,"icon":716},"back to pricing","GoBack",{"altText":679,"config":718},{"src":681,"dataGaName":682,"dataGaLocation":677},{"altText":679,"config":720},{"src":685,"dataGaName":682,"dataGaLocation":677},{"title":722,"button":723,"config":729},"Ship at agent speed. Prove every step. Transcend is here.",{"text":724,"config":725},"Watch now",{"href":726,"dataGaName":727,"dataGaLocation":728},"/events/transcend/virtual/#watch-gitlab-transcend","transcend-october-2026-banner","global-banner",{"layout":730,"disabled":282},"release",{"data":732},{"text":733,"source":734,"edit":740,"contribute":745,"config":750,"items":755,"minimal":981},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":735,"config":736},"View page source",{"href":737,"dataGaName":738,"dataGaLocation":739},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":741,"config":742},"Edit this page",{"href":743,"dataGaName":744,"dataGaLocation":739},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":746,"config":747},"Please contribute",{"href":748,"dataGaName":749,"dataGaLocation":739},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":751,"facebook":752,"youtube":753,"linkedin":754},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[756,803,861,908,949],{"title":486,"links":757,"subMenu":772},[758,762,767],{"text":759,"config":760},"View plans",{"href":488,"dataGaName":761,"dataGaLocation":739},"view plans",{"text":763,"config":764},"Why Premium?",{"href":765,"dataGaName":766,"dataGaLocation":739},"/pricing/premium/","why premium",{"text":768,"config":769},"Why Ultimate?",{"href":770,"dataGaName":771,"dataGaLocation":739},"/pricing/ultimate/","why ultimate",[773],{"title":774,"links":775},"Contact Us",[776,779,781,783,788,793,798],{"text":777,"config":778},"Contact sales",{"href":629,"dataGaName":304,"dataGaLocation":739},{"text":632,"config":780},{"href":634,"dataGaName":635,"dataGaLocation":739},{"text":637,"config":782},{"href":639,"dataGaName":640,"dataGaLocation":739},{"text":784,"config":785},"Status",{"href":786,"dataGaName":787,"dataGaLocation":739},"https://status.gitlab.com/","status",{"text":789,"config":790},"Terms of use",{"href":791,"dataGaName":792,"dataGaLocation":739},"/terms/","terms of use",{"text":794,"config":795},"Privacy statement",{"href":796,"dataGaName":797,"dataGaLocation":739},"/privacy/","privacy statement",{"text":799,"config":800},"Cookie preferences",{"dataGaName":801,"dataGaLocation":739,"id":802,"isOneTrustButton":276},"cookie preferences","ot-sdk-btn",{"title":312,"links":804,"subMenu":818},[805,808,810,812,814,816],{"text":806,"config":807},"Explore the platform",{"href":320,"dataGaName":314,"dataGaLocation":739},{"text":372,"config":809},{"href":374,"dataGaName":375,"dataGaLocation":739},{"text":326,"config":811},{"href":328,"dataGaName":329,"dataGaLocation":739},{"text":377,"config":813},{"href":379,"dataGaName":380,"dataGaLocation":739},{"text":359,"config":815},{"href":361,"dataGaName":362,"dataGaLocation":739},{"text":390,"config":817},{"href":395,"dataGaName":396,"dataGaLocation":739},[819],{"title":820,"links":821},"Topics",[822,826,831,836,841,846,851,856],{"text":326,"config":823},{"href":824,"dataGaName":825,"dataGaLocation":739},"/topics/ci-cd/","cicd",{"text":827,"config":828},"GitOps",{"href":829,"dataGaName":830,"dataGaLocation":739},"/topics/gitops/","gitops",{"text":832,"config":833},"DevOps",{"href":834,"dataGaName":835,"dataGaLocation":739},"/topics/devops/","devops",{"text":837,"config":838},"Version Control",{"href":839,"dataGaName":840,"dataGaLocation":739},"/topics/version-control/","version control",{"text":842,"config":843},"DevSecOps",{"href":844,"dataGaName":845,"dataGaLocation":739},"/topics/devsecops/","devsecops",{"text":847,"config":848},"Cloud Native",{"href":849,"dataGaName":850,"dataGaLocation":739},"/topics/cloud-native/","cloud native",{"text":852,"config":853},"AI for Coding",{"href":854,"dataGaName":855,"dataGaLocation":739},"/topics/devops/ai-for-coding/","ai for coding",{"text":857,"config":858},"Agentic AI",{"href":859,"dataGaName":860,"dataGaLocation":739},"/topics/agentic-ai/","agentic ai",{"title":398,"links":862},[863,866,869,872,875,878,880,882,884,886,888,891,893,896,900,904],{"text":864,"config":865},"DevOps modernization",{"href":413,"dataGaName":414,"dataGaLocation":739},{"text":867,"config":868},"Security modernization",{"href":418,"dataGaName":419,"dataGaLocation":739},{"text":870,"config":871},"AI modernization",{"href":423,"dataGaName":424,"dataGaLocation":739},{"text":873,"config":874},"Financial services",{"href":449,"dataGaName":450,"dataGaLocation":739},{"text":876,"config":877},"Public sector",{"href":454,"dataGaName":455,"dataGaLocation":739},{"text":457,"config":879},{"href":459,"dataGaName":460,"dataGaLocation":739},{"text":462,"config":881},{"href":464,"dataGaName":465,"dataGaLocation":739},{"text":467,"config":883},{"href":469,"dataGaName":470,"dataGaLocation":739},{"text":472,"config":885},{"href":474,"dataGaName":475,"dataGaLocation":739},{"text":429,"config":887},{"href":431,"dataGaName":432,"dataGaLocation":739},{"text":889,"config":890},"Small business",{"href":436,"dataGaName":437,"dataGaLocation":739},{"text":439,"config":892},{"href":441,"dataGaName":442,"dataGaLocation":739},{"text":827,"config":894},{"href":895,"dataGaName":830,"dataGaLocation":739},"/solutions/gitops/",{"text":897,"config":898},"Software composition analysis",{"href":366,"dataGaName":899,"dataGaLocation":739},"software composition analysis",{"text":901,"config":902},"Value stream management",{"href":384,"dataGaName":903,"dataGaLocation":739},"value stream management",{"text":905,"config":906},"All solutions",{"href":405,"dataGaName":907,"dataGaLocation":739},"all solutions",{"title":491,"links":909},[910,915,920,922,924,926,928,930,932,934,936,938,940,942,945],{"text":911,"config":912},"Install",{"href":913,"dataGaName":914,"dataGaLocation":739},"/install/","install",{"text":916,"config":917},"Quick start guides",{"href":918,"dataGaName":919,"dataGaLocation":739},"/get-started/","quick setup checklists",{"text":504,"config":921},{"href":506,"dataGaName":507,"dataGaLocation":739},{"text":509,"config":923},{"href":511,"dataGaName":512,"dataGaLocation":739},{"text":514,"config":925},{"href":516,"dataGaName":517,"dataGaLocation":739},{"text":519,"config":927},{"href":521,"dataGaName":522,"dataGaLocation":739},{"text":524,"config":929},{"href":526,"dataGaName":527,"dataGaLocation":739},{"text":532,"config":931},{"href":534,"dataGaName":535,"dataGaLocation":739},{"text":537,"config":933},{"href":539,"dataGaName":540,"dataGaLocation":739},{"text":542,"config":935},{"href":544,"dataGaName":545,"dataGaLocation":739},{"text":547,"config":937},{"href":549,"dataGaName":550,"dataGaLocation":739},{"text":552,"config":939},{"href":554,"dataGaName":555,"dataGaLocation":739},{"text":615,"config":941},{"href":617,"dataGaName":618,"dataGaLocation":739},{"text":943,"config":944},"What's new",{"href":563,"dataGaName":564,"dataGaLocation":739},{"text":946,"config":947},"All resources",{"href":498,"dataGaName":948,"dataGaLocation":739},"all resources",{"title":566,"links":950},[951,953,955,957,959,961,963,965,967,971,976],{"text":574,"config":952},{"href":576,"dataGaName":568,"dataGaLocation":739},{"text":579,"config":954},{"href":581,"dataGaName":582,"dataGaLocation":739},{"text":585,"config":956},{"href":587,"dataGaName":588,"dataGaLocation":739},{"text":590,"config":958},{"href":592,"dataGaName":593,"dataGaLocation":739},{"text":595,"config":960},{"href":597,"dataGaName":598,"dataGaLocation":739},{"text":600,"config":962},{"href":602,"dataGaName":603,"dataGaLocation":739},{"text":605,"config":964},{"href":607,"dataGaName":608,"dataGaLocation":739},{"text":610,"config":966},{"href":612,"dataGaName":613,"dataGaLocation":739},{"text":968,"config":969},"Sustainability",{"href":970,"dataGaName":968,"dataGaLocation":739},"/sustainability/",{"text":972,"config":973},"Diversity, inclusion and belonging (DIB)",{"href":974,"dataGaName":975,"dataGaLocation":739},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":977,"config":978},"Modern Slavery Transparency Statement",{"href":979,"dataGaName":980,"dataGaLocation":739},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":982},[983,986,989],{"text":984,"config":985},"Terms",{"href":791,"dataGaName":792,"dataGaLocation":739},{"text":987,"config":988},"Cookies",{"dataGaName":801,"dataGaLocation":739,"id":802,"isOneTrustButton":276},{"text":990,"config":991},"Privacy",{"href":796,"dataGaName":797,"dataGaLocation":739},[993],{"id":994,"title":7,"body":275,"config":995,"content":997,"description":275,"extension":1000,"meta":1001,"navigation":276,"path":1002,"seo":1003,"stem":1004,"__hash__":1005},"blogAuthors/en-us/blog/authors/rebecca-carter.yml",{"template":996},"BlogAuthor",{"name":7,"config":998},{"headshot":999},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1771439187/akva6hmo8z5qrd1fhrzp.jpg","yml",{},"/en-us/blog/authors/rebecca-carter",{},"en-us/blog/authors/rebecca-carter","cIftCmya7qHrmJaiagb4Rk48mtLKd0x2Ye5Ogpl_818",[1007,1013,1021],{"title":1008,"description":1009,"heroImage":1010,"category":271,"date":1011,"authors":275,"slug":275,"externalUrl":1012},"GitLab Critical Patch Release: 19.4.2, 19.3.4, 19.2.8","Learn about this critical patch release for GitLab Community Edition and Enterprise Edition.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661926/Blog/Hero%20Images/security-patch-blog-image-r2-0506-700x400-fy25_2x.jpg","2026-10-12","https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-2-released/",{"title":1014,"description":1015,"heroImage":1016,"category":271,"date":1017,"authors":1018,"slug":1020,"externalUrl":275},"GitLab Transcend: Speed you can trust, all the way to production","Every new GitLab innovation announced at Transcend: what shipped, what's coming, and how to get started.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1791198675/kmajkudog4fj3xc6qfyb.png","2026-10-06",[1019],"Manav Khurana","transcend-india-announcements",{"title":1022,"description":1023,"heroImage":1024,"category":271,"date":1017,"authors":1025,"slug":1027,"externalUrl":275},"Every artifact your teams ship, assembled right the first time","Bring your packages and container images into one governed home, right beside your code and pipelines. GitLab Artifact Central is now in free beta.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1791202579/fnumyad0wd7etsy55a9z.png",[1026],"Corinne Dent","transcend-artifact-central",{"header":1029,"text":1030,"button":1034,"disclaimer":1037},"Start your free\n\n30-day GitLab trial\n",[1031,1032,1033],"GitLab Duo Agent Platform access","Try our most advanced features","Automate complex tasks with AI",{"text":296,"config":1035},{"href":1036,"dataGaName":299,"dataGaLocation":535},"https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/blog/","No credit card required.",{"header":1039,"blurb":1040,"button":1041,"secondaryButton":1046},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1042,"config":1043},"Get your free trial",{"href":1044,"dataGaName":299,"dataGaLocation":1045},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":777,"config":1047},{"href":629,"dataGaName":304,"dataGaLocation":1045},1791944928399]