[{"data":1,"prerenderedAt":913},["ShallowReactive",2],{"/en-us/topics/gitops/":3,"navigation-en-us":261,"banner-en-us":677,"footer-en-us":689,"next-steps-en-us":898},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":11,"_id":255,"_type":256,"title":7,"_source":257,"_file":258,"_stem":259,"_extension":260},"/en-us/topics/gitops","topics",false,"",{"title":9,"ogTitle":9,"description":10,"ogDescription":10},"What is GitOps?","Discover GitOps and automate IT infrastructure using infrastructure as code (IaC), Git, code review, and CI/CD pipelines for reliable deployments!",[12,22,32,98,220,253],{"type":13,"componentName":13,"componentContent":14},"CommonBreadcrumbs",{"crumbs":15},[16,20],{"title":17,"config":18},"Topics",{"href":19},"/topics/",{"title":21},"GitOps",{"type":23,"componentName":23,"componentContent":24},"TopicsHero",{"title":9,"text":25,"config":26,"button":28},"GitOps is an operational framework that takes DevOps best practices used for application development such as version control, collaboration, compliance, and CI/CD, and applies them to infrastructure automation.\n",{"id":27,"twoColumns":6},"what-is-gitops?",{"text":29,"config":30},"Download the GitOps Ebook Now",{"href":31},"https://page.gitlab.com/resources-ebook-beginner-guide-gitops.html",{"type":33,"componentName":33,"componentContent":34},"CommonSideNavigationWithTree",{"anchors":35,"components":61},{"text":36,"data":37},"On this page",[38,41,45,49,53,57],{"text":9,"config":39},{"href":40},"#what-is-git-ops",{"text":42,"config":43},"How do teams put GitOps into practice?",{"href":44},"#how-do-teams-put-git-ops-into-practice",{"text":46,"config":47},"GitOps challenges",{"href":48},"#git-ops-challenges",{"text":50,"config":51},"GitOps benefits",{"href":52},"#git-ops-benefits",{"text":54,"config":55},"What is the difference between GitOps and DevOps?",{"href":56},"#what-is-the-difference-between-git-ops-and-dev-ops",{"text":58,"config":59},"What is a GitOps workflow? ",{"href":60},"#what-is-a-git-ops-workflow",[62,68,73,78,83,88,93],{"type":63,"componentName":63,"componentContent":64},"TopicsCopy",{"header":9,"text":65,"config":66},"While much of the software development lifecycle has been automated, infrastructure has remained a largely manual process that requires specialized teams. With the demands made on today’s infrastructure, it has become increasingly crucial to implement infrastructure automation. Modern infrastructure needs to be elastic so that it can effectively manage cloud resources that are needed for continuous deployments.\n\nModern and cloud native applications are developed with speed and scale in mind. Organizations with a mature DevOps culture can deploy code to production hundreds of times per day. DevOps teams can accomplish this through development best practices such as version control, code review, and CI/CD pipelines that automate testing and deployments.\n\nGitOps is used to automate the process of provisioning infrastructure, especially modern cloud infrastructure. Similar to how teams use application source code, operations teams that adopt GitOps use configuration files stored as code (infrastructure as code). GitOps configuration files generate the same infrastructure environment every time it’s deployed, just as application source code generates the same application binaries every time it’s built.\n",{"id":67},"what-is-git-ops",{"type":63,"componentName":63,"componentContent":69},{"header":42,"text":70,"config":71},"GitOps is not a single product, plugin, or platform. There is no one-size-fits-all answer to this question, as the best way for teams to put GitOps into practice will vary depending on the specific needs and goals of the team. However, some tips on how to get started with GitOps include using a dedicated GitOps repository for all team members to share configurations and code, automating the deployment of code changes, and setting up alerts to notify the team when changes occur.\n\nGitOps requires three core components:\n\n### IaC:\nGitOps uses a [Git repository](/blog/migrating-your-version-control-to-git/){data-ga-name=\"Git repository\" data-ga-location=\"body\"} as the single source of truth for infrastructure definitions. Git is an open source version control system that tracks code management changes, and a Git repository is a .git folder in a project that tracks all changes made to files in a project over time. [Infrastructure as code (IaC)](/topics/gitops/infrastructure-as-code/){data-ga-name=\"IaC\" data-ga-location=\"body\"} is the practice of keeping all infrastructure configuration stored as code. The actual desired state may or may not be not stored as code (e.g., number of replicas or pods).\n\n### MRs:\nGitOps uses merge requests (MRs) or pull requests (PRs) as the [change mechanism](/blog/merge-request-reviewers/){data-ga-name=\"Change mechanism\" data-ga-location=\"body\"} for all infrastructure updates. The MR or PR is where teams can collaborate via reviews and comments and where formal approvals take place. A merge commits to your main (or trunk) branch and serves as an audit log or audit trail.\n\n### CI/CD:\nGitOps automates infrastructure updates using a Git workflow with [continuous integration and continuous delivery (CI/CD)](/topics/ci-cd/). When new code is merged, the CI/CD pipeline enacts the change in the environment. Any configuration drift, such as manual changes or errors, is overwritten by GitOps automation so the environment converges on the desired state defined in Git. GitLab uses CI/CD [pipelines](/blog/pre-filled-variables-feature/) to manage and implement GitOps automation, but other forms of automation, such as definitions operators, can be used as well.\n",{"id":72},"how-do-teams-put-git-ops-into-practice",{"type":63,"componentName":63,"componentContent":74},{"header":46,"text":75,"config":76},"With any collaborative effort, change can be tricky and GitOps is no exception. GitOps is a process change that will require discipline from all participants and a commitment to doing things in a new way. It is vital for teams to write everything down.\n\nGitOps allows for greater collaboration, but that is not necessarily something that comes naturally for some individuals or organizations. A GitOps approval process means that developers make changes to the code, create a merge request, an approver merges these changes, and the change is deployed. This sequence introduces a “change by committee” element to infrastructure, which can seem tedious and time-consuming to engineers used to making quick, manual changes.\n\nIt is important for everyone on the team to record what’s going on in merge requests and issues. The temptation to edit something directly in production or change something manually is going to be difficult to suppress, but the less “cowboy engineering” there is, the better GitOps will work.\n",{"id":77},"git-ops-challenges",{"type":63,"componentName":63,"componentContent":79},{"header":50,"text":80,"config":81},"There are many benefits of GitOps, including improved efficiency and security, [a better developer experience](https://about.gitlab.com/topics/devops/what-is-developer-experience/), reduced costs, and faster deployments.\n\nWith GitOps, organizations can manage their entire infrastructure and application development lifecycle using a single, unified tool. This allows for greater collaboration and coordination between teams and results in fewer errors and faster problem resolution.\n\nIn addition, GitOps can help organizations take advantage of containers and microservices and maintain consistency across all their infrastructure — from Kubernetes cluster configurations and Docker images to cloud instances and anything on-prem.\n",{"id":82},"git-ops-benefits",{"type":63,"componentName":63,"componentContent":84},{"header":54,"text":85,"config":86},"There are a few key differences between GitOps and DevOps. For one, GitOps relies heavily on automation and tooling to manage and deploy code changes, while DevOps focuses more on communication and collaboration between teams. Additionally, GitOps is typically used in conjunction with containerization technologies like Kubernetes, while DevOps can be used with any type of application.\n\nGitOps is a branch of DevOps that focuses on using Git code repositories to manage infrastructure and application code deployments. The main difference between the two is that in GitOps, the Git repository is the source of truth for the deployment state, while in DevOps, it is the application or server configuration files.\n",{"id":87},"what-is-the-difference-between-git-ops-and-dev-ops",{"type":63,"componentName":63,"componentContent":89},{"header":58,"text":90,"config":91},"A GitOps workflow refers to a systematic and version-controlled approach to infrastructure and application management. Imagine it as treating your system operations with the same rigor you expect from your codebase. In GitOps, Git repositories serve as the single source of truth for system and infrastructure configurations.\n\nChanges to configurations are made through pull requests, ensuring peer reviews and audit trails for updates. Automated tools implement these changes, allowing for consistent and reproducible deployments. This methodology enables high velocity, empowers collaboration among team members, and heightens operational efficiencies through clear documentation and traceability.\n\n### Key components of a GitOps workflow\n\nA GitOps workflow is built around four fundamental components, each playing a vital role in streamlining the deployment and management of applications.\n\n__1. Git Repository:__ This serves as the foundational element, acting as the central source of truth for both the application's code and its configuration. By storing all critical information in the Git repository, teams ensure consistency and transparency across the development lifecycle.\n\n__2. Continuous Delivery (CD) Pipeline:__ The CD pipeline automates the processes of building, testing, and deploying the application. It bridges the gap between code development and deployment, facilitating a smooth transition from development to production environments while ensuring that the application meets quality standards.\n\n__3. Application Deployment Tool:__ This tool takes charge of deploying the application into the desired environment. It handles the orchestration and management of application resources, ensuring that the application is deployed correctly and efficiently according to the configurations defined in the Git repository.\n\n__4. Monitoring System:__ Essential for maintaining application health, the monitoring system keeps a vigilant eye on application performance. It gathers data and provides the development team with actionable insights and feedback, enabling them to make informed decisions and quickly address any issues that may arise.\n\nTogether, these components create a cohesive GitOps workflow that not only enhances the efficiency and reliability of application deployments but also aligns with modern DevOps practices by emphasizing automation, monitoring, and continuous improvement.\n",{"id":92},"what-is-a-git-ops-workflow",{"type":94,"componentName":94,"componentContent":95},"TopicsCallToAction",{"title":96,"text":97},"What makes GitOps work?","As with any emerging technology term, GitOps isn’t strictly defined the same way by everyone across the industry. GitOps principles can be applied to all types of infrastructure automation including VMs and containers, and can be very effective for teams looking to manage Kubernetes-based infrastructure.\n\nWhile many tools and methodologies promise faster deployment and seamless management between code and infrastructure, GitOps differs by focusing on a developer-centric experience. Infrastructure management through GitOps happens in the same version control system as the application development, enabling teams to collaborate more in a central location while benefiting from Git’s built-in features.",{"type":99,"componentName":99,"componentContent":100},"CommonResourcesContainer",{"header":101,"tabs":102},"Related Resources",[103,149,171,208],{"name":104,"items":105,"config":148},"Next steps",[106,117,125,133,140],{"header":107,"type":108,"image":109,"link":112},"Learn how GitLab streamlines GitOps workflows","Next step",{"altText":107,"config":110},{"src":111},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749159700/Website/Topics/img-fallback-cards-devops.png",{"text":113,"config":114},"Learn more",{"href":115,"icon":116,"modal":6},"/solutions/gitops/","Articles",{"header":118,"type":108,"image":119,"link":122},"Why GitLab’s collaboration technology is critical for GitOps",{"altText":118,"config":120},{"src":121},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749159303/Website/Topics/img-fallback-cards-cicd.png",{"text":113,"config":123},{"href":124,"icon":116,"modal":6},"/topics/gitops/gitops-gitlab-collaboration/",{"header":126,"type":108,"image":127,"link":130},"How teams use GitLab and Terraform for infrastructure as code",{"altText":126,"config":128},{"src":129},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749159707/Website/Topics/img-fallback-cards-gitops.png",{"text":113,"config":131},{"href":132,"icon":116,"modal":6},"/topics/gitops/gitlab-enables-infrastructure-as-code/",{"header":134,"type":108,"image":135,"link":137},"Multicloud deployment for GitOps using GitLab",{"altText":134,"config":136},{"src":129},{"text":113,"config":138},{"href":139,"icon":116,"modal":6},"/topics/gitops/gitops-multicloud-deployments-gitlab/",{"header":141,"type":108,"image":142,"link":145},"The benefits of GitOps workflows",{"altText":141,"config":143},{"src":144},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749159714/Website/Topics/img-fallback-cards-devsec.png",{"text":113,"config":146},{"href":147,"icon":116,"modal":6},"/topics/gitops/gitops-best-practices/",{"key":104},{"name":150,"items":151,"config":170},"Videos",[152,162],{"header":153,"type":154,"image":155,"link":158},"What is GitOps? Why is it important? How can you get started?","Video",{"altText":153,"config":156},{"src":157},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749159718/Website/Topics/what-is-gitops.jpg",{"text":159,"config":160},"Watch now",{"href":161,"icon":154,"modal":6},"https://www.youtube.com/embed/videoseries?list=PL05JrBw4t0KoixDjLVMzKwVgx0eNyDOIo",{"header":163,"type":154,"image":164,"link":167},"Using GitLab for GitOps to break down silos and encourage collaboration",{"altText":163,"config":165},{"src":166},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749159722/Website/Topics/using-gitlab-for-gitops.jpg",{"text":159,"config":168},{"href":169,"icon":154,"modal":6},"https://www.youtube.com/embed/videoseries?list=PLFGfElNsQthbno2laLgxeWLla48TpF8Kz",{"key":150},{"name":172,"items":173,"config":207},"Webcasts",[174,183,191,199],{"header":175,"type":176,"image":177,"link":180},"[Expert Panel Discussion] GitOps: The Future of Infrastructure Automation","Webcast",{"altText":175,"config":178},{"src":179},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749157556/Website/Topics/resources_1.jpg",{"text":113,"config":181},{"href":182,"icon":176,"modal":6},"/why/gitops-infrastructure-automation/",{"header":184,"type":176,"image":185,"link":188},"Managing infrastructure through GitOps with GitLab and Anthos",{"altText":184,"config":186},{"src":187},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749158613/Website/Topics/resources_9.jpg",{"text":113,"config":189},{"href":190,"icon":176,"modal":6},"/webcast/gitops-gitlab-anthos/",{"header":192,"type":176,"image":193,"link":196},"GitLab and HashiCorp - A holistic guide to GitOps and the Cloud Operating Model",{"altText":192,"config":194},{"src":195},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749158599/Website/Topics/resources_3.jpg",{"text":113,"config":197},{"href":198,"icon":176,"modal":6},"/webcast/gitlab-hashicorp-gitops/",{"header":200,"type":176,"image":201,"link":204},"Automating cloud infrastructure with GitLab and Terraform",{"altText":200,"config":202},{"src":203},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749158608/Website/Topics/resources_4.jpg",{"text":113,"config":205},{"href":206,"icon":176,"modal":6},"/webcast/gitops-gitlab-terraform/",{"key":172},{"name":209,"items":210,"config":219},"Books",[211],{"header":212,"type":213,"image":214,"link":217},"A beginner's guide to GitOps","Book",{"altText":212,"config":215},{"src":216},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749157557/Website/Topics/resources_10.jpg",{"text":113,"config":218},{"href":31,"icon":213,"modal":6},{"key":209},{"type":99,"componentName":99,"componentContent":221},{"header":222,"tabs":223},"Suggested Content",[224],{"name":225,"items":226,"config":252},"resources",[227,236,244],{"header":228,"type":229,"image":230,"link":233},"How to use GitLab and Ansible to create infrastructure as code","Web",{"altText":228,"config":231},{"src":232},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749159735/Website/Topics/gitlab-ansible-cover.png",{"text":113,"config":234},{"href":235,"icon":229,"modal":6},"/blog/using-ansible-and-gitlab-as-infrastructure-for-code/",{"header":237,"type":229,"image":238,"link":241},"Optimize GitOps workflow with version control from GitLab",{"altText":237,"config":239},{"src":240},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749159740/Website/Topics/gitops-image-unsplash.jpg",{"text":113,"config":242},{"href":243,"icon":229,"modal":6},"/blog/optimize-gitops-workflow/",{"header":245,"type":229,"image":246,"link":249},"Why GitOps should be the workflow of choice",{"altText":245,"config":247},{"src":248},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749159743/Website/Topics/shiro-hatori-WR-ifjFy4CI-unsplash.jpg",{"text":113,"config":250},{"href":251,"icon":229,"modal":6},"/blog/why-gitops-should-be-workflow-of-choice/",{"key":225},{"type":254,"componentName":254},"CommonNextSteps","content:en-us:topics:gitops:index.yml","yaml","content","en-us/topics/gitops/index.yml","en-us/topics/gitops/index","yml",{"_path":262,"_dir":263,"_draft":6,"_partial":6,"_locale":7,"data":264,"_id":673,"_type":256,"title":674,"_source":257,"_file":675,"_stem":676,"_extension":260},"/shared/en-us/main-navigation","en-us",{"logo":265,"freeTrial":270,"sales":275,"login":280,"items":285,"search":614,"minimal":645,"duo":664},{"config":266},{"href":267,"dataGaName":268,"dataGaLocation":269},"/","gitlab logo","header",{"text":271,"config":272},"Get free trial",{"href":273,"dataGaName":274,"dataGaLocation":269},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":276,"config":277},"Talk to sales",{"href":278,"dataGaName":279,"dataGaLocation":269},"/sales/","sales",{"text":281,"config":282},"Sign in",{"href":283,"dataGaName":284,"dataGaLocation":269},"https://gitlab.com/users/sign_in/","sign in",[286,329,425,430,535,595],{"text":287,"config":288,"cards":290,"footer":312},"Platform",{"dataNavLevelOne":289},"platform",[291,297,305],{"title":287,"description":292,"link":293},"The most comprehensive AI-powered DevSecOps Platform",{"text":294,"config":295},"Explore our Platform",{"href":296,"dataGaName":289,"dataGaLocation":269},"/platform/",{"title":298,"description":299,"link":300},"GitLab Duo (AI)","Build software faster with AI at every stage of development",{"text":301,"config":302},"Meet GitLab Duo",{"href":303,"dataGaName":304,"dataGaLocation":269},"/gitlab-duo/","gitlab duo ai",{"title":306,"description":307,"link":308},"Why GitLab","10 reasons why Enterprises choose GitLab",{"text":113,"config":309},{"href":310,"dataGaName":311,"dataGaLocation":269},"/why-gitlab/","why gitlab",{"title":313,"items":314},"Get started with",[315,320,325],{"text":316,"config":317},"Platform Engineering",{"href":318,"dataGaName":319,"dataGaLocation":269},"/solutions/platform-engineering/","platform engineering",{"text":321,"config":322},"Developer Experience",{"href":323,"dataGaName":324,"dataGaLocation":269},"/developer-experience/","Developer experience",{"text":326,"config":327},"MLOps",{"href":328,"dataGaName":326,"dataGaLocation":269},"/topics/devops/the-role-of-ai-in-devops/",{"text":330,"left":331,"config":332,"link":334,"lists":338,"footer":407},"Product",true,{"dataNavLevelOne":333},"solutions",{"text":335,"config":336},"View all Solutions",{"href":337,"dataGaName":333,"dataGaLocation":269},"/solutions/",[339,364,386],{"title":340,"description":341,"link":342,"items":347},"Automation","CI/CD and automation to accelerate deployment",{"config":343},{"icon":344,"href":345,"dataGaName":346,"dataGaLocation":269},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[348,352,356,360],{"text":349,"config":350},"CI/CD",{"href":351,"dataGaLocation":269,"dataGaName":349},"/solutions/continuous-integration/",{"text":353,"config":354},"AI-Assisted Development",{"href":303,"dataGaLocation":269,"dataGaName":355},"AI assisted development",{"text":357,"config":358},"Source Code Management",{"href":359,"dataGaLocation":269,"dataGaName":357},"/solutions/source-code-management/",{"text":361,"config":362},"Automated Software Delivery",{"href":345,"dataGaLocation":269,"dataGaName":363},"Automated software delivery",{"title":365,"description":366,"link":367,"items":372},"Security","Deliver code faster without compromising security",{"config":368},{"href":369,"dataGaName":370,"dataGaLocation":269,"icon":371},"/solutions/security-compliance/","security and compliance","ShieldCheckLight",[373,376,381],{"text":374,"config":375},"Security & Compliance",{"href":369,"dataGaLocation":269,"dataGaName":374},{"text":377,"config":378},"Software Supply Chain Security",{"href":379,"dataGaLocation":269,"dataGaName":380},"/solutions/supply-chain/","Software supply chain security",{"text":382,"config":383},"Compliance & Governance",{"href":384,"dataGaLocation":269,"dataGaName":385},"/solutions/continuous-software-compliance/","Compliance and governance",{"title":387,"link":388,"items":393},"Measurement",{"config":389},{"icon":390,"href":391,"dataGaName":392,"dataGaLocation":269},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[394,398,402],{"text":395,"config":396},"Visibility & Measurement",{"href":391,"dataGaLocation":269,"dataGaName":397},"Visibility and Measurement",{"text":399,"config":400},"Value Stream Management",{"href":401,"dataGaLocation":269,"dataGaName":399},"/solutions/value-stream-management/",{"text":403,"config":404},"Analytics & Insights",{"href":405,"dataGaLocation":269,"dataGaName":406},"/solutions/analytics-and-insights/","Analytics and insights",{"title":408,"items":409},"GitLab for",[410,415,420],{"text":411,"config":412},"Enterprise",{"href":413,"dataGaLocation":269,"dataGaName":414},"/enterprise/","enterprise",{"text":416,"config":417},"Small Business",{"href":418,"dataGaLocation":269,"dataGaName":419},"/small-business/","small business",{"text":421,"config":422},"Public Sector",{"href":423,"dataGaLocation":269,"dataGaName":424},"/solutions/public-sector/","public sector",{"text":426,"config":427},"Pricing",{"href":428,"dataGaName":429,"dataGaLocation":269,"dataNavLevelOne":429},"/pricing/","pricing",{"text":431,"config":432,"link":433,"lists":437,"feature":522},"Resources",{"dataNavLevelOne":225},{"text":434,"config":435},"View all resources",{"href":436,"dataGaName":225,"dataGaLocation":269},"/resources/",[438,471,494],{"title":439,"items":440},"Getting started",[441,446,451,456,461,466],{"text":442,"config":443},"Install",{"href":444,"dataGaName":445,"dataGaLocation":269},"/install/","install",{"text":447,"config":448},"Quick start guides",{"href":449,"dataGaName":450,"dataGaLocation":269},"/get-started/","quick setup checklists",{"text":452,"config":453},"Learn",{"href":454,"dataGaLocation":269,"dataGaName":455},"https://university.gitlab.com/","learn",{"text":457,"config":458},"Product documentation",{"href":459,"dataGaName":460,"dataGaLocation":269},"https://docs.gitlab.com/","product documentation",{"text":462,"config":463},"Best practice videos",{"href":464,"dataGaName":465,"dataGaLocation":269},"/getting-started-videos/","best practice videos",{"text":467,"config":468},"Integrations",{"href":469,"dataGaName":470,"dataGaLocation":269},"/integrations/","integrations",{"title":472,"items":473},"Discover",[474,479,484,489],{"text":475,"config":476},"Customer success stories",{"href":477,"dataGaName":478,"dataGaLocation":269},"/customers/","customer success stories",{"text":480,"config":481},"Blog",{"href":482,"dataGaName":483,"dataGaLocation":269},"/blog/","blog",{"text":485,"config":486},"Remote",{"href":487,"dataGaName":488,"dataGaLocation":269},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":490,"config":491},"TeamOps",{"href":492,"dataGaName":493,"dataGaLocation":269},"/teamops/","teamops",{"title":495,"items":496},"Connect",[497,502,507,512,517],{"text":498,"config":499},"GitLab Services",{"href":500,"dataGaName":501,"dataGaLocation":269},"/services/","services",{"text":503,"config":504},"Community",{"href":505,"dataGaName":506,"dataGaLocation":269},"/community/","community",{"text":508,"config":509},"Forum",{"href":510,"dataGaName":511,"dataGaLocation":269},"https://forum.gitlab.com/","forum",{"text":513,"config":514},"Events",{"href":515,"dataGaName":516,"dataGaLocation":269},"/events/","events",{"text":518,"config":519},"Partners",{"href":520,"dataGaName":521,"dataGaLocation":269},"/partners/","partners",{"backgroundColor":523,"textColor":524,"text":525,"image":526,"link":530},"#2f2a6b","#fff","Insights for the future of software development",{"altText":527,"config":528},"the source promo card",{"src":529},"/images/navigation/the-source-promo-card.svg",{"text":531,"config":532},"Read the latest",{"href":533,"dataGaName":534,"dataGaLocation":269},"/the-source/","the source",{"text":536,"config":537,"lists":539},"Company",{"dataNavLevelOne":538},"company",[540],{"items":541},[542,547,553,555,560,565,570,575,580,585,590],{"text":543,"config":544},"About",{"href":545,"dataGaName":546,"dataGaLocation":269},"/company/","about",{"text":548,"config":549,"footerGa":552},"Jobs",{"href":550,"dataGaName":551,"dataGaLocation":269},"/jobs/","jobs",{"dataGaName":551},{"text":513,"config":554},{"href":515,"dataGaName":516,"dataGaLocation":269},{"text":556,"config":557},"Leadership",{"href":558,"dataGaName":559,"dataGaLocation":269},"/company/team/e-group/","leadership",{"text":561,"config":562},"Team",{"href":563,"dataGaName":564,"dataGaLocation":269},"/company/team/","team",{"text":566,"config":567},"Handbook",{"href":568,"dataGaName":569,"dataGaLocation":269},"https://handbook.gitlab.com/","handbook",{"text":571,"config":572},"Investor relations",{"href":573,"dataGaName":574,"dataGaLocation":269},"https://ir.gitlab.com/","investor relations",{"text":576,"config":577},"Trust Center",{"href":578,"dataGaName":579,"dataGaLocation":269},"/security/","trust center",{"text":581,"config":582},"AI Transparency Center",{"href":583,"dataGaName":584,"dataGaLocation":269},"/ai-transparency-center/","ai transparency center",{"text":586,"config":587},"Newsletter",{"href":588,"dataGaName":589,"dataGaLocation":269},"/company/contact/","newsletter",{"text":591,"config":592},"Press",{"href":593,"dataGaName":594,"dataGaLocation":269},"/press/","press",{"text":596,"config":597,"lists":598},"Contact us",{"dataNavLevelOne":538},[599],{"items":600},[601,604,609],{"text":276,"config":602},{"href":278,"dataGaName":603,"dataGaLocation":269},"talk to sales",{"text":605,"config":606},"Get help",{"href":607,"dataGaName":608,"dataGaLocation":269},"/support/","get help",{"text":610,"config":611},"Customer portal",{"href":612,"dataGaName":613,"dataGaLocation":269},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":615,"login":616,"suggestions":623},"Close",{"text":617,"link":618},"To search repositories and projects, login to",{"text":619,"config":620},"gitlab.com",{"href":283,"dataGaName":621,"dataGaLocation":622},"search login","search",{"text":624,"default":625},"Suggestions",[626,628,632,634,638,642],{"text":298,"config":627},{"href":303,"dataGaName":298,"dataGaLocation":622},{"text":629,"config":630},"Code Suggestions (AI)",{"href":631,"dataGaName":629,"dataGaLocation":622},"/solutions/code-suggestions/",{"text":349,"config":633},{"href":351,"dataGaName":349,"dataGaLocation":622},{"text":635,"config":636},"GitLab on AWS",{"href":637,"dataGaName":635,"dataGaLocation":622},"/partners/technology-partners/aws/",{"text":639,"config":640},"GitLab on Google Cloud",{"href":641,"dataGaName":639,"dataGaLocation":622},"/partners/technology-partners/google-cloud-platform/",{"text":643,"config":644},"Why GitLab?",{"href":310,"dataGaName":643,"dataGaLocation":622},{"freeTrial":646,"mobileIcon":651,"desktopIcon":656,"secondaryButton":659},{"text":647,"config":648},"Start free trial",{"href":649,"dataGaName":274,"dataGaLocation":650},"https://gitlab.com/-/trials/new/","nav",{"altText":652,"config":653},"Gitlab Icon",{"src":654,"dataGaName":655,"dataGaLocation":650},"/images/brand/gitlab-logo-tanuki.svg","gitlab icon",{"altText":652,"config":657},{"src":658,"dataGaName":655,"dataGaLocation":650},"/images/brand/gitlab-logo-type.svg",{"text":660,"config":661},"Get Started",{"href":662,"dataGaName":663,"dataGaLocation":650},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":665,"mobileIcon":669,"desktopIcon":671},{"text":666,"config":667},"Learn more about GitLab Duo",{"href":303,"dataGaName":668,"dataGaLocation":650},"gitlab duo",{"altText":652,"config":670},{"src":654,"dataGaName":655,"dataGaLocation":650},{"altText":652,"config":672},{"src":658,"dataGaName":655,"dataGaLocation":650},"content:shared:en-us:main-navigation.yml","Main Navigation","shared/en-us/main-navigation.yml","shared/en-us/main-navigation",{"_path":678,"_dir":263,"_draft":6,"_partial":6,"_locale":7,"title":679,"button":680,"config":684,"_id":686,"_type":256,"_source":257,"_file":687,"_stem":688,"_extension":260},"/shared/en-us/banner","GitLab Duo Agent Platform is now in public beta!",{"text":113,"config":681},{"href":682,"dataGaName":683,"dataGaLocation":269},"/gitlab-duo/agent-platform/","duo banner",{"layout":685},"release","content:shared:en-us:banner.yml","shared/en-us/banner.yml","shared/en-us/banner",{"_path":690,"_dir":263,"_draft":6,"_partial":6,"_locale":7,"data":691,"_id":894,"_type":256,"title":895,"_source":257,"_file":896,"_stem":897,"_extension":260},"/shared/en-us/main-footer",{"text":692,"source":693,"edit":699,"contribute":704,"config":709,"items":714,"minimal":886},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":694,"config":695},"View page source",{"href":696,"dataGaName":697,"dataGaLocation":698},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":700,"config":701},"Edit this page",{"href":702,"dataGaName":703,"dataGaLocation":698},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":705,"config":706},"Please contribute",{"href":707,"dataGaName":708,"dataGaLocation":698},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":710,"facebook":711,"youtube":712,"linkedin":713},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[715,738,793,822,856],{"title":287,"links":716,"subMenu":721},[717],{"text":718,"config":719},"DevSecOps platform",{"href":296,"dataGaName":720,"dataGaLocation":698},"devsecops platform",[722],{"title":426,"links":723},[724,728,733],{"text":725,"config":726},"View plans",{"href":428,"dataGaName":727,"dataGaLocation":698},"view plans",{"text":729,"config":730},"Why Premium?",{"href":731,"dataGaName":732,"dataGaLocation":698},"/pricing/premium/","why premium",{"text":734,"config":735},"Why Ultimate?",{"href":736,"dataGaName":737,"dataGaLocation":698},"/pricing/ultimate/","why ultimate",{"title":739,"links":740},"Solutions",[741,746,749,751,756,761,765,768,772,775,777,780,783,788],{"text":742,"config":743},"Digital transformation",{"href":744,"dataGaName":745,"dataGaLocation":698},"/topics/digital-transformation/","digital transformation",{"text":374,"config":747},{"href":369,"dataGaName":748,"dataGaLocation":698},"security & compliance",{"text":363,"config":750},{"href":345,"dataGaName":346,"dataGaLocation":698},{"text":752,"config":753},"Agile development",{"href":754,"dataGaName":755,"dataGaLocation":698},"/solutions/agile-delivery/","agile delivery",{"text":757,"config":758},"Cloud transformation",{"href":759,"dataGaName":760,"dataGaLocation":698},"/topics/cloud-native/","cloud transformation",{"text":762,"config":763},"SCM",{"href":359,"dataGaName":764,"dataGaLocation":698},"source code management",{"text":349,"config":766},{"href":351,"dataGaName":767,"dataGaLocation":698},"continuous integration & delivery",{"text":769,"config":770},"Value stream management",{"href":401,"dataGaName":771,"dataGaLocation":698},"value stream management",{"text":21,"config":773},{"href":115,"dataGaName":774,"dataGaLocation":698},"gitops",{"text":411,"config":776},{"href":413,"dataGaName":414,"dataGaLocation":698},{"text":778,"config":779},"Small business",{"href":418,"dataGaName":419,"dataGaLocation":698},{"text":781,"config":782},"Public sector",{"href":423,"dataGaName":424,"dataGaLocation":698},{"text":784,"config":785},"Education",{"href":786,"dataGaName":787,"dataGaLocation":698},"/solutions/education/","education",{"text":789,"config":790},"Financial services",{"href":791,"dataGaName":792,"dataGaLocation":698},"/solutions/finance/","financial services",{"title":431,"links":794},[795,797,799,801,804,806,808,810,812,814,816,818,820],{"text":442,"config":796},{"href":444,"dataGaName":445,"dataGaLocation":698},{"text":447,"config":798},{"href":449,"dataGaName":450,"dataGaLocation":698},{"text":452,"config":800},{"href":454,"dataGaName":455,"dataGaLocation":698},{"text":457,"config":802},{"href":459,"dataGaName":803,"dataGaLocation":698},"docs",{"text":480,"config":805},{"href":482,"dataGaName":483,"dataGaLocation":698},{"text":475,"config":807},{"href":477,"dataGaName":478,"dataGaLocation":698},{"text":485,"config":809},{"href":487,"dataGaName":488,"dataGaLocation":698},{"text":498,"config":811},{"href":500,"dataGaName":501,"dataGaLocation":698},{"text":490,"config":813},{"href":492,"dataGaName":493,"dataGaLocation":698},{"text":503,"config":815},{"href":505,"dataGaName":506,"dataGaLocation":698},{"text":508,"config":817},{"href":510,"dataGaName":511,"dataGaLocation":698},{"text":513,"config":819},{"href":515,"dataGaName":516,"dataGaLocation":698},{"text":518,"config":821},{"href":520,"dataGaName":521,"dataGaLocation":698},{"title":536,"links":823},[824,826,828,830,832,834,836,840,845,847,849,851],{"text":543,"config":825},{"href":545,"dataGaName":538,"dataGaLocation":698},{"text":548,"config":827},{"href":550,"dataGaName":551,"dataGaLocation":698},{"text":556,"config":829},{"href":558,"dataGaName":559,"dataGaLocation":698},{"text":561,"config":831},{"href":563,"dataGaName":564,"dataGaLocation":698},{"text":566,"config":833},{"href":568,"dataGaName":569,"dataGaLocation":698},{"text":571,"config":835},{"href":573,"dataGaName":574,"dataGaLocation":698},{"text":837,"config":838},"Sustainability",{"href":839,"dataGaName":837,"dataGaLocation":698},"/sustainability/",{"text":841,"config":842},"Diversity, inclusion and belonging (DIB)",{"href":843,"dataGaName":844,"dataGaLocation":698},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":576,"config":846},{"href":578,"dataGaName":579,"dataGaLocation":698},{"text":586,"config":848},{"href":588,"dataGaName":589,"dataGaLocation":698},{"text":591,"config":850},{"href":593,"dataGaName":594,"dataGaLocation":698},{"text":852,"config":853},"Modern Slavery Transparency Statement",{"href":854,"dataGaName":855,"dataGaLocation":698},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":857,"links":858},"Contact Us",[859,862,864,866,871,876,881],{"text":860,"config":861},"Contact an expert",{"href":278,"dataGaName":279,"dataGaLocation":698},{"text":605,"config":863},{"href":607,"dataGaName":608,"dataGaLocation":698},{"text":610,"config":865},{"href":612,"dataGaName":613,"dataGaLocation":698},{"text":867,"config":868},"Status",{"href":869,"dataGaName":870,"dataGaLocation":698},"https://status.gitlab.com/","status",{"text":872,"config":873},"Terms of use",{"href":874,"dataGaName":875,"dataGaLocation":698},"/terms/","terms of use",{"text":877,"config":878},"Privacy statement",{"href":879,"dataGaName":880,"dataGaLocation":698},"/privacy/","privacy statement",{"text":882,"config":883},"Cookie preferences",{"dataGaName":884,"dataGaLocation":698,"id":885,"isOneTrustButton":331},"cookie preferences","ot-sdk-btn",{"items":887},[888,890,892],{"text":872,"config":889},{"href":874,"dataGaName":875,"dataGaLocation":698},{"text":877,"config":891},{"href":879,"dataGaName":880,"dataGaLocation":698},{"text":882,"config":893},{"dataGaName":884,"dataGaLocation":698,"id":885,"isOneTrustButton":331},"content:shared:en-us:main-footer.yml","Main Footer","shared/en-us/main-footer.yml","shared/en-us/main-footer",{"_path":899,"_dir":263,"_draft":6,"_partial":6,"_locale":7,"header":900,"eyebrow":901,"blurb":902,"button":903,"secondaryButton":907,"_id":909,"_type":256,"title":910,"_source":257,"_file":911,"_stem":912,"_extension":260},"/shared/en-us/next-steps","Start shipping better software faster","50%+ of the Fortune 100 trust GitLab","See what your team can do with the intelligent\n\n\nDevSecOps platform.\n",{"text":271,"config":904},{"href":905,"dataGaName":274,"dataGaLocation":906},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":276,"config":908},{"href":278,"dataGaName":279,"dataGaLocation":906},"content:shared:en-us:next-steps.yml","Next Steps","shared/en-us/next-steps.yml","shared/en-us/next-steps",1753207432869]