[{"data":1,"prerenderedAt":1363},["ShallowReactive",2],{"/blog/govern-agentic-ai-mcps-code-assistants":3,"navigation-en-us":581,"banner-en-us":1007,"footer-en-us":1017,"blog-post-authors-en-us-Julie Griffin":1261,"blog-related-posts-en-us-govern-agentic-ai-mcps-code-assistants":1276,"blog-promotions-en-us":1301,"next-steps-en-us":1353},{"id":4,"title":5,"authors":6,"body":8,"category":537,"date":538,"description":539,"extension":540,"externalUrl":541,"faq":542,"featured":549,"heroImage":568,"meta":569,"navigation":393,"path":570,"seo":571,"slug":573,"stem":574,"tags":575,"template":579,"updatedDate":541,"__hash__":580},"blogPosts/en-us/blog/govern-agentic-ai-mcps-code-assistants.md","How to govern agentic AI, MCPs, and AI code assistants",[7],"Julie Griffin",{"type":9,"value":10,"toc":522},"minimark",[11,15,25,33,42,47,50,64,77,85,88,109,112,117,121,124,136,139,188,191,195,198,209,218,221,225,228,253,258,261,269,272,296,305,309,312,315,327,331,334,372,375,379,382,478,481,485,488,495],[12,13,14],"p",{},"AI code completion built human review into the process by design. A developer types, a suggestion appears, and a human decides whether to accept it. A person looked at every line before it shipped.",[12,16,17,18,24],{},"Agentic AI breaks that review loop. An agent can open a merge request, call a tool, modify a CI/CD configuration, and push a change, sometimes without a person reviewing each individual step. Add in the ",[19,20,23],"a",{"href":21,"rel":22},"https://about.gitlab.com/topics/ai/model-context-protocol/",[],"Model Context Protocol (MCP)",", which lets agents connect to external tools and data sources on their own, and the question engineering leaders are asking shifts. It is no longer \"which model writes the best code?\" It is \"what is this agent allowed to do, and how can we prove what it did?\"",[12,26,27,32],{},[19,28,31],{"href":29,"rel":30},"https://about.gitlab.com/resources/ai-accountability-survey-2026/",[],"GitLab's own research"," across more than 1,500 developers and technology leaders found that 73% of respondents are concerned about the long-term maintainability of code and 86% agree that without clear governance, AI-generated code can compound technical debt faster than traditional development practice.",[12,34,35,36,41],{},"In this article, you'll learn how to proactively address some of the challenges organizations are starting to see with governing agentic AI. We'll introduce you to a governance framework for agentic AI in software development and explore what to control, where human review still belongs, how to measure a rollout, and a practical checklist for teams standardizing on ",[19,37,40],{"href":38,"rel":39},"https://about.gitlab.com/gitlab-duo-agent-platform/",[],"GitLab Duo Agent Platform",".",[43,44,46],"h2",{"id":45},"why-agentic-ai-needs-a-different-approach-to-governance","Why agentic AI needs a different approach to governance",[12,48,49],{},"The security model for an interactive coding assistant is straightforward because a human is in the loop at every step: a developer asks a question, reviews a suggestion, and accepts or rejects it.",[12,51,52,57,58,63],{},[19,53,56],{"href":54,"rel":55},"https://about.gitlab.com/topics/agentic-ai/",[],"Agentic AI"," in automated workflows requires a different approach to governance. When an agent can run tests, modify configurations, and take ",[19,59,62],{"href":60,"rel":61},"https://about.gitlab.com/blog/multi-step-software-delivery-with-agentic-flows/",[],"multi-step actions across the software delivery lifecycle"," without a human reviewing each step, the relevant questions change to:",[65,66,67,71,74],"ul",{},[68,69,70],"li",{},"What can this agent access?",[68,72,73],{},"What is it authorized to do?",[68,75,76],{},"What actions did it take, and can that be proven after the fact?",[12,78,79,80,84],{},"Most teams are already feeling this challenge. ",[19,81,83],{"href":29,"rel":82},[],"Ninety-two percent of DevSecOps professionals"," report some governance challenge with AI-generated code, and the specific concerns point directly to the questions above.",[12,86,87],{},"The top concerns include:",[65,89,90,97,103],{},[68,91,92,96],{},[93,94,95],"strong",{},"Code attribution:"," The ability to tell which code was AI-generated versus human-written in the first place.",[68,98,99,102],{},[93,100,101],{},"Traceability to intent:"," Connect AI-generated code back to the business requirement it was meant to satisfy.",[68,104,105,108],{},[93,106,107],{},"Documentation that scales:"," Manual documentation practices don't hold up once agents are generating a growing share of the codebase.",[12,110,111],{},"Once an agent is approved for a project, it can typically write, delete, and push changes without someone reviewing the action before it happens. However, you are still accountable for what lands in the codebase regardless of whether a person or an agent made the change.",[12,113,114],{},[93,115,116],{},"Governance for agentic AI is not an add-on to code completion governance. It is a different approach, built around identity, permissions, and auditability.",[43,118,120],{"id":119},"setting-controls-for-mcps-agents-model-access-and-tool-permissions","Setting controls for MCPs, agents, model access, and tool permissions",[12,122,123],{},"Once agents can call tools and connect to external systems through protocols like MCP, permissioning becomes the control point. A useful governance model answers three questions before any agent runs:",[125,126,127,130,133],"ol",{},[68,128,129],{},"Which agents and flows are allowed?",[68,131,132],{},"Where are they allowed to operate?",[68,134,135],{},"Which models can the agents use?",[12,137,138],{},"In practice, this looks like a few layers working together:",[65,140,141,151,164,176],{},[68,142,143,150],{},[19,144,147],{"href":145,"rel":146},"https://about.gitlab.com/blog/ai-catalog-discover-and-share-agents/",[],[93,148,149],{},"A central catalog for agents and flows",": Rather than every team standing up its own agent integrations, a shared AI catalog lets administrators decide what gets published, aligned to the organization's existing roles and group structure.",[68,152,153,160,163],{},[19,154,157],{"href":155,"rel":156},"https://about.gitlab.com/blog/improve-ai-security-in-gitlab-with-composite-identities/",[],[93,158,159],{},"Composite identity",[93,161,162],{},":"," Every AI agent's identity should be linked to the human user who requested the action, so activity is never attributable to the agent alone. When an agent tries to access a resource, both principals, the agent and the human who instructed it, need to be authenticated and authorized before access is granted.",[68,165,166,173,175],{},[19,167,170],{"href":168,"rel":169},"https://docs.gitlab.com/user/duo_agent_platform/agents/tool-governance/",[],[93,171,172],{},"Tool approval guardrails",[93,174,162],{}," Individual agent tools can be set to run autonomously, pause for a human reviewer, or stay blocked outright, so a sensitive action like writing a file or deleting a resource waits for sign-off before it executes.",[68,177,178,185,187],{},[19,179,182],{"href":180,"rel":181},"https://about.gitlab.com/blog/how-gitlab-uses-prompt-guardrails-to-help-protect-customers/",[],[93,183,184],{},"Prompt guardrails",[93,186,162],{}," Because agents can process untrusted input (a webpage, an issue comment, a file an attacker controls), the platform needs to detect attempts to hijack agent behavior mid-workflow, not just log it after the fact.",[12,189,190],{},"The goal is a control plane that treats agent permissions the same way an organization already treats human permissions: role-based, auditable, and consistent across every project.",[43,192,194],{"id":193},"data-privacy-and-self-hosted-ai-the-questions-worth-asking","Data privacy and self-hosted AI: The questions worth asking",[12,196,197],{},"Source code is one of the most sensitive assets an enterprise has, and every AI feature that reads it raises a data-handling question. Before rolling out agentic AI broadly, engineering and security leaders typically want clear answers to a short list of questions:",[65,199,200,203,206],{},[68,201,202],{},"Does the vendor train models on our code?",[68,204,205],{},"Who owns the inputs and outputs?",[68,207,208],{},"Where do our subprocessors sit, and can we be notified when that list changes?",[12,210,211,212,217],{},"For organizations in regulated industries, the answer to \"where do our subprocessors sit\" often needs to be \"nowhere outside our own infrastructure.\" That is why self-hosting matters as a governance lever, not just a deployment preference. ",[19,213,216],{"href":214,"rel":215},"https://about.gitlab.com/blog/agentic-ai-enterprise-control-self-hosted-duo-agent-platform-and-byom/",[],"Self-hosted options"," let a team run its AI agents entirely on infrastructure it controls, while still accurately tracking team usage and satisfying regulators.",[12,219,220],{},"Bring-your-own-model support extends that further, letting administrators connect models they have already validated internally and map specific models to certain agent flows. With this method, a sensitive workflow can be pinned to a model the organization trusts while less sensitive workflows use a managed option.",[43,222,224],{"id":223},"human-in-the-loop-decide-where-review-still-belongs","Human-in-the-loop: Decide where review still belongs",[12,226,227],{},"Governance does not mean blocking agents from acting autonomously. It means deciding, deliberately, where autonomy ends and review begins. A workable policy usually separates two modes:",[65,229,230,241],{},[68,231,232,235,236,41],{},[93,233,234],{},"Interactive work",", where a developer is present, sees each suggestion, and approves or rejects it directly. This is the mode most teams already understand from ",[19,237,240],{"href":238,"rel":239},"https://about.gitlab.com/topics/devops/ai-powered-code-completion/",[],"AI code completion",[68,242,243,246,247,252],{},[93,244,245],{},"Automated or headless work",", such as agents running inside CI/CD pipelines without a developer watching in real time. Here, the review has to happen either before the action (through tool approval guardrails) or immediately after (through an ",[19,248,251],{"href":249,"rel":250},"https://about.gitlab.com/blog/one-vulnerability-view/",[],"audit trail"," a human can inspect).",[254,255,257],"h3",{"id":256},"key-decision-points-worth-defining","Key decision points worth defining",[12,259,260],{},"Code review, testing and validation, and deployment approval should all be defined by answering questions like:",[65,262,263,266],{},[68,264,265],{},"Which of these can an agent complete unassisted?",[68,267,268],{},"Which require a named human sign-off before the change proceeds?",[12,270,271],{},"In practice, each checkpoint needs its own enforcement mechanism. This could look like:",[65,273,274,282,288],{},[68,275,276,281],{},[19,277,280],{"href":278,"rel":279},"https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/",[],"Merge request approval policies"," determine who has to sign off before a merge request lands, regardless of whether an agent or a developer opened it.",[68,283,284,287],{},[19,285,172],{"href":168,"rel":286},[]," for agents decide, tool by tool, whether an agent's action runs autonomously, pauses for review, or stays blocked.",[68,289,290,295],{},[19,291,294],{"href":292,"rel":293},"https://docs.gitlab.com/user/application_security/policies/scan_execution_policies/",[],"Scanner enforcement"," holds a change at the pipeline level until it clears the security and quality checks your organization requires.",[12,297,298,299,304],{},"We recommend creating an organization-wide ",[19,300,303],{"href":301,"rel":302},"https://about.gitlab.com/blog/a-developers-guide-to-building-an-ai-security-governance-framework/",[],"AI governance policy"," rather than leaving it to individual team norms. This helps create consistent usage and policies, and helps auditors verify your use of AI.",[254,306,308],{"id":307},"added-context-from-the-decision-layer","Added context from the decision layer",[12,310,311],{},"There is a longer-term benefit to capturing these approvals as structured records rather than letting them evaporate in a chat thread or a reviewer's memory. An exception granted last quarter, the policy version it was granted under, and who approved it are exactly the kind of organizational judgment that both auditors and future agents need to reference.",[12,313,314],{},"Enterprises that treat decisions as durable, queryable events get the added benefit that the next reviewer, human or agent, starts with additional context instead of starting from zero.",[316,317,318],"blockquote",{},[12,319,320,321,326],{},"Learn more about ",[19,322,325],{"href":323,"rel":324},"https://learn.gitlab.com/transcend-evergreen/whitepaper-use-case-for-context-graphs",[],"the decision layer"," and how capturing decision events can impact your software development.",[43,328,330],{"id":329},"_5-metrics-that-measure-an-ai-rollout","5 metrics that measure an AI rollout",[12,332,333],{},"Five categories are worth tracking from the start, and they should be reviewed together rather than in isolation, since a spike in adoption without a matching look at risk metrics is itself a warning sign.",[125,335,336,342,348,354,360],{},[68,337,338,341],{},[93,339,340],{},"Adoption:"," Active users of AI features week over week, number of flows or agents run, and which teams have turned agentic capabilities on versus which have not.",[68,343,344,347],{},[93,345,346],{},"Acceptance and quality:"," Downstream signals like revert rate on AI-assisted changes and how often AI-authored merge requests pass review without rework. A single acceptance-rate number is a weak proxy for effectiveness on its own, since it says nothing about what happens to the code after it is accepted.",[68,349,350,353],{},[93,351,352],{},"Risk:"," Track how often tool approval guardrails pause an action for review, how often those pauses result in a blocked or modified action, and whether any agent activity triggers a policy violation.",[68,355,356,359],{},[93,357,358],{},"Remediation",": Keep an eye on the scanner coverage across projects, the share of vulnerabilities that get auto-remediated versus manually triaged, and time to resolve findings once flagged.",[68,361,362,365,366,371],{},[93,363,364],{},"ROI:"," Once you have a full quarter of data, explore the ROI of your AI investment. Track how much time developers save on tasks agents now handle and weigh that against the cost per resolved issue or merged change, in credits or compute spent. Check out this tutorial for an ",[19,367,370],{"href":368,"rel":369},"https://about.gitlab.com/blog/measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics/",[],"in-depth look at your AI ROI"," — you’ll learn how to transform raw usage data into actionable business insights and ROI calculations.",[12,373,374],{},"By tracking all five metrics together, you can catch issues with the AI rollout early. A rollout can look successful on adoption and acceptance while accumulating risk that only shows up in an audit six months later. With the above metrics, you get a holistic view of the value of AI to your organization.",[43,376,378],{"id":377},"your-gitlab-duo-agent-platform-governance-checklist","Your GitLab Duo Agent Platform governance checklist",[12,380,381],{},"For teams standardizing on GitLab Duo Agent Platform, here is a practical starting checklist before expanding agentic AI beyond a pilot:",[65,383,386,402,414,425,437,448,454,466],{"className":384},[385],"contains-task-list",[68,387,390,395,396,401],{"className":388},[389],"task-list-item",[391,392],"input",{"disabled":393,"type":394},true,"checkbox"," Review the ",[19,397,400],{"href":398,"rel":399},"https://about.gitlab.com/ai-transparency-center/",[],"AI Transparency Center"," and confirm your understanding of data usage, model vendors, and subprocessor commitments.",[68,403,405,407,408,413],{"className":404},[389],[391,406],{"disabled":393,"type":394}," Decide, at the platform level, which agents and flows are approved for use, and publish them through GitLab’s ",[19,409,412],{"href":410,"rel":411},"https://about.gitlab.com/blog/ai-catalog-discover-and-share-agents/#creating-sharing-and-managing-visibility",[],"AI Catalog"," rather than letting teams configure their own.",[68,415,417,419,420,424],{"className":416},[389],[391,418],{"disabled":393,"type":394}," Set ",[19,421,423],{"href":168,"rel":422},[],"tool approval guardrails"," as always allow, always ask, or always deny, based on the sensitivity of the tool.",[68,426,428,430,431,436],{"className":427},[389],[391,429],{"disabled":393,"type":394}," Set up ",[19,432,435],{"href":433,"rel":434},"https://docs.gitlab.com/development/ai_features/composite_identity/",[],"composite identity"," so every agent action is linked to the human who requested it, and access requires both to be authorized.",[68,438,440,442,443,447],{"className":439},[389],[391,441],{"disabled":393,"type":394}," For regulated workloads, evaluate ",[19,444,446],{"href":214,"rel":445},[],"self-hosted deployment and bring-your-own-model options"," against your data residency requirements.",[68,449,451,453],{"className":450},[389],[391,452],{"disabled":393,"type":394}," Document explicit human-in-the-loop checkpoints for code review, testing and validation, and deployment approval.",[68,455,457,459,460,465],{"className":456},[389],[391,458],{"disabled":393,"type":394}," Turn on ",[19,461,464],{"href":462,"rel":463},"https://docs.gitlab.com/user/compliance/audit_event_streaming/",[],"audit event streaming"," for agent activity so every action lands in the same audit trail your organization already reviews.",[68,467,469,471,472,477],{"className":468},[389],[391,470],{"disabled":393,"type":394}," Define your ",[19,473,476],{"href":474,"rel":475},"https://docs.gitlab.com/user/analytics/",[],"rollout metrics"," (adoption, acceptance, risk, remediation, ROI) before expanding past a pilot, and review them together on a recurring cadence.",[12,479,480],{},"Revisit the checklist each release cycle. Governance for agentic AI is not a one-time setup. New agents, new tools, and new models often reopen governance questions.",[43,482,484],{"id":483},"where-agentic-ai-speed-meets-enterprise-control","Where agentic AI speed meets enterprise control",[12,486,487],{},"Agentic AI changes what needs governing. Code completion asked a developer whether a suggestion was good. Agentic AI asks what an agent is allowed to touch, who approved it, and whether that can be proven later.",[12,489,490,491,494],{},"Answering those questions fully requires governance built into the platform itself, not layered on afterward. ",[19,492,40],{"href":38,"rel":493},[]," provides an AI Catalog, approval guardrails, and audit event streaming directly into the platform where the work happens, so governance isn't bolted on after the fact. Teams get AI-assisted speed and enterprise control together, because the guardrails are part of the workflow, not a separate process running alongside it.",[316,496,497],{},[12,498,499,500,504,505,510,511,516,517,41],{},"Start a ",[19,501,503],{"href":38,"rel":502},[],"free trial of GitLab Duo Agent Platform",". On the Free tier, you can ",[19,506,509],{"href":507,"rel":508},"https://docs.gitlab.com/subscriptions/gitlab_credits/#for-the-free-tier-on-gitlabcom",[],"sign up in a few simple steps",". If you're already on GitLab Premium or Ultimate, you can ",[19,512,515],{"href":513,"rel":514},"https://docs.gitlab.com/user/duo_agent_platform/turn_on_off/",[],"turn on Duo Agent Platform"," and use the ",[19,518,521],{"href":519,"rel":520},"https://docs.gitlab.com/subscriptions/gitlab_credits/#included-credits/",[],"GitLab Credits included with your subscription",{"title":523,"searchDepth":524,"depth":524,"links":525},"",2,[526,527,528,529,534,535,536],{"id":45,"depth":524,"text":46},{"id":119,"depth":524,"text":120},{"id":193,"depth":524,"text":194},{"id":223,"depth":524,"text":224,"children":530},[531,533],{"id":256,"depth":532,"text":257},3,{"id":307,"depth":532,"text":308},{"id":329,"depth":524,"text":330},{"id":377,"depth":524,"text":378},{"id":483,"depth":524,"text":484},"ai","2026-07-31","AI agents can write, push, and deploy without human review at each step. Learn a practical framework for controlling access, permissions, and audit trails.","md",null,{"header":543,"groups":544},"Frequently Asked Questions",[545],{"questions":546},[547,552,556,560,564],{"config":548,"question":550,"answer":551},{"expanded":549},false,"Why does agentic AI require a different governance approach than traditional AI code completion?","Unlike interactive code completion, where a human developer reviews every suggestion, agentic AI can perform multi-step actions — such as running tests or modifying configurations — without human intervention at every step. This shifts the focus from \"which model writes the best code?\" to \"what is this agent authorized to do, and can we prove what it did?\"",{"config":553,"question":554,"answer":555},{"expanded":549},"What are the key elements of a robust governance model for agentic AI?","A strong governance model centers on identity, permissions, and auditability. Key components include a central catalog for managing agents and flows, composite identity (linking agent actions to the requesting human user), tool approval guardrails to manage autonomy, and prompt guardrails to prevent behavior hijacking.",{"config":557,"question":558,"answer":559},{"expanded":549},"What are the main data privacy concerns when rolling out agentic AI?","Engineering and security leaders typically focus on three core data-handling questions: whether the vendor trains models on company code, who owns the inputs and outputs, and the location of subprocessors. For highly regulated industries, self-hosting options and \"bring-your-own-model\" approaches are often used to maintain infrastructure control and data residency.",{"config":561,"question":562,"answer":563},{"expanded":549},"How should organizations define \"human-in-the-loop\" checkpoints?","Organizations should distinguish between \"interactive\" work (where a developer is present) and \"automated/headless\" work (such as CI/CD pipelines). Checkpoints for code review, testing, and deployment approval should be enforced through tools like merge request approval policies, tool approval guardrails, and scanner enforcement, rather than leaving governance to individual team norms.",{"config":565,"question":566,"answer":567},{"expanded":549},"What metrics should be tracked to measure the success of an AI rollout?","Teams should track five integrated metrics: adoption (usage levels), acceptance and quality (revert rates and rework), risk (policy violations and guardrail interventions), remediation (vulnerability resolution time), and ROI (time saved versus costs). Monitoring these together prevents accumulating hidden risks while focusing only on adoption or efficiency gains.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785337625/ifzlc2hyzaxhzmjgyymh.png",{},"/en-us/blog/govern-agentic-ai-mcps-code-assistants",{"config":572,"title":5,"description":539},{"noIndex":549},"govern-agentic-ai-mcps-code-assistants","en-us/blog/govern-agentic-ai-mcps-code-assistants",[576,577,578],"AI","features","product","BlogPost","vaRmbISB1JpyPVmREVZPhS0Cwh3z2hIYS5Vs7L9Amb0",{"logo":582,"freeTrial":587,"sales":592,"login":597,"items":602,"search":927,"minimal":958,"duo":977,"switchNav":986,"pricingDeployment":997},{"config":583},{"href":584,"dataGaName":585,"dataGaLocation":586},"/","gitlab logo","header",{"text":588,"config":589},"Get free trial",{"href":590,"dataGaName":591,"dataGaLocation":586},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":593,"config":594},"Request a demo",{"href":595,"dataGaName":596,"dataGaLocation":586},"/sales/?contact-topic=request-demo","sales",{"text":598,"config":599},"Sign in",{"href":600,"dataGaName":601,"dataGaLocation":586},"https://gitlab.com/users/sign_in/","sign in",[603,631,731,736,850,905],{"text":604,"config":605,"menu":607},"Platform",{"dataNavLevelOne":606},"platform",{"type":608,"columns":609},"cards",[610,616,623],{"title":604,"description":611,"link":612},"The intelligent orchestration platform for DevSecOps",{"text":613,"config":614},"Explore our Platform",{"href":615,"dataGaName":606,"dataGaLocation":586},"/platform/",{"title":40,"description":617,"link":618},"Agentic AI for the entire software lifecycle",{"text":619,"config":620},"Meet GitLab Duo",{"href":621,"dataGaName":622,"dataGaLocation":586},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":624,"description":625,"link":626},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":627,"config":628},"Learn more",{"href":629,"dataGaName":630,"dataGaLocation":586},"/why-gitlab/","why gitlab",{"text":632,"left":393,"config":633,"menu":635},"Product",{"dataNavLevelOne":634},"solutions",{"type":636,"link":637,"columns":641,"feature":710},"lists",{"text":638,"config":639},"View all Solutions",{"href":640,"dataGaName":634,"dataGaLocation":586},"/solutions/",[642,666,689],{"title":643,"description":644,"link":645,"items":650},"Automation","CI/CD and automation to accelerate deployment",{"config":646},{"icon":647,"href":648,"dataGaName":649,"dataGaLocation":586},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[651,655,658,662],{"text":652,"config":653},"CI/CD",{"href":654,"dataGaLocation":586,"dataGaName":652},"/solutions/continuous-integration/",{"text":40,"config":656},{"href":621,"dataGaLocation":586,"dataGaName":657},"gitlab duo agent platform - product menu",{"text":659,"config":660},"Source Code Management",{"href":661,"dataGaLocation":586,"dataGaName":659},"/solutions/source-code-management/",{"text":663,"config":664},"Automated Software Delivery",{"href":648,"dataGaLocation":586,"dataGaName":665},"Automated software delivery",{"title":667,"description":668,"link":669,"items":674},"Security","Deliver code faster without compromising security",{"config":670},{"href":671,"dataGaName":672,"dataGaLocation":586,"icon":673},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[675,679,684],{"text":676,"config":677},"Application Security Testing",{"href":671,"dataGaName":678,"dataGaLocation":586},"Application security testing",{"text":680,"config":681},"Software Supply Chain Security",{"href":682,"dataGaLocation":586,"dataGaName":683},"/solutions/supply-chain/","Software supply chain security",{"text":685,"config":686},"Software Compliance",{"href":687,"dataGaName":688,"dataGaLocation":586},"/solutions/software-compliance/","software compliance",{"title":690,"link":691,"items":696},"Measurement",{"config":692},{"icon":693,"href":694,"dataGaName":695,"dataGaLocation":586},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[697,701,705],{"text":698,"config":699},"Visibility & Measurement",{"href":694,"dataGaLocation":586,"dataGaName":700},"Visibility and Measurement",{"text":702,"config":703},"Value Stream Management",{"href":704,"dataGaLocation":586,"dataGaName":702},"/solutions/value-stream-management/",{"text":706,"config":707},"Analytics & Insights",{"href":708,"dataGaLocation":586,"dataGaName":709},"/solutions/analytics-and-insights/","Analytics and insights",{"title":711,"type":636,"items":712},"GitLab for",[713,719,725],{"text":714,"config":715},"Enterprise",{"icon":716,"href":717,"dataGaLocation":586,"dataGaName":718},"Building","/enterprise/","enterprise",{"text":720,"config":721},"Small Business",{"icon":722,"href":723,"dataGaLocation":586,"dataGaName":724},"Work","/small-business/","small business",{"text":726,"config":727},"Public Sector",{"icon":728,"href":729,"dataGaLocation":586,"dataGaName":730},"Organization","/solutions/public-sector/","public sector",{"text":732,"config":733},"Pricing",{"href":734,"dataGaName":735,"dataGaLocation":586,"dataNavLevelOne":735},"/pricing/","pricing",{"text":737,"config":738,"menu":740},"Resources",{"dataNavLevelOne":739},"resources",{"type":636,"link":741,"columns":745,"feature":839},{"text":742,"config":743},"View all resources",{"href":744,"dataGaName":739,"dataGaLocation":586},"/resources/",[746,779,806],{"title":747,"items":748},"Getting started",[749,754,759,764,769,774],{"text":750,"config":751},"Install",{"href":752,"dataGaName":753,"dataGaLocation":586},"/install/","install",{"text":755,"config":756},"Quick start guides",{"href":757,"dataGaName":758,"dataGaLocation":586},"/get-started/","quick setup checklists",{"text":760,"config":761},"Learn",{"href":762,"dataGaLocation":586,"dataGaName":763},"https://university.gitlab.com/","learn",{"text":765,"config":766},"Product documentation",{"href":767,"dataGaName":768,"dataGaLocation":586},"https://docs.gitlab.com/","product documentation",{"text":770,"config":771},"Best practice videos",{"href":772,"dataGaName":773,"dataGaLocation":586},"/getting-started-videos/","best practice videos",{"text":775,"config":776},"Integrations",{"href":777,"dataGaName":778,"dataGaLocation":586},"/integrations/","integrations",{"title":780,"items":781},"Discover",[782,787,792,797,801],{"text":783,"config":784},"Customer success stories",{"href":785,"dataGaName":786,"dataGaLocation":586},"/customers/","customer success stories",{"text":788,"config":789},"Blog",{"href":790,"dataGaName":791,"dataGaLocation":586},"/blog/","blog",{"text":793,"config":794},"Demo Hub",{"href":795,"dataGaName":796,"dataGaLocation":586},"/demo-hub/","demo hub",{"text":798,"config":799},"The Source",{"href":800,"dataGaName":791,"dataGaLocation":586},"/the-source/",{"text":802,"config":803},"Remote",{"href":804,"dataGaName":805,"dataGaLocation":586},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":807,"items":808},"Connect",[809,814,819,824,829,834],{"text":810,"config":811},"GitLab Services",{"href":812,"dataGaName":813,"dataGaLocation":586},"/services/","services",{"text":815,"config":816},"Contribute",{"href":817,"dataGaName":818,"dataGaLocation":586},"https://contributors.gitlab.com","contribute",{"text":820,"config":821},"Community",{"href":822,"dataGaName":823,"dataGaLocation":586},"/community/","community",{"text":825,"config":826},"Forum",{"href":827,"dataGaName":828,"dataGaLocation":586},"https://forum.gitlab.com/","forum",{"text":830,"config":831},"Events",{"href":832,"dataGaName":833,"dataGaLocation":586},"/events/","events",{"text":835,"config":836},"Partners",{"href":837,"dataGaName":838,"dataGaLocation":586},"/partners/","partners",{"config":840,"title":843,"text":844,"link":845},{"background":841,"textColor":842},"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":846,"config":847},"Read the latest",{"href":848,"dataGaName":849,"dataGaLocation":586},"/whats-new/","whats new",{"text":851,"config":852,"menu":854},"Company",{"dataNavLevelOne":853},"company",{"type":636,"columns":855},[856],{"items":857},[858,863,869,871,876,881,886,891,895,900],{"text":859,"config":860},"About",{"href":861,"dataGaName":862,"dataGaLocation":586},"/company/","about",{"text":864,"config":865,"footerGa":868},"Jobs",{"href":866,"dataGaName":867,"dataGaLocation":586},"/jobs/","jobs",{"dataGaName":867},{"text":830,"config":870},{"href":832,"dataGaName":833,"dataGaLocation":586},{"text":872,"config":873},"Leadership",{"href":874,"dataGaName":875,"dataGaLocation":586},"/company/team/e-group/","leadership",{"text":877,"config":878},"Handbook",{"href":879,"dataGaName":880,"dataGaLocation":586},"https://handbook.gitlab.com/","handbook",{"text":882,"config":883},"Investor relations",{"href":884,"dataGaName":885,"dataGaLocation":586},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":887,"config":888},"Trust Center",{"href":889,"dataGaName":890,"dataGaLocation":586},"/security/","trust center",{"text":400,"config":892},{"href":893,"dataGaName":894,"dataGaLocation":586},"/ai-transparency-center/","ai transparency center",{"text":896,"config":897},"Newsletter",{"href":898,"dataGaName":899,"dataGaLocation":586},"/company/contact/#contact-forms","newsletter",{"text":901,"config":902},"Press",{"href":903,"dataGaName":904,"dataGaLocation":586},"/press/","press",{"text":906,"config":907,"menu":908},"Contact us",{"dataNavLevelOne":853},{"type":636,"columns":909},[910],{"items":911},[912,917,922],{"text":913,"config":914},"Talk to sales",{"href":915,"dataGaName":916,"dataGaLocation":586},"/sales/","talk to sales",{"text":918,"config":919},"Support portal",{"href":920,"dataGaName":921,"dataGaLocation":586},"https://support.gitlab.com/hc/en-us","support portal",{"text":923,"config":924},"Customer portal",{"href":925,"dataGaName":926,"dataGaLocation":586},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":928,"login":929,"suggestions":936},"Close",{"text":930,"link":931},"To search repositories and projects, login to",{"text":932,"config":933},"gitlab.com",{"href":600,"dataGaName":934,"dataGaLocation":935},"search login","search",{"text":937,"default":938},"Suggestions",[939,941,945,947,951,955],{"text":40,"config":940},{"href":621,"dataGaName":40,"dataGaLocation":935},{"text":942,"config":943},"Code Suggestions (AI)",{"href":944,"dataGaName":942,"dataGaLocation":935},"/solutions/code-suggestions/",{"text":652,"config":946},{"href":654,"dataGaName":652,"dataGaLocation":935},{"text":948,"config":949},"GitLab on AWS",{"href":950,"dataGaName":948,"dataGaLocation":935},"/partners/technology-partners/aws/",{"text":952,"config":953},"GitLab on Google Cloud",{"href":954,"dataGaName":952,"dataGaLocation":935},"/partners/technology-partners/google-cloud-platform/",{"text":956,"config":957},"Why GitLab?",{"href":629,"dataGaName":956,"dataGaLocation":935},{"freeTrial":959,"mobileIcon":964,"desktopIcon":969,"secondaryButton":972},{"text":960,"config":961},"Start free trial",{"href":962,"dataGaName":591,"dataGaLocation":963},"https://gitlab.com/-/trials/new/","nav",{"altText":965,"config":966},"Gitlab Icon",{"src":967,"dataGaName":968,"dataGaLocation":963},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":965,"config":970},{"src":971,"dataGaName":968,"dataGaLocation":963},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":973,"config":974},"Get Started",{"href":975,"dataGaName":976,"dataGaLocation":963},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":978,"mobileIcon":982,"desktopIcon":984},{"text":979,"config":980},"Learn more about GitLab Duo",{"href":621,"dataGaName":981,"dataGaLocation":963},"gitlab duo",{"altText":965,"config":983},{"src":967,"dataGaName":968,"dataGaLocation":963},{"altText":965,"config":985},{"src":971,"dataGaName":968,"dataGaLocation":963},{"button":987,"mobileIcon":992,"desktopIcon":994},{"text":988,"config":989},"/switch",{"href":990,"dataGaName":991,"dataGaLocation":963},"#contact","switch",{"altText":965,"config":993},{"src":967,"dataGaName":968,"dataGaLocation":963},{"altText":965,"config":995},{"src":996,"dataGaName":968,"dataGaLocation":963},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":998,"mobileIcon":1003,"desktopIcon":1005},{"text":999,"config":1000},"Back to pricing",{"href":734,"dataGaName":1001,"dataGaLocation":963,"icon":1002},"back to pricing","GoBack",{"altText":965,"config":1004},{"src":967,"dataGaName":968,"dataGaLocation":963},{"altText":965,"config":1006},{"src":971,"dataGaName":968,"dataGaLocation":963},{"title":1008,"titleMobile":1009,"button":1010,"config":1015},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":627,"config":1011},{"href":1012,"dataGaName":1013,"dataGaLocation":1014},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":1016,"disabled":549},"release",{"data":1018},{"text":1019,"source":1020,"edit":1026,"contribute":1031,"config":1036,"items":1041,"minimal":1250},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":1021,"config":1022},"View page source",{"href":1023,"dataGaName":1024,"dataGaLocation":1025},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1027,"config":1028},"Edit this page",{"href":1029,"dataGaName":1030,"dataGaLocation":1025},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1032,"config":1033},"Please contribute",{"href":1034,"dataGaName":1035,"dataGaLocation":1025},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1037,"facebook":1038,"youtube":1039,"linkedin":1040},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1042,1089,1142,1186,1218],{"title":732,"links":1043,"subMenu":1058},[1044,1048,1053],{"text":1045,"config":1046},"View plans",{"href":734,"dataGaName":1047,"dataGaLocation":1025},"view plans",{"text":1049,"config":1050},"Why Premium?",{"href":1051,"dataGaName":1052,"dataGaLocation":1025},"/pricing/premium/","why premium",{"text":1054,"config":1055},"Why Ultimate?",{"href":1056,"dataGaName":1057,"dataGaLocation":1025},"/pricing/ultimate/","why ultimate",[1059],{"title":1060,"links":1061},"Contact Us",[1062,1065,1067,1069,1074,1079,1084],{"text":1063,"config":1064},"Contact sales",{"href":915,"dataGaName":596,"dataGaLocation":1025},{"text":918,"config":1066},{"href":920,"dataGaName":921,"dataGaLocation":1025},{"text":923,"config":1068},{"href":925,"dataGaName":926,"dataGaLocation":1025},{"text":1070,"config":1071},"Status",{"href":1072,"dataGaName":1073,"dataGaLocation":1025},"https://status.gitlab.com/","status",{"text":1075,"config":1076},"Terms of use",{"href":1077,"dataGaName":1078,"dataGaLocation":1025},"/terms/","terms of use",{"text":1080,"config":1081},"Privacy statement",{"href":1082,"dataGaName":1083,"dataGaLocation":1025},"/privacy/","privacy statement",{"text":1085,"config":1086},"Cookie preferences",{"dataGaName":1087,"dataGaLocation":1025,"id":1088,"isOneTrustButton":393},"cookie preferences","ot-sdk-btn",{"title":632,"links":1090,"subMenu":1099},[1091,1095],{"text":1092,"config":1093},"DevSecOps platform",{"href":615,"dataGaName":1094,"dataGaLocation":1025},"devsecops platform",{"text":1096,"config":1097},"AI-Assisted Development",{"href":621,"dataGaName":1098,"dataGaLocation":1025},"ai-assisted development",[1100],{"title":1101,"links":1102},"Topics",[1103,1108,1113,1118,1123,1128,1133,1138],{"text":1104,"config":1105},"CICD",{"href":1106,"dataGaName":1107,"dataGaLocation":1025},"/topics/ci-cd/","cicd",{"text":1109,"config":1110},"GitOps",{"href":1111,"dataGaName":1112,"dataGaLocation":1025},"/topics/gitops/","gitops",{"text":1114,"config":1115},"DevOps",{"href":1116,"dataGaName":1117,"dataGaLocation":1025},"/topics/devops/","devops",{"text":1119,"config":1120},"Version Control",{"href":1121,"dataGaName":1122,"dataGaLocation":1025},"/topics/version-control/","version control",{"text":1124,"config":1125},"DevSecOps",{"href":1126,"dataGaName":1127,"dataGaLocation":1025},"/topics/devsecops/","devsecops",{"text":1129,"config":1130},"Cloud Native",{"href":1131,"dataGaName":1132,"dataGaLocation":1025},"/topics/cloud-native/","cloud native",{"text":1134,"config":1135},"AI for Coding",{"href":1136,"dataGaName":1137,"dataGaLocation":1025},"/topics/devops/ai-for-coding/","ai for coding",{"text":56,"config":1139},{"href":1140,"dataGaName":1141,"dataGaLocation":1025},"/topics/agentic-ai/","agentic ai",{"title":1143,"links":1144},"Solutions",[1145,1147,1149,1154,1158,1161,1165,1168,1170,1173,1176,1181],{"text":676,"config":1146},{"href":671,"dataGaName":676,"dataGaLocation":1025},{"text":665,"config":1148},{"href":648,"dataGaName":649,"dataGaLocation":1025},{"text":1150,"config":1151},"Agile development",{"href":1152,"dataGaName":1153,"dataGaLocation":1025},"/solutions/agile-delivery/","agile delivery",{"text":1155,"config":1156},"SCM",{"href":661,"dataGaName":1157,"dataGaLocation":1025},"source code management",{"text":1104,"config":1159},{"href":654,"dataGaName":1160,"dataGaLocation":1025},"continuous integration & delivery",{"text":1162,"config":1163},"Value stream management",{"href":704,"dataGaName":1164,"dataGaLocation":1025},"value stream management",{"text":1109,"config":1166},{"href":1167,"dataGaName":1112,"dataGaLocation":1025},"/solutions/gitops/",{"text":714,"config":1169},{"href":717,"dataGaName":718,"dataGaLocation":1025},{"text":1171,"config":1172},"Small business",{"href":723,"dataGaName":724,"dataGaLocation":1025},{"text":1174,"config":1175},"Public sector",{"href":729,"dataGaName":730,"dataGaLocation":1025},{"text":1177,"config":1178},"Education",{"href":1179,"dataGaName":1180,"dataGaLocation":1025},"/solutions/education/","education",{"text":1182,"config":1183},"Financial services",{"href":1184,"dataGaName":1185,"dataGaLocation":1025},"/solutions/finance/","financial services",{"title":737,"links":1187},[1188,1190,1192,1194,1197,1199,1202,1204,1206,1208,1210,1212,1214,1216],{"text":750,"config":1189},{"href":752,"dataGaName":753,"dataGaLocation":1025},{"text":755,"config":1191},{"href":757,"dataGaName":758,"dataGaLocation":1025},{"text":760,"config":1193},{"href":762,"dataGaName":763,"dataGaLocation":1025},{"text":765,"config":1195},{"href":767,"dataGaName":1196,"dataGaLocation":1025},"docs",{"text":788,"config":1198},{"href":790,"dataGaName":791,"dataGaLocation":1025},{"text":1200,"config":1201},"What's new",{"href":848,"dataGaName":849,"dataGaLocation":1025},{"text":783,"config":1203},{"href":785,"dataGaName":786,"dataGaLocation":1025},{"text":802,"config":1205},{"href":804,"dataGaName":805,"dataGaLocation":1025},{"text":810,"config":1207},{"href":812,"dataGaName":813,"dataGaLocation":1025},{"text":815,"config":1209},{"href":817,"dataGaName":818,"dataGaLocation":1025},{"text":820,"config":1211},{"href":822,"dataGaName":823,"dataGaLocation":1025},{"text":825,"config":1213},{"href":827,"dataGaName":828,"dataGaLocation":1025},{"text":830,"config":1215},{"href":832,"dataGaName":833,"dataGaLocation":1025},{"text":835,"config":1217},{"href":837,"dataGaName":838,"dataGaLocation":1025},{"title":851,"links":1219},[1220,1222,1224,1226,1228,1230,1234,1239,1241,1243,1245],{"text":859,"config":1221},{"href":861,"dataGaName":853,"dataGaLocation":1025},{"text":864,"config":1223},{"href":866,"dataGaName":867,"dataGaLocation":1025},{"text":872,"config":1225},{"href":874,"dataGaName":875,"dataGaLocation":1025},{"text":877,"config":1227},{"href":879,"dataGaName":880,"dataGaLocation":1025},{"text":882,"config":1229},{"href":884,"dataGaName":885,"dataGaLocation":1025},{"text":1231,"config":1232},"Sustainability",{"href":1233,"dataGaName":1231,"dataGaLocation":1025},"/sustainability/",{"text":1235,"config":1236},"Diversity, inclusion and belonging (DIB)",{"href":1237,"dataGaName":1238,"dataGaLocation":1025},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":887,"config":1240},{"href":889,"dataGaName":890,"dataGaLocation":1025},{"text":896,"config":1242},{"href":898,"dataGaName":899,"dataGaLocation":1025},{"text":901,"config":1244},{"href":903,"dataGaName":904,"dataGaLocation":1025},{"text":1246,"config":1247},"Modern Slavery Transparency Statement",{"href":1248,"dataGaName":1249,"dataGaLocation":1025},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1251},[1252,1255,1258],{"text":1253,"config":1254},"Terms",{"href":1077,"dataGaName":1078,"dataGaLocation":1025},{"text":1256,"config":1257},"Cookies",{"dataGaName":1087,"dataGaLocation":1025,"id":1088,"isOneTrustButton":393},{"text":1259,"config":1260},"Privacy",{"href":1082,"dataGaName":1083,"dataGaLocation":1025},[1262],{"id":1263,"title":7,"body":541,"config":1264,"content":1266,"description":541,"extension":1270,"meta":1271,"navigation":393,"path":1272,"seo":1273,"stem":1274,"__hash__":1275},"blogAuthors/en-us/blog/authors/julie-griffin.yml",{"template":1265},"BlogAuthor",{"name":7,"config":1267},{"headshot":1268,"ctfId":1269},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665206/Blog/Author%20Headshots/julie_griffin_-_headshot.png","3djBidFIW3or5K9uhi9LE5","yml",{},"/en-us/blog/authors/julie-griffin",{},"en-us/blog/authors/julie-griffin","UXb0MLdNGj8SQmN-5-rqCW9xHeEdfkq0Kadl2ToGlJA",[1277,1285,1293],{"title":1278,"description":1279,"heroImage":1280,"category":537,"date":1281,"authors":1282,"slug":1284,"externalUrl":541},"Claude Opus 5 on GitLab: Reasoning built for the hard tasks","Anthropic’s Claude Opus 5 is now available on GitLab Duo Agent Platform, delivering deeper reasoning without sacrificing speed.","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-07-27",[1283],"Brittany Lutz","claude-opus-5-on-gitlab-duo-agent-platform",{"title":1286,"description":1287,"heroImage":1288,"category":537,"date":1289,"authors":1290,"slug":1292,"externalUrl":541},"Modernize Java with Cursor and GitLab","This tutorial starts with a focused tests fix, introduces quality gates, and implements code changes with development lifecycle context, tests, and review evidence.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776457632/llddiylsgwuze0u1rjks.png","2026-07-22",[1291],"Michael Friedrich","modernize-java-with-cursor-and-gitlab",{"title":1294,"description":1295,"heroImage":1296,"category":537,"date":1297,"authors":1298,"slug":1300,"externalUrl":541},"GitLab Transcend Hackathon: What developers built on GitLab Orbit","More than 1,500 developers built AI agents and tools using GitLab Orbit. Learn about the winning projects and questions a live code graph answers in one query.\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1780996524/sd1vpl8empy26wizarqj.png","2026-07-20",[1299],"Mattias Michaux","gitlab-transcend-hackathon-orbit",{"promotions":1302},[1303,1316,1327,1339],{"id":1304,"categories":1305,"header":1306,"text":1307,"button":1308,"image":1313},"ai-modernization",[537],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1309,"config":1310},"Get your AI maturity score",{"href":1311,"dataGaName":1312,"dataGaLocation":791},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1314},{"src":1315},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1317,"categories":1318,"header":1319,"text":1307,"button":1320,"image":1324},"devops-modernization",[578,1127],"Are you just managing tools or shipping innovation?",{"text":1321,"config":1322},"Get your DevOps maturity score",{"href":1323,"dataGaName":1312,"dataGaLocation":791},"/assessments/devops-modernization-assessment/",{"config":1325},{"src":1326},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1328,"categories":1329,"header":1331,"text":1307,"button":1332,"image":1336},"security-modernization",[1330],"security","Are you trading speed for security?",{"text":1333,"config":1334},"Get your security maturity score",{"href":1335,"dataGaName":1312,"dataGaLocation":791},"/assessments/security-modernization-assessment/",{"config":1337},{"src":1338},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1340,"paths":1341,"header":1344,"text":1345,"button":1346,"image":1351},"github-azure-migration",[1342,1343],"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":1347,"config":1348},"See how GitLab compares to GitHub",{"href":1349,"dataGaName":1350,"dataGaLocation":791},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1352},{"src":1326},{"header":1354,"blurb":1355,"button":1356,"secondaryButton":1361},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1357,"config":1358},"Get your free trial",{"href":1359,"dataGaName":591,"dataGaLocation":1360},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":1063,"config":1362},{"href":915,"dataGaName":596,"dataGaLocation":1360},1785532393424]