[{"data":1,"prerenderedAt":985},["ShallowReactive",2],{"/blog/gitlab-next-gen-scm":3,"navigation-en-us":213,"banner-en-us":644,"footer-en-us":654,"blog-post-authors-en-us-Kranthi Erusu|Jessica Taylor":915,"blog-related-posts-en-us-gitlab-next-gen-scm":940,"blog-share-wrapper-en-us":965,"next-steps-en-us":975},{"id":4,"title":5,"authors":6,"body":9,"category":193,"date":194,"description":195,"extension":196,"externalUrl":197,"faq":197,"featured":198,"heroImage":199,"meta":200,"navigation":201,"path":202,"seo":203,"slug":205,"stem":206,"tags":207,"template":211,"updatedDate":197,"__hash__":212},"blogPosts/en-us/blog/gitlab-next-gen-scm.md","Git was built for humans — agents need an upgrade",[7,8],"Kranthi Erusu","Jessica Taylor",{"type":10,"value":11,"toc":185},"minimark",[12,26,29,52,55,62,65,70,73,76,79,85,88,105,108,111,120,133,137,140,146,152,167,171,174,178],[13,14,15],"p",{},[16,17,18,19,25],"em",{},"The industry is now racing to rebuild source code management for agents. We showed our answer at ",[20,21,24],"a",{"href":22,"rel":23},"https://about.gitlab.com/events/transcend/virtual/",[],"GitLab Transcend",", but let’s reiterate why rebuilding the Git backend is only half the problem.",[13,27,28],{},"Three things break when agents become the primary users of a Git server. Every developer running hundreds of agents hits the same wall, regardless of tools:",[30,31,32,40,46],"ul",{},[33,34,35,39],"li",{},[36,37,38],"strong",{},"The clone tax."," An agent clones an entire repository to read a single file, then does it again for the next agent, and the next retry, transferring far more data than the task requires and burning context on a local grep or blame it shouldn't have needed to run. One agent invocation today can mean 5GB to 10GB transferred and 30+ seconds of setup, just to answer a single question.",[33,41,42,45],{},[36,43,44],{},"Concurrency collapse."," Thousands of sessions hit a backend that was originally designed for human scale, producing bottlenecks and unpredictable availability.",[33,47,48,51],{},[36,49,50],{},"No isolation."," Agents share accounts and one branch space, so they overwhelm the repository, leave no clean way to discard abandoned work, and keep no record of which agent did what.",[13,53,54],{},"Our platform data shows how fast the pressure is building. Over the past year, our customers created 40% more CI/CD pipelines, and code pushes to GitLab.com were up 50%. While the secure repositories grew by 60%, codebase sizes have also grown by up to 500%.",[13,56,57],{},[58,59],"img",{"alt":60,"src":61},"Platform metrics","https://res.cloudinary.com/about-gitlab-com/image/upload/v1787744927/g9nwnlelalb9rpqkq0j1.png",[13,63,64],{},"When we announced next-generation source code management (next-gen SCM) at GitLab Transcend in June, we walked through how Git, as an operational model, was not designed for the load agents placed on it. A few weeks later, new entrants, including Git hosts built specifically for agent-scale concurrency, are validating that claim independently. That convergence sharpens why rebuilding the Git backend is necessary, but on its own, it’s still not enough.",[66,67,69],"h2",{"id":68},"what-were-building-for-agent-scale","What we’re building for agent scale",[13,71,72],{},"Next-gen SCM runs on the Git protocol for backward compatibility, with a redesigned backend and interfaces built for agents. Instead of cloning a full working tree, agents query the repository server-side for exactly what a task requires, with each agent limited to the minimum visibility its task needs. It’s the same Git compatibility and auditability with a different motor underneath.",[13,74,75],{},"The architecture separates an intelligence layer (routing, caching, background work) from elastic compute that scales on demand and elastic object storage. Purpose-built read and write APIs let agents retrieve file, blame, and history data and commit changes without pulling the whole repository. Developers can run agents on any repo, fan them out by the thousands, and let them experiment safely. In practice, that means an agent gets a single batch-read instead of a full clone, a diff-stat request instead of clone-then-diff, and a last-commit-for-path lookup instead of clone-then-blame.",[13,77,78],{},"This isn't designed for cloud-only. The compute and storage tiers talk to each other over the standard S3 API, so the same architecture that runs on GitLab.com runs on a customer's own infrastructure, whether that's a major cloud provider's object storage or a self-hosted, S3-compatible system running in a customer's own data center. For air-gapped, regulated, and sovereignty-constrained environments, that means the same horizontal scaling and consistency guarantees, without repository data ever leaving infrastructure the customer controls.",[13,80,81],{},[58,82],{"alt":83,"src":84},"Next-gen SCM architecture","https://res.cloudinary.com/about-gitlab-com/image/upload/v1787744927/zsn9uhkz29hgwxmia1we.png",[13,86,87],{},"In early internal testing, agents running against next-gen SCM showed:",[30,89,90,95,100],{},[33,91,92],{},[36,93,94],{},"Up to 50x faster wall-clock time",[33,96,97],{},[36,98,99],{},"Up to 2x fewer tokens",[33,101,102],{},[36,103,104],{},"Up to 1,000x less network traffic",[13,106,107],{},"These are ceilings, not guarantees, measured under our own testing conditions. The workload that actually stresses a Git backend at agent scale is concurrent reads and writes from many independent agents against the same repositories, sustained under load — so a number only means something if the test runs close to that target, the load generator isn't the bottleneck, and the full latency distribution is reported rather than a single best case.",[13,109,110],{},"We hold our own results to that bar, and we'd encourage anyone evaluating this category to ask the same three questions of every number they're shown, including ours. That bar is built into the architecture itself, not only our test conditions. Storage maintenance compacts small artifacts into larger, frozen ones on a geometric schedule, which puts a hard ceiling on how much data any node has to fetch to catch up to the latest snapshot. With a 1GB freeze threshold and a 2x compaction ratio, that ceiling is 2GB, regardless of how large the repository has grown.",[13,112,113,114,119],{},"Next-generation source code management is now in ",[20,115,118],{"href":116,"rel":117},"https://about.gitlab.com/early-access-preview/",[],"private beta",", and here it is in action:",[121,122,125,126],"figure",{"className":123},[124],"video_container","\n  ",[127,128,132],"iframe",{"src":129,"frameBorder":130,"allowFullScreen":131},"https://www.youtube.com/embed/BolGWVjKzaE?si=WxGDRr_l1ewH5oBe","0","true"," ",[66,134,136],{"id":135},"rebuilding-the-backend-is-half-the-problem","Rebuilding the backend is half the problem",[13,138,139],{},"The new entrants are building Git hosts: standalone destinations, or fast mirrors that sit in front of an existing host to absorb read traffic. That solves concurrency, and concurrency is a real problem. But it leaves two questions unanswered, and both are central to how we think about GitLab’s agentic infrastructure.",[13,141,142,145],{},[36,143,144],{},"The first is provenance."," When agents push code, touch dependencies, and trigger deployments by the hundreds, the operative question stops being “did we scan?” and becomes “which agent did what, under which policy, and can we prove it?” Our agent APIs attribute every agent action to a specific workflow, model, and token. Every agent operation is routed through the same project authorization and role-scoped human-in-the-loop controls that already govern human contributors. Attribution and policy are platform properties, not repository features, so a standalone Git host isn't built to answer this natively.",[13,147,148,151],{},[36,149,150],{},"The second is what happens to the work after it succeeds."," A successful agent experiment lives on a standalone host. On GitLab, next-gen SCM is a Git backend inside a platform that already runs CI, policy management, governance controls, and audit of the resulting code. When an agent's ephemeral experiment works, it graduates directly into a governed, observable production pipeline, without requiring a separate platform or destination.",[13,153,154,155,160,161,166],{},"Next-gen SCM handles execution at agent scale. ",[20,156,159],{"href":157,"rel":158},"https://about.gitlab.com/blog/introducing-gitlab-orbit/",[],"GitLab Orbit"," gives every agent and human context on the full software lifecycle as a knowledge graph, and ",[20,162,165],{"href":163,"rel":164},"https://about.gitlab.com/gitlab-duo-agent-platform/",[],"GitLab Duo Agent Platform"," orchestrates governance and security around every agent action — so agents plan and carry out work across the full lifecycle, not just the Git operations. A faster Git backend hosts the code agents generate. Paired with GitLab's governance, lifecycle context, and orchestration, that code ships through the same CI, policy, and audit path as everything else in the platform.",[66,168,170],{"id":169},"every-enterprise-will-hit-this-wall","Every enterprise will hit this wall",[13,172,173],{},"Every customer will use agents for coding, and every customer running them at scale will run into the same limits described above, regardless of which models or tools they standardize on. That's what makes this an evolution within the infrastructure layer. The teams that move fastest in the agentic era will be the ones who can host, govern, and absorb agent output back into a lifecycle that was already built to ship trusted software.",[66,175,177],{"id":176},"get-started","Get started",[13,179,180,181],{},"Next-generation source code management is in private beta. ",[20,182,184],{"href":116,"rel":183},[],"Request early access today!",{"title":186,"searchDepth":187,"depth":187,"links":188},"",2,[189,190,191,192],{"id":68,"depth":187,"text":69},{"id":135,"depth":187,"text":136},{"id":169,"depth":187,"text":170},{"id":176,"depth":187,"text":177},"engineering","2026-08-26","See how GitLab's next-gen SCM scales concurrency for agents, and why a new backend must address provenance and lifecycle challenges.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773856365/gsx2c0vqlswox3ldmq88.jpg",{},true,"/en-us/blog/gitlab-next-gen-scm",{"config":204,"title":5,"description":195},{"noIndex":198},"gitlab-next-gen-scm","en-us/blog/gitlab-next-gen-scm",[208,209,210],"product","git","features","BlogPost","HqR1C7Ygac-lKg0UwiX0UvDiC0uoH7CmCTgVAJfFXIU",{"logo":214,"freeTrial":219,"sales":224,"login":229,"items":234,"search":565,"minimal":595,"duo":614,"switchNav":623,"pricingDeployment":634},{"config":215},{"href":216,"dataGaName":217,"dataGaLocation":218},"/","gitlab logo","header",{"text":220,"config":221},"Get free trial",{"href":222,"dataGaName":223,"dataGaLocation":218},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":225,"config":226},"Request a demo",{"href":227,"dataGaName":228,"dataGaLocation":218},"/request-a-demo/","sales",{"text":230,"config":231},"Sign in",{"href":232,"dataGaName":233,"dataGaLocation":218},"https://gitlab.com/users/sign_in/","sign in",[235,321,409,414,489,543],{"text":236,"left":201,"config":237,"menu":239},"Platform",{"dataNavLevelOne":238},"platform",{"type":240,"link":241,"columns":245,"feature":310},"lists",{"text":242,"config":243},"Explore the Platform",{"href":244,"dataGaName":238,"dataGaLocation":218},"/platform/",[246,269,292],{"title":247,"items":248},"Execution & Workflows",[249,254,259,264],{"text":250,"config":251},"CI/CD",{"href":252,"dataGaLocation":218,"dataGaName":253},"/solutions/continuous-integration/","ci/cd",{"text":255,"config":256},"Source Code Management",{"href":257,"dataGaLocation":218,"dataGaName":258},"/solutions/source-code-management/","source code management",{"text":260,"config":261},"Agile Delivery",{"href":262,"dataGaLocation":218,"dataGaName":263},"/solutions/agile-delivery/","agile delivery",{"text":265,"config":266},"Artifact Management",{"href":267,"dataGaLocation":218,"dataGaName":268},"/artifact-central/","artifact management",{"title":270,"items":271},"Security & Governance",[272,277,282,287],{"text":273,"config":274},"Application Security Testing",{"href":275,"dataGaLocation":218,"dataGaName":276},"/solutions/application-security-testing/","application security testing",{"text":278,"config":279},"Governance & Compliance",{"href":280,"dataGaLocation":218,"dataGaName":281},"/solutions/software-compliance/","governance and compliance",{"text":283,"config":284},"Secrets Management",{"href":285,"dataGaLocation":218,"dataGaName":286},"/gitlab-secrets-manager/","secrets management",{"text":288,"config":289},"Supply Chain Security",{"href":290,"dataGaLocation":218,"dataGaName":291},"/solutions/supply-chain/","supply chain security",{"title":293,"items":294},"Context & AI",[295,300,305],{"text":296,"config":297},"Agentic Orchestration",{"href":298,"dataGaLocation":218,"dataGaName":299},"/gitlab-duo-agent-platform/","agentic orchestration",{"text":301,"config":302},"Context Graph",{"href":303,"dataGaLocation":218,"dataGaName":304},"/gitlab-orbit/","context graph",{"text":306,"config":307},"Visibility & Measurement",{"href":308,"dataGaLocation":218,"dataGaName":309},"/solutions/visibility-measurement/","visibility and measurement",{"config":311,"title":314,"text":315,"link":316},{"background":312,"textColor":313},"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":317,"config":318},"Learn more",{"href":319,"dataGaName":320,"dataGaLocation":218},"/why-gitlab/","why gitlab",{"text":322,"left":201,"config":323,"menu":325},"Solutions",{"dataNavLevelOne":324},"solutions",{"type":240,"link":326,"columns":330,"feature":400},{"text":327,"config":328},"View all Solutions",{"href":329,"dataGaName":324,"dataGaLocation":218},"/solutions/",[331,349,367],{"title":332,"items":333},"Outcomes",[334,339,344],{"text":335,"config":336},"DevOps Modernization",{"href":337,"dataGaLocation":218,"dataGaName":338},"/assessments/devops-modernization-assessment/","devops modernization",{"text":340,"config":341},"Security Modernization",{"href":342,"dataGaLocation":218,"dataGaName":343},"/assessments/security-modernization-assessment/","security modernization",{"text":345,"config":346},"AI Modernization",{"href":347,"dataGaLocation":218,"dataGaName":348},"/assessments/ai-modernization-assessment/","ai modernization",{"title":350,"items":351},"By size",[352,357,362],{"text":353,"config":354},"Enterprise",{"href":355,"dataGaLocation":218,"dataGaName":356},"/enterprise/","enterprise",{"text":358,"config":359},"Small Business",{"href":360,"dataGaLocation":218,"dataGaName":361},"/small-business/","small business",{"text":363,"config":364},"Startups",{"href":365,"dataGaLocation":218,"dataGaName":366},"/solutions/startups/","startups",{"title":368,"items":369},"Industries",[370,375,380,385,390,395],{"text":371,"config":372},"Financial Services",{"href":373,"dataGaLocation":218,"dataGaName":374},"/solutions/finance/","financial services",{"text":376,"config":377},"Public Sector",{"href":378,"dataGaLocation":218,"dataGaName":379},"/solutions/public-sector/","public sector",{"text":381,"config":382},"Telecommunications",{"href":383,"dataGaLocation":218,"dataGaName":384},"/solutions/telecommunications/","telecommunications",{"text":386,"config":387},"Automotive",{"href":388,"dataGaLocation":218,"dataGaName":389},"/solutions/automotive/","automotive",{"text":391,"config":392},"Education",{"href":393,"dataGaLocation":218,"dataGaName":394},"/solutions/education/","education",{"text":396,"config":397},"Aerospace",{"href":398,"dataGaLocation":218,"dataGaName":399},"/solutions/aerospace/","aerospace",{"config":401,"title":402,"text":403,"link":404},{"background":312,"textColor":313},"GitLab Security Standard","Learn how to harden your software factory and let AI agents earn autonomy, without trading away security.",{"text":405,"config":406},"Explore the standard",{"href":407,"dataGaName":408,"dataGaLocation":218},"/gitlab-security-standard/","gitlab security standard",{"text":410,"config":411},"Pricing",{"href":412,"dataGaName":413,"dataGaLocation":218,"dataNavLevelOne":413},"/pricing/","pricing",{"text":415,"config":416,"menu":418},"Resources",{"dataNavLevelOne":417},"resources",{"type":240,"link":419,"columns":423,"feature":480},{"text":420,"config":421},"View all resources",{"href":422,"dataGaName":417,"dataGaLocation":218},"/resources/",[424,452],{"title":425,"items":426},"Discover",[427,432,437,442,447],{"text":428,"config":429},"Docs",{"href":430,"dataGaName":431,"dataGaLocation":218},"https://docs.gitlab.com/","docs",{"text":433,"config":434},"University",{"href":435,"dataGaName":436,"dataGaLocation":218},"https://university.gitlab.com/","university",{"text":438,"config":439},"Demo Series",{"href":440,"dataGaName":441,"dataGaLocation":218},"/gitlab-technical-demo-series/","demo series",{"text":443,"config":444},"Demo Hub",{"href":445,"dataGaName":446,"dataGaLocation":218},"/demo-hub/","demo hub",{"text":448,"config":449},"Services",{"href":450,"dataGaName":451,"dataGaLocation":218},"/services/","services",{"title":453,"items":454},"Connect",[455,460,465,470,475],{"text":456,"config":457},"Blog",{"href":458,"dataGaName":459,"dataGaLocation":218},"/blog/","blog",{"text":461,"config":462},"Community",{"href":463,"dataGaName":464,"dataGaLocation":218},"/community/","community",{"text":466,"config":467},"Customers",{"href":468,"dataGaName":469,"dataGaLocation":218},"/customers/","customers",{"text":471,"config":472},"Partners",{"href":473,"dataGaName":474,"dataGaLocation":218},"/partners/","partners",{"text":476,"config":477},"Events",{"href":478,"dataGaName":479,"dataGaLocation":218},"/events/","events",{"config":481,"title":482,"text":483,"link":484},{"background":312,"textColor":313},"What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":485,"config":486},"Read the latest",{"href":487,"dataGaName":488,"dataGaLocation":218},"/whats-new/","whats new",{"text":490,"config":491,"menu":493},"Company",{"dataNavLevelOne":492},"company",{"type":240,"columns":494},[495],{"items":496},[497,502,508,513,518,523,528,533,538],{"text":498,"config":499},"About",{"href":500,"dataGaName":501,"dataGaLocation":218},"/company/","about",{"text":503,"config":504,"footerGa":507},"Jobs",{"href":505,"dataGaName":506,"dataGaLocation":218},"/jobs/","jobs",{"dataGaName":506},{"text":509,"config":510},"Press",{"href":511,"dataGaName":512,"dataGaLocation":218},"/press/","press",{"text":514,"config":515},"Handbook",{"href":516,"dataGaName":517,"dataGaLocation":218},"https://handbook.gitlab.com/","handbook",{"text":519,"config":520},"Leadership",{"href":521,"dataGaName":522,"dataGaLocation":218},"/company/team/e-group/","leadership",{"text":524,"config":525},"Investor relations",{"href":526,"dataGaName":527,"dataGaLocation":218},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":529,"config":530},"Trust Center",{"href":531,"dataGaName":532,"dataGaLocation":218},"/security/","trust center",{"text":534,"config":535},"AI Transparency Center",{"href":536,"dataGaName":537,"dataGaLocation":218},"/ai-transparency-center/","ai transparency center",{"text":539,"config":540},"Newsletter",{"href":541,"dataGaName":542,"dataGaLocation":218},"/company/contact/#contact-forms","newsletter",{"text":544,"config":545,"menu":546},"Contact us",{"dataNavLevelOne":492},{"type":240,"columns":547},[548],{"items":549},[550,555,560],{"text":551,"config":552},"Talk to sales",{"href":553,"dataGaName":554,"dataGaLocation":218},"/sales/","talk to sales",{"text":556,"config":557},"Support portal",{"href":558,"dataGaName":559,"dataGaLocation":218},"https://support.gitlab.com/hc/en-us","support portal",{"text":561,"config":562},"Customer portal",{"href":563,"dataGaName":564,"dataGaLocation":218},"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":232,"dataGaName":572,"dataGaLocation":573},"search login","search",{"text":575,"default":576},"Suggestions",[577,579,582,584,588,592],{"text":165,"config":578},{"href":298,"dataGaName":165,"dataGaLocation":573},{"text":580,"config":581},"Code Suggestions (AI)",{"href":298,"dataGaName":580,"dataGaLocation":573},{"text":250,"config":583},{"href":252,"dataGaName":250,"dataGaLocation":573},{"text":585,"config":586},"GitLab on AWS",{"href":587,"dataGaName":585,"dataGaLocation":573},"/partners/technology-partners/aws/",{"text":589,"config":590},"GitLab on Google Cloud",{"href":591,"dataGaName":589,"dataGaLocation":573},"/partners/technology-partners/google-cloud-platform/",{"text":593,"config":594},"Why GitLab?",{"href":319,"dataGaName":593,"dataGaLocation":573},{"freeTrial":596,"mobileIcon":601,"desktopIcon":606,"secondaryButton":609},{"text":597,"config":598},"Start free trial",{"href":599,"dataGaName":223,"dataGaLocation":600},"https://gitlab.com/-/trials/new/","nav",{"altText":602,"config":603},"Gitlab Icon",{"src":604,"dataGaName":605,"dataGaLocation":600},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":602,"config":607},{"src":608,"dataGaName":605,"dataGaLocation":600},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":610,"config":611},"Get Started",{"href":612,"dataGaName":613,"dataGaLocation":600},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":615,"mobileIcon":619,"desktopIcon":621},{"text":616,"config":617},"Learn more about GitLab Duo",{"href":298,"dataGaName":618,"dataGaLocation":600},"gitlab duo",{"altText":602,"config":620},{"src":604,"dataGaName":605,"dataGaLocation":600},{"altText":602,"config":622},{"src":608,"dataGaName":605,"dataGaLocation":600},{"button":624,"mobileIcon":629,"desktopIcon":631},{"text":625,"config":626},"/switch",{"href":627,"dataGaName":628,"dataGaLocation":600},"#contact","switch",{"altText":602,"config":630},{"src":604,"dataGaName":605,"dataGaLocation":600},{"altText":602,"config":632},{"src":633,"dataGaName":605,"dataGaLocation":600},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":635,"mobileIcon":640,"desktopIcon":642},{"text":636,"config":637},"Back to pricing",{"href":412,"dataGaName":638,"dataGaLocation":600,"icon":639},"back to pricing","GoBack",{"altText":602,"config":641},{"src":604,"dataGaName":605,"dataGaLocation":600},{"altText":602,"config":643},{"src":608,"dataGaName":605,"dataGaLocation":600},{"title":645,"button":646,"config":652},"Ship at agent speed. Prove every step. Transcend is here.",{"text":647,"config":648},"Watch now",{"href":649,"dataGaName":650,"dataGaLocation":651},"/events/transcend/virtual/#watch-gitlab-transcend","transcend-october-2026-banner","global-banner",{"layout":653,"disabled":198},"release",{"data":655},{"text":656,"source":657,"edit":663,"contribute":668,"config":673,"items":678,"minimal":904},"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,784,831,872],{"title":410,"links":680,"subMenu":695},[681,685,690],{"text":682,"config":683},"View plans",{"href":412,"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":553,"dataGaName":228,"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":201},"cookie preferences","ot-sdk-btn",{"title":236,"links":727,"subMenu":741},[728,731,733,735,737,739],{"text":729,"config":730},"Explore the platform",{"href":244,"dataGaName":238,"dataGaLocation":662},{"text":296,"config":732},{"href":298,"dataGaName":299,"dataGaLocation":662},{"text":250,"config":734},{"href":252,"dataGaName":253,"dataGaLocation":662},{"text":301,"config":736},{"href":303,"dataGaName":304,"dataGaLocation":662},{"text":283,"config":738},{"href":285,"dataGaName":286,"dataGaLocation":662},{"text":314,"config":740},{"href":319,"dataGaName":320,"dataGaLocation":662},[742],{"title":743,"links":744},"Topics",[745,749,754,759,764,769,774,779],{"text":250,"config":746},{"href":747,"dataGaName":748,"dataGaLocation":662},"/topics/ci-cd/","cicd",{"text":750,"config":751},"GitOps",{"href":752,"dataGaName":753,"dataGaLocation":662},"/topics/gitops/","gitops",{"text":755,"config":756},"DevOps",{"href":757,"dataGaName":758,"dataGaLocation":662},"/topics/devops/","devops",{"text":760,"config":761},"Version Control",{"href":762,"dataGaName":763,"dataGaLocation":662},"/topics/version-control/","version control",{"text":765,"config":766},"DevSecOps",{"href":767,"dataGaName":768,"dataGaLocation":662},"/topics/devsecops/","devsecops",{"text":770,"config":771},"Cloud Native",{"href":772,"dataGaName":773,"dataGaLocation":662},"/topics/cloud-native/","cloud native",{"text":775,"config":776},"AI for Coding",{"href":777,"dataGaName":778,"dataGaLocation":662},"/topics/devops/ai-for-coding/","ai for coding",{"text":780,"config":781},"Agentic AI",{"href":782,"dataGaName":783,"dataGaLocation":662},"/topics/agentic-ai/","agentic ai",{"title":322,"links":785},[786,789,792,795,798,801,803,805,807,809,811,814,816,819,823,827],{"text":787,"config":788},"DevOps modernization",{"href":337,"dataGaName":338,"dataGaLocation":662},{"text":790,"config":791},"Security modernization",{"href":342,"dataGaName":343,"dataGaLocation":662},{"text":793,"config":794},"AI modernization",{"href":347,"dataGaName":348,"dataGaLocation":662},{"text":796,"config":797},"Financial services",{"href":373,"dataGaName":374,"dataGaLocation":662},{"text":799,"config":800},"Public sector",{"href":378,"dataGaName":379,"dataGaLocation":662},{"text":381,"config":802},{"href":383,"dataGaName":384,"dataGaLocation":662},{"text":386,"config":804},{"href":388,"dataGaName":389,"dataGaLocation":662},{"text":391,"config":806},{"href":393,"dataGaName":394,"dataGaLocation":662},{"text":396,"config":808},{"href":398,"dataGaName":399,"dataGaLocation":662},{"text":353,"config":810},{"href":355,"dataGaName":356,"dataGaLocation":662},{"text":812,"config":813},"Small business",{"href":360,"dataGaName":361,"dataGaLocation":662},{"text":363,"config":815},{"href":365,"dataGaName":366,"dataGaLocation":662},{"text":750,"config":817},{"href":818,"dataGaName":753,"dataGaLocation":662},"/solutions/gitops/",{"text":820,"config":821},"Software composition analysis",{"href":290,"dataGaName":822,"dataGaLocation":662},"software composition analysis",{"text":824,"config":825},"Value stream management",{"href":308,"dataGaName":826,"dataGaLocation":662},"value stream management",{"text":828,"config":829},"All solutions",{"href":329,"dataGaName":830,"dataGaLocation":662},"all solutions",{"title":415,"links":832},[833,838,843,845,847,849,851,853,855,857,859,861,863,865,868],{"text":834,"config":835},"Install",{"href":836,"dataGaName":837,"dataGaLocation":662},"/install/","install",{"text":839,"config":840},"Quick start guides",{"href":841,"dataGaName":842,"dataGaLocation":662},"/get-started/","quick setup checklists",{"text":428,"config":844},{"href":430,"dataGaName":431,"dataGaLocation":662},{"text":433,"config":846},{"href":435,"dataGaName":436,"dataGaLocation":662},{"text":438,"config":848},{"href":440,"dataGaName":441,"dataGaLocation":662},{"text":443,"config":850},{"href":445,"dataGaName":446,"dataGaLocation":662},{"text":448,"config":852},{"href":450,"dataGaName":451,"dataGaLocation":662},{"text":456,"config":854},{"href":458,"dataGaName":459,"dataGaLocation":662},{"text":461,"config":856},{"href":463,"dataGaName":464,"dataGaLocation":662},{"text":466,"config":858},{"href":468,"dataGaName":469,"dataGaLocation":662},{"text":471,"config":860},{"href":473,"dataGaName":474,"dataGaLocation":662},{"text":476,"config":862},{"href":478,"dataGaName":479,"dataGaLocation":662},{"text":539,"config":864},{"href":541,"dataGaName":542,"dataGaLocation":662},{"text":866,"config":867},"What's new",{"href":487,"dataGaName":488,"dataGaLocation":662},{"text":869,"config":870},"All resources",{"href":422,"dataGaName":871,"dataGaLocation":662},"all resources",{"title":490,"links":873},[874,876,878,880,882,884,886,888,890,894,899],{"text":498,"config":875},{"href":500,"dataGaName":492,"dataGaLocation":662},{"text":503,"config":877},{"href":505,"dataGaName":506,"dataGaLocation":662},{"text":509,"config":879},{"href":511,"dataGaName":512,"dataGaLocation":662},{"text":514,"config":881},{"href":516,"dataGaName":517,"dataGaLocation":662},{"text":519,"config":883},{"href":521,"dataGaName":522,"dataGaLocation":662},{"text":524,"config":885},{"href":526,"dataGaName":527,"dataGaLocation":662},{"text":529,"config":887},{"href":531,"dataGaName":532,"dataGaLocation":662},{"text":534,"config":889},{"href":536,"dataGaName":537,"dataGaLocation":662},{"text":891,"config":892},"Sustainability",{"href":893,"dataGaName":891,"dataGaLocation":662},"/sustainability/",{"text":895,"config":896},"Diversity, inclusion and belonging (DIB)",{"href":897,"dataGaName":898,"dataGaLocation":662},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":900,"config":901},"Modern Slavery Transparency Statement",{"href":902,"dataGaName":903,"dataGaLocation":662},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":905},[906,909,912],{"text":907,"config":908},"Terms",{"href":714,"dataGaName":715,"dataGaLocation":662},{"text":910,"config":911},"Cookies",{"dataGaName":724,"dataGaLocation":662,"id":725,"isOneTrustButton":201},{"text":913,"config":914},"Privacy",{"href":719,"dataGaName":720,"dataGaLocation":662},[916,929],{"id":917,"title":7,"body":197,"config":918,"content":920,"description":197,"extension":923,"meta":924,"navigation":201,"path":925,"seo":926,"stem":927,"__hash__":928},"blogAuthors/en-us/blog/authors/kranthi-erusu.yml",{"template":919},"BlogAuthor",{"name":7,"config":921},{"headshot":922},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1786995035/ukqnquuqjq7vkz2atod9.png","yml",{},"/en-us/blog/authors/kranthi-erusu",{},"en-us/blog/authors/kranthi-erusu","K5SMOvuIjjfxaLtYFgK1UJwOaf5U8AlzcrvHidjVshQ",{"id":930,"title":8,"body":197,"config":931,"content":932,"description":197,"extension":923,"meta":935,"navigation":201,"path":936,"seo":937,"stem":938,"__hash__":939},"blogAuthors/en-us/blog/authors/jessica-taylor.yml",{"template":919},{"name":8,"config":933},{"headshot":934},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1779985822/cbwonn34q2s6nlhtspjw.png",{},"/en-us/blog/authors/jessica-taylor",{},"en-us/blog/authors/jessica-taylor","snalzL2DMwy9vP7FFb3sVPuJhVpreUrC0-5YXtNxNUg",[941,949,957],{"title":942,"description":943,"heroImage":944,"category":193,"date":945,"authors":946,"slug":948,"externalUrl":197},"Two front doors: Module-level access in a Django GRC app","A technical deep-dive on restructuring a Django internal tool to support two distinct GitLab teams: Security Compliance and Internal Audit.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097663/Blog/Hero%20Images/Blog/Hero%20Images/Workflow%201800x945_2gQoQIbY9NvjLFpXtsxtXy_1750097663612.png","2026-10-05",[947],"Donovan Felton","module-level-access-in-a-django-grc-app",{"title":950,"description":951,"heroImage":952,"category":193,"date":953,"authors":954,"slug":956,"externalUrl":197},"How GitLab reduced code-per-agentic-flow ratio by 45%","Learn how Flow Registry, a component-based framework that compiles YAML configurations into fully functional LangGraph flows, helped improve scalability and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-09-22",[955],"Mikolaj Wawrzyniak","how-gitlab-reduced-code-per-agentic-flow-ratio",{"title":958,"description":959,"heroImage":960,"category":193,"date":961,"authors":962,"slug":964,"externalUrl":197},"Co-Create: Building GitLab with our users","How GitLab users collaborated with us to build practical product improvements in the first half of 2026.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-09-10",[963],"Isa Huerga","co-create-h1-2026",{"header":966,"text":967,"button":971,"disclaimer":974},"Start your free\n\n30-day GitLab trial\n",[968,969,970],"GitLab Duo Agent Platform access","Try our most advanced features","Automate complex tasks with AI",{"text":220,"config":972},{"href":973,"dataGaName":223,"dataGaLocation":459},"https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/blog/","No credit card required.",{"header":976,"blurb":977,"button":978,"secondaryButton":983},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":979,"config":980},"Get your free trial",{"href":981,"dataGaName":223,"dataGaLocation":982},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":700,"config":984},{"href":553,"dataGaName":228,"dataGaLocation":982},1791410044466]