[{"data":1,"prerenderedAt":1184},["ShallowReactive",2],{"/blog/streamline-the-path-to-cmmc-level-2-compliance-with-gitlab":3,"navigation-en-us":400,"banner-en-us":827,"footer-en-us":837,"blog-post-authors-en-us-Joseph Longo":1081,"blog-related-posts-en-us-streamline-the-path-to-cmmc-level-2-compliance-with-gitlab":1096,"blog-promotions-en-us":1121,"next-steps-en-us":1174},{"id":4,"title":5,"authors":6,"body":8,"category":379,"date":380,"description":381,"extension":382,"externalUrl":383,"faq":383,"featured":384,"heroImage":385,"meta":386,"navigation":387,"path":388,"seo":389,"slug":393,"stem":394,"tags":395,"template":398,"updatedDate":383,"__hash__":399},"blogPosts/en-us/blog/streamline-the-path-to-cmmc-level-2-compliance-with-gitlab.md","Streamline the path to CMMC Level 2 compliance with GitLab",[7],"Joseph Longo",{"type":9,"value":10,"toc":367},"minimark",[11,22,31,39,44,49,52,61,70,78,87,96,117,121,125,132,141,145,149,162,171,178,185,189,193,208,217,221,225,228,257,284,290,299,308,319,323,327,331,346,349,355,359],[12,13,14,15,21],"p",{},"The ",[16,17,20],"a",{"href":18,"rel":19},"https://dodcio.defense.gov/cmmc/About/",[],"Cybersecurity Maturity Model Certification (CMMC)"," Program is a framework developed by the U.S. Department of Defense (DoD) to enforce cybersecurity requirements and protect sensitive unclassified information shared by the DoD with contractors and subcontractors.",[12,23,24,25,30],{},"With the release of the CMMC ",[16,26,29],{"href":27,"rel":28},"https://www.federalregister.gov/documents/2024/10/15/2024-22905/cybersecurity-maturity-model-certification-cmmc-program",[],"final rule",", DoD contractors can begin to assess and align their controls and processes to be compliant with CMMC’s requirements.",[12,32,33,34,38],{},"This article explains how GitLab customers can leverage the GitLab platform to help satisfy relevant NIST SP 800-171 R2 requirements to ",[16,35,37],{"href":36},"/blog/achieve-cmmc-level-2-fast-with-gitlab-dedicated-for-government/","achieve CMMC Level 2 compliance",".",[40,41,43],"h3",{"id":42},"access-control","Access Control",[45,46,48],"h4",{"id":47},"_311-312-314-318-3111-3113-3115","3.1.1, 3.1.2, 3.1.4 - 3.1.8, 3.1.11 - 3.1.13, 3.1.15",[12,50,51],{},"GitLab’s access management features broadly support CMMC access control requirements.",[12,53,54,55,60],{},"GitLab’s ",[16,56,59],{"href":57,"rel":58},"https://docs.gitlab.com/user/permissions/",[],"role-based access control (RBAC) model"," enables customers to limit access to authorized users, implement separation of duties, and ensure such users are only granted the permissions they require to perform their responsibilities.",[12,62,63,64,69],{},"GitLab also supports ",[16,65,68],{"href":66,"rel":67},"https://docs.gitlab.com/user/custom_roles/",[],"custom roles"," enabling organizations to craft roles that more accurately meet their needs.",[12,71,54,72,77],{},[16,73,76],{"href":74,"rel":75},"https://docs.gitlab.com/user/compliance/audit_events/",[],"audit events"," capture different actions within GitLab, including administrative actions. With RBAC and audit events, organizations can prevent non-privileged users from performing administrative actions and log such actions when they do occur.",[12,79,80,81,86],{},"To address the National Institute of Standards and Technology (NIST) requirement for limiting unsuccessful logon attempts, GitLab addresses this in ",[16,82,85],{"href":83,"rel":84},"https://docs.gitlab.com/security/unlock_user/",[],"a few different ways"," depending on the particular service offering a customer is subscribed to.",[12,88,89,90,95],{},"By default, GitLab implements limits on how long user sessions can remain valid without activity. Self-managed customers can configure this ",[16,91,94],{"href":92,"rel":93},"https://docs.gitlab.com/administration/settings/account_and_limit_settings/#customize-the-default-session-duration",[],"setting"," to meet their organizational needs.",[12,97,98,99,104,105,110,111,116],{},"GitLab secures data in transit through ",[16,100,103],{"href":101,"rel":102},"https://docs.gitlab.com/security/tls_support/",[],"encryption"," and offers options for organizations to limit how their users connect to their GitLab namespace or instance.\nOrganizations can restrict access to their top level group by ",[16,106,109],{"href":107,"rel":108},"https://docs.gitlab.com/user/group/access_and_permissions/",[],"IP address",", and GitLab Dedicated customers can take a step further by using ",[16,112,115],{"href":113,"rel":114},"https://docs.gitlab.com/administration/dedicated/#aws-privatelink-connection-optional",[],"AWS PrivateLink"," as a connection gateway.",[40,118,120],{"id":119},"audit-and-accountability","Audit and Accountability",[45,122,124],{"id":123},"_331-332-338-339","3.3.1, 3.3.2, 3.3.8, 3.3.9",[12,126,127,128,131],{},"As mentioned, GitLab ",[16,129,76],{"href":74,"rel":130},[]," capture different actions within GitLab, including administrative actions. Audit events in GitLab are associated with an individual user responsible for the event, and the audit events themselves are immutable.",[12,133,134,135,140],{},"For organizations with a GitLab Ultimate license, ",[16,136,139],{"href":137,"rel":138},"https://docs.gitlab.com/user/compliance/audit_event_streaming/",[],"audit event streaming"," enables them to set a streaming destination for their top-level group’s audit events. GitLab Self-managed (Ultimate) and GitLab Dedicated customers can utilize the same functionality for streaming their GitLab instance audit events as well.",[40,142,144],{"id":143},"configuration-management","Configuration Management",[45,146,148],{"id":147},"_341-343-345","3.4.1 - 3.4.3, 3.4.5",[12,150,54,151,156,157,38],{},[16,152,155],{"href":153,"rel":154},"https://about.gitlab.com/pricing/feature-comparison/",[],"Create stage"," enables organizations to design, develop, and securely manage code and project data. Configurations for organizational systems can be stored, managed, and deployed leveraging GitLab’s ",[16,158,161],{"href":159,"rel":160},"https://about.gitlab.com/pricing/feature-comparison/#infrastructure_as_code",[],"infrastructure as code features",[12,163,164,165,170],{},"By managing configuration changes through code, organizations can track the lineage of each change request. ",[16,166,169],{"href":167,"rel":168},"https://docs.gitlab.com/user/project/merge_requests/approvals/rules/",[],"Merge request approval rules"," enable organizations to enforce how many approvals a merge request must receive before it can be merged, and which users are authorized to approve such requests. The history of each request is retained and can be reviewed through git.",[12,172,173],{},[174,175],"img",{"alt":176,"src":177},"CMMC - Multiple approvals","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098221/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750098221222.png",[179,180,181],"center",{},[182,183,184],"em",{},"Multiple approval rules",[40,186,188],{"id":187},"identification-and-authentication","Identification and Authentication",[45,190,192],{"id":191},"_351-353","3.5.1 - 3.5.3",[12,194,195,196,201,202,207],{},"GitLab supports SAML SSO integrations for ",[16,197,200],{"href":198,"rel":199},"https://docs.gitlab.com/user/group/saml_sso/",[],"GitLab.com groups",", ",[16,203,206],{"href":204,"rel":205},"https://docs.gitlab.com/integration/saml/",[],"GitLab Dedicated, and Self-managed instances",". Organizations can further simplify their GitLab identity and access management (IAM) processes by configuring System for Cross-domain Identity Management (SCIM).",[12,209,210,211,216],{},"GitLab also supports the use of ",[16,212,215],{"href":213,"rel":214},"https://docs.gitlab.com/user/profile/account/two_factor_authentication/",[],"multi-factor authentication",", thereby enabling organizations to choose the IAM controls that fit their organizational needs.",[40,218,220],{"id":219},"risk-assessment","Risk Assessment",[45,222,224],{"id":223},"_3112-3113","3.11.2 - 3.11.3",[12,226,227],{},"GitLab supports a powerful suite of scanning features to help create holistic and robust application development and supply chain management processes.",[12,229,230,231,201,236,201,241,201,246,251,252,38],{},"GitLab enables organizations to discover vulnerabilities through ",[16,232,235],{"href":233,"rel":234},"https://about.gitlab.com/pricing/feature-comparison/#static_application_security_testing",[],"Static Application Security Testing (SAST)",[16,237,240],{"href":238,"rel":239},"https://docs.gitlab.com/user/application_security/iac_scanning/",[],"Infrastructure as Code Security Scanning",[16,242,245],{"href":243,"rel":244},"https://about.gitlab.com/pricing/feature-comparison/#dynamic_application_security_testing",[],"Dynamic Application Security Testing (DAST)",[16,247,250],{"href":248,"rel":249},"https://about.gitlab.com/pricing/feature-comparison/#container_scanning",[],"Container Scanning",", and ",[16,253,256],{"href":254,"rel":255},"https://docs.gitlab.com/user/application_security/dependency_scanning/",[],"Dependency Scanning",[12,258,259,260,265,266,271,272,277,278,283],{},"Discovered vulnerabilities on the default branch can be viewed in aggregate through GitLab’s ",[16,261,264],{"href":262,"rel":263},"https://docs.gitlab.com/user/application_security/vulnerability_report/",[],"Vulnerability Report",". From there, organizations can dive into each finding’s ",[16,267,270],{"href":268,"rel":269},"https://docs.gitlab.com/user/application_security/vulnerabilities/",[],"Vulnerability page"," to ",[16,273,276],{"href":274,"rel":275},"https://docs.gitlab.com/user/application_security/vulnerabilities/#create-a-gitlab-issue-for-a-vulnerability",[],"create issues"," to track and discuss the vulnerability, and ",[16,279,282],{"href":280,"rel":281},"https://docs.gitlab.com/user/application_security/vulnerabilities/#resolve-a-vulnerability",[],"resolve the vulnerability",", either manually or via a merge request.",[12,285,286],{},[174,287],{"alt":288,"src":289},"CMMC - Vulnerability report","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098221/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750098221223.png",[12,291,292,293,298],{},"Additionally, GitLab Duo’s ",[16,294,297],{"href":295,"rel":296},"https://docs.gitlab.com/user/gitlab_duo/#vulnerability-explanation",[],"Vulnerability Explanation"," feature can be leveraged to better understand discovered vulnerabilities, how they can be exploited, and how to fix them.",[12,300,301,302,307],{},"To go a step further, AWS recently ",[16,303,306],{"href":304,"rel":305},"https://about.gitlab.com/blog/gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai/",[],"announced GitLab Duo with Amazon Q",". Within a GitLab merge request, Amazon Q developer scans all changes looking for security vulnerabilities, quality issues such as code that doesn’t follow best practices, and any other potential problems with the code. After it’s finished, it will add each finding as a comment that includes a snippet of the problematic code found, a description of the issue, and a severity rating. Amazon Q with GitLab Duo will also recommend a code security fix.",[309,310,311],"div",{},[312,313],"iframe",{"src":314,"frameBorder":315,"allow":316,"style":317,"title":318},"https://player.vimeo.com/video/1033653810?badge=0&autopause=0&player_id=0&app_id=58479","0","autoplay; fullscreen; picture-in-picture; clipboard-write","position:absolute;top:0;left:0;width:100%;height:100%;","GitLab Duo and Amazon Q",[320,321],"script",{"src":322},"https://player.vimeo.com/api/player.js",[40,324,326],{"id":325},"system-and-information-integrity","System and Information Integrity",[45,328,330],{"id":329},"_3141","3.14.1",[12,332,333,334,339,340,345],{},"As mentioned above, GitLab provides numerous features to identify vulnerabilities. Organizations can structure ",[16,335,338],{"href":336,"rel":337},"https://docs.gitlab.com/user/application_security/policies/scan_execution_policies/",[],"scan execution policies"," to help ensure vulnerabilities are identified expediently when commits are pushed and on a regular schedule. Identified vulnerabilities can be ",[16,341,344],{"href":342,"rel":343},"https://docs.gitlab.com/user/application_security/vulnerabilities/#link-a-vulnerability-to-existing-gitlab-issues",[],"linked"," to issues for identified software flaws to support a more informed and unified remediation process.",[12,347,348],{},"Here is an at-a-glance look at GitLab's companion features for CMMC Level 2:",[12,350,351],{},[174,352],{"alt":353,"src":354},"Table of CMMC Level 2 compliance capabilities in GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098221/Blog/Content%20Images/Blog/Content%20Images/cmmctable_aHR0cHM6_1750098221225.png",[40,356,358],{"id":357},"learn-more-about-cmmc-level-2-compliance-with-gitlab","Learn more about CMMC Level 2 compliance with GitLab",[12,360,361,362,38],{},"As the most comprehensive AI-powered DevSecOps platform, GitLab enables its customers to meet a broad range of regulatory and compliance requirements through an extensive and rich feature set. You can dig deeper into these features with our ",[16,363,366],{"href":364,"rel":365},"https://docs.gitlab.com/tutorials/",[],"library of tutorials",{"title":368,"searchDepth":369,"depth":369,"links":370},"",2,[371,373,374,375,376,377,378],{"id":42,"depth":372,"text":43},3,{"id":119,"depth":372,"text":120},{"id":143,"depth":372,"text":144},{"id":187,"depth":372,"text":188},{"id":219,"depth":372,"text":220},{"id":325,"depth":372,"text":326},{"id":357,"depth":372,"text":358},"security","2025-01-07","Learn how GitLab’s comprehensive, AI-powered DevSecOps platform can help organizations meet Cybersecurity Maturity Model Certification Level 2 compliance requirements.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098208/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_479904468%20%281%29_4lmOEVlaXP0YC3hSFmOw6i_1750098208185.jpg",{},true,"/en-us/blog/streamline-the-path-to-cmmc-level-2-compliance-with-gitlab",{"title":5,"description":381,"ogTitle":5,"ogDescription":381,"noIndex":384,"ogImage":385,"ogUrl":390,"ogSiteName":391,"ogType":392,"canonicalUrls":390},"https://about.gitlab.com/blog/streamline-the-path-to-cmmc-level-2-compliance-with-gitlab","https://about.gitlab.com","article","streamline-the-path-to-cmmc-level-2-compliance-with-gitlab","en-us/blog/streamline-the-path-to-cmmc-level-2-compliance-with-gitlab",[379,396,397],"DevSecOps platform","public sector","BlogPost","da-h4GvAfj7DN45kRf2dvJSFealfEdj51T5-hlwCClo",{"logo":401,"freeTrial":406,"sales":411,"login":416,"items":421,"search":747,"minimal":778,"duo":797,"switchNav":806,"pricingDeployment":817},{"config":402},{"href":403,"dataGaName":404,"dataGaLocation":405},"/","gitlab logo","header",{"text":407,"config":408},"Get free trial",{"href":409,"dataGaName":410,"dataGaLocation":405},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":412,"config":413},"Request a demo",{"href":414,"dataGaName":415,"dataGaLocation":405},"/sales/?contact-topic=request-demo","sales",{"text":417,"config":418},"Sign in",{"href":419,"dataGaName":420,"dataGaLocation":405},"https://gitlab.com/users/sign_in/","sign in",[422,451,550,555,669,725],{"text":423,"config":424,"menu":426},"Platform",{"dataNavLevelOne":425},"platform",{"type":427,"columns":428},"cards",[429,435,443],{"title":423,"description":430,"link":431},"The intelligent orchestration platform for DevSecOps",{"text":432,"config":433},"Explore our Platform",{"href":434,"dataGaName":425,"dataGaLocation":405},"/platform/",{"title":436,"description":437,"link":438},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":439,"config":440},"Meet GitLab Duo",{"href":441,"dataGaName":442,"dataGaLocation":405},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":444,"description":445,"link":446},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":447,"config":448},"Learn more",{"href":449,"dataGaName":450,"dataGaLocation":405},"/why-gitlab/","why gitlab",{"text":452,"left":387,"config":453,"menu":455},"Product",{"dataNavLevelOne":454},"solutions",{"type":456,"link":457,"columns":461,"feature":530},"lists",{"text":458,"config":459},"View all Solutions",{"href":460,"dataGaName":454,"dataGaLocation":405},"/solutions/",[462,486,509],{"title":463,"description":464,"link":465,"items":470},"Automation","CI/CD and automation to accelerate deployment",{"config":466},{"icon":467,"href":468,"dataGaName":469,"dataGaLocation":405},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[471,475,478,482],{"text":472,"config":473},"CI/CD",{"href":474,"dataGaLocation":405,"dataGaName":472},"/solutions/continuous-integration/",{"text":436,"config":476},{"href":441,"dataGaLocation":405,"dataGaName":477},"gitlab duo agent platform - product menu",{"text":479,"config":480},"Source Code Management",{"href":481,"dataGaLocation":405,"dataGaName":479},"/solutions/source-code-management/",{"text":483,"config":484},"Automated Software Delivery",{"href":468,"dataGaLocation":405,"dataGaName":485},"Automated software delivery",{"title":487,"description":488,"link":489,"items":494},"Security","Deliver code faster without compromising security",{"config":490},{"href":491,"dataGaName":492,"dataGaLocation":405,"icon":493},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[495,499,504],{"text":496,"config":497},"Application Security Testing",{"href":491,"dataGaName":498,"dataGaLocation":405},"Application security testing",{"text":500,"config":501},"Software Supply Chain Security",{"href":502,"dataGaLocation":405,"dataGaName":503},"/solutions/supply-chain/","Software supply chain security",{"text":505,"config":506},"Software Compliance",{"href":507,"dataGaName":508,"dataGaLocation":405},"/solutions/software-compliance/","software compliance",{"title":510,"link":511,"items":516},"Measurement",{"config":512},{"icon":513,"href":514,"dataGaName":515,"dataGaLocation":405},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[517,521,525],{"text":518,"config":519},"Visibility & Measurement",{"href":514,"dataGaLocation":405,"dataGaName":520},"Visibility and Measurement",{"text":522,"config":523},"Value Stream Management",{"href":524,"dataGaLocation":405,"dataGaName":522},"/solutions/value-stream-management/",{"text":526,"config":527},"Analytics & Insights",{"href":528,"dataGaLocation":405,"dataGaName":529},"/solutions/analytics-and-insights/","Analytics and insights",{"title":531,"type":456,"items":532},"GitLab for",[533,539,545],{"text":534,"config":535},"Enterprise",{"icon":536,"href":537,"dataGaLocation":405,"dataGaName":538},"Building","/enterprise/","enterprise",{"text":540,"config":541},"Small Business",{"icon":542,"href":543,"dataGaLocation":405,"dataGaName":544},"Work","/small-business/","small business",{"text":546,"config":547},"Public Sector",{"icon":548,"href":549,"dataGaLocation":405,"dataGaName":397},"Organization","/solutions/public-sector/",{"text":551,"config":552},"Pricing",{"href":553,"dataGaName":554,"dataGaLocation":405,"dataNavLevelOne":554},"/pricing/","pricing",{"text":556,"config":557,"menu":559},"Resources",{"dataNavLevelOne":558},"resources",{"type":456,"link":560,"columns":564,"feature":658},{"text":561,"config":562},"View all resources",{"href":563,"dataGaName":558,"dataGaLocation":405},"/resources/",[565,598,625],{"title":566,"items":567},"Getting started",[568,573,578,583,588,593],{"text":569,"config":570},"Install",{"href":571,"dataGaName":572,"dataGaLocation":405},"/install/","install",{"text":574,"config":575},"Quick start guides",{"href":576,"dataGaName":577,"dataGaLocation":405},"/get-started/","quick setup checklists",{"text":579,"config":580},"Learn",{"href":581,"dataGaLocation":405,"dataGaName":582},"https://university.gitlab.com/","learn",{"text":584,"config":585},"Product documentation",{"href":586,"dataGaName":587,"dataGaLocation":405},"https://docs.gitlab.com/","product documentation",{"text":589,"config":590},"Best practice videos",{"href":591,"dataGaName":592,"dataGaLocation":405},"/getting-started-videos/","best practice videos",{"text":594,"config":595},"Integrations",{"href":596,"dataGaName":597,"dataGaLocation":405},"/integrations/","integrations",{"title":599,"items":600},"Discover",[601,606,611,616,620],{"text":602,"config":603},"Customer success stories",{"href":604,"dataGaName":605,"dataGaLocation":405},"/customers/","customer success stories",{"text":607,"config":608},"Blog",{"href":609,"dataGaName":610,"dataGaLocation":405},"/blog/","blog",{"text":612,"config":613},"Demo Hub",{"href":614,"dataGaName":615,"dataGaLocation":405},"/demo-hub/","demo hub",{"text":617,"config":618},"The Source",{"href":619,"dataGaName":610,"dataGaLocation":405},"/the-source/",{"text":621,"config":622},"Remote",{"href":623,"dataGaName":624,"dataGaLocation":405},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":626,"items":627},"Connect",[628,633,638,643,648,653],{"text":629,"config":630},"GitLab Services",{"href":631,"dataGaName":632,"dataGaLocation":405},"/services/","services",{"text":634,"config":635},"Contribute",{"href":636,"dataGaName":637,"dataGaLocation":405},"https://contributors.gitlab.com","contribute",{"text":639,"config":640},"Community",{"href":641,"dataGaName":642,"dataGaLocation":405},"/community/","community",{"text":644,"config":645},"Forum",{"href":646,"dataGaName":647,"dataGaLocation":405},"https://forum.gitlab.com/","forum",{"text":649,"config":650},"Events",{"href":651,"dataGaName":652,"dataGaLocation":405},"/events/","events",{"text":654,"config":655},"Partners",{"href":656,"dataGaName":657,"dataGaLocation":405},"/partners/","partners",{"config":659,"title":662,"text":663,"link":664},{"background":660,"textColor":661},"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":665,"config":666},"Read the latest",{"href":667,"dataGaName":668,"dataGaLocation":405},"/whats-new/","whats new",{"text":670,"config":671,"menu":673},"Company",{"dataNavLevelOne":672},"company",{"type":456,"columns":674},[675],{"items":676},[677,682,688,690,695,700,705,710,715,720],{"text":678,"config":679},"About",{"href":680,"dataGaName":681,"dataGaLocation":405},"/company/","about",{"text":683,"config":684,"footerGa":687},"Jobs",{"href":685,"dataGaName":686,"dataGaLocation":405},"/jobs/","jobs",{"dataGaName":686},{"text":649,"config":689},{"href":651,"dataGaName":652,"dataGaLocation":405},{"text":691,"config":692},"Leadership",{"href":693,"dataGaName":694,"dataGaLocation":405},"/company/team/e-group/","leadership",{"text":696,"config":697},"Handbook",{"href":698,"dataGaName":699,"dataGaLocation":405},"https://handbook.gitlab.com/","handbook",{"text":701,"config":702},"Investor relations",{"href":703,"dataGaName":704,"dataGaLocation":405},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":706,"config":707},"Trust Center",{"href":708,"dataGaName":709,"dataGaLocation":405},"/security/","trust center",{"text":711,"config":712},"AI Transparency Center",{"href":713,"dataGaName":714,"dataGaLocation":405},"/ai-transparency-center/","ai transparency center",{"text":716,"config":717},"Newsletter",{"href":718,"dataGaName":719,"dataGaLocation":405},"/company/contact/#contact-forms","newsletter",{"text":721,"config":722},"Press",{"href":723,"dataGaName":724,"dataGaLocation":405},"/press/","press",{"text":726,"config":727,"menu":728},"Contact us",{"dataNavLevelOne":672},{"type":456,"columns":729},[730],{"items":731},[732,737,742],{"text":733,"config":734},"Talk to sales",{"href":735,"dataGaName":736,"dataGaLocation":405},"/sales/","talk to sales",{"text":738,"config":739},"Support portal",{"href":740,"dataGaName":741,"dataGaLocation":405},"https://support.gitlab.com/hc/en-us","support portal",{"text":743,"config":744},"Customer portal",{"href":745,"dataGaName":746,"dataGaLocation":405},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":748,"login":749,"suggestions":756},"Close",{"text":750,"link":751},"To search repositories and projects, login to",{"text":752,"config":753},"gitlab.com",{"href":419,"dataGaName":754,"dataGaLocation":755},"search login","search",{"text":757,"default":758},"Suggestions",[759,761,765,767,771,775],{"text":436,"config":760},{"href":441,"dataGaName":436,"dataGaLocation":755},{"text":762,"config":763},"Code Suggestions (AI)",{"href":764,"dataGaName":762,"dataGaLocation":755},"/solutions/code-suggestions/",{"text":472,"config":766},{"href":474,"dataGaName":472,"dataGaLocation":755},{"text":768,"config":769},"GitLab on AWS",{"href":770,"dataGaName":768,"dataGaLocation":755},"/partners/technology-partners/aws/",{"text":772,"config":773},"GitLab on Google Cloud",{"href":774,"dataGaName":772,"dataGaLocation":755},"/partners/technology-partners/google-cloud-platform/",{"text":776,"config":777},"Why GitLab?",{"href":449,"dataGaName":776,"dataGaLocation":755},{"freeTrial":779,"mobileIcon":784,"desktopIcon":789,"secondaryButton":792},{"text":780,"config":781},"Start free trial",{"href":782,"dataGaName":410,"dataGaLocation":783},"https://gitlab.com/-/trials/new/","nav",{"altText":785,"config":786},"Gitlab Icon",{"src":787,"dataGaName":788,"dataGaLocation":783},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":785,"config":790},{"src":791,"dataGaName":788,"dataGaLocation":783},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":793,"config":794},"Get Started",{"href":795,"dataGaName":796,"dataGaLocation":783},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":798,"mobileIcon":802,"desktopIcon":804},{"text":799,"config":800},"Learn more about GitLab Duo",{"href":441,"dataGaName":801,"dataGaLocation":783},"gitlab duo",{"altText":785,"config":803},{"src":787,"dataGaName":788,"dataGaLocation":783},{"altText":785,"config":805},{"src":791,"dataGaName":788,"dataGaLocation":783},{"button":807,"mobileIcon":812,"desktopIcon":814},{"text":808,"config":809},"/switch",{"href":810,"dataGaName":811,"dataGaLocation":783},"#contact","switch",{"altText":785,"config":813},{"src":787,"dataGaName":788,"dataGaLocation":783},{"altText":785,"config":815},{"src":816,"dataGaName":788,"dataGaLocation":783},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":818,"mobileIcon":823,"desktopIcon":825},{"text":819,"config":820},"Back to pricing",{"href":553,"dataGaName":821,"dataGaLocation":783,"icon":822},"back to pricing","GoBack",{"altText":785,"config":824},{"src":787,"dataGaName":788,"dataGaLocation":783},{"altText":785,"config":826},{"src":791,"dataGaName":788,"dataGaLocation":783},{"title":828,"titleMobile":829,"button":830,"config":835},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":447,"config":831},{"href":832,"dataGaName":833,"dataGaLocation":834},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":836,"disabled":384},"release",{"data":838},{"text":839,"source":840,"edit":846,"contribute":851,"config":856,"items":861,"minimal":1070},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":841,"config":842},"View page source",{"href":843,"dataGaName":844,"dataGaLocation":845},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":847,"config":848},"Edit this page",{"href":849,"dataGaName":850,"dataGaLocation":845},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":852,"config":853},"Please contribute",{"href":854,"dataGaName":855,"dataGaLocation":845},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":857,"facebook":858,"youtube":859,"linkedin":860},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[862,909,962,1006,1038],{"title":551,"links":863,"subMenu":878},[864,868,873],{"text":865,"config":866},"View plans",{"href":553,"dataGaName":867,"dataGaLocation":845},"view plans",{"text":869,"config":870},"Why Premium?",{"href":871,"dataGaName":872,"dataGaLocation":845},"/pricing/premium/","why premium",{"text":874,"config":875},"Why Ultimate?",{"href":876,"dataGaName":877,"dataGaLocation":845},"/pricing/ultimate/","why ultimate",[879],{"title":880,"links":881},"Contact Us",[882,885,887,889,894,899,904],{"text":883,"config":884},"Contact sales",{"href":735,"dataGaName":415,"dataGaLocation":845},{"text":738,"config":886},{"href":740,"dataGaName":741,"dataGaLocation":845},{"text":743,"config":888},{"href":745,"dataGaName":746,"dataGaLocation":845},{"text":890,"config":891},"Status",{"href":892,"dataGaName":893,"dataGaLocation":845},"https://status.gitlab.com/","status",{"text":895,"config":896},"Terms of use",{"href":897,"dataGaName":898,"dataGaLocation":845},"/terms/","terms of use",{"text":900,"config":901},"Privacy statement",{"href":902,"dataGaName":903,"dataGaLocation":845},"/privacy/","privacy statement",{"text":905,"config":906},"Cookie preferences",{"dataGaName":907,"dataGaLocation":845,"id":908,"isOneTrustButton":387},"cookie preferences","ot-sdk-btn",{"title":452,"links":910,"subMenu":918},[911,914],{"text":396,"config":912},{"href":434,"dataGaName":913,"dataGaLocation":845},"devsecops platform",{"text":915,"config":916},"AI-Assisted Development",{"href":441,"dataGaName":917,"dataGaLocation":845},"ai-assisted development",[919],{"title":920,"links":921},"Topics",[922,927,932,937,942,947,952,957],{"text":923,"config":924},"CICD",{"href":925,"dataGaName":926,"dataGaLocation":845},"/topics/ci-cd/","cicd",{"text":928,"config":929},"GitOps",{"href":930,"dataGaName":931,"dataGaLocation":845},"/topics/gitops/","gitops",{"text":933,"config":934},"DevOps",{"href":935,"dataGaName":936,"dataGaLocation":845},"/topics/devops/","devops",{"text":938,"config":939},"Version Control",{"href":940,"dataGaName":941,"dataGaLocation":845},"/topics/version-control/","version control",{"text":943,"config":944},"DevSecOps",{"href":945,"dataGaName":946,"dataGaLocation":845},"/topics/devsecops/","devsecops",{"text":948,"config":949},"Cloud Native",{"href":950,"dataGaName":951,"dataGaLocation":845},"/topics/cloud-native/","cloud native",{"text":953,"config":954},"AI for Coding",{"href":955,"dataGaName":956,"dataGaLocation":845},"/topics/devops/ai-for-coding/","ai for coding",{"text":958,"config":959},"Agentic AI",{"href":960,"dataGaName":961,"dataGaLocation":845},"/topics/agentic-ai/","agentic ai",{"title":963,"links":964},"Solutions",[965,967,969,974,978,981,985,988,990,993,996,1001],{"text":496,"config":966},{"href":491,"dataGaName":496,"dataGaLocation":845},{"text":485,"config":968},{"href":468,"dataGaName":469,"dataGaLocation":845},{"text":970,"config":971},"Agile development",{"href":972,"dataGaName":973,"dataGaLocation":845},"/solutions/agile-delivery/","agile delivery",{"text":975,"config":976},"SCM",{"href":481,"dataGaName":977,"dataGaLocation":845},"source code management",{"text":923,"config":979},{"href":474,"dataGaName":980,"dataGaLocation":845},"continuous integration & delivery",{"text":982,"config":983},"Value stream management",{"href":524,"dataGaName":984,"dataGaLocation":845},"value stream management",{"text":928,"config":986},{"href":987,"dataGaName":931,"dataGaLocation":845},"/solutions/gitops/",{"text":534,"config":989},{"href":537,"dataGaName":538,"dataGaLocation":845},{"text":991,"config":992},"Small business",{"href":543,"dataGaName":544,"dataGaLocation":845},{"text":994,"config":995},"Public sector",{"href":549,"dataGaName":397,"dataGaLocation":845},{"text":997,"config":998},"Education",{"href":999,"dataGaName":1000,"dataGaLocation":845},"/solutions/education/","education",{"text":1002,"config":1003},"Financial services",{"href":1004,"dataGaName":1005,"dataGaLocation":845},"/solutions/finance/","financial services",{"title":556,"links":1007},[1008,1010,1012,1014,1017,1019,1022,1024,1026,1028,1030,1032,1034,1036],{"text":569,"config":1009},{"href":571,"dataGaName":572,"dataGaLocation":845},{"text":574,"config":1011},{"href":576,"dataGaName":577,"dataGaLocation":845},{"text":579,"config":1013},{"href":581,"dataGaName":582,"dataGaLocation":845},{"text":584,"config":1015},{"href":586,"dataGaName":1016,"dataGaLocation":845},"docs",{"text":607,"config":1018},{"href":609,"dataGaName":610,"dataGaLocation":845},{"text":1020,"config":1021},"What's new",{"href":667,"dataGaName":668,"dataGaLocation":845},{"text":602,"config":1023},{"href":604,"dataGaName":605,"dataGaLocation":845},{"text":621,"config":1025},{"href":623,"dataGaName":624,"dataGaLocation":845},{"text":629,"config":1027},{"href":631,"dataGaName":632,"dataGaLocation":845},{"text":634,"config":1029},{"href":636,"dataGaName":637,"dataGaLocation":845},{"text":639,"config":1031},{"href":641,"dataGaName":642,"dataGaLocation":845},{"text":644,"config":1033},{"href":646,"dataGaName":647,"dataGaLocation":845},{"text":649,"config":1035},{"href":651,"dataGaName":652,"dataGaLocation":845},{"text":654,"config":1037},{"href":656,"dataGaName":657,"dataGaLocation":845},{"title":670,"links":1039},[1040,1042,1044,1046,1048,1050,1054,1059,1061,1063,1065],{"text":678,"config":1041},{"href":680,"dataGaName":672,"dataGaLocation":845},{"text":683,"config":1043},{"href":685,"dataGaName":686,"dataGaLocation":845},{"text":691,"config":1045},{"href":693,"dataGaName":694,"dataGaLocation":845},{"text":696,"config":1047},{"href":698,"dataGaName":699,"dataGaLocation":845},{"text":701,"config":1049},{"href":703,"dataGaName":704,"dataGaLocation":845},{"text":1051,"config":1052},"Sustainability",{"href":1053,"dataGaName":1051,"dataGaLocation":845},"/sustainability/",{"text":1055,"config":1056},"Diversity, inclusion and belonging (DIB)",{"href":1057,"dataGaName":1058,"dataGaLocation":845},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":706,"config":1060},{"href":708,"dataGaName":709,"dataGaLocation":845},{"text":716,"config":1062},{"href":718,"dataGaName":719,"dataGaLocation":845},{"text":721,"config":1064},{"href":723,"dataGaName":724,"dataGaLocation":845},{"text":1066,"config":1067},"Modern Slavery Transparency Statement",{"href":1068,"dataGaName":1069,"dataGaLocation":845},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1071},[1072,1075,1078],{"text":1073,"config":1074},"Terms",{"href":897,"dataGaName":898,"dataGaLocation":845},{"text":1076,"config":1077},"Cookies",{"dataGaName":907,"dataGaLocation":845,"id":908,"isOneTrustButton":387},{"text":1079,"config":1080},"Privacy",{"href":902,"dataGaName":903,"dataGaLocation":845},[1082],{"id":1083,"title":7,"body":383,"config":1084,"content":1086,"description":383,"extension":1090,"meta":1091,"navigation":387,"path":1092,"seo":1093,"stem":1094,"__hash__":1095},"blogAuthors/en-us/blog/authors/joseph-longo.yml",{"template":1085},"BlogAuthor",{"name":7,"config":1087},{"headshot":1088,"ctfId":1089},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659681/Blog/Author%20Headshots/jlongo_gitlab-headshot.jpg","jlongogitlab","yml",{},"/en-us/blog/authors/joseph-longo",{},"en-us/blog/authors/joseph-longo","VIlsk9hPcH3cl865aygtOArC3lR9vjVvQqDgvE-S7qU",[1097,1105,1113],{"title":1098,"description":1099,"heroImage":1100,"category":379,"date":1101,"authors":1102,"slug":1104,"externalUrl":383},"How GitLab tracks vulnerabilities through refactors and reformatting","Learn how GitLab's improved Scope+Offset fingerprinting keeps vulnerability tracking stable across comments, blank lines, and reformatting.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1759320418/xjmqcozxzt4frx0hori3.png","2026-08-12",[1103],"Julian Thome","improved-scope-offset-fingerprinting",{"title":1106,"description":1107,"heroImage":1100,"category":379,"date":1108,"authors":1109,"slug":1112,"externalUrl":383},"GitLab Secrets Manager adds ESO, Terraform, API support","Simplify credential management across your stack. GitLab Secrets Manager provides secure retrieval in Kubernetes, Terraform, and external workflows.","2026-08-06",[1110,1111],"Erick Bajao","Joe Randazzo","gitlab-secrets-manager-add-eso-terraform-api-support",{"title":1114,"description":1115,"heroImage":1116,"category":379,"date":1117,"authors":1118,"slug":1120,"externalUrl":383},"Secure every commit to production with Claude and GitLab","Claude Security catches vulnerabilities inside a coding session. GitLab picks up from there, scanning, enforcing policy, and producing audit evidence for the software lifecycle. ","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756122536/akivvcnafog9c4dhhzkp.png","2026-08-03",[1119],"Alisa Ho","claude-security-and-gitlab",{"promotions":1122},[1123,1137,1149,1160],{"id":1124,"categories":1125,"header":1127,"text":1128,"button":1129,"image":1134},"ai-modernization",[1126],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1130,"config":1131},"Get your AI maturity score",{"href":1132,"dataGaName":1133,"dataGaLocation":610},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1135},{"src":1136},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1138,"categories":1139,"header":1141,"text":1128,"button":1142,"image":1146},"devops-modernization",[1140,946],"product","Are you just managing tools or shipping innovation?",{"text":1143,"config":1144},"Get your DevOps maturity score",{"href":1145,"dataGaName":1133,"dataGaLocation":610},"/assessments/devops-modernization-assessment/",{"config":1147},{"src":1148},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1150,"categories":1151,"header":1152,"text":1128,"button":1153,"image":1157},"security-modernization",[379],"Are you trading speed for security?",{"text":1154,"config":1155},"Get your security maturity score",{"href":1156,"dataGaName":1133,"dataGaLocation":610},"/assessments/security-modernization-assessment/",{"config":1158},{"src":1159},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1161,"paths":1162,"header":1165,"text":1166,"button":1167,"image":1172},"github-azure-migration",[1163,1164],"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":1168,"config":1169},"See how GitLab compares to GitHub",{"href":1170,"dataGaName":1171,"dataGaLocation":610},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1173},{"src":1148},{"header":1175,"blurb":1176,"button":1177,"secondaryButton":1182},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1178,"config":1179},"Get your free trial",{"href":1180,"dataGaName":410,"dataGaLocation":1181},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":883,"config":1183},{"href":735,"dataGaName":415,"dataGaLocation":1181},1786803773344]