[{"data":1,"prerenderedAt":987},["ShallowReactive",2],{"/blog/git-wars-switching-to-gitlab":3,"navigation-en-us":201,"banner-en-us":627,"footer-en-us":637,"blog-post-authors-en-us-Christopher Watson":882,"blog-related-posts-en-us-git-wars-switching-to-gitlab":897,"blog-promotions-en-us":923,"next-steps-en-us":977},{"id":4,"title":5,"authors":6,"body":8,"category":175,"date":176,"description":177,"extension":178,"externalUrl":179,"faq":179,"featured":180,"heroImage":181,"meta":182,"navigation":187,"path":188,"seo":189,"slug":193,"stem":194,"tags":195,"template":199,"updatedDate":179,"__hash__":200},"blogPosts/en-us/blog/git-wars-switching-to-gitlab.md","Git Wars: Why I'm switching to GitLab",[7],"Christopher Watson",{"type":9,"value":10,"toc":165},"minimark",[11,15,18,21,24,27,32,35,44,48,51,86,96,100,103,106,110,113,121,126,134,145],[12,13,14],"p",{},"It’s a well-known fact: GitHub has the market share when it comes to Git hosting, with Bitbucket following close behind due to their “unlimited private repositories” policy. But what if I told you that those weren’t your only options?",[12,16,17],{},"Now I have nothing against GitHub. It’s a great tool and I’ve been using it for years. It’s built primarily in a framework I love, Ruby on Rails, and its design is one we’ve all come to tolerate (if not love). With GitHub controlling most of the market share, most open source projects have also found a home there.",[12,19,20],{},"All of this being said, I’d be lying if I said that GitHub didn’t have its downsides. If you want private repositories, it’s going to cost you a pretty penny at $25 per month for your first five users, and then $9 per user after that. For comparison's sake, if you have 10 users in your organization it’s going to cost you $80 a month, and that’s a pretty small team. GitHub also has a sordid history when it comes to communicating with the community, implementing new features, and updating its somewhat dated look.",[12,22,23],{},"Bitbucket is another beast altogether. Created by the tech conglomerate Atlassian, Bitbucket is their answer to GitHub. Its claim to fame is that you can have unlimited private repositories for free…as long as your team has no more than five people.",[12,25,26],{},"This is actually the reason I first started using Bitbucket. However, if you do have more than five people, you’re going to pay, and the quality that you pay for isn’t all that great. I’ve worked on a number of projects on Bitbucket where my team was plagued by slow pulls/pushes, 503 errors when attempting to view a repo, and just overall jankyness. Besides that, their design also leaves a lot to be desired. The new design looks better, but also somehow makes things even more confusing (someone needs to learn the difference between UI and UX). To be completely honest I don’t have anything good to say about Bitbucket, so I’m going to continue.",[28,29,31],"h3",{"id":30},"so-whats-this-gitlab-thing-is-it-the-answer-to-all-of-our-git-hosting-woes","So what’s this GitLab thing? Is it the answer to all of our Git hosting woes?",[12,33,34],{},"Well yes and no. GitLab is a very good product, but it’s not perfect. It certainly isn’t as fast as GitHub when it comes to pushing and pulling repos. That being said, here are my reasons for switching to GitLab for my personal projects: GitLab is a Git hosting solution with a very large toolset and, objectively, a beautifully designed website (could it still use some work? Yes, but I digress). It is completely free for unlimited users, unlimited private repositories, and full access to most of the awesome features they provide.",[12,36,37,38,43],{},"Yes, they still have paid tiers for the ",[39,40,42],"a",{"href":41},"/enterprise/","enterprise",". You can’t expect them to keep an awesome project like this going without some kind of monetization, but for us little guys you’ll most likely never have to pay. That has got to be music to your ears.",[28,45,47],{"id":46},"so-you-said-it-has-awesome-features-to-what-are-you-referring","So you said it has “awesome features.” To what are you referring?",[12,49,50],{},"Well, there’s quite a list. Let’s take a look:",[52,53,54,62,68,74,80],"ol",{},[55,56,57,61],"li",{},[58,59,60],"strong",{},"Syntax themes!"," In case you didn’t get that, I’ll say it again: syntax themes! This has been something that I have been waiting a long time for GitHub to come out with, but GitLab beat them to the punch. We’re still probably a long way away from having custom themes, but the ability to have a dark theme when checking diffs in the browser is awesome.",[55,63,64,67],{},[58,65,66],{},"Registry:"," GitLab also has a built-in Docker registry for your projects. This is an amazingly powerful feature for those that want to keep their containers off of the public registry at hub.docker.com, but don’t want to pay for a private service.",[55,69,70,73],{},[58,71,72],{},"Pipelines/GitLab CI:"," Continuous integration is a huge time saver and a great way to make sure a pull request isn’t going to break your app. GitLab saves you from having to use an external CI service by having their own CI built right in. Not to say you can’t use an external CI if you want; GitLab has integrations for Jenkins, Bamboo, and much more.",[55,75,76,79],{},[58,77,78],{},"3rd Party Integrations:"," As mentioned above, GitLab has 3rd party integrations for several services such as CI, code coverage, messaging, etc. Their Slack integration is great for notifying your team when stuff has been merged into master. I will be honest though, I am sure GitHub has more integrations.",[55,81,82,85],{},[58,83,84],{},"All the features that make GitHub great:"," GitLab also ships with Wikis, Markdown-based readmes, etc. You don’t really lose any features by switching, but you gain a ton.",[12,87,88,93],{},[89,90],"img",{"alt":91,"src":92},"screengrab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398324/blog/Content%20Images/git-wars-2.png",[94,95],"br",{},[28,97,99],{"id":98},"so-if-its-so-great-why-isnt-everyone-using-it","So if it’s so great, why isn’t everyone using it?",[12,101,102],{},"There are a couple of answers to that question. First off, you have the market share factor. GitHub was one of the first Git hosting providers to market and they’ve managed to hold onto that. That means that if you want people to contribute to your project, it helps to have it on GitHub because chances are the people that you want to contribute have an account.",[12,104,105],{},"The other answer is related. Comfortability. People are simply comfortable with the tool they know and a lot of people aren’t like me (willing to throw everything out the window because I truly believe that the better product should get my business). This is the same reason so many people are still using Atlassian products. It’s definitely not because of their user interfaces.",[28,107,109],{"id":108},"so-where-should-i-go-from-here","So where should I go from here?",[12,111,112],{},"That depends on you. If you’re comfortable getting to know a new way of doing things, I’d suggest you take a look at GitLab. It really is worth the time you’ll put into it.",[12,114,115,116,120],{},"If you’re already ",[117,118,119],"em",{},"comfortable"," then go ahead and stick with what you know, but at least now you know that there are alternatives.",[122,123,125],"h2",{"id":124},"about-the-author","About the Author",[12,127,128,133],{},[39,129,132],{"href":130,"rel":131},"https://twitter.com/idev0urer",[],"Chris Watson"," is a freelance full-stack developer who occasionally enjoys sharing some of his many opinions with the world. He and his wife currently reside in sunny Arizona.",[12,135,136],{},[117,137,138,139,144],{},"This post was originally published on ",[39,140,143],{"href":141,"rel":142},"https://blog.cwatsondev.com/git-wars-why-im-switching-to-gitlab/",[],"blog.cwatsondev.com",".",[12,146,147,148,153,154,159,160],{},"“",[39,149,152],{"href":150,"rel":151},"https://www.flickr.com/photos/die_ani/9024130/",[],"paper battle","” by ",[39,155,158],{"href":156,"rel":157},"https://www.flickr.com/photos/die_ani/",[],"anika"," is licensed under ",[39,161,164],{"href":162,"rel":163},"https://creativecommons.org/publicdomain/zero/1.0/",[],"CC0 1.0",{"title":166,"searchDepth":167,"depth":167,"links":168},"",2,[169,171,172,173,174],{"id":30,"depth":170,"text":31},3,{"id":46,"depth":170,"text":47},{"id":98,"depth":170,"text":99},{"id":108,"depth":170,"text":109},{"id":124,"depth":167,"text":125},"engineering","2017-07-19","New GitLab user Christopher Watson puts us through our paces and weighs up his Git hosting options.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680411/Blog/Hero%20Images/git-wars-switching-to-gitlab.jpg",{"excerpt":183},{"type":9,"value":184},[185],[12,186,14],{},true,"/en-us/blog/git-wars-switching-to-gitlab",{"title":5,"description":177,"ogTitle":5,"ogDescription":177,"noIndex":180,"ogImage":181,"ogUrl":190,"ogSiteName":191,"ogType":192,"canonicalUrls":190},"https://about.gitlab.com/blog/git-wars-switching-to-gitlab","https://about.gitlab.com","article","git-wars-switching-to-gitlab","en-us/blog/git-wars-switching-to-gitlab",[196,197,198],"git","open source","user stories","BlogPost","hiHCYXk-K5Y5WE816AXMB4lCeQR40h31ks2dBbt3V5U",{"logo":202,"freeTrial":207,"sales":212,"login":217,"items":222,"search":547,"minimal":578,"duo":597,"switchNav":606,"pricingDeployment":617},{"config":203},{"href":204,"dataGaName":205,"dataGaLocation":206},"/","gitlab logo","header",{"text":208,"config":209},"Get free trial",{"href":210,"dataGaName":211,"dataGaLocation":206},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":213,"config":214},"Request a demo",{"href":215,"dataGaName":216,"dataGaLocation":206},"/sales/?contact-topic=request-demo","sales",{"text":218,"config":219},"Sign in",{"href":220,"dataGaName":221,"dataGaLocation":206},"https://gitlab.com/users/sign_in/","sign in",[223,252,350,355,469,525],{"text":224,"config":225,"menu":227},"Platform",{"dataNavLevelOne":226},"platform",{"type":228,"columns":229},"cards",[230,236,244],{"title":224,"description":231,"link":232},"The intelligent orchestration platform for DevSecOps",{"text":233,"config":234},"Explore our Platform",{"href":235,"dataGaName":226,"dataGaLocation":206},"/platform/",{"title":237,"description":238,"link":239},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":240,"config":241},"Meet GitLab Duo",{"href":242,"dataGaName":243,"dataGaLocation":206},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":245,"description":246,"link":247},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":248,"config":249},"Learn more",{"href":250,"dataGaName":251,"dataGaLocation":206},"/why-gitlab/","why gitlab",{"text":253,"left":187,"config":254,"menu":256},"Product",{"dataNavLevelOne":255},"solutions",{"type":257,"link":258,"columns":262,"feature":331},"lists",{"text":259,"config":260},"View all Solutions",{"href":261,"dataGaName":255,"dataGaLocation":206},"/solutions/",[263,287,310],{"title":264,"description":265,"link":266,"items":271},"Automation","CI/CD and automation to accelerate deployment",{"config":267},{"icon":268,"href":269,"dataGaName":270,"dataGaLocation":206},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[272,276,279,283],{"text":273,"config":274},"CI/CD",{"href":275,"dataGaLocation":206,"dataGaName":273},"/solutions/continuous-integration/",{"text":237,"config":277},{"href":242,"dataGaLocation":206,"dataGaName":278},"gitlab duo agent platform - product menu",{"text":280,"config":281},"Source Code Management",{"href":282,"dataGaLocation":206,"dataGaName":280},"/solutions/source-code-management/",{"text":284,"config":285},"Automated Software Delivery",{"href":269,"dataGaLocation":206,"dataGaName":286},"Automated software delivery",{"title":288,"description":289,"link":290,"items":295},"Security","Deliver code faster without compromising security",{"config":291},{"href":292,"dataGaName":293,"dataGaLocation":206,"icon":294},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[296,300,305],{"text":297,"config":298},"Application Security Testing",{"href":292,"dataGaName":299,"dataGaLocation":206},"Application security testing",{"text":301,"config":302},"Software Supply Chain Security",{"href":303,"dataGaLocation":206,"dataGaName":304},"/solutions/supply-chain/","Software supply chain security",{"text":306,"config":307},"Software Compliance",{"href":308,"dataGaName":309,"dataGaLocation":206},"/solutions/software-compliance/","software compliance",{"title":311,"link":312,"items":317},"Measurement",{"config":313},{"icon":314,"href":315,"dataGaName":316,"dataGaLocation":206},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[318,322,326],{"text":319,"config":320},"Visibility & Measurement",{"href":315,"dataGaLocation":206,"dataGaName":321},"Visibility and Measurement",{"text":323,"config":324},"Value Stream Management",{"href":325,"dataGaLocation":206,"dataGaName":323},"/solutions/value-stream-management/",{"text":327,"config":328},"Analytics & Insights",{"href":329,"dataGaLocation":206,"dataGaName":330},"/solutions/analytics-and-insights/","Analytics and insights",{"title":332,"type":257,"items":333},"GitLab for",[334,338,344],{"text":335,"config":336},"Enterprise",{"icon":337,"href":41,"dataGaLocation":206,"dataGaName":42},"Building",{"text":339,"config":340},"Small Business",{"icon":341,"href":342,"dataGaLocation":206,"dataGaName":343},"Work","/small-business/","small business",{"text":345,"config":346},"Public Sector",{"icon":347,"href":348,"dataGaLocation":206,"dataGaName":349},"Organization","/solutions/public-sector/","public sector",{"text":351,"config":352},"Pricing",{"href":353,"dataGaName":354,"dataGaLocation":206,"dataNavLevelOne":354},"/pricing/","pricing",{"text":356,"config":357,"menu":359},"Resources",{"dataNavLevelOne":358},"resources",{"type":257,"link":360,"columns":364,"feature":458},{"text":361,"config":362},"View all resources",{"href":363,"dataGaName":358,"dataGaLocation":206},"/resources/",[365,398,425],{"title":366,"items":367},"Getting started",[368,373,378,383,388,393],{"text":369,"config":370},"Install",{"href":371,"dataGaName":372,"dataGaLocation":206},"/install/","install",{"text":374,"config":375},"Quick start guides",{"href":376,"dataGaName":377,"dataGaLocation":206},"/get-started/","quick setup checklists",{"text":379,"config":380},"Learn",{"href":381,"dataGaLocation":206,"dataGaName":382},"https://university.gitlab.com/","learn",{"text":384,"config":385},"Product documentation",{"href":386,"dataGaName":387,"dataGaLocation":206},"https://docs.gitlab.com/","product documentation",{"text":389,"config":390},"Best practice videos",{"href":391,"dataGaName":392,"dataGaLocation":206},"/getting-started-videos/","best practice videos",{"text":394,"config":395},"Integrations",{"href":396,"dataGaName":397,"dataGaLocation":206},"/integrations/","integrations",{"title":399,"items":400},"Discover",[401,406,411,416,420],{"text":402,"config":403},"Customer success stories",{"href":404,"dataGaName":405,"dataGaLocation":206},"/customers/","customer success stories",{"text":407,"config":408},"Blog",{"href":409,"dataGaName":410,"dataGaLocation":206},"/blog/","blog",{"text":412,"config":413},"Demo Hub",{"href":414,"dataGaName":415,"dataGaLocation":206},"/demo-hub/","demo hub",{"text":417,"config":418},"The Source",{"href":419,"dataGaName":410,"dataGaLocation":206},"/the-source/",{"text":421,"config":422},"Remote",{"href":423,"dataGaName":424,"dataGaLocation":206},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":426,"items":427},"Connect",[428,433,438,443,448,453],{"text":429,"config":430},"GitLab Services",{"href":431,"dataGaName":432,"dataGaLocation":206},"/services/","services",{"text":434,"config":435},"Contribute",{"href":436,"dataGaName":437,"dataGaLocation":206},"https://contributors.gitlab.com","contribute",{"text":439,"config":440},"Community",{"href":441,"dataGaName":442,"dataGaLocation":206},"/community/","community",{"text":444,"config":445},"Forum",{"href":446,"dataGaName":447,"dataGaLocation":206},"https://forum.gitlab.com/","forum",{"text":449,"config":450},"Events",{"href":451,"dataGaName":452,"dataGaLocation":206},"/events/","events",{"text":454,"config":455},"Partners",{"href":456,"dataGaName":457,"dataGaLocation":206},"/partners/","partners",{"config":459,"title":462,"text":463,"link":464},{"background":460,"textColor":461},"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":465,"config":466},"Read the latest",{"href":467,"dataGaName":468,"dataGaLocation":206},"/whats-new/","whats new",{"text":470,"config":471,"menu":473},"Company",{"dataNavLevelOne":472},"company",{"type":257,"columns":474},[475],{"items":476},[477,482,488,490,495,500,505,510,515,520],{"text":478,"config":479},"About",{"href":480,"dataGaName":481,"dataGaLocation":206},"/company/","about",{"text":483,"config":484,"footerGa":487},"Jobs",{"href":485,"dataGaName":486,"dataGaLocation":206},"/jobs/","jobs",{"dataGaName":486},{"text":449,"config":489},{"href":451,"dataGaName":452,"dataGaLocation":206},{"text":491,"config":492},"Leadership",{"href":493,"dataGaName":494,"dataGaLocation":206},"/company/team/e-group/","leadership",{"text":496,"config":497},"Handbook",{"href":498,"dataGaName":499,"dataGaLocation":206},"https://handbook.gitlab.com/","handbook",{"text":501,"config":502},"Investor relations",{"href":503,"dataGaName":504,"dataGaLocation":206},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":506,"config":507},"Trust Center",{"href":508,"dataGaName":509,"dataGaLocation":206},"/security/","trust center",{"text":511,"config":512},"AI Transparency Center",{"href":513,"dataGaName":514,"dataGaLocation":206},"/ai-transparency-center/","ai transparency center",{"text":516,"config":517},"Newsletter",{"href":518,"dataGaName":519,"dataGaLocation":206},"/company/contact/#contact-forms","newsletter",{"text":521,"config":522},"Press",{"href":523,"dataGaName":524,"dataGaLocation":206},"/press/","press",{"text":526,"config":527,"menu":528},"Contact us",{"dataNavLevelOne":472},{"type":257,"columns":529},[530],{"items":531},[532,537,542],{"text":533,"config":534},"Talk to sales",{"href":535,"dataGaName":536,"dataGaLocation":206},"/sales/","talk to sales",{"text":538,"config":539},"Support portal",{"href":540,"dataGaName":541,"dataGaLocation":206},"https://support.gitlab.com/hc/en-us","support portal",{"text":543,"config":544},"Customer portal",{"href":545,"dataGaName":546,"dataGaLocation":206},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":548,"login":549,"suggestions":556},"Close",{"text":550,"link":551},"To search repositories and projects, login to",{"text":552,"config":553},"gitlab.com",{"href":220,"dataGaName":554,"dataGaLocation":555},"search login","search",{"text":557,"default":558},"Suggestions",[559,561,565,567,571,575],{"text":237,"config":560},{"href":242,"dataGaName":237,"dataGaLocation":555},{"text":562,"config":563},"Code Suggestions (AI)",{"href":564,"dataGaName":562,"dataGaLocation":555},"/solutions/code-suggestions/",{"text":273,"config":566},{"href":275,"dataGaName":273,"dataGaLocation":555},{"text":568,"config":569},"GitLab on AWS",{"href":570,"dataGaName":568,"dataGaLocation":555},"/partners/technology-partners/aws/",{"text":572,"config":573},"GitLab on Google Cloud",{"href":574,"dataGaName":572,"dataGaLocation":555},"/partners/technology-partners/google-cloud-platform/",{"text":576,"config":577},"Why GitLab?",{"href":250,"dataGaName":576,"dataGaLocation":555},{"freeTrial":579,"mobileIcon":584,"desktopIcon":589,"secondaryButton":592},{"text":580,"config":581},"Start free trial",{"href":582,"dataGaName":211,"dataGaLocation":583},"https://gitlab.com/-/trials/new/","nav",{"altText":585,"config":586},"Gitlab Icon",{"src":587,"dataGaName":588,"dataGaLocation":583},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":585,"config":590},{"src":591,"dataGaName":588,"dataGaLocation":583},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":593,"config":594},"Get Started",{"href":595,"dataGaName":596,"dataGaLocation":583},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":598,"mobileIcon":602,"desktopIcon":604},{"text":599,"config":600},"Learn more about GitLab Duo",{"href":242,"dataGaName":601,"dataGaLocation":583},"gitlab duo",{"altText":585,"config":603},{"src":587,"dataGaName":588,"dataGaLocation":583},{"altText":585,"config":605},{"src":591,"dataGaName":588,"dataGaLocation":583},{"button":607,"mobileIcon":612,"desktopIcon":614},{"text":608,"config":609},"/switch",{"href":610,"dataGaName":611,"dataGaLocation":583},"#contact","switch",{"altText":585,"config":613},{"src":587,"dataGaName":588,"dataGaLocation":583},{"altText":585,"config":615},{"src":616,"dataGaName":588,"dataGaLocation":583},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":618,"mobileIcon":623,"desktopIcon":625},{"text":619,"config":620},"Back to pricing",{"href":353,"dataGaName":621,"dataGaLocation":583,"icon":622},"back to pricing","GoBack",{"altText":585,"config":624},{"src":587,"dataGaName":588,"dataGaLocation":583},{"altText":585,"config":626},{"src":591,"dataGaName":588,"dataGaLocation":583},{"title":628,"titleMobile":629,"button":630,"config":635},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":248,"config":631},{"href":632,"dataGaName":633,"dataGaLocation":634},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":636,"disabled":180},"release",{"data":638},{"text":639,"source":640,"edit":646,"contribute":651,"config":656,"items":661,"minimal":871},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":641,"config":642},"View page source",{"href":643,"dataGaName":644,"dataGaLocation":645},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":647,"config":648},"Edit this page",{"href":649,"dataGaName":650,"dataGaLocation":645},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":652,"config":653},"Please contribute",{"href":654,"dataGaName":655,"dataGaLocation":645},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":657,"facebook":658,"youtube":659,"linkedin":660},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[662,709,763,807,839],{"title":351,"links":663,"subMenu":678},[664,668,673],{"text":665,"config":666},"View plans",{"href":353,"dataGaName":667,"dataGaLocation":645},"view plans",{"text":669,"config":670},"Why Premium?",{"href":671,"dataGaName":672,"dataGaLocation":645},"/pricing/premium/","why premium",{"text":674,"config":675},"Why Ultimate?",{"href":676,"dataGaName":677,"dataGaLocation":645},"/pricing/ultimate/","why ultimate",[679],{"title":680,"links":681},"Contact Us",[682,685,687,689,694,699,704],{"text":683,"config":684},"Contact sales",{"href":535,"dataGaName":216,"dataGaLocation":645},{"text":538,"config":686},{"href":540,"dataGaName":541,"dataGaLocation":645},{"text":543,"config":688},{"href":545,"dataGaName":546,"dataGaLocation":645},{"text":690,"config":691},"Status",{"href":692,"dataGaName":693,"dataGaLocation":645},"https://status.gitlab.com/","status",{"text":695,"config":696},"Terms of use",{"href":697,"dataGaName":698,"dataGaLocation":645},"/terms/","terms of use",{"text":700,"config":701},"Privacy statement",{"href":702,"dataGaName":703,"dataGaLocation":645},"/privacy/","privacy statement",{"text":705,"config":706},"Cookie preferences",{"dataGaName":707,"dataGaLocation":645,"id":708,"isOneTrustButton":187},"cookie preferences","ot-sdk-btn",{"title":253,"links":710,"subMenu":719},[711,715],{"text":712,"config":713},"DevSecOps platform",{"href":235,"dataGaName":714,"dataGaLocation":645},"devsecops platform",{"text":716,"config":717},"AI-Assisted Development",{"href":242,"dataGaName":718,"dataGaLocation":645},"ai-assisted development",[720],{"title":721,"links":722},"Topics",[723,728,733,738,743,748,753,758],{"text":724,"config":725},"CICD",{"href":726,"dataGaName":727,"dataGaLocation":645},"/topics/ci-cd/","cicd",{"text":729,"config":730},"GitOps",{"href":731,"dataGaName":732,"dataGaLocation":645},"/topics/gitops/","gitops",{"text":734,"config":735},"DevOps",{"href":736,"dataGaName":737,"dataGaLocation":645},"/topics/devops/","devops",{"text":739,"config":740},"Version Control",{"href":741,"dataGaName":742,"dataGaLocation":645},"/topics/version-control/","version control",{"text":744,"config":745},"DevSecOps",{"href":746,"dataGaName":747,"dataGaLocation":645},"/topics/devsecops/","devsecops",{"text":749,"config":750},"Cloud Native",{"href":751,"dataGaName":752,"dataGaLocation":645},"/topics/cloud-native/","cloud native",{"text":754,"config":755},"AI for Coding",{"href":756,"dataGaName":757,"dataGaLocation":645},"/topics/devops/ai-for-coding/","ai for coding",{"text":759,"config":760},"Agentic AI",{"href":761,"dataGaName":762,"dataGaLocation":645},"/topics/agentic-ai/","agentic ai",{"title":764,"links":765},"Solutions",[766,768,770,775,779,782,786,789,791,794,797,802],{"text":297,"config":767},{"href":292,"dataGaName":297,"dataGaLocation":645},{"text":286,"config":769},{"href":269,"dataGaName":270,"dataGaLocation":645},{"text":771,"config":772},"Agile development",{"href":773,"dataGaName":774,"dataGaLocation":645},"/solutions/agile-delivery/","agile delivery",{"text":776,"config":777},"SCM",{"href":282,"dataGaName":778,"dataGaLocation":645},"source code management",{"text":724,"config":780},{"href":275,"dataGaName":781,"dataGaLocation":645},"continuous integration & delivery",{"text":783,"config":784},"Value stream management",{"href":325,"dataGaName":785,"dataGaLocation":645},"value stream management",{"text":729,"config":787},{"href":788,"dataGaName":732,"dataGaLocation":645},"/solutions/gitops/",{"text":335,"config":790},{"href":41,"dataGaName":42,"dataGaLocation":645},{"text":792,"config":793},"Small business",{"href":342,"dataGaName":343,"dataGaLocation":645},{"text":795,"config":796},"Public sector",{"href":348,"dataGaName":349,"dataGaLocation":645},{"text":798,"config":799},"Education",{"href":800,"dataGaName":801,"dataGaLocation":645},"/solutions/education/","education",{"text":803,"config":804},"Financial services",{"href":805,"dataGaName":806,"dataGaLocation":645},"/solutions/finance/","financial services",{"title":356,"links":808},[809,811,813,815,818,820,823,825,827,829,831,833,835,837],{"text":369,"config":810},{"href":371,"dataGaName":372,"dataGaLocation":645},{"text":374,"config":812},{"href":376,"dataGaName":377,"dataGaLocation":645},{"text":379,"config":814},{"href":381,"dataGaName":382,"dataGaLocation":645},{"text":384,"config":816},{"href":386,"dataGaName":817,"dataGaLocation":645},"docs",{"text":407,"config":819},{"href":409,"dataGaName":410,"dataGaLocation":645},{"text":821,"config":822},"What's new",{"href":467,"dataGaName":468,"dataGaLocation":645},{"text":402,"config":824},{"href":404,"dataGaName":405,"dataGaLocation":645},{"text":421,"config":826},{"href":423,"dataGaName":424,"dataGaLocation":645},{"text":429,"config":828},{"href":431,"dataGaName":432,"dataGaLocation":645},{"text":434,"config":830},{"href":436,"dataGaName":437,"dataGaLocation":645},{"text":439,"config":832},{"href":441,"dataGaName":442,"dataGaLocation":645},{"text":444,"config":834},{"href":446,"dataGaName":447,"dataGaLocation":645},{"text":449,"config":836},{"href":451,"dataGaName":452,"dataGaLocation":645},{"text":454,"config":838},{"href":456,"dataGaName":457,"dataGaLocation":645},{"title":470,"links":840},[841,843,845,847,849,851,855,860,862,864,866],{"text":478,"config":842},{"href":480,"dataGaName":472,"dataGaLocation":645},{"text":483,"config":844},{"href":485,"dataGaName":486,"dataGaLocation":645},{"text":491,"config":846},{"href":493,"dataGaName":494,"dataGaLocation":645},{"text":496,"config":848},{"href":498,"dataGaName":499,"dataGaLocation":645},{"text":501,"config":850},{"href":503,"dataGaName":504,"dataGaLocation":645},{"text":852,"config":853},"Sustainability",{"href":854,"dataGaName":852,"dataGaLocation":645},"/sustainability/",{"text":856,"config":857},"Diversity, inclusion and belonging (DIB)",{"href":858,"dataGaName":859,"dataGaLocation":645},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":506,"config":861},{"href":508,"dataGaName":509,"dataGaLocation":645},{"text":516,"config":863},{"href":518,"dataGaName":519,"dataGaLocation":645},{"text":521,"config":865},{"href":523,"dataGaName":524,"dataGaLocation":645},{"text":867,"config":868},"Modern Slavery Transparency Statement",{"href":869,"dataGaName":870,"dataGaLocation":645},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":872},[873,876,879],{"text":874,"config":875},"Terms",{"href":697,"dataGaName":698,"dataGaLocation":645},{"text":877,"config":878},"Cookies",{"dataGaName":707,"dataGaLocation":645,"id":708,"isOneTrustButton":187},{"text":880,"config":881},"Privacy",{"href":702,"dataGaName":703,"dataGaLocation":645},[883],{"id":884,"title":7,"body":179,"config":885,"content":887,"description":179,"extension":891,"meta":892,"navigation":187,"path":893,"seo":894,"stem":895,"__hash__":896},"blogAuthors/en-us/blog/authors/christopher-watson.yml",{"template":886},"BlogAuthor",{"name":7,"config":888},{"headshot":889,"ctfId":890},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","Christopher-Watson","yml",{},"/en-us/blog/authors/christopher-watson",{},"en-us/blog/authors/christopher-watson","E_ULCZID96l1n8YuZCAP9r2aMDx1S6YC6r_cxNYJpqQ",[898,907,915],{"title":899,"description":900,"heroImage":901,"category":175,"date":902,"authors":903,"slug":906,"externalUrl":179},"Confidential AI for GitLab Self-Hosted","Give developers AI coding agents in GitLab Duo without source code leaving a hardware-encrypted boundary — no GPUs needed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-08-06",[904,905],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":908,"description":909,"heroImage":910,"category":175,"date":911,"authors":912,"slug":914,"externalUrl":179},"Green DevOps: Why carbon measurement belongs in your CI/CD pipeline","CI/CD pipelines have a hidden carbon cost. Here's why measuring it matters, and how you can get started with Eco CI and Carmen in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-07-09",[913],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":916,"description":917,"heroImage":918,"category":175,"date":919,"authors":920,"slug":922,"externalUrl":179},"How to build CI/CD observability at scale","This practical guide to GitLab pipeline analytics helps self-managed users gain operational insights using Prometheus and Grafana.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-28",[921],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":924},[925,939,951,963],{"id":926,"categories":927,"header":929,"text":930,"button":931,"image":936},"ai-modernization",[928],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":932,"config":933},"Get your AI maturity score",{"href":934,"dataGaName":935,"dataGaLocation":410},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":937},{"src":938},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":940,"categories":941,"header":943,"text":930,"button":944,"image":948},"devops-modernization",[942,747],"product","Are you just managing tools or shipping innovation?",{"text":945,"config":946},"Get your DevOps maturity score",{"href":947,"dataGaName":935,"dataGaLocation":410},"/assessments/devops-modernization-assessment/",{"config":949},{"src":950},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":952,"categories":953,"header":955,"text":930,"button":956,"image":960},"security-modernization",[954],"security","Are you trading speed for security?",{"text":957,"config":958},"Get your security maturity score",{"href":959,"dataGaName":935,"dataGaLocation":410},"/assessments/security-modernization-assessment/",{"config":961},{"src":962},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":964,"paths":965,"header":968,"text":969,"button":970,"image":975},"github-azure-migration",[966,967],"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":971,"config":972},"See how GitLab compares to GitHub",{"href":973,"dataGaName":974,"dataGaLocation":410},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":976},{"src":950},{"header":978,"blurb":979,"button":980,"secondaryButton":985},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":981,"config":982},"Get your free trial",{"href":983,"dataGaName":211,"dataGaLocation":984},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":683,"config":986},{"href":535,"dataGaName":216,"dataGaLocation":984},1786803749508]