[{"data":1,"prerenderedAt":1513},["ShallowReactive",2],{"/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops":3,"navigation-en-us":730,"banner-en-us":1157,"footer-en-us":1167,"blog-post-authors-en-us-Fernando Diaz":1411,"blog-related-posts-en-us-how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops":1426,"blog-promotions-en-us":1451,"next-steps-en-us":1503},{"id":4,"title":5,"authors":6,"body":8,"category":707,"date":708,"description":709,"extension":710,"externalUrl":711,"faq":711,"featured":712,"heroImage":713,"meta":714,"navigation":712,"path":715,"seo":716,"slug":721,"stem":722,"tags":723,"template":728,"updatedDate":711,"__hash__":729},"blogPosts/en-us/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops.md","How to use GitLab's Custom Compliance Frameworks in your DevSecOps environment",[7],"Fernando Diaz",{"type":9,"value":10,"toc":696},"minimark",[11,22,27,30,33,46,53,56,82,85,89,92,99,113,118,121,142,147,150,173,179,185,191,222,228,236,245,250,253,298,304,307,312,315,345,351,355,364,367,378,384,387,459,462,466,469,472,506,509,556,562,571,577,593,596,600,603,635,639,642,645,648,659,663,666],[12,13,14,15,21],"p",{},"Compliance isn't just a checkbox — it's a critical business function that affects everything from operational risk to customer trust. For development teams, balancing compliance requirements with velocity can be particularly challenging. GitLab's ",[16,17,20],"a",{"href":18,"rel":19},"https://about.gitlab.com/blog/introducing-custom-compliance-frameworks-in-gitlab/",[],"Custom Compliance Frameworks"," offer a powerful way to integrate compliance verification directly into your development workflow. In this article you'll learn what they are and how to use them for maximum efficiecy.",[23,24,26],"h2",{"id":25},"what-are-gitlab-custom-compliance-frameworks","What are GitLab Custom Compliance Frameworks?",[12,28,29],{},"GitLab Custom Compliance Frameworks allow organizations to define, implement, and enforce compliance standards directly within their GitLab instance. This feature extends GitLab's built-in compliance capabilities by enabling teams to create customized frameworks that align with specific regulatory requirements, internal policies, or industry standards.",[12,31,32],{},"Custom Compliance Frameworks have the following benefits:",[34,35,36,40,43],"ul",{},[37,38,39],"li",{},"Reduce manual tracking",[37,41,42],{},"Accelerate audit readiness",[37,44,45],{},"Enforce compliance controls natively",[12,47,48],{},[49,50],"img",{"alt":51,"src":52},"Compliance center screenshot with frameworks listed","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097114254.png",[12,54,55],{},"With this release, more than 50 out-of-the-box (OOTB) controls are provided (with more coming soon) that can be tailored to your organization's unique compliance needs, including HIPAA in healthcare, GDPR for data privacy, SOC2 for service organizations, or industry-specific regulations. Some examples of OOTB controls include:",[34,57,58,61,76,79],{},[37,59,60],{},"Separation of duties (e.g., at least two approvers and author approved merge request)",[37,62,63,64,69,70,75],{},"Security scanners running (e.g., ",[16,65,68],{"href":66,"rel":67},"https://docs.gitlab.com/user/application_security/sast/",[],"SAST"," running and ",[16,71,74],{"href":72,"rel":73},"https://docs.gitlab.com/user/application_security/dependency_scanning/",[],"Dependency Scanning"," running)",[37,77,78],{},"Authentication/authorization (e.g., project visibility not public and AuthSSO required)",[37,80,81],{},"Application configuration (e.g., status checks required and Terraform required)",[12,83,84],{},"Additionally, you can configure external environmental controls using the GitLab API to check the status and details of an external environment.",[23,86,88],{"id":87},"creating-a-custom-compliance-framework-from-scratch","Creating a Custom Compliance Framework from scratch",[12,90,91],{},"Now that we understand the value, let's explore how to implement Custom Compliance Frameworks in your GitLab environment. We will use this demo application and you can follow along in this video.",[12,93,94,98],{},[95,96,97],"strong",{},"Note:"," A GitLab Ultimate subscription is required.",[100,101,104,105],"figure",{"className":102},[103],"video_container","\n  ",[106,107,112],"iframe",{"src":108,"title":109,"frameBorder":110,"allowFullScreen":111},"https://www.youtube.com/embed/bSwwv5XeMdQ?si=unDwCltF4vTHT4mB","Adhering to compliance requirements with built-in compliance controls\n","0","true"," ",[12,114,115],{},[95,116,117],{},"Step 1: Define your compliance requirements",[12,119,120],{},"Before building your custom framework, you need to clearly define your compliance requirements:",[122,123,124,130,136],"ol",{},[37,125,126,129],{},[95,127,128],{},"Identify applicable regulations:"," Determine which regulations and standards apply to your organization (e.g., GDPR, PCI DSS, and HIPAA).",[37,131,132,135],{},[95,133,134],{},"Map requirements to controls:"," Break down each regulation into specific, actionable controls.",[37,137,138,141],{},[95,139,140],{},"Prioritize requirements:"," Focus on high-risk areas and requirements with the greatest impact.",[12,143,144],{},[95,145,146],{},"Step 2: Create your Custom Compliance Framework",[12,148,149],{},"To create a custom compliance framework in GitLab:",[122,151,152,159,166],{},[37,153,154,155,158],{},"Navigate to your GitLab group's ",[95,156,157],{},"Secure > Compliance Center"," section.",[37,160,161,162,165],{},"Press the ",[95,163,164],{},"New framework"," button.",[37,167,168,169,172],{},"Select ",[95,170,171],{},"Create blank framework",".",[12,174,175],{},[49,176],{"alt":177,"src":178},"Create a custom compliance framework screen","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750097114255.png",[122,180,182],{"start":181},4,[37,183,184],{},"Provide a name, description, and color for your framework.",[12,186,187],{},[49,188],{"alt":189,"src":190},"New compliance framework screen","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097114257.png",[122,192,194],{"start":193},5,[37,195,196,197,200,201,204,205,165,208,210,211,214,215,218,219,165],{},"Add a requirement to the framework:\na. Scroll down to the ",[95,198,199],{},"Requirements"," tab.",[202,203],"br",{},"b. Press the ",[95,206,207],{},"New requirement",[202,209],{},"c. Provide a name and description.\nd. Under the ",[95,212,213],{},"Controls"," section, select ",[95,216,217],{},"Choose a GitLab control",".\ne. Select a control from the list (e.g., at least two approvals, SAST running).\nf. Press the ",[95,220,221],{},"Create requirement",[12,223,224],{},[49,225],{"alt":226,"src":227},"Create new requirement button","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097114258.png",[122,229,231],{"start":230},6,[37,232,161,233,165],{},[95,234,235],{},"Create framework",[12,237,238,239,244],{},"The framework will be created as specified and will now be available to add to projects. Additionally, compliance frameworks can be ",[16,240,243],{"href":241,"rel":242},"http://TODO",[],"imported"," using a JSON with the appropriate schema.",[12,246,247],{},[95,248,249],{},"Step 3: Apply the framework to projects",[12,251,252],{},"Once your framework is created:",[122,254,255,261,272,275,280,285,290,293],{},[37,256,257,258,200],{},"From the Compliance Center, select the ",[95,259,260],{},"Projects",[37,262,263,264,267,268,271],{},"Use the search bar to ",[95,265,266],{},"Search"," or ",[95,269,270],{},"Filter"," results.",[37,273,274],{},"Select the project(s) you wish to apply your framework to.",[37,276,161,277,165],{},[95,278,279],{},"Choose one bulk action",[37,281,168,282,172],{},[95,283,284],{},"Apply frameworks to selected projects",[37,286,161,287,165],{},[95,288,289],{},"Select frameworks",[37,291,292],{},"Select your framework(s) from the list.",[37,294,161,295,165],{},[95,296,297],{},"Apply",[12,299,300],{},[49,301],{"alt":302,"src":303},"Compliance center screen with SOC 2 framework dropdown","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097114260.png",[12,305,306],{},"The framework will now be applied to the project, making its requirements visible and trackable.",[12,308,309],{},[95,310,311],{},"Step 4: Monitor and report on compliance",[12,313,314],{},"With your framework in place, you can now:",[122,316,317,324,331,338],{},[37,318,319,320,323],{},"Use the ",[95,321,322],{},"Compliance Center"," to track compliance status across projects including details and suggested fixes for failed controls.",[37,325,326,327,330],{},"Generate ",[95,328,329],{},"compliance reports"," for audits and stakeholder reviews.",[37,332,333,334,337],{},"Set up ",[95,335,336],{},"compliance alerts"," to notify stakeholders of potential compliance issues.",[37,339,340,341,344],{},"Review ",[95,342,343],{},"audit events"," to overview action taken on compliance settings.",[12,346,347],{},[49,348],{"alt":349,"src":350},"Compliance Center screen showing SOC2 test framework","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097114263.png",[23,352,354],{"id":353},"real-world-example-implement-a-soc2-compliance-framework","Real-world example: Implement a SOC2 compliance framework",[12,356,357,358,363],{},"System and Organization Controls 2, better known as SOC2, is a rigorous auditing standard developed by the American Institute of Certified Public Accountants that assesses a service organization's controls related to security, availability, processing integrity, confidentiality, and privacy. You can read my ",[16,359,362],{"href":360,"rel":361},"https://about.gitlab.com/blog/guide-to-fulfilling-soc-2-security-requirements-with-gitlab/",[],"Guide to fulfilling SOC 2 security requirements with GitLab"," to learn more.",[12,365,366],{},"Now, let's review a practical example of using a Custom Compliance Framework to verify SOC2 security compliance, which requires:",[34,368,369,372,375],{},[37,370,371],{},"implementation of controls to protect against unauthorized access",[37,373,374],{},"establishment of procedures for identifying and mitigating risks",[37,376,377],{},"setting up systems for detecting and addressing security incidents",[12,379,380,383],{},[95,381,382],{},"Disclaimer:"," This is only an example showcasing some of the controls possible for adhering to SOC2. Be sure to consult with your security/compliance team before moving any implementation to production.",[12,385,386],{},"A Custom Compliance Framework for SOC2 will look as follows using some GitLab OOTB controls:",[34,388,389,395,401],{},[37,390,391,394],{},[95,392,393],{},"Name:"," SOC2 Security Requirements",[37,396,397,400],{},[95,398,399],{},"Description:"," Adds the security requirements for SOC2 framework compliance",[37,402,403,406],{},[95,404,405],{},"Requirements:",[34,407,408,424,443],{},[37,409,410,413],{},[95,411,412],{},"Implement controls to protect against unauthorized access",[34,414,415,418,421],{},[37,416,417],{},"Auth SSO enabled",[37,419,420],{},"CI/CD job token scope enabled",[37,422,423],{},"Require MFA at org level",[37,425,426,429],{},[95,427,428],{},"Establish procedures for identifying and mitigating risks",[34,430,431,434,437,440],{},[37,432,433],{},"At least two approvals",[37,435,436],{},"Author approved merge request",[37,438,439],{},"Committers approved merge request",[37,441,442],{},"Default branch protected",[37,444,445,448],{},[95,446,447],{},"Setting up systems for detecting and addressing security incidents",[34,449,450,453,456],{},[37,451,452],{},"Dependency Scanning running",[37,454,455],{},"SAST running",[37,457,458],{},"DAST running",[12,460,461],{},"When applied to your project(s), this framework allows you to oversee if/and when they fall out of compliance and what can be done to bring them back into compliance. Note that you can create and apply multiple compliance frameworks to a project(s). For example, you can have one for SOC2 process integrity requirements.",[23,463,465],{"id":464},"implement-security-policies-to-ensure-compliance-requirements-are-met","Implement security policies to ensure compliance requirements are met",[12,467,468],{},"Although not required, security policies can be applied to projects containing a Custom Compliance Framework. This allows you to assure that certain compliance criteria will be enforced via security policies. For example, you can force security scanners to run on projects that contain a Custom Compliance Framework requiring security scanning.",[12,470,471],{},"GitLab provides various different security policies:",[34,473,474,482,490,498],{},[37,475,476,481],{},[16,477,480],{"href":478,"rel":479},"https://docs.gitlab.com/user/application_security/policies/scan_execution_policies/",[],"Scan execution policy",": Enforces security scans, either as part of the pipeline or on a specified schedule.",[37,483,484,489],{},[16,485,488],{"href":486,"rel":487},"https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/",[],"Merge request approval policy",": Enforces project-level settings and approval rules based on scan results.",[37,491,492,497],{},[16,493,496],{"href":494,"rel":495},"https://docs.gitlab.com/user/application_security/policies/pipeline_execution_policies/",[],"Pipeline execution policy",": Enforces CI/CD jobs as part of project pipelines.",[37,499,500,505],{},[16,501,504],{"href":502,"rel":503},"https://docs.gitlab.com/user/application_security/policies/vulnerability_management_policy/",[],"Vulnerability management policy",": Automatically resolves vulnerabilities that are no longer detected in the default branch.",[12,507,508],{},"Let’s go ahead and force a SAST scanner to run in order to automatically adhere to any requirements that require SAST scanning. To create a security policy and apply it to a project with a particular framework:",[122,510,511,517,523,528,537,547],{},[37,512,513,514,172],{},"Navigate to a project that has a Custom Compliance Framework requiring ",[95,515,516],{},"SAST scanning",[37,518,519,520,172],{},"In the sidebar, select ",[95,521,522],{},"Secure > Policies",[37,524,161,525,165],{},[95,526,527],{},"New policy",[37,529,530,531,533,534,165],{},"Under ",[95,532,480],{},", press the ",[95,535,536],{},"Select policy",[37,538,539,540,543,544,172],{},"Fill in the ",[95,541,542],{},"Name"," and ",[95,545,546],{},"Description",[37,548,530,549,552,553,555],{},[95,550,551],{},"Actions",", select ",[95,554,68],{}," as the scan to run.",[12,557,558],{},[49,559],{"alt":560,"src":561},"Actions screen","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750097114264.png",[122,563,565],{"start":564},7,[37,566,530,567,570],{},[95,568,569],{},"Conditions",", select the pipeline to be triggered when a pipeline runs for all branches.",[12,572,573],{},[49,574],{"alt":575,"src":576},"Conditions screen","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097114265.png",[122,578,580,585,588],{"start":579},8,[37,581,161,582,165],{},[95,583,584],{},"Configure with a merge request",[37,586,587],{},"An MR is now created in a separate project containing all the security policies scoped to this project.",[37,589,161,590,165],{},[95,591,592],{},"Merge",[12,594,595],{},"Now SAST will run for every branch, assuring you are compliant in that area. Be sure to review all the different types of security policies and see how they can suit your requirements.",[23,597,599],{"id":598},"_5-best-practices-to-follow","5 best practices to follow",[12,601,602],{},"To maximize the value of Custom Compliance Frameworks:",[122,604,605,611,617,623,629],{},[37,606,607,610],{},[95,608,609],{},"Start small:"," Begin with one critical regulation or standard before expanding.",[37,612,613,616],{},[95,614,615],{},"Involve key stakeholders:"," Include compliance, security, and development teams in framework creation.",[37,618,619,622],{},[95,620,621],{},"Automate where possible:"," Use GitLab CI/CD to automate compliance checks.",[37,624,625,628],{},[95,626,627],{},"Document thoroughly:"," Maintain clear documentation of how your framework maps to regulatory requirements.",[37,630,631,634],{},[95,632,633],{},"Review regularly:"," Update your frameworks as regulations evolve or new requirements emerge.",[23,636,638],{"id":637},"get-started-today","Get started today",[12,640,641],{},"GitLab Custom Compliance Frameworks represent a significant advancement in DevSecOps by bringing compliance directly into the development workflow. By implementing custom frameworks, organizations can reduce compliance overhead, improve risk management, and accelerate development cycles while maintaining robust compliance with regulatory requirements.",[12,643,644],{},"The ability to define and enforce Custom Compliance Frameworks gives teams the flexibility they need to address their specific regulatory landscape while providing the structure necessary to ensure consistent compliance practices across the organization.",[12,646,647],{},"As regulatory requirements continue to grow in complexity, tools like GitLab Custom Compliance Frameworks will become increasingly essential for organizations looking to balance compliance requirements with development velocity in a sustainable way.",[649,650,651],"blockquote",{},[12,652,653,654,172],{},"To try Custom Compliance Frameworks today, sign up for your ",[16,655,658],{"href":656,"rel":657},"https://about.gitlab.com/free-trial/",[],"free trial of GitLab Ultimate",[23,660,662],{"id":661},"learn-more","Learn more",[12,664,665],{},"Visit these resources to learn more about Custom Compliance Frameworks and how they can benefit your organization:",[34,667,668,675,682,689],{},[37,669,670],{},[16,671,674],{"href":672,"rel":673},"https://docs.gitlab.com/user/compliance/compliance_center/compliance_status_report/",[],"Custom Compliance Frameworks documentation",[37,676,677],{},[16,678,681],{"href":679,"rel":680},"https://gitlab.com/groups/gitlab-org/-/epics/13295",[],"Custom Compliance Frameworks epic",[37,683,684],{},[16,685,688],{"href":686,"rel":687},"https://docs.gitlab.com/user/application_security/policies/",[],"Security Policies documentation",[37,690,691],{},[16,692,695],{"href":693,"rel":694},"https://about.gitlab.com/solutions/application-security-testing/",[],"GitLab Security and Compliance solutions",{"title":697,"searchDepth":698,"depth":698,"links":699},"",2,[700,701,702,703,704,705,706],{"id":25,"depth":698,"text":26},{"id":87,"depth":698,"text":88},{"id":353,"depth":698,"text":354},{"id":464,"depth":698,"text":465},{"id":598,"depth":698,"text":599},{"id":637,"depth":698,"text":638},{"id":661,"depth":698,"text":662},"security","2025-04-30","Explore how new frameworks, along with more than 50 out-of-the-box controls, transform regulatory requirements from burdensome checkboxes to integrated, automated workflow components.","md",null,true,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097104/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%284%29_3LZkiDjHLjhqEkvOvBsVKp_1750097104092.png",{},"/en-us/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops",{"title":5,"description":709,"ogTitle":5,"ogDescription":709,"noIndex":717,"ogImage":713,"ogUrl":718,"ogSiteName":719,"ogType":720,"canonicalUrls":718},false,"https://about.gitlab.com/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops","https://about.gitlab.com","article","how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops","en-us/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops",[707,724,725,726,727],"tutorial","DevSecOps platform","features","product","BlogPost","sekQIiN1jFSCRx1dvix7X3hkyRumboOq2284WO2L_mI",{"logo":731,"freeTrial":736,"sales":741,"login":746,"items":751,"search":1077,"minimal":1108,"duo":1127,"switchNav":1136,"pricingDeployment":1147},{"config":732},{"href":733,"dataGaName":734,"dataGaLocation":735},"/","gitlab logo","header",{"text":737,"config":738},"Get free trial",{"href":739,"dataGaName":740,"dataGaLocation":735},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":742,"config":743},"Request a demo",{"href":744,"dataGaName":745,"dataGaLocation":735},"/sales/?contact-topic=request-demo","sales",{"text":747,"config":748},"Sign in",{"href":749,"dataGaName":750,"dataGaLocation":735},"https://gitlab.com/users/sign_in/","sign in",[752,780,880,885,999,1055],{"text":753,"config":754,"menu":756},"Platform",{"dataNavLevelOne":755},"platform",{"type":757,"columns":758},"cards",[759,765,773],{"title":753,"description":760,"link":761},"The intelligent orchestration platform for DevSecOps",{"text":762,"config":763},"Explore our Platform",{"href":764,"dataGaName":755,"dataGaLocation":735},"/platform/",{"title":766,"description":767,"link":768},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":769,"config":770},"Meet GitLab Duo",{"href":771,"dataGaName":772,"dataGaLocation":735},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":774,"description":775,"link":776},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":662,"config":777},{"href":778,"dataGaName":779,"dataGaLocation":735},"/why-gitlab/","why gitlab",{"text":781,"left":712,"config":782,"menu":784},"Product",{"dataNavLevelOne":783},"solutions",{"type":785,"link":786,"columns":790,"feature":859},"lists",{"text":787,"config":788},"View all Solutions",{"href":789,"dataGaName":783,"dataGaLocation":735},"/solutions/",[791,815,838],{"title":792,"description":793,"link":794,"items":799},"Automation","CI/CD and automation to accelerate deployment",{"config":795},{"icon":796,"href":797,"dataGaName":798,"dataGaLocation":735},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[800,804,807,811],{"text":801,"config":802},"CI/CD",{"href":803,"dataGaLocation":735,"dataGaName":801},"/solutions/continuous-integration/",{"text":766,"config":805},{"href":771,"dataGaLocation":735,"dataGaName":806},"gitlab duo agent platform - product menu",{"text":808,"config":809},"Source Code Management",{"href":810,"dataGaLocation":735,"dataGaName":808},"/solutions/source-code-management/",{"text":812,"config":813},"Automated Software Delivery",{"href":797,"dataGaLocation":735,"dataGaName":814},"Automated software delivery",{"title":816,"description":817,"link":818,"items":823},"Security","Deliver code faster without compromising security",{"config":819},{"href":820,"dataGaName":821,"dataGaLocation":735,"icon":822},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[824,828,833],{"text":825,"config":826},"Application Security Testing",{"href":820,"dataGaName":827,"dataGaLocation":735},"Application security testing",{"text":829,"config":830},"Software Supply Chain Security",{"href":831,"dataGaLocation":735,"dataGaName":832},"/solutions/supply-chain/","Software supply chain security",{"text":834,"config":835},"Software Compliance",{"href":836,"dataGaName":837,"dataGaLocation":735},"/solutions/software-compliance/","software compliance",{"title":839,"link":840,"items":845},"Measurement",{"config":841},{"icon":842,"href":843,"dataGaName":844,"dataGaLocation":735},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[846,850,854],{"text":847,"config":848},"Visibility & Measurement",{"href":843,"dataGaLocation":735,"dataGaName":849},"Visibility and Measurement",{"text":851,"config":852},"Value Stream Management",{"href":853,"dataGaLocation":735,"dataGaName":851},"/solutions/value-stream-management/",{"text":855,"config":856},"Analytics & Insights",{"href":857,"dataGaLocation":735,"dataGaName":858},"/solutions/analytics-and-insights/","Analytics and insights",{"title":860,"type":785,"items":861},"GitLab for",[862,868,874],{"text":863,"config":864},"Enterprise",{"icon":865,"href":866,"dataGaLocation":735,"dataGaName":867},"Building","/enterprise/","enterprise",{"text":869,"config":870},"Small Business",{"icon":871,"href":872,"dataGaLocation":735,"dataGaName":873},"Work","/small-business/","small business",{"text":875,"config":876},"Public Sector",{"icon":877,"href":878,"dataGaLocation":735,"dataGaName":879},"Organization","/solutions/public-sector/","public sector",{"text":881,"config":882},"Pricing",{"href":883,"dataGaName":884,"dataGaLocation":735,"dataNavLevelOne":884},"/pricing/","pricing",{"text":886,"config":887,"menu":889},"Resources",{"dataNavLevelOne":888},"resources",{"type":785,"link":890,"columns":894,"feature":988},{"text":891,"config":892},"View all resources",{"href":893,"dataGaName":888,"dataGaLocation":735},"/resources/",[895,928,955],{"title":896,"items":897},"Getting started",[898,903,908,913,918,923],{"text":899,"config":900},"Install",{"href":901,"dataGaName":902,"dataGaLocation":735},"/install/","install",{"text":904,"config":905},"Quick start guides",{"href":906,"dataGaName":907,"dataGaLocation":735},"/get-started/","quick setup checklists",{"text":909,"config":910},"Learn",{"href":911,"dataGaLocation":735,"dataGaName":912},"https://university.gitlab.com/","learn",{"text":914,"config":915},"Product documentation",{"href":916,"dataGaName":917,"dataGaLocation":735},"https://docs.gitlab.com/","product documentation",{"text":919,"config":920},"Best practice videos",{"href":921,"dataGaName":922,"dataGaLocation":735},"/getting-started-videos/","best practice videos",{"text":924,"config":925},"Integrations",{"href":926,"dataGaName":927,"dataGaLocation":735},"/integrations/","integrations",{"title":929,"items":930},"Discover",[931,936,941,946,950],{"text":932,"config":933},"Customer success stories",{"href":934,"dataGaName":935,"dataGaLocation":735},"/customers/","customer success stories",{"text":937,"config":938},"Blog",{"href":939,"dataGaName":940,"dataGaLocation":735},"/blog/","blog",{"text":942,"config":943},"Demo Hub",{"href":944,"dataGaName":945,"dataGaLocation":735},"/demo-hub/","demo hub",{"text":947,"config":948},"The Source",{"href":949,"dataGaName":940,"dataGaLocation":735},"/the-source/",{"text":951,"config":952},"Remote",{"href":953,"dataGaName":954,"dataGaLocation":735},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":956,"items":957},"Connect",[958,963,968,973,978,983],{"text":959,"config":960},"GitLab Services",{"href":961,"dataGaName":962,"dataGaLocation":735},"/services/","services",{"text":964,"config":965},"Contribute",{"href":966,"dataGaName":967,"dataGaLocation":735},"https://contributors.gitlab.com","contribute",{"text":969,"config":970},"Community",{"href":971,"dataGaName":972,"dataGaLocation":735},"/community/","community",{"text":974,"config":975},"Forum",{"href":976,"dataGaName":977,"dataGaLocation":735},"https://forum.gitlab.com/","forum",{"text":979,"config":980},"Events",{"href":981,"dataGaName":982,"dataGaLocation":735},"/events/","events",{"text":984,"config":985},"Partners",{"href":986,"dataGaName":987,"dataGaLocation":735},"/partners/","partners",{"config":989,"title":992,"text":993,"link":994},{"background":990,"textColor":991},"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":995,"config":996},"Read the latest",{"href":997,"dataGaName":998,"dataGaLocation":735},"/whats-new/","whats new",{"text":1000,"config":1001,"menu":1003},"Company",{"dataNavLevelOne":1002},"company",{"type":785,"columns":1004},[1005],{"items":1006},[1007,1012,1018,1020,1025,1030,1035,1040,1045,1050],{"text":1008,"config":1009},"About",{"href":1010,"dataGaName":1011,"dataGaLocation":735},"/company/","about",{"text":1013,"config":1014,"footerGa":1017},"Jobs",{"href":1015,"dataGaName":1016,"dataGaLocation":735},"/jobs/","jobs",{"dataGaName":1016},{"text":979,"config":1019},{"href":981,"dataGaName":982,"dataGaLocation":735},{"text":1021,"config":1022},"Leadership",{"href":1023,"dataGaName":1024,"dataGaLocation":735},"/company/team/e-group/","leadership",{"text":1026,"config":1027},"Handbook",{"href":1028,"dataGaName":1029,"dataGaLocation":735},"https://handbook.gitlab.com/","handbook",{"text":1031,"config":1032},"Investor relations",{"href":1033,"dataGaName":1034,"dataGaLocation":735},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1036,"config":1037},"Trust Center",{"href":1038,"dataGaName":1039,"dataGaLocation":735},"/security/","trust center",{"text":1041,"config":1042},"AI Transparency Center",{"href":1043,"dataGaName":1044,"dataGaLocation":735},"/ai-transparency-center/","ai transparency center",{"text":1046,"config":1047},"Newsletter",{"href":1048,"dataGaName":1049,"dataGaLocation":735},"/company/contact/#contact-forms","newsletter",{"text":1051,"config":1052},"Press",{"href":1053,"dataGaName":1054,"dataGaLocation":735},"/press/","press",{"text":1056,"config":1057,"menu":1058},"Contact us",{"dataNavLevelOne":1002},{"type":785,"columns":1059},[1060],{"items":1061},[1062,1067,1072],{"text":1063,"config":1064},"Talk to sales",{"href":1065,"dataGaName":1066,"dataGaLocation":735},"/sales/","talk to sales",{"text":1068,"config":1069},"Support portal",{"href":1070,"dataGaName":1071,"dataGaLocation":735},"https://support.gitlab.com/hc/en-us","support portal",{"text":1073,"config":1074},"Customer portal",{"href":1075,"dataGaName":1076,"dataGaLocation":735},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1078,"login":1079,"suggestions":1086},"Close",{"text":1080,"link":1081},"To search repositories and projects, login to",{"text":1082,"config":1083},"gitlab.com",{"href":749,"dataGaName":1084,"dataGaLocation":1085},"search login","search",{"text":1087,"default":1088},"Suggestions",[1089,1091,1095,1097,1101,1105],{"text":766,"config":1090},{"href":771,"dataGaName":766,"dataGaLocation":1085},{"text":1092,"config":1093},"Code Suggestions (AI)",{"href":1094,"dataGaName":1092,"dataGaLocation":1085},"/solutions/code-suggestions/",{"text":801,"config":1096},{"href":803,"dataGaName":801,"dataGaLocation":1085},{"text":1098,"config":1099},"GitLab on AWS",{"href":1100,"dataGaName":1098,"dataGaLocation":1085},"/partners/technology-partners/aws/",{"text":1102,"config":1103},"GitLab on Google Cloud",{"href":1104,"dataGaName":1102,"dataGaLocation":1085},"/partners/technology-partners/google-cloud-platform/",{"text":1106,"config":1107},"Why GitLab?",{"href":778,"dataGaName":1106,"dataGaLocation":1085},{"freeTrial":1109,"mobileIcon":1114,"desktopIcon":1119,"secondaryButton":1122},{"text":1110,"config":1111},"Start free trial",{"href":1112,"dataGaName":740,"dataGaLocation":1113},"https://gitlab.com/-/trials/new/","nav",{"altText":1115,"config":1116},"Gitlab Icon",{"src":1117,"dataGaName":1118,"dataGaLocation":1113},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1115,"config":1120},{"src":1121,"dataGaName":1118,"dataGaLocation":1113},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1123,"config":1124},"Get Started",{"href":1125,"dataGaName":1126,"dataGaLocation":1113},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":1128,"mobileIcon":1132,"desktopIcon":1134},{"text":1129,"config":1130},"Learn more about GitLab Duo",{"href":771,"dataGaName":1131,"dataGaLocation":1113},"gitlab duo",{"altText":1115,"config":1133},{"src":1117,"dataGaName":1118,"dataGaLocation":1113},{"altText":1115,"config":1135},{"src":1121,"dataGaName":1118,"dataGaLocation":1113},{"button":1137,"mobileIcon":1142,"desktopIcon":1144},{"text":1138,"config":1139},"/switch",{"href":1140,"dataGaName":1141,"dataGaLocation":1113},"#contact","switch",{"altText":1115,"config":1143},{"src":1117,"dataGaName":1118,"dataGaLocation":1113},{"altText":1115,"config":1145},{"src":1146,"dataGaName":1118,"dataGaLocation":1113},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1148,"mobileIcon":1153,"desktopIcon":1155},{"text":1149,"config":1150},"Back to pricing",{"href":883,"dataGaName":1151,"dataGaLocation":1113,"icon":1152},"back to pricing","GoBack",{"altText":1115,"config":1154},{"src":1117,"dataGaName":1118,"dataGaLocation":1113},{"altText":1115,"config":1156},{"src":1121,"dataGaName":1118,"dataGaLocation":1113},{"title":1158,"titleMobile":1159,"button":1160,"config":1165},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":662,"config":1161},{"href":1162,"dataGaName":1163,"dataGaLocation":1164},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":1166,"disabled":717},"release",{"data":1168},{"text":1169,"source":1170,"edit":1176,"contribute":1181,"config":1186,"items":1191,"minimal":1400},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":1171,"config":1172},"View page source",{"href":1173,"dataGaName":1174,"dataGaLocation":1175},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1177,"config":1178},"Edit this page",{"href":1179,"dataGaName":1180,"dataGaLocation":1175},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1182,"config":1183},"Please contribute",{"href":1184,"dataGaName":1185,"dataGaLocation":1175},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1187,"facebook":1188,"youtube":1189,"linkedin":1190},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1192,1239,1292,1336,1368],{"title":881,"links":1193,"subMenu":1208},[1194,1198,1203],{"text":1195,"config":1196},"View plans",{"href":883,"dataGaName":1197,"dataGaLocation":1175},"view plans",{"text":1199,"config":1200},"Why Premium?",{"href":1201,"dataGaName":1202,"dataGaLocation":1175},"/pricing/premium/","why premium",{"text":1204,"config":1205},"Why Ultimate?",{"href":1206,"dataGaName":1207,"dataGaLocation":1175},"/pricing/ultimate/","why ultimate",[1209],{"title":1210,"links":1211},"Contact Us",[1212,1215,1217,1219,1224,1229,1234],{"text":1213,"config":1214},"Contact sales",{"href":1065,"dataGaName":745,"dataGaLocation":1175},{"text":1068,"config":1216},{"href":1070,"dataGaName":1071,"dataGaLocation":1175},{"text":1073,"config":1218},{"href":1075,"dataGaName":1076,"dataGaLocation":1175},{"text":1220,"config":1221},"Status",{"href":1222,"dataGaName":1223,"dataGaLocation":1175},"https://status.gitlab.com/","status",{"text":1225,"config":1226},"Terms of use",{"href":1227,"dataGaName":1228,"dataGaLocation":1175},"/terms/","terms of use",{"text":1230,"config":1231},"Privacy statement",{"href":1232,"dataGaName":1233,"dataGaLocation":1175},"/privacy/","privacy statement",{"text":1235,"config":1236},"Cookie preferences",{"dataGaName":1237,"dataGaLocation":1175,"id":1238,"isOneTrustButton":712},"cookie preferences","ot-sdk-btn",{"title":781,"links":1240,"subMenu":1248},[1241,1244],{"text":725,"config":1242},{"href":764,"dataGaName":1243,"dataGaLocation":1175},"devsecops platform",{"text":1245,"config":1246},"AI-Assisted Development",{"href":771,"dataGaName":1247,"dataGaLocation":1175},"ai-assisted development",[1249],{"title":1250,"links":1251},"Topics",[1252,1257,1262,1267,1272,1277,1282,1287],{"text":1253,"config":1254},"CICD",{"href":1255,"dataGaName":1256,"dataGaLocation":1175},"/topics/ci-cd/","cicd",{"text":1258,"config":1259},"GitOps",{"href":1260,"dataGaName":1261,"dataGaLocation":1175},"/topics/gitops/","gitops",{"text":1263,"config":1264},"DevOps",{"href":1265,"dataGaName":1266,"dataGaLocation":1175},"/topics/devops/","devops",{"text":1268,"config":1269},"Version Control",{"href":1270,"dataGaName":1271,"dataGaLocation":1175},"/topics/version-control/","version control",{"text":1273,"config":1274},"DevSecOps",{"href":1275,"dataGaName":1276,"dataGaLocation":1175},"/topics/devsecops/","devsecops",{"text":1278,"config":1279},"Cloud Native",{"href":1280,"dataGaName":1281,"dataGaLocation":1175},"/topics/cloud-native/","cloud native",{"text":1283,"config":1284},"AI for Coding",{"href":1285,"dataGaName":1286,"dataGaLocation":1175},"/topics/devops/ai-for-coding/","ai for coding",{"text":1288,"config":1289},"Agentic AI",{"href":1290,"dataGaName":1291,"dataGaLocation":1175},"/topics/agentic-ai/","agentic ai",{"title":1293,"links":1294},"Solutions",[1295,1297,1299,1304,1308,1311,1315,1318,1320,1323,1326,1331],{"text":825,"config":1296},{"href":820,"dataGaName":825,"dataGaLocation":1175},{"text":814,"config":1298},{"href":797,"dataGaName":798,"dataGaLocation":1175},{"text":1300,"config":1301},"Agile development",{"href":1302,"dataGaName":1303,"dataGaLocation":1175},"/solutions/agile-delivery/","agile delivery",{"text":1305,"config":1306},"SCM",{"href":810,"dataGaName":1307,"dataGaLocation":1175},"source code management",{"text":1253,"config":1309},{"href":803,"dataGaName":1310,"dataGaLocation":1175},"continuous integration & delivery",{"text":1312,"config":1313},"Value stream management",{"href":853,"dataGaName":1314,"dataGaLocation":1175},"value stream management",{"text":1258,"config":1316},{"href":1317,"dataGaName":1261,"dataGaLocation":1175},"/solutions/gitops/",{"text":863,"config":1319},{"href":866,"dataGaName":867,"dataGaLocation":1175},{"text":1321,"config":1322},"Small business",{"href":872,"dataGaName":873,"dataGaLocation":1175},{"text":1324,"config":1325},"Public sector",{"href":878,"dataGaName":879,"dataGaLocation":1175},{"text":1327,"config":1328},"Education",{"href":1329,"dataGaName":1330,"dataGaLocation":1175},"/solutions/education/","education",{"text":1332,"config":1333},"Financial services",{"href":1334,"dataGaName":1335,"dataGaLocation":1175},"/solutions/finance/","financial services",{"title":886,"links":1337},[1338,1340,1342,1344,1347,1349,1352,1354,1356,1358,1360,1362,1364,1366],{"text":899,"config":1339},{"href":901,"dataGaName":902,"dataGaLocation":1175},{"text":904,"config":1341},{"href":906,"dataGaName":907,"dataGaLocation":1175},{"text":909,"config":1343},{"href":911,"dataGaName":912,"dataGaLocation":1175},{"text":914,"config":1345},{"href":916,"dataGaName":1346,"dataGaLocation":1175},"docs",{"text":937,"config":1348},{"href":939,"dataGaName":940,"dataGaLocation":1175},{"text":1350,"config":1351},"What's new",{"href":997,"dataGaName":998,"dataGaLocation":1175},{"text":932,"config":1353},{"href":934,"dataGaName":935,"dataGaLocation":1175},{"text":951,"config":1355},{"href":953,"dataGaName":954,"dataGaLocation":1175},{"text":959,"config":1357},{"href":961,"dataGaName":962,"dataGaLocation":1175},{"text":964,"config":1359},{"href":966,"dataGaName":967,"dataGaLocation":1175},{"text":969,"config":1361},{"href":971,"dataGaName":972,"dataGaLocation":1175},{"text":974,"config":1363},{"href":976,"dataGaName":977,"dataGaLocation":1175},{"text":979,"config":1365},{"href":981,"dataGaName":982,"dataGaLocation":1175},{"text":984,"config":1367},{"href":986,"dataGaName":987,"dataGaLocation":1175},{"title":1000,"links":1369},[1370,1372,1374,1376,1378,1380,1384,1389,1391,1393,1395],{"text":1008,"config":1371},{"href":1010,"dataGaName":1002,"dataGaLocation":1175},{"text":1013,"config":1373},{"href":1015,"dataGaName":1016,"dataGaLocation":1175},{"text":1021,"config":1375},{"href":1023,"dataGaName":1024,"dataGaLocation":1175},{"text":1026,"config":1377},{"href":1028,"dataGaName":1029,"dataGaLocation":1175},{"text":1031,"config":1379},{"href":1033,"dataGaName":1034,"dataGaLocation":1175},{"text":1381,"config":1382},"Sustainability",{"href":1383,"dataGaName":1381,"dataGaLocation":1175},"/sustainability/",{"text":1385,"config":1386},"Diversity, inclusion and belonging (DIB)",{"href":1387,"dataGaName":1388,"dataGaLocation":1175},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1036,"config":1390},{"href":1038,"dataGaName":1039,"dataGaLocation":1175},{"text":1046,"config":1392},{"href":1048,"dataGaName":1049,"dataGaLocation":1175},{"text":1051,"config":1394},{"href":1053,"dataGaName":1054,"dataGaLocation":1175},{"text":1396,"config":1397},"Modern Slavery Transparency Statement",{"href":1398,"dataGaName":1399,"dataGaLocation":1175},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1401},[1402,1405,1408],{"text":1403,"config":1404},"Terms",{"href":1227,"dataGaName":1228,"dataGaLocation":1175},{"text":1406,"config":1407},"Cookies",{"dataGaName":1237,"dataGaLocation":1175,"id":1238,"isOneTrustButton":712},{"text":1409,"config":1410},"Privacy",{"href":1232,"dataGaName":1233,"dataGaLocation":1175},[1412],{"id":1413,"title":7,"body":711,"config":1414,"content":1416,"description":711,"extension":1420,"meta":1421,"navigation":712,"path":1422,"seo":1423,"stem":1424,"__hash__":1425},"blogAuthors/en-us/blog/authors/fernando-diaz.yml",{"template":1415},"BlogAuthor",{"name":7,"config":1417},{"headshot":1418,"ctfId":1419},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659556/Blog/Author%20Headshots/fern_diaz.png","fjdiaz","yml",{},"/en-us/blog/authors/fernando-diaz",{},"en-us/blog/authors/fernando-diaz","lxRJIOydP4_yzYZvsPcuQevP9AYAKREF7i8QmmdnOWc",[1427,1435,1443],{"title":1428,"description":1429,"heroImage":1430,"category":707,"date":1431,"authors":1432,"slug":1434,"externalUrl":711},"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",[1433],"Julian Thome","improved-scope-offset-fingerprinting",{"title":1436,"description":1437,"heroImage":1430,"category":707,"date":1438,"authors":1439,"slug":1442,"externalUrl":711},"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",[1440,1441],"Erick Bajao","Joe Randazzo","gitlab-secrets-manager-add-eso-terraform-api-support",{"title":1444,"description":1445,"heroImage":1446,"category":707,"date":1447,"authors":1448,"slug":1450,"externalUrl":711},"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",[1449],"Alisa Ho","claude-security-and-gitlab",{"promotions":1452},[1453,1467,1478,1489],{"id":1454,"categories":1455,"header":1457,"text":1458,"button":1459,"image":1464},"ai-modernization",[1456],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1460,"config":1461},"Get your AI maturity score",{"href":1462,"dataGaName":1463,"dataGaLocation":940},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1465},{"src":1466},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1468,"categories":1469,"header":1470,"text":1458,"button":1471,"image":1475},"devops-modernization",[727,1276],"Are you just managing tools or shipping innovation?",{"text":1472,"config":1473},"Get your DevOps maturity score",{"href":1474,"dataGaName":1463,"dataGaLocation":940},"/assessments/devops-modernization-assessment/",{"config":1476},{"src":1477},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1479,"categories":1480,"header":1481,"text":1458,"button":1482,"image":1486},"security-modernization",[707],"Are you trading speed for security?",{"text":1483,"config":1484},"Get your security maturity score",{"href":1485,"dataGaName":1463,"dataGaLocation":940},"/assessments/security-modernization-assessment/",{"config":1487},{"src":1488},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1490,"paths":1491,"header":1494,"text":1495,"button":1496,"image":1501},"github-azure-migration",[1492,1493],"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":1497,"config":1498},"See how GitLab compares to GitHub",{"href":1499,"dataGaName":1500,"dataGaLocation":940},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1502},{"src":1477},{"header":1504,"blurb":1505,"button":1506,"secondaryButton":1511},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1507,"config":1508},"Get your free trial",{"href":1509,"dataGaName":740,"dataGaLocation":1510},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":1213,"config":1512},{"href":1065,"dataGaName":745,"dataGaLocation":1510},1786803752258]