[{"data":1,"prerenderedAt":1245},["ShallowReactive",2],{"/blog/integrating-with-gitlab-secure":3,"navigation-en-us":464,"banner-en-us":888,"footer-en-us":898,"blog-post-authors-en-us-Taylor McCaslin":1141,"blog-related-posts-en-us-integrating-with-gitlab-secure":1157,"blog-promotions-en-us":1182,"next-steps-en-us":1235},{"id":4,"title":5,"authors":6,"body":8,"category":439,"date":440,"description":441,"extension":442,"externalUrl":443,"faq":443,"featured":444,"heroImage":445,"meta":446,"navigation":447,"path":448,"seo":449,"slug":453,"stem":454,"tags":455,"template":462,"updatedDate":443,"__hash__":463},"blogPosts/en-us/blog/integrating-with-gitlab-secure.md","How open source contributions accelerate GitLab Secure",[7],"Taylor McCaslin",{"type":9,"value":10,"toc":427},"minimark",[11,21,26,34,41,49,70,73,77,80,86,140,143,156,160,204,208,233,237,245,343,355,359,373,377,386,390,413],[12,13,14,15,20],"p",{},"When you think about security you probably imagine locks, gates, and closed systems. This is the more traditional approach to security but modern security is much more open and collaborative. If you want to build the most secure systems, there is nothing better than building those systems in the open. Open security practices allow you to get fast feedback from a broad audience with diverse perspectives, helping you build better more holistic solutions. That's our approach to building ",[16,17,19],"a",{"href":18},"/stages-devops-lifecycle/secure/","GitLab Secure"," at GitLab. We're leveraging amazing open source security projects, the collective contribution of the wider community, and providing an open integration system for anyone to build on top of GitLab security scanners.",[22,23,25],"h2",{"id":24},"shifting-left","Shifting left",[12,27,28,29,33],{},"Traditional security approaches are opaque and late in the development life cycle. Security scans are performed by isolated security experts long after developers write code, often after it's deployed to production. GitLab aims to make security an integrated and continuous process. That's why we've built ",[16,30,32],{"href":31},"/solutions/application-security-testing/","GitLab Secure directly integrated into the DevOps life cycle",". We are taking security tools and \"shifting left\" to make these tools more accessible to developers earlier in the development life cycle and integrated directly into developers' workflows.",[12,35,36],{},[37,38],"img",{"alt":39,"src":40},"Traditional Security vs DevSecOps with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782399246/blog/Content%20Images/traditional-security-vs-integrated.png",[12,42,43,44,48],{},"We created a detailed survey to learn more about the ",[16,45,47],{"href":46},"/resources/developer-survey/#security","2020 DevSecOps Landscape",". The results of the survey indicated that security is still a significant hurdle for most organizations that use DevOps, and show:",[50,51,52,61,64,67],"ul",{},[53,54,55,56,60],"li",{},"Only 13% of companies give developers access to the results of ",[16,57,59],{"href":58},"/topics/devsecops/","application security"," tests",[53,62,63],{},"Over 42% said testing happens too late in the lifecycle",[53,65,66],{},"36% reported it was hard to understand, process, and fix any discovered vulnerabilities",[53,68,69],{},"31% found prioritizing vulnerability remediation an uphill battle",[12,71,72],{},"These statistics illustrate why we are building security scanning directly into GitLab with our Secure features. We want to provide integrated security tools to broaden access and make it easier for everyone using GitLab to write more secure code.",[22,74,76],{"id":75},"integrating-security-tools-into-everyday-workflows","Integrating security tools into everyday workflows",[12,78,79],{},"GitLab Secure enables accurate, automated, and continuous assessment of your applications and services, allowing users to proactively identify vulnerabilities and weaknesses to minimize security risk. Secure is not an additional step in your development process nor an additional tool to introduce to your software stack. It is woven into your DevOps cycle, which allows you to adapt security testing and processes to your developers (and not the other way around).",[12,81,82,83,85],{},"Today ",[16,84,19],{"href":18}," offers support for a variety of security scanning tools including:",[50,87,88,95,102,109,116,119,126,133],{},[53,89,90],{},[16,91,94],{"href":92,"rel":93},"https://docs.gitlab.com/user/application_security/sast/",[],"Static Application Security Testing (SAST)",[53,96,97],{},[16,98,101],{"href":99,"rel":100},"https://docs.gitlab.com/user/application_security/dast/",[],"Dynamic Application Security Testing (DAST)",[53,103,104],{},[16,105,108],{"href":106,"rel":107},"https://docs.gitlab.com/user/application_security/container_scanning/",[],"Container Scanning",[53,110,111],{},[16,112,115],{"href":113,"rel":114},"https://docs.gitlab.com/user/application_security/dependency_scanning/",[],"Dependency Scanning",[53,117,118],{},"License Scanning",[53,120,121],{},[16,122,125],{"href":123,"rel":124},"https://docs.gitlab.com/user/application_security/secret_detection/",[],"Secret Detection",[53,127,128],{},[16,129,132],{"href":130,"rel":131},"https://docs.gitlab.com/user/application_security/api_fuzzing/",[],"API Fuzzing",[53,134,135],{},[16,136,139],{"href":137,"rel":138},"https://docs.gitlab.com/user/application_security/coverage_fuzzing/",[],"Coverage Fuzzing",[12,141,142],{},"All of these tools provide unique approaches to finding security problems. No one tool is best at everything, so we wanted to provide a way to leverage many tools in an integrated way, so you're always getting the most relevant security results. Take a look at how GitLab Secure integrates all these tools into common developer workflows on GitLab:",[144,145,148,149],"figure",{"className":146},[147],"video_container","\n  ",[150,151,155],"iframe",{"src":152,"frameBorder":153,"allowFullScreen":154},"https://www.youtube.com/embed/XnYstHObqlA","0","true"," ",[22,157,159],{"id":158},"democratizing-security","Democratizing security",[12,161,162,163,168,169,174,175,180,181,186,187,192,193,197,198,203],{},"With GitLab Secure, we've laid the foundation for bringing security tools directly into developers' workflows. At GitLab, we believe in a world where ",[16,164,167],{"href":165,"rel":166},"https://handbook.gitlab.com/handbook/company/culture/#everyone-can-contribute",[],"everyone can contribute",". ",[16,170,173],{"href":171,"rel":172},"https://handbook.gitlab.com/handbook/values/#collaboration",[],"Collaboration"," and ",[16,176,179],{"href":177,"rel":178},"https://handbook.gitlab.com/handbook/values/#transparency",[],"transparency"," are part of our core values. This approach changes the way we build security features. That's why as part of our ",[16,182,185],{"href":183,"rel":184},"https://handbook.gitlab.com/handbook/company/stewardship/#promises",[],"community stewardship promise"," we've made all our open source based ",[16,188,191],{"href":189,"rel":190},"https://docs.gitlab.com/releases/#sast-security-analyzers-available-for-all",[],"SAST scanners available for all users",", we offer ",[16,194,196],{"href":195},"/solutions/open-source/join/","open source projects and nonprofits free access to our best features",", and we've created a ",[16,199,202],{"href":200,"rel":201},"https://docs.gitlab.com/development/integrations/secure/",[],"security scanner integration framework"," to allow anyone to contribute security scan tools. Our entire product strategy and vision is also open source, so everyone can understand our vision for an integrated, accessible, and democratic approach to security. Together we can build a more open and modern security approach that helps developers everywhere write more secure code.",[22,205,207],{"id":206},"integrate-with-gitlab-secure","Integrate with GitLab Secure",[12,209,210,211,216,217,221,222,226,227,232],{},"Out of the box, GitLab provides a variety of pre-integrated and actively managed open source security tools, such as ",[16,212,215],{"href":213,"rel":214},"https://docs.gitlab.com/user/application_security/sast/#supported-languages-and-frameworks",[],"SAST's 16 analyzers"," that all support automatic language detection to always run the most relevant security tool. While GitLab will continue to update and build first-party integrations we wanted to ensure that GitLab contributors and integration partners could easily extend GitLab Secure for third-party tools. Our ",[16,218,220],{"href":200,"rel":219},[],"open integration framework"," makes it easy for anyone to leverage all of the ",[16,223,225],{"href":224},"/pricing/feature-comparison/","features of GitLab Secure"," with any scanning tool they may want to integrate. You can see all the tools GitLab users have requested support for and even add your own request in our ",[16,228,231],{"href":229,"rel":230},"https://gitlab.com/groups/gitlab-org/-/epics/297",[],"tracking epic",".",[22,234,236],{"id":235},"community-contributions","Community contributions",[12,238,239,240,244],{},"With our open integration framework we've seen members of the ",[16,241,243],{"href":242},"/community/","GitLab community"," contribute additional security scanners, help maintain the existing open source scanners we offer and expand the list of supported languages and frameworks we support. Our community contributors are helping every GitLab user have access to more accurate, sophisticated, and relevant security results. Here are some recent community contribution highlights:",[50,246,247,266,279,291,303,314,326,336],{},[53,248,249,254,255,260,261],{},[16,250,253],{"href":251,"rel":252},"https://gitlab.com/gitlab-org/gitlab/-/issues/233777",[],"Mobile SAST support via MobSF"," (contribution by ",[16,256,259],{"href":257,"rel":258},"https://gitlab.com/williams.brian-heb",[],"@williams.brian-heb",") - ",[16,262,265],{"href":263,"rel":264},"https://docs.gitlab.com/releases/#mvp",[],"GitLab 13.5 Release MVP",[53,267,268,254,273,278],{},[16,269,272],{"href":270,"rel":271},"https://gitlab.com/gitlab-org/gitlab/-/issues/36755",[],"Adding Helm Chart support",[16,274,277],{"href":275,"rel":276},"https://gitlab.com/agixid",[],"@agixid",")",[53,280,281,254,286,278],{},[16,282,285],{"href":283,"rel":284},"https://gitlab.com/gitlab-org/security-products/analyzers/fuzzers/pythonfuzz/-/merge_requests/1",[],"Performance improvements to Fuzz testing",[16,287,290],{"href":288,"rel":289},"https://gitlab.com/jvoisin",[],"@jvoisin",[53,292,293,254,298,278],{},[16,294,297],{"href":295,"rel":296},"https://gitlab.com/gitlab-org/gitlab/-/issues/205172",[],"Updates to secret detection",[16,299,302],{"href":300,"rel":301},"https://gitlab.com/tnir",[],"@tnir",[53,304,305,254,309,278],{},[16,306,308],{"href":295,"rel":307},[],"Dependency scanning buxfixes",[16,310,313],{"href":311,"rel":312},"https://gitlab.com/fcbrooks",[],"@fcbrooks",[53,315,316,254,321,278],{},[16,317,320],{"href":318,"rel":319},"https://gitlab.com/gitlab-org/gitlab/-/issues/216781",[],"Updates to Security Scanner underlying operating systems",[16,322,325],{"href":323,"rel":324},"https://gitlab.com/J0WI",[],"@J0WI",[53,327,328,254,333,278],{},[16,329,332],{"href":330,"rel":331},"https://gitlab.com/gitlab-org/security-products/analyzers/security-code-scan/-/merge_requests/14",[],"Contributions for .NET Framework Support",[16,334,277],{"href":275,"rel":335},[],[53,337,338],{},[16,339,342],{"href":340,"rel":341},"https://gitlab.com/gitlab-org/gitlab/-/issues?scope=all&utf8=%E2%9C%93&state=all&label_name%5B%5D=Community%20contribution&label_name%5B%5D=devops%3A%3Asecure",[],"See the full list of Secure community contributions",[12,344,345,346,174,350,232],{},"The open source nature of GitLab allows the community to help improve, maintain, and contribute features within GitLab. This is the ultimate value of open source. Even if we don't offer something, you can always extend or modify the behavior of GitLab to accomplish your goal. When compared to closed-source Security vendors, this is a huge benefit. The impact these contributions have is massive as GitLab Secure is used by tens of thousands of customers and performs hundreds of thousands of security scans every month. If you are interested in contributing, check out our ",[16,347,349],{"href":348},"/community/contribute/","contributor program",[16,351,354],{"href":352,"rel":353},"https://docs.gitlab.com/development/contributing/",[],"contributor documentation",[22,356,358],{"id":357},"integration-partners","Integration partners",[12,360,361,362,366,367,372],{},"Community contributions aren't the only way GitLab Secure is being extended. We have a variety of integration partners who provide security integrations that further expand the suite of security tools available to GitLab users. Check out the ",[16,363,365],{"href":364},"/partners/#security","GitLab Security integrations"," our partners offer. If you are a security vendor interested in integrating with GitLab, ",[16,368,371],{"href":369,"rel":370},"https://handbook.gitlab.com/handbook/alliances/integration-instructions/",[],"join our partner program"," today.",[22,374,376],{"id":375},"looking-ahead","Looking ahead",[12,378,379,380,385],{},"We've come a long way in the past few years with GitLab Secure and we're not done yet. Our vision is bold and our investment in security is large. ",[16,381,384],{"href":382,"rel":383},"https://docs.gitlab.com/user/application_security/",[],"Security is a team effort"," and we hope you'll join us on our mission to help developers write more secure code.",[22,387,389],{"id":388},"read-more-about-gitlab-sast","Read more about GitLab SAST:",[50,391,392,399,406],{},[53,393,394,395],{},"GitLab ",[16,396,398],{"href":382,"rel":397},[],"Secure documentation",[53,400,401,402],{},"Learn more about ",[16,403,405],{"href":200,"rel":404},[],"integrating with GitLab Secure",[53,407,408,409],{},"View the latest ",[16,410,412],{"href":411},"/blog/gitlab-latest-security-trends/","October 2020 GitLab security trends",[12,414,415,416,421,422],{},"Cover image by ",[16,417,420],{"href":418,"rel":419},"https://unsplash.com/@mitchel3uo",[],"Mitchell Luo"," on ",[16,423,426],{"href":424,"rel":425},"https://unsplash.com/s/photos/rowing-team",[],"Unsplash",{"title":428,"searchDepth":429,"depth":429,"links":430},"",2,[431,432,433,434,435,436,437,438],{"id":24,"depth":429,"text":25},{"id":75,"depth":429,"text":76},{"id":158,"depth":429,"text":159},{"id":206,"depth":429,"text":207},{"id":235,"depth":429,"text":236},{"id":357,"depth":429,"text":358},{"id":375,"depth":429,"text":376},{"id":388,"depth":429,"text":389},"open-source","2020-10-22","Community contributions and an open integration framework allows anyone to extend GitLab Secure","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668622/Blog/Hero%20Images/group-rowing-collaboration.jpg",{},true,"/en-us/blog/integrating-with-gitlab-secure",{"title":5,"description":441,"ogTitle":5,"ogDescription":441,"noIndex":444,"ogImage":445,"ogUrl":450,"ogSiteName":451,"ogType":452,"canonicalUrls":450},"https://about.gitlab.com/blog/integrating-with-gitlab-secure","https://about.gitlab.com","article","integrating-with-gitlab-secure","en-us/blog/integrating-with-gitlab-secure",[456,457,458,459,460,461],"CI/CD","DevOps","security","community","contributors","open source","BlogPost","WuOsTLhZvbBLpWQm8QHhUbhhDZRWH3tW6RbwIm8pU-k",{"logo":465,"freeTrial":470,"sales":475,"login":480,"items":485,"search":808,"minimal":839,"duo":858,"switchNav":867,"pricingDeployment":878},{"config":466},{"href":467,"dataGaName":468,"dataGaLocation":469},"/","gitlab logo","header",{"text":471,"config":472},"Get free trial",{"href":473,"dataGaName":474,"dataGaLocation":469},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":476,"config":477},"Request a demo",{"href":478,"dataGaName":479,"dataGaLocation":469},"/sales/?contact-topic=request-demo","sales",{"text":481,"config":482},"Sign in",{"href":483,"dataGaName":484,"dataGaLocation":469},"https://gitlab.com/users/sign_in/","sign in",[486,515,613,618,730,786],{"text":487,"config":488,"menu":490},"Platform",{"dataNavLevelOne":489},"platform",{"type":491,"columns":492},"cards",[493,499,507],{"title":487,"description":494,"link":495},"The intelligent orchestration platform for DevSecOps",{"text":496,"config":497},"Explore our Platform",{"href":498,"dataGaName":489,"dataGaLocation":469},"/platform/",{"title":500,"description":501,"link":502},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":503,"config":504},"Meet GitLab Duo",{"href":505,"dataGaName":506,"dataGaLocation":469},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":508,"description":509,"link":510},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":511,"config":512},"Learn more",{"href":513,"dataGaName":514,"dataGaLocation":469},"/why-gitlab/","why gitlab",{"text":516,"left":447,"config":517,"menu":519},"Product",{"dataNavLevelOne":518},"solutions",{"type":520,"link":521,"columns":525,"feature":592},"lists",{"text":522,"config":523},"View all Solutions",{"href":524,"dataGaName":518,"dataGaLocation":469},"/solutions/",[526,549,571],{"title":527,"description":528,"link":529,"items":534},"Automation","CI/CD and automation to accelerate deployment",{"config":530},{"icon":531,"href":532,"dataGaName":533,"dataGaLocation":469},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[535,538,541,545],{"text":456,"config":536},{"href":537,"dataGaLocation":469,"dataGaName":456},"/solutions/continuous-integration/",{"text":500,"config":539},{"href":505,"dataGaLocation":469,"dataGaName":540},"gitlab duo agent platform - product menu",{"text":542,"config":543},"Source Code Management",{"href":544,"dataGaLocation":469,"dataGaName":542},"/solutions/source-code-management/",{"text":546,"config":547},"Automated Software Delivery",{"href":532,"dataGaLocation":469,"dataGaName":548},"Automated software delivery",{"title":550,"description":551,"link":552,"items":556},"Security","Deliver code faster without compromising security",{"config":553},{"href":31,"dataGaName":554,"dataGaLocation":469,"icon":555},"security and compliance","ShieldCheckLight",[557,561,566],{"text":558,"config":559},"Application Security Testing",{"href":31,"dataGaName":560,"dataGaLocation":469},"Application security testing",{"text":562,"config":563},"Software Supply Chain Security",{"href":564,"dataGaLocation":469,"dataGaName":565},"/solutions/supply-chain/","Software supply chain security",{"text":567,"config":568},"Software Compliance",{"href":569,"dataGaName":570,"dataGaLocation":469},"/solutions/software-compliance/","software compliance",{"title":572,"link":573,"items":578},"Measurement",{"config":574},{"icon":575,"href":576,"dataGaName":577,"dataGaLocation":469},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[579,583,587],{"text":580,"config":581},"Visibility & Measurement",{"href":576,"dataGaLocation":469,"dataGaName":582},"Visibility and Measurement",{"text":584,"config":585},"Value Stream Management",{"href":586,"dataGaLocation":469,"dataGaName":584},"/solutions/value-stream-management/",{"text":588,"config":589},"Analytics & Insights",{"href":590,"dataGaLocation":469,"dataGaName":591},"/solutions/analytics-and-insights/","Analytics and insights",{"title":593,"type":520,"items":594},"GitLab for",[595,601,607],{"text":596,"config":597},"Enterprise",{"icon":598,"href":599,"dataGaLocation":469,"dataGaName":600},"Building","/enterprise/","enterprise",{"text":602,"config":603},"Small Business",{"icon":604,"href":605,"dataGaLocation":469,"dataGaName":606},"Work","/small-business/","small business",{"text":608,"config":609},"Public Sector",{"icon":610,"href":611,"dataGaLocation":469,"dataGaName":612},"Organization","/solutions/public-sector/","public sector",{"text":614,"config":615},"Pricing",{"href":616,"dataGaName":617,"dataGaLocation":469,"dataNavLevelOne":617},"/pricing/","pricing",{"text":619,"config":620,"menu":622},"Resources",{"dataNavLevelOne":621},"resources",{"type":520,"link":623,"columns":627,"feature":719},{"text":624,"config":625},"View all resources",{"href":626,"dataGaName":621,"dataGaLocation":469},"/resources/",[628,661,688],{"title":629,"items":630},"Getting started",[631,636,641,646,651,656],{"text":632,"config":633},"Install",{"href":634,"dataGaName":635,"dataGaLocation":469},"/install/","install",{"text":637,"config":638},"Quick start guides",{"href":639,"dataGaName":640,"dataGaLocation":469},"/get-started/","quick setup checklists",{"text":642,"config":643},"Learn",{"href":644,"dataGaLocation":469,"dataGaName":645},"https://university.gitlab.com/","learn",{"text":647,"config":648},"Product documentation",{"href":649,"dataGaName":650,"dataGaLocation":469},"https://docs.gitlab.com/","product documentation",{"text":652,"config":653},"Best practice videos",{"href":654,"dataGaName":655,"dataGaLocation":469},"/getting-started-videos/","best practice videos",{"text":657,"config":658},"Integrations",{"href":659,"dataGaName":660,"dataGaLocation":469},"/integrations/","integrations",{"title":662,"items":663},"Discover",[664,669,674,679,683],{"text":665,"config":666},"Customer success stories",{"href":667,"dataGaName":668,"dataGaLocation":469},"/customers/","customer success stories",{"text":670,"config":671},"Blog",{"href":672,"dataGaName":673,"dataGaLocation":469},"/blog/","blog",{"text":675,"config":676},"Demo Hub",{"href":677,"dataGaName":678,"dataGaLocation":469},"/demo-hub/","demo hub",{"text":680,"config":681},"The Source",{"href":682,"dataGaName":673,"dataGaLocation":469},"/the-source/",{"text":684,"config":685},"Remote",{"href":686,"dataGaName":687,"dataGaLocation":469},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":689,"items":690},"Connect",[691,696,701,704,709,714],{"text":692,"config":693},"GitLab Services",{"href":694,"dataGaName":695,"dataGaLocation":469},"/services/","services",{"text":697,"config":698},"Contribute",{"href":699,"dataGaName":700,"dataGaLocation":469},"https://contributors.gitlab.com","contribute",{"text":702,"config":703},"Community",{"href":242,"dataGaName":459,"dataGaLocation":469},{"text":705,"config":706},"Forum",{"href":707,"dataGaName":708,"dataGaLocation":469},"https://forum.gitlab.com/","forum",{"text":710,"config":711},"Events",{"href":712,"dataGaName":713,"dataGaLocation":469},"/events/","events",{"text":715,"config":716},"Partners",{"href":717,"dataGaName":718,"dataGaLocation":469},"/partners/","partners",{"config":720,"title":723,"text":724,"link":725},{"background":721,"textColor":722},"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":726,"config":727},"Read the latest",{"href":728,"dataGaName":729,"dataGaLocation":469},"/whats-new/","whats new",{"text":731,"config":732,"menu":734},"Company",{"dataNavLevelOne":733},"company",{"type":520,"columns":735},[736],{"items":737},[738,743,749,751,756,761,766,771,776,781],{"text":739,"config":740},"About",{"href":741,"dataGaName":742,"dataGaLocation":469},"/company/","about",{"text":744,"config":745,"footerGa":748},"Jobs",{"href":746,"dataGaName":747,"dataGaLocation":469},"/jobs/","jobs",{"dataGaName":747},{"text":710,"config":750},{"href":712,"dataGaName":713,"dataGaLocation":469},{"text":752,"config":753},"Leadership",{"href":754,"dataGaName":755,"dataGaLocation":469},"/company/team/e-group/","leadership",{"text":757,"config":758},"Handbook",{"href":759,"dataGaName":760,"dataGaLocation":469},"https://handbook.gitlab.com/","handbook",{"text":762,"config":763},"Investor relations",{"href":764,"dataGaName":765,"dataGaLocation":469},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":767,"config":768},"Trust Center",{"href":769,"dataGaName":770,"dataGaLocation":469},"/security/","trust center",{"text":772,"config":773},"AI Transparency Center",{"href":774,"dataGaName":775,"dataGaLocation":469},"/ai-transparency-center/","ai transparency center",{"text":777,"config":778},"Newsletter",{"href":779,"dataGaName":780,"dataGaLocation":469},"/company/contact/#contact-forms","newsletter",{"text":782,"config":783},"Press",{"href":784,"dataGaName":785,"dataGaLocation":469},"/press/","press",{"text":787,"config":788,"menu":789},"Contact us",{"dataNavLevelOne":733},{"type":520,"columns":790},[791],{"items":792},[793,798,803],{"text":794,"config":795},"Talk to sales",{"href":796,"dataGaName":797,"dataGaLocation":469},"/sales/","talk to sales",{"text":799,"config":800},"Support portal",{"href":801,"dataGaName":802,"dataGaLocation":469},"https://support.gitlab.com/hc/en-us","support portal",{"text":804,"config":805},"Customer portal",{"href":806,"dataGaName":807,"dataGaLocation":469},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":809,"login":810,"suggestions":817},"Close",{"text":811,"link":812},"To search repositories and projects, login to",{"text":813,"config":814},"gitlab.com",{"href":483,"dataGaName":815,"dataGaLocation":816},"search login","search",{"text":818,"default":819},"Suggestions",[820,822,826,828,832,836],{"text":500,"config":821},{"href":505,"dataGaName":500,"dataGaLocation":816},{"text":823,"config":824},"Code Suggestions (AI)",{"href":825,"dataGaName":823,"dataGaLocation":816},"/solutions/code-suggestions/",{"text":456,"config":827},{"href":537,"dataGaName":456,"dataGaLocation":816},{"text":829,"config":830},"GitLab on AWS",{"href":831,"dataGaName":829,"dataGaLocation":816},"/partners/technology-partners/aws/",{"text":833,"config":834},"GitLab on Google Cloud",{"href":835,"dataGaName":833,"dataGaLocation":816},"/partners/technology-partners/google-cloud-platform/",{"text":837,"config":838},"Why GitLab?",{"href":513,"dataGaName":837,"dataGaLocation":816},{"freeTrial":840,"mobileIcon":845,"desktopIcon":850,"secondaryButton":853},{"text":841,"config":842},"Start free trial",{"href":843,"dataGaName":474,"dataGaLocation":844},"https://gitlab.com/-/trials/new/","nav",{"altText":846,"config":847},"Gitlab Icon",{"src":848,"dataGaName":849,"dataGaLocation":844},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":846,"config":851},{"src":852,"dataGaName":849,"dataGaLocation":844},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":854,"config":855},"Get Started",{"href":856,"dataGaName":857,"dataGaLocation":844},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":859,"mobileIcon":863,"desktopIcon":865},{"text":860,"config":861},"Learn more about GitLab Duo",{"href":505,"dataGaName":862,"dataGaLocation":844},"gitlab duo",{"altText":846,"config":864},{"src":848,"dataGaName":849,"dataGaLocation":844},{"altText":846,"config":866},{"src":852,"dataGaName":849,"dataGaLocation":844},{"button":868,"mobileIcon":873,"desktopIcon":875},{"text":869,"config":870},"/switch",{"href":871,"dataGaName":872,"dataGaLocation":844},"#contact","switch",{"altText":846,"config":874},{"src":848,"dataGaName":849,"dataGaLocation":844},{"altText":846,"config":876},{"src":877,"dataGaName":849,"dataGaLocation":844},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":879,"mobileIcon":884,"desktopIcon":886},{"text":880,"config":881},"Back to pricing",{"href":616,"dataGaName":882,"dataGaLocation":844,"icon":883},"back to pricing","GoBack",{"altText":846,"config":885},{"src":848,"dataGaName":849,"dataGaLocation":844},{"altText":846,"config":887},{"src":852,"dataGaName":849,"dataGaLocation":844},{"title":889,"titleMobile":890,"button":891,"config":896},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":511,"config":892},{"href":893,"dataGaName":894,"dataGaLocation":895},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":897,"disabled":444},"release",{"data":899},{"text":900,"source":901,"edit":907,"contribute":912,"config":917,"items":922,"minimal":1130},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":902,"config":903},"View page source",{"href":904,"dataGaName":905,"dataGaLocation":906},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":908,"config":909},"Edit this page",{"href":910,"dataGaName":911,"dataGaLocation":906},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":913,"config":914},"Please contribute",{"href":915,"dataGaName":916,"dataGaLocation":906},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":918,"facebook":919,"youtube":920,"linkedin":921},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[923,970,1022,1066,1098],{"title":614,"links":924,"subMenu":939},[925,929,934],{"text":926,"config":927},"View plans",{"href":616,"dataGaName":928,"dataGaLocation":906},"view plans",{"text":930,"config":931},"Why Premium?",{"href":932,"dataGaName":933,"dataGaLocation":906},"/pricing/premium/","why premium",{"text":935,"config":936},"Why Ultimate?",{"href":937,"dataGaName":938,"dataGaLocation":906},"/pricing/ultimate/","why ultimate",[940],{"title":941,"links":942},"Contact Us",[943,946,948,950,955,960,965],{"text":944,"config":945},"Contact sales",{"href":796,"dataGaName":479,"dataGaLocation":906},{"text":799,"config":947},{"href":801,"dataGaName":802,"dataGaLocation":906},{"text":804,"config":949},{"href":806,"dataGaName":807,"dataGaLocation":906},{"text":951,"config":952},"Status",{"href":953,"dataGaName":954,"dataGaLocation":906},"https://status.gitlab.com/","status",{"text":956,"config":957},"Terms of use",{"href":958,"dataGaName":959,"dataGaLocation":906},"/terms/","terms of use",{"text":961,"config":962},"Privacy statement",{"href":963,"dataGaName":964,"dataGaLocation":906},"/privacy/","privacy statement",{"text":966,"config":967},"Cookie preferences",{"dataGaName":968,"dataGaLocation":906,"id":969,"isOneTrustButton":447},"cookie preferences","ot-sdk-btn",{"title":516,"links":971,"subMenu":980},[972,976],{"text":973,"config":974},"DevSecOps platform",{"href":498,"dataGaName":975,"dataGaLocation":906},"devsecops platform",{"text":977,"config":978},"AI-Assisted Development",{"href":505,"dataGaName":979,"dataGaLocation":906},"ai-assisted development",[981],{"title":982,"links":983},"Topics",[984,989,994,998,1003,1007,1012,1017],{"text":985,"config":986},"CICD",{"href":987,"dataGaName":988,"dataGaLocation":906},"/topics/ci-cd/","cicd",{"text":990,"config":991},"GitOps",{"href":992,"dataGaName":993,"dataGaLocation":906},"/topics/gitops/","gitops",{"text":457,"config":995},{"href":996,"dataGaName":997,"dataGaLocation":906},"/topics/devops/","devops",{"text":999,"config":1000},"Version Control",{"href":1001,"dataGaName":1002,"dataGaLocation":906},"/topics/version-control/","version control",{"text":1004,"config":1005},"DevSecOps",{"href":58,"dataGaName":1006,"dataGaLocation":906},"devsecops",{"text":1008,"config":1009},"Cloud Native",{"href":1010,"dataGaName":1011,"dataGaLocation":906},"/topics/cloud-native/","cloud native",{"text":1013,"config":1014},"AI for Coding",{"href":1015,"dataGaName":1016,"dataGaLocation":906},"/topics/devops/ai-for-coding/","ai for coding",{"text":1018,"config":1019},"Agentic AI",{"href":1020,"dataGaName":1021,"dataGaLocation":906},"/topics/agentic-ai/","agentic ai",{"title":1023,"links":1024},"Solutions",[1025,1027,1029,1034,1038,1041,1045,1048,1050,1053,1056,1061],{"text":558,"config":1026},{"href":31,"dataGaName":558,"dataGaLocation":906},{"text":548,"config":1028},{"href":532,"dataGaName":533,"dataGaLocation":906},{"text":1030,"config":1031},"Agile development",{"href":1032,"dataGaName":1033,"dataGaLocation":906},"/solutions/agile-delivery/","agile delivery",{"text":1035,"config":1036},"SCM",{"href":544,"dataGaName":1037,"dataGaLocation":906},"source code management",{"text":985,"config":1039},{"href":537,"dataGaName":1040,"dataGaLocation":906},"continuous integration & delivery",{"text":1042,"config":1043},"Value stream management",{"href":586,"dataGaName":1044,"dataGaLocation":906},"value stream management",{"text":990,"config":1046},{"href":1047,"dataGaName":993,"dataGaLocation":906},"/solutions/gitops/",{"text":596,"config":1049},{"href":599,"dataGaName":600,"dataGaLocation":906},{"text":1051,"config":1052},"Small business",{"href":605,"dataGaName":606,"dataGaLocation":906},{"text":1054,"config":1055},"Public sector",{"href":611,"dataGaName":612,"dataGaLocation":906},{"text":1057,"config":1058},"Education",{"href":1059,"dataGaName":1060,"dataGaLocation":906},"/solutions/education/","education",{"text":1062,"config":1063},"Financial services",{"href":1064,"dataGaName":1065,"dataGaLocation":906},"/solutions/finance/","financial services",{"title":619,"links":1067},[1068,1070,1072,1074,1077,1079,1082,1084,1086,1088,1090,1092,1094,1096],{"text":632,"config":1069},{"href":634,"dataGaName":635,"dataGaLocation":906},{"text":637,"config":1071},{"href":639,"dataGaName":640,"dataGaLocation":906},{"text":642,"config":1073},{"href":644,"dataGaName":645,"dataGaLocation":906},{"text":647,"config":1075},{"href":649,"dataGaName":1076,"dataGaLocation":906},"docs",{"text":670,"config":1078},{"href":672,"dataGaName":673,"dataGaLocation":906},{"text":1080,"config":1081},"What's new",{"href":728,"dataGaName":729,"dataGaLocation":906},{"text":665,"config":1083},{"href":667,"dataGaName":668,"dataGaLocation":906},{"text":684,"config":1085},{"href":686,"dataGaName":687,"dataGaLocation":906},{"text":692,"config":1087},{"href":694,"dataGaName":695,"dataGaLocation":906},{"text":697,"config":1089},{"href":699,"dataGaName":700,"dataGaLocation":906},{"text":702,"config":1091},{"href":242,"dataGaName":459,"dataGaLocation":906},{"text":705,"config":1093},{"href":707,"dataGaName":708,"dataGaLocation":906},{"text":710,"config":1095},{"href":712,"dataGaName":713,"dataGaLocation":906},{"text":715,"config":1097},{"href":717,"dataGaName":718,"dataGaLocation":906},{"title":731,"links":1099},[1100,1102,1104,1106,1108,1110,1114,1119,1121,1123,1125],{"text":739,"config":1101},{"href":741,"dataGaName":733,"dataGaLocation":906},{"text":744,"config":1103},{"href":746,"dataGaName":747,"dataGaLocation":906},{"text":752,"config":1105},{"href":754,"dataGaName":755,"dataGaLocation":906},{"text":757,"config":1107},{"href":759,"dataGaName":760,"dataGaLocation":906},{"text":762,"config":1109},{"href":764,"dataGaName":765,"dataGaLocation":906},{"text":1111,"config":1112},"Sustainability",{"href":1113,"dataGaName":1111,"dataGaLocation":906},"/sustainability/",{"text":1115,"config":1116},"Diversity, inclusion and belonging (DIB)",{"href":1117,"dataGaName":1118,"dataGaLocation":906},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":767,"config":1120},{"href":769,"dataGaName":770,"dataGaLocation":906},{"text":777,"config":1122},{"href":779,"dataGaName":780,"dataGaLocation":906},{"text":782,"config":1124},{"href":784,"dataGaName":785,"dataGaLocation":906},{"text":1126,"config":1127},"Modern Slavery Transparency Statement",{"href":1128,"dataGaName":1129,"dataGaLocation":906},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1131},[1132,1135,1138],{"text":1133,"config":1134},"Terms",{"href":958,"dataGaName":959,"dataGaLocation":906},{"text":1136,"config":1137},"Cookies",{"dataGaName":968,"dataGaLocation":906,"id":969,"isOneTrustButton":447},{"text":1139,"config":1140},"Privacy",{"href":963,"dataGaName":964,"dataGaLocation":906},[1142],{"id":1143,"title":1144,"body":443,"config":1145,"content":1147,"description":443,"extension":1151,"meta":1152,"navigation":447,"path":1153,"seo":1154,"stem":1155,"__hash__":1156},"blogAuthors/en-us/blog/authors/taylor-mccaslin.yml","Taylor Mccaslin",{"template":1146},"BlogAuthor",{"name":7,"config":1148},{"headshot":1149,"ctfId":1150},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667996/Blog/Author%20Headshots/tmccaslin-headshot.png","tmccaslin","yml",{},"/en-us/blog/authors/taylor-mccaslin",{},"en-us/blog/authors/taylor-mccaslin","7SPWjJi2CicE7Or_JC0bA95HjfK2vx1NkcbRlLVcgCk",[1158,1166,1174],{"title":1159,"description":1160,"heroImage":1161,"category":439,"date":1162,"authors":1163,"slug":1165,"externalUrl":443},"What's new in Git 2.55.0?","Learn about the new features and changes in Git 2.55, including a new git-history(1) fixup command, an fsmonitor daemon for Linux, pushing to remote groups, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782732487/ztwgrvlolpifo01vj8qc.png","2026-06-29",[1164],"Toon Claes","whats-new-in-git-2-55-0",{"title":1167,"description":1168,"heroImage":1169,"category":439,"date":1170,"authors":1171,"slug":1173,"externalUrl":443},"GitLab AI Hackathon 2026: Meet the winners","Nearly 7,000 developers built 600+ AI agents and flows on GitLab Duo Agent Platform. Find out who won and what they created.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776457632/llddiylsgwuze0u1rjks.png","2026-04-22",[1172],"Nick Veenhof","gitlab-ai-hackathon-2026-meet-the-winners",{"title":1175,"description":1176,"heroImage":1177,"category":439,"date":1178,"authors":1179,"slug":1181,"externalUrl":443},"What’s new in Git 2.54.0?","Learn about release contributions, including new repository maintenance, a new command to edit commit history, a replacement for git-sizer(1), and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782734716/ztwgrvlolpifo01vj8qc.png","2026-04-20",[1180],"Patrick Steinhardt","whats-new-in-git-2-54-0",{"promotions":1183},[1184,1198,1210,1221],{"id":1185,"categories":1186,"header":1188,"text":1189,"button":1190,"image":1195},"ai-modernization",[1187],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1191,"config":1192},"Get your AI maturity score",{"href":1193,"dataGaName":1194,"dataGaLocation":673},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1196},{"src":1197},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1199,"categories":1200,"header":1202,"text":1189,"button":1203,"image":1207},"devops-modernization",[1201,1006],"product","Are you just managing tools or shipping innovation?",{"text":1204,"config":1205},"Get your DevOps maturity score",{"href":1206,"dataGaName":1194,"dataGaLocation":673},"/assessments/devops-modernization-assessment/",{"config":1208},{"src":1209},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1211,"categories":1212,"header":1213,"text":1189,"button":1214,"image":1218},"security-modernization",[458],"Are you trading speed for security?",{"text":1215,"config":1216},"Get your security maturity score",{"href":1217,"dataGaName":1194,"dataGaLocation":673},"/assessments/security-modernization-assessment/",{"config":1219},{"src":1220},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1222,"paths":1223,"header":1226,"text":1227,"button":1228,"image":1233},"github-azure-migration",[1224,1225],"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":1229,"config":1230},"See how GitLab compares to GitHub",{"href":1231,"dataGaName":1232,"dataGaLocation":673},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1234},{"src":1209},{"header":1236,"blurb":1237,"button":1238,"secondaryButton":1243},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1239,"config":1240},"Get your free trial",{"href":1241,"dataGaName":474,"dataGaLocation":1242},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":944,"config":1244},{"href":796,"dataGaName":479,"dataGaLocation":1242},1786803735520]