[{"data":1,"prerenderedAt":1375},["ShallowReactive",2],{"/blog/top-5-compliance-features-to-leverage-in-gitlab":3,"navigation-en-us":590,"banner-en-us":1017,"footer-en-us":1027,"blog-post-authors-en-us-Madeline Lake":1272,"blog-related-posts-en-us-top-5-compliance-features-to-leverage-in-gitlab":1287,"blog-promotions-en-us":1312,"next-steps-en-us":1365},{"id":4,"title":5,"authors":6,"body":8,"category":571,"date":572,"description":573,"extension":574,"externalUrl":575,"faq":575,"featured":576,"heroImage":577,"meta":578,"navigation":579,"path":580,"seo":581,"slug":585,"stem":586,"tags":587,"template":588,"updatedDate":575,"__hash__":589},"blogPosts/en-us/blog/top-5-compliance-features-to-leverage-in-gitlab.md","Top 5 compliance features to leverage in GitLab",[7],"Madeline Lake",{"type":9,"value":10,"toc":550},"minimark",[11,28,40,46,51,85,90,93,96,104,109,112,123,126,134,138,141,145,148,153,156,159,164,184,188,191,200,204,207,218,221,232,236,239,242,253,256,264,267,270,278,282,285,299,302,307,311,314,317,359,362,368,371,374,383,386,400,404,407,418,421,425,429,432,435,444,452,455,458,464,467,478,481,488,492,495,509,512,520,523,530,536],[12,13,14,15,21,22,27],"p",{},"GitLab's ",[16,17,20],"a",{"href":18,"rel":19},"https://docs.gitlab.com/administration/compliance/compliance_features/",[],"compliance management capabilities"," are designed to integrate compliance into development and deployment processes from the start. As a tenured compliance professional and member of our ",[16,23,26],{"href":24,"rel":25},"https://handbook.gitlab.com/handbook/security/security-assurance/security-compliance/",[],"Security Compliance team here at GitLab",", I can tell you from experience it is always easiest to design your processes to be secure and compliant from the start than it is to re-engineer existing processes to be compliant.",[12,29,30,34,35,39],{},[31,32,33],"strong",{},"Why should you care about your GitLab instance being secure and compliant?","\nIn additon to reducing the risk of a breach and lowering costs, there are regulatory and compliance requirements to consider.\nTypically regulatory and compliance audits are unavoidable and can be time-consuming and stressful. However, GitLab has many easy-to-use, built-in features that may help fulfill your organization's compliance requirements and make your environment more secure. Here at GitLab, these are features we use everyday. The best part is, most of the features I'll outline below are included as ",[16,36,38],{"href":37},"/pricing/feature-comparison/","free features",".",[12,41,42],{},[43,44,45],"em",{},"Note: I'll add an asterisk (*) next to any feature which is not available on our free tier.",[12,47,48],{},[31,49,50],{},"Here's the tl;dr list:",[52,53,54,61,67,73,79],"ul",{},[55,56,57],"li",{},[16,58,60],{"href":59},"/blog/top-5-compliance-features-to-leverage-in-gitlab/#1-enable-mfa","Enable Multi-Factor Authentication (MFA)",[55,62,63],{},[16,64,66],{"href":65},"/blog/top-5-compliance-features-to-leverage-in-gitlab/#2-review-privileged-access-for-critical-projects","Review privileged access for critical projects",[55,68,69],{},[16,70,72],{"href":71},"/blog/top-5-compliance-features-to-leverage-in-gitlab/#3-turn-on-protected-branches","Turn on protected branches",[55,74,75],{},[16,76,78],{"href":77},"/blog/top-5-compliance-features-to-leverage-in-gitlab/#4-activate-merge-request-approval-settings-","Activate merge request approval settings",[55,80,81],{},[16,82,84],{"href":83},"/blog/top-5-compliance-features-to-leverage-in-gitlab/#5-configure-audit-events-","Configure audit events",[86,87,89],"h2",{"id":88},"_1-enable-mfa","1. Enable MFA",[12,91,92],{},"Enabling MFA is simple and reduces the risk of attacks by making it more difficult to gain access to accounts.",[12,94,95],{},"MFA can be enforced for all users in your GitLab instance in the admin center. Alternatively, MFA can be configured for accounts individually.",[12,97,98,99,39],{},"You can learn ",[16,100,103],{"href":101,"rel":102},"https://docs.gitlab.com/user/profile/account/two_factor_authentication/",[],"how to enable MFA in our GitLab documentation",[105,106,108],"h3",{"id":107},"compliance-standards-and-gitlab-controls-for-mfa","Compliance standards and GitLab controls for MFA",[12,110,111],{},"MFA relates to the following compliance standards:",[52,113,114,117,120],{},[55,115,116],{},"AICPA TSC CC6.1",[55,118,119],{},"ISO 27001 2013 A9.2.3, A9.2.4, A.9.3.1, A9.4.3",[55,121,122],{},"NIST 800-53 IA-5, IA-5(1), IA-2(1), IA-2(2)",[12,124,125],{},"Illustrative GitLab controls for MFA:",[52,127,128,131],{},[55,129,130],{},"IAC-02: GitLab Inc. has implemented mechanisms to uniquely identify and authenticate organizational users and processes acting on behalf of organizational users.",[55,132,133],{},"IAC-06: GitLab Inc. has implemented automated mechanisms to enforce MFA for: remote network access; and/or non-console access to critical systems or systems that store, transmit and/or process sensitive data.",[86,135,137],{"id":136},"_2-review-privileged-access-for-critical-projects","2. Review privileged access for critical projects",[12,139,140],{},"Undoubtedly, one of the biggest risks to your environment is logical access. To reduce the risk, we recommend administrators ensure access is restricted based on the principle of least privilege. Access should be monitored continuously as access changes can occur multiple times, daily, in most organizations. In order to appropriately review access in your GitLab instance, it is important to first understand the access security structure within GitLab.",[105,142,144],{"id":143},"breaking-down-the-access-security-structure","Breaking down the access security structure",[12,146,147],{},"Within GitLab, there are six different roles that can be assigned to users - “Guest”, “Reporter”, “Developer”, “Maintainer”, “Owner” and “Administrator”.  Privileged access within GitLab is considered to be the “Administrator”, “Owners”, and “Maintainers” roles.",[149,150,152],"h4",{"id":151},"gitlab-administrators-receive-all-permissions","GitLab Administrators receive all permissions",[12,154,155],{},"Owners and Maintainers are considered administrative because these roles have permissions to do highly sensitive actions including but not limited to: managing merge settings; enabling or disabling branch protection; managing access to a project; managing access tokens; exporting a project; and deleting issues, merge requests, and projects.",[12,157,158],{},"As privileged access is the highest risk to your environment, these roles should be tightly controlled.",[12,160,161],{},[31,162,163],{},"Some best practices in regards to ensuring access is restricted based on the principle of least privilege include:",[52,165,166,172,178],{},[55,167,168,169],{},"When privileged access is requested, ensure appropriate approvals are received prior to access being provisioned. ",[43,170,171],{},"Best practice is to obtain approvals from the data owner and the manager of the user who's receiving access.",[55,173,174,175],{},"When a user changes job responsibilities or leaves the organization, ensure access is deprovisioned timely and any shared passwords or tokens are rotated. ",[43,176,177],{},"Best practice is to do this within 72 hours or less.",[55,179,180,181],{},"Be sure to review access on a periodic basis to ensure access is still appropriately aligned to a user's job responsibilities. ",[43,182,183],{},"Best practice is to do this on a quarterly basis and have access reviewed by the data owner.",[149,185,187],{"id":186},"what-to-do-when-you-identify-inappropriate-access","What to do when you identify inappropriate access",[12,189,190],{},"When inappropriate access is identified, it is important to take immediate, mitigating actions by checking the user's last login date and checking audit logs as they are available to ensure no inappropriate transactions were performed. These mitigating actions should be conducted upon identification to ensure accessibility of information and to understand potential exposure.",[12,192,193,194,199],{},"Refer to our ",[16,195,198],{"href":196,"rel":197},"https://docs.gitlab.com/user/permissions/",[],"GitLab documentation regarding permissions and roles"," for more information.",[105,201,203],{"id":202},"compliance-standards-and-gitlab-controls-for-privileged-access","Compliance standards and GitLab controls for privileged access",[12,205,206],{},"Privileged access relates to the following compliance standards:",[52,208,209,212,215],{},[55,210,211],{},"AICPA TSC CC6.1, CC6.2, CC6.3",[55,213,214],{},"ISO 27001 2013 A9.2.1, A9.2.2, A9.2.3, A9.4.4",[55,216,217],{},"NIST 800-53 IA-12(4)",[12,219,220],{},"Illustrative GitLab controls for privileged access:",[52,222,223,226,229],{},[55,224,225],{},"IAC-07: GitLab Inc. has implemented mechanisms to utilize a formal user registration and de-registration process that governs the assignment of access rights.",[55,227,228],{},"IAC-16: GitLab Inc. has implemented mechanisms to restrict and control privileged access rights for users and services.",[55,230,231],{},"IAC-17: GitLab Inc. has implemented mechanisms to periodically review the privileges assigned to users to validate the need for such privileges; and reassign or remove privileges, if necessary, to correctly reflect organizational mission and business needs.",[86,233,235],{"id":234},"_3-turn-on-protected-branches","3. Turn on protected branches",[12,237,238],{},"Within GitLab, role-based access can be used to give access to repositories and branches at the project level.  By utilizing protected branches, further restrictions can be configured on certain branches in order to protect them. Protecting your default branch is the most important; this branch is often called \"master\" or \"main\".",[12,240,241],{},"Some best practice in regards to protection rules include:",[52,243,244,247,250],{},[55,245,246],{},"Prevent commits directly into the default branch",[55,248,249],{},"Require a merge request each time there is a commit",[55,251,252],{},"Require approval by a codeowner before merging code",[12,254,255],{},"Protected branches should be configured in accordance with your organization's change management policy. Here's an example of how to configure protection rules according to our recommendations:",[12,257,258,263],{},[259,260],"img",{"alt":261,"src":262},"file name","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782399245/blog/Content%20Images/top-5/protected_branch_example.png","\nExample of how to configure branch protection rules",[12,265,266],{},"This example shows that anyone with the “developer” and “maintainer” roles are allowed to merge to the default branch and “no one” is allowed to push directly to the default branch without a merge request. Further, codeowner approval must be obtained prior to merging.",[12,268,269],{},"Protected branches can be modified by anyone with at least “maintainer” access. In order to monitor if protected branch settings are inappropriately modified, administrators should consider implementing a monitoring control by utilizing audit events.",[12,271,272,273,199],{},"Refer to our GitLab documentation regarding ",[16,274,277],{"href":275,"rel":276},"https://docs.gitlab.com/user/project/protected_branches/",[],"protected branches",[105,279,281],{"id":280},"compliance-standards-and-gitlab-controls-for-branch-protection","Compliance standards and GitLab controls for branch protection",[12,283,284],{},"Branch protection settings relate to the following compliance standards:",[52,286,287,290,293,296],{},[55,288,289],{},"COSO Principle 9",[55,291,292],{},"AICPA TSC CC3.4, CC8.1",[55,294,295],{},"ISO 27001 2013 A12.1.2, A14.2.2, A.14.2.6, A.14.2.9",[55,297,298],{},"NIST 800-53 CM-3, CM-3(2), SA-8(31), SI-6",[12,300,301],{},"Illustrative GitLab controls for branch protection settings include:",[52,303,304],{},[55,305,306],{},"CHG-04: GitLab Inc. has implemented mechanisms to enforce configuration restrictions in an effort to restrict the ability of users to conduct unauthorized changes.",[86,308,310],{"id":309},"_4-activate-merge-request-approval-settings","4. Activate merge request approval settings *",[12,312,313],{},"Changes to your project repository typically start with a merge request. If your default branch is protected, commits must be done through a merge request. By configuring your merge request settings with approval rules ensures that changes are properly approved prior to deployment to production. Within the merge request approval settings you can specify the number of approvals required and the allowed approvers for specific merge requests.",[12,315,316],{},"In addition, there are a number of approval settings that further enforce segregation of duties within change management:",[52,318,319,327,335,343,351],{},[55,320,321,326],{},[16,322,325],{"href":323,"rel":324},"https://docs.gitlab.com/user/project/merge_requests/approvals/settings/#prevent-approval-by-author",[],"Prevent approval by author",": When enabled, the author cannot also provide one of the required approvals.",[55,328,329,334],{},[16,330,333],{"href":331,"rel":332},"https://docs.gitlab.com/user/project/merge_requests/approvals/settings/#prevent-approvals-by-users-who-add-commits",[],"Prevent approvals by users who add commits",": When enabled, users who have committed to a merge request cannot also approve it.",[55,336,337,342],{},[16,338,341],{"href":339,"rel":340},"https://docs.gitlab.com/user/project/merge_requests/approvals/settings/#prevent-editing-approval-rules-in-merge-requests",[],"Prevent editing approval rules in merge requests",": When enabled, users can’t override the project’s approval rules on merge requests.",[55,344,345,350],{},[16,346,349],{"href":347,"rel":348},"https://docs.gitlab.com/user/project/merge_requests/approvals/settings/#require-user-password-to-approve",[],"Require user password to approve",": When enabled, users must first authenticate with a password prior to submitting approval.",[55,352,353,358],{},[16,354,357],{"href":355,"rel":356},"https://docs.gitlab.com/user/project/merge_requests/approvals/settings/#remove-all-approvals-when-commits-are-added-to-the-source-branch",[],"Remove all approvals when commits are added to the source branch",": When enabled, this removes all existing approvals on a merge request when more changes are added to it.",[12,360,361],{},"Merge request approval settings should be configured in accordance with your organization's change management policy. An example of how to configure merge requests according to the best practices outlined above is as follows:",[12,363,364,367],{},[259,365],{"alt":261,"src":366},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1782399245/blog/Content%20Images/top-5/mr_approval_example.png","\nExample of how to configure merge requests",[12,369,370],{},"In the example above, you can see that at least two approvers are required: to enforce segregation of duties and that the approval settings are enforced.",[12,372,373],{},"If your change management policy requires approvals from different groups or departments, such as the business owner and the data owner, those approval groups can be added as additional approval rules. When enabled, these settings provide reasonable assurance that your organization’s GitLab instance enforces segregation of duties and systematically enforces your organizational change management policy.",[12,375,376,377,382],{},"To ensure all projects under a certain group have the same merge request approval settings, at the top-level group, ",[16,378,381],{"href":379,"rel":380},"https://docs.gitlab.com/user/group/#group-merge-request-approval-settings",[],"group approval settings"," can be configured. These settings cascade to all projects that belong to the group.",[12,384,385],{},"Merge request approval settings can be modified by anyone with at least “maintainer” access. In order to monitor if merge request approval settings are inappropriately modified, consider implementing a monitoring control by utilizing audit events.",[12,387,388,389,394,395,39],{},"For more information, refer to our GitLab documentation around merge request ",[16,390,393],{"href":391,"rel":392},"https://docs.gitlab.com/user/project/merge_requests/approvals/",[],"approvals"," and ",[16,396,399],{"href":397,"rel":398},"https://docs.gitlab.com/user/project/merge_requests/approvals/settings/",[],"settings",[105,401,403],{"id":402},"compliance-standards-and-gitlab-controls-for-merge-approvals","Compliance standards and GitLab controls for merge approvals",[12,405,406],{},"Merge approval settings relate to the following compliance standards:",[52,408,409,411,413,416],{},[55,410,289],{},[55,412,292],{},[55,414,415],{},"ISO 27001 2013 A12.1.2, A14.2.2, A.14.2.6, A.14.2.9,",[55,417,298],{},[12,419,420],{},"Illustrative GitLab controls for merge approval settings include:",[52,422,423],{},[55,424,306],{},[86,426,428],{"id":427},"_5-configure-audit-events","5. Configure audit events *",[12,430,431],{},"Audit events are a way to view changes made within GitLab and can be leveraged as a detective and monitoring control for continuous monitoring of configured settings. A report can be generated on the audit event, which can then be provided to auditors to evidence your company’s compliance for the audit period for a specific, configured setting.",[12,433,434],{},"Audit events can be configured at the group, project and instance level.",[12,436,437,438,443],{},"It is best practice to monitor the following ",[16,439,442],{"href":440,"rel":441},"https://docs.gitlab.com/user/compliance/audit_events/",[],"audit events"," in your GitLab environment:",[52,445,446,449],{},[55,447,448],{},"merge approval settings",[55,450,451],{},"protected branch settings",[12,453,454],{},"As previously mentioned, merge approval settings and protected branch settings can be modified by anyone with “maintainer” access. By monitoring these critical settings for audit events, it can be determined if the protected branch settings or merge approval settings were modified during the period. If the settings were modified, investigation can occur to understand the potential impact and be an indicator to turn the setting back on.",[12,456,457],{},"Here’s an example of what these audit events look like:",[12,459,460,463],{},[259,461],{"alt":261,"src":462},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1782399244/blog/Content%20Images/top-5/audit_event_example.png","\nExample of audit events",[12,465,466],{},"In this example of audit events, we see the following:",[52,468,469,472,475],{},[55,470,471],{},"The merge approval settings “require new approvals when new commits are added to an MR” was turned off on the project.",[55,473,474],{},"The number of required approvals was reduced from 2 to 1.",[55,476,477],{},"Merging is now allowed by anyone on the default branch.\nThese changes would alter the protected branch settings and merge approval settings that were previously configured.",[12,479,480],{},"Audit events can be streamed to third-party systems. The advantage of this is to integrate into a security information and event management (SIEM) system for centralized monitoring and alerting.",[12,482,483,484,39],{},"To learn more, check out the ",[16,485,487],{"href":440,"rel":486},[],"GitLab documentation surrounding audit events",[105,489,491],{"id":490},"compliance-standards-and-gitlab-controls-for-audit-events","Compliance standards and GitLab controls for audit events",[12,493,494],{},"Audit events relate to the following compliance standards:",[52,496,497,500,503,506],{},[55,498,499],{},"COSO Principle 13",[55,501,502],{},"AICPA TSC CC4.1, CC7.2",[55,504,505],{},"ISO 27001 2013 A12.4.1, A12.4.3",[55,507,508],{},"NIST 800-53 AU-2",[12,510,511],{},"Illustrative GitLab controls for audit events:",[52,513,514,517],{},[55,515,516],{},"CHG-07: Audit events are reviewed quarterly to ensure no inappropriate changes to key change management Segregation Of Duties (SOD) settings.",[55,518,519],{},"MON-03: Configure systems to produce audit records that contain sufficient information to, at a minimum: establish what type of event occurred; when (date and time) the event occurred; where the event occurred; the source of the event; the outcome (success or failure) of the event; and the identity of any user/subject associated with the event.",[12,521,522],{},"How does GitLab help you maintain your compliance? Have a favorite feature that helps your org maintain its compliance that we missed, let us know in the comments!",[12,524,525,526,39],{},"Interested in learning more about how your organization can leverage the compliance features offered within GitLab? ",[16,527,529],{"href":528},"/sales/","Connect with a specialist to learn more",[12,531,532,535],{},[31,533,534],{},"Note:"," An asterisk (*) denotes a feature which is not available on our free tier.",[12,537,538,539,544,545],{},"Cover image by ",[16,540,543],{"href":541,"rel":542},"https://www.pexels.com/@padrinan/",[],"Miguel Á. Padriñán"," on ",[16,546,549],{"href":547,"rel":548},"https://www.pexels.com/photo/5-strike-symbol-1010973/",[],"Pexels",{"title":551,"searchDepth":552,"depth":552,"links":553},"",2,[554,558,562,565,568],{"id":88,"depth":552,"text":89,"children":555},[556],{"id":107,"depth":557,"text":108},3,{"id":136,"depth":552,"text":137,"children":559},[560,561],{"id":143,"depth":557,"text":144},{"id":202,"depth":557,"text":203},{"id":234,"depth":552,"text":235,"children":563},[564],{"id":280,"depth":557,"text":281},{"id":309,"depth":552,"text":310,"children":566},[567],{"id":402,"depth":557,"text":403},{"id":427,"depth":552,"text":428,"children":569},[570],{"id":490,"depth":557,"text":491},"security","2022-07-13","Highlighting features we use daily, our security team outlines 5 ways to configure your GitLab instance for increased security and compliance.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679391/Blog/Hero%20Images/pexels-5strike.jpg",{},true,"/en-us/blog/top-5-compliance-features-to-leverage-in-gitlab",{"title":5,"description":573,"ogTitle":5,"ogDescription":573,"noIndex":576,"ogImage":577,"ogUrl":582,"ogSiteName":583,"ogType":584,"canonicalUrls":582},"https://about.gitlab.com/blog/top-5-compliance-features-to-leverage-in-gitlab","https://about.gitlab.com","article","top-5-compliance-features-to-leverage-in-gitlab","en-us/blog/top-5-compliance-features-to-leverage-in-gitlab",[571],"BlogPost","wYyPLZbu4LQzrk8vXLRyRN07k7rW6hjqfhbyrErcLtw",{"logo":591,"freeTrial":596,"sales":601,"login":606,"items":611,"search":937,"minimal":968,"duo":987,"switchNav":996,"pricingDeployment":1007},{"config":592},{"href":593,"dataGaName":594,"dataGaLocation":595},"/","gitlab logo","header",{"text":597,"config":598},"Get free trial",{"href":599,"dataGaName":600,"dataGaLocation":595},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":602,"config":603},"Request a demo",{"href":604,"dataGaName":605,"dataGaLocation":595},"/sales/?contact-topic=request-demo","sales",{"text":607,"config":608},"Sign in",{"href":609,"dataGaName":610,"dataGaLocation":595},"https://gitlab.com/users/sign_in/","sign in",[612,641,741,746,860,916],{"text":613,"config":614,"menu":616},"Platform",{"dataNavLevelOne":615},"platform",{"type":617,"columns":618},"cards",[619,625,633],{"title":613,"description":620,"link":621},"The intelligent orchestration platform for DevSecOps",{"text":622,"config":623},"Explore our Platform",{"href":624,"dataGaName":615,"dataGaLocation":595},"/platform/",{"title":626,"description":627,"link":628},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":629,"config":630},"Meet GitLab Duo",{"href":631,"dataGaName":632,"dataGaLocation":595},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":634,"description":635,"link":636},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":637,"config":638},"Learn more",{"href":639,"dataGaName":640,"dataGaLocation":595},"/why-gitlab/","why gitlab",{"text":642,"left":579,"config":643,"menu":645},"Product",{"dataNavLevelOne":644},"solutions",{"type":646,"link":647,"columns":651,"feature":720},"lists",{"text":648,"config":649},"View all Solutions",{"href":650,"dataGaName":644,"dataGaLocation":595},"/solutions/",[652,676,699],{"title":653,"description":654,"link":655,"items":660},"Automation","CI/CD and automation to accelerate deployment",{"config":656},{"icon":657,"href":658,"dataGaName":659,"dataGaLocation":595},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[661,665,668,672],{"text":662,"config":663},"CI/CD",{"href":664,"dataGaLocation":595,"dataGaName":662},"/solutions/continuous-integration/",{"text":626,"config":666},{"href":631,"dataGaLocation":595,"dataGaName":667},"gitlab duo agent platform - product menu",{"text":669,"config":670},"Source Code Management",{"href":671,"dataGaLocation":595,"dataGaName":669},"/solutions/source-code-management/",{"text":673,"config":674},"Automated Software Delivery",{"href":658,"dataGaLocation":595,"dataGaName":675},"Automated software delivery",{"title":677,"description":678,"link":679,"items":684},"Security","Deliver code faster without compromising security",{"config":680},{"href":681,"dataGaName":682,"dataGaLocation":595,"icon":683},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[685,689,694],{"text":686,"config":687},"Application Security Testing",{"href":681,"dataGaName":688,"dataGaLocation":595},"Application security testing",{"text":690,"config":691},"Software Supply Chain Security",{"href":692,"dataGaLocation":595,"dataGaName":693},"/solutions/supply-chain/","Software supply chain security",{"text":695,"config":696},"Software Compliance",{"href":697,"dataGaName":698,"dataGaLocation":595},"/solutions/software-compliance/","software compliance",{"title":700,"link":701,"items":706},"Measurement",{"config":702},{"icon":703,"href":704,"dataGaName":705,"dataGaLocation":595},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[707,711,715],{"text":708,"config":709},"Visibility & Measurement",{"href":704,"dataGaLocation":595,"dataGaName":710},"Visibility and Measurement",{"text":712,"config":713},"Value Stream Management",{"href":714,"dataGaLocation":595,"dataGaName":712},"/solutions/value-stream-management/",{"text":716,"config":717},"Analytics & Insights",{"href":718,"dataGaLocation":595,"dataGaName":719},"/solutions/analytics-and-insights/","Analytics and insights",{"title":721,"type":646,"items":722},"GitLab for",[723,729,735],{"text":724,"config":725},"Enterprise",{"icon":726,"href":727,"dataGaLocation":595,"dataGaName":728},"Building","/enterprise/","enterprise",{"text":730,"config":731},"Small Business",{"icon":732,"href":733,"dataGaLocation":595,"dataGaName":734},"Work","/small-business/","small business",{"text":736,"config":737},"Public Sector",{"icon":738,"href":739,"dataGaLocation":595,"dataGaName":740},"Organization","/solutions/public-sector/","public sector",{"text":742,"config":743},"Pricing",{"href":744,"dataGaName":745,"dataGaLocation":595,"dataNavLevelOne":745},"/pricing/","pricing",{"text":747,"config":748,"menu":750},"Resources",{"dataNavLevelOne":749},"resources",{"type":646,"link":751,"columns":755,"feature":849},{"text":752,"config":753},"View all resources",{"href":754,"dataGaName":749,"dataGaLocation":595},"/resources/",[756,789,816],{"title":757,"items":758},"Getting started",[759,764,769,774,779,784],{"text":760,"config":761},"Install",{"href":762,"dataGaName":763,"dataGaLocation":595},"/install/","install",{"text":765,"config":766},"Quick start guides",{"href":767,"dataGaName":768,"dataGaLocation":595},"/get-started/","quick setup checklists",{"text":770,"config":771},"Learn",{"href":772,"dataGaLocation":595,"dataGaName":773},"https://university.gitlab.com/","learn",{"text":775,"config":776},"Product documentation",{"href":777,"dataGaName":778,"dataGaLocation":595},"https://docs.gitlab.com/","product documentation",{"text":780,"config":781},"Best practice videos",{"href":782,"dataGaName":783,"dataGaLocation":595},"/getting-started-videos/","best practice videos",{"text":785,"config":786},"Integrations",{"href":787,"dataGaName":788,"dataGaLocation":595},"/integrations/","integrations",{"title":790,"items":791},"Discover",[792,797,802,807,811],{"text":793,"config":794},"Customer success stories",{"href":795,"dataGaName":796,"dataGaLocation":595},"/customers/","customer success stories",{"text":798,"config":799},"Blog",{"href":800,"dataGaName":801,"dataGaLocation":595},"/blog/","blog",{"text":803,"config":804},"Demo Hub",{"href":805,"dataGaName":806,"dataGaLocation":595},"/demo-hub/","demo hub",{"text":808,"config":809},"The Source",{"href":810,"dataGaName":801,"dataGaLocation":595},"/the-source/",{"text":812,"config":813},"Remote",{"href":814,"dataGaName":815,"dataGaLocation":595},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":817,"items":818},"Connect",[819,824,829,834,839,844],{"text":820,"config":821},"GitLab Services",{"href":822,"dataGaName":823,"dataGaLocation":595},"/services/","services",{"text":825,"config":826},"Contribute",{"href":827,"dataGaName":828,"dataGaLocation":595},"https://contributors.gitlab.com","contribute",{"text":830,"config":831},"Community",{"href":832,"dataGaName":833,"dataGaLocation":595},"/community/","community",{"text":835,"config":836},"Forum",{"href":837,"dataGaName":838,"dataGaLocation":595},"https://forum.gitlab.com/","forum",{"text":840,"config":841},"Events",{"href":842,"dataGaName":843,"dataGaLocation":595},"/events/","events",{"text":845,"config":846},"Partners",{"href":847,"dataGaName":848,"dataGaLocation":595},"/partners/","partners",{"config":850,"title":853,"text":854,"link":855},{"background":851,"textColor":852},"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":856,"config":857},"Read the latest",{"href":858,"dataGaName":859,"dataGaLocation":595},"/whats-new/","whats new",{"text":861,"config":862,"menu":864},"Company",{"dataNavLevelOne":863},"company",{"type":646,"columns":865},[866],{"items":867},[868,873,879,881,886,891,896,901,906,911],{"text":869,"config":870},"About",{"href":871,"dataGaName":872,"dataGaLocation":595},"/company/","about",{"text":874,"config":875,"footerGa":878},"Jobs",{"href":876,"dataGaName":877,"dataGaLocation":595},"/jobs/","jobs",{"dataGaName":877},{"text":840,"config":880},{"href":842,"dataGaName":843,"dataGaLocation":595},{"text":882,"config":883},"Leadership",{"href":884,"dataGaName":885,"dataGaLocation":595},"/company/team/e-group/","leadership",{"text":887,"config":888},"Handbook",{"href":889,"dataGaName":890,"dataGaLocation":595},"https://handbook.gitlab.com/","handbook",{"text":892,"config":893},"Investor relations",{"href":894,"dataGaName":895,"dataGaLocation":595},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":897,"config":898},"Trust Center",{"href":899,"dataGaName":900,"dataGaLocation":595},"/security/","trust center",{"text":902,"config":903},"AI Transparency Center",{"href":904,"dataGaName":905,"dataGaLocation":595},"/ai-transparency-center/","ai transparency center",{"text":907,"config":908},"Newsletter",{"href":909,"dataGaName":910,"dataGaLocation":595},"/company/contact/#contact-forms","newsletter",{"text":912,"config":913},"Press",{"href":914,"dataGaName":915,"dataGaLocation":595},"/press/","press",{"text":917,"config":918,"menu":919},"Contact us",{"dataNavLevelOne":863},{"type":646,"columns":920},[921],{"items":922},[923,927,932],{"text":924,"config":925},"Talk to sales",{"href":528,"dataGaName":926,"dataGaLocation":595},"talk to sales",{"text":928,"config":929},"Support portal",{"href":930,"dataGaName":931,"dataGaLocation":595},"https://support.gitlab.com/hc/en-us","support portal",{"text":933,"config":934},"Customer portal",{"href":935,"dataGaName":936,"dataGaLocation":595},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":938,"login":939,"suggestions":946},"Close",{"text":940,"link":941},"To search repositories and projects, login to",{"text":942,"config":943},"gitlab.com",{"href":609,"dataGaName":944,"dataGaLocation":945},"search login","search",{"text":947,"default":948},"Suggestions",[949,951,955,957,961,965],{"text":626,"config":950},{"href":631,"dataGaName":626,"dataGaLocation":945},{"text":952,"config":953},"Code Suggestions (AI)",{"href":954,"dataGaName":952,"dataGaLocation":945},"/solutions/code-suggestions/",{"text":662,"config":956},{"href":664,"dataGaName":662,"dataGaLocation":945},{"text":958,"config":959},"GitLab on AWS",{"href":960,"dataGaName":958,"dataGaLocation":945},"/partners/technology-partners/aws/",{"text":962,"config":963},"GitLab on Google Cloud",{"href":964,"dataGaName":962,"dataGaLocation":945},"/partners/technology-partners/google-cloud-platform/",{"text":966,"config":967},"Why GitLab?",{"href":639,"dataGaName":966,"dataGaLocation":945},{"freeTrial":969,"mobileIcon":974,"desktopIcon":979,"secondaryButton":982},{"text":970,"config":971},"Start free trial",{"href":972,"dataGaName":600,"dataGaLocation":973},"https://gitlab.com/-/trials/new/","nav",{"altText":975,"config":976},"Gitlab Icon",{"src":977,"dataGaName":978,"dataGaLocation":973},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":975,"config":980},{"src":981,"dataGaName":978,"dataGaLocation":973},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":983,"config":984},"Get Started",{"href":985,"dataGaName":986,"dataGaLocation":973},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":988,"mobileIcon":992,"desktopIcon":994},{"text":989,"config":990},"Learn more about GitLab Duo",{"href":631,"dataGaName":991,"dataGaLocation":973},"gitlab duo",{"altText":975,"config":993},{"src":977,"dataGaName":978,"dataGaLocation":973},{"altText":975,"config":995},{"src":981,"dataGaName":978,"dataGaLocation":973},{"button":997,"mobileIcon":1002,"desktopIcon":1004},{"text":998,"config":999},"/switch",{"href":1000,"dataGaName":1001,"dataGaLocation":973},"#contact","switch",{"altText":975,"config":1003},{"src":977,"dataGaName":978,"dataGaLocation":973},{"altText":975,"config":1005},{"src":1006,"dataGaName":978,"dataGaLocation":973},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1008,"mobileIcon":1013,"desktopIcon":1015},{"text":1009,"config":1010},"Back to pricing",{"href":744,"dataGaName":1011,"dataGaLocation":973,"icon":1012},"back to pricing","GoBack",{"altText":975,"config":1014},{"src":977,"dataGaName":978,"dataGaLocation":973},{"altText":975,"config":1016},{"src":981,"dataGaName":978,"dataGaLocation":973},{"title":1018,"titleMobile":1019,"button":1020,"config":1025},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":637,"config":1021},{"href":1022,"dataGaName":1023,"dataGaLocation":1024},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":1026,"disabled":576},"release",{"data":1028},{"text":1029,"source":1030,"edit":1036,"contribute":1041,"config":1046,"items":1051,"minimal":1261},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":1031,"config":1032},"View page source",{"href":1033,"dataGaName":1034,"dataGaLocation":1035},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1037,"config":1038},"Edit this page",{"href":1039,"dataGaName":1040,"dataGaLocation":1035},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1042,"config":1043},"Please contribute",{"href":1044,"dataGaName":1045,"dataGaLocation":1035},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1047,"facebook":1048,"youtube":1049,"linkedin":1050},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1052,1099,1153,1197,1229],{"title":742,"links":1053,"subMenu":1068},[1054,1058,1063],{"text":1055,"config":1056},"View plans",{"href":744,"dataGaName":1057,"dataGaLocation":1035},"view plans",{"text":1059,"config":1060},"Why Premium?",{"href":1061,"dataGaName":1062,"dataGaLocation":1035},"/pricing/premium/","why premium",{"text":1064,"config":1065},"Why Ultimate?",{"href":1066,"dataGaName":1067,"dataGaLocation":1035},"/pricing/ultimate/","why ultimate",[1069],{"title":1070,"links":1071},"Contact Us",[1072,1075,1077,1079,1084,1089,1094],{"text":1073,"config":1074},"Contact sales",{"href":528,"dataGaName":605,"dataGaLocation":1035},{"text":928,"config":1076},{"href":930,"dataGaName":931,"dataGaLocation":1035},{"text":933,"config":1078},{"href":935,"dataGaName":936,"dataGaLocation":1035},{"text":1080,"config":1081},"Status",{"href":1082,"dataGaName":1083,"dataGaLocation":1035},"https://status.gitlab.com/","status",{"text":1085,"config":1086},"Terms of use",{"href":1087,"dataGaName":1088,"dataGaLocation":1035},"/terms/","terms of use",{"text":1090,"config":1091},"Privacy statement",{"href":1092,"dataGaName":1093,"dataGaLocation":1035},"/privacy/","privacy statement",{"text":1095,"config":1096},"Cookie preferences",{"dataGaName":1097,"dataGaLocation":1035,"id":1098,"isOneTrustButton":579},"cookie preferences","ot-sdk-btn",{"title":642,"links":1100,"subMenu":1109},[1101,1105],{"text":1102,"config":1103},"DevSecOps platform",{"href":624,"dataGaName":1104,"dataGaLocation":1035},"devsecops platform",{"text":1106,"config":1107},"AI-Assisted Development",{"href":631,"dataGaName":1108,"dataGaLocation":1035},"ai-assisted development",[1110],{"title":1111,"links":1112},"Topics",[1113,1118,1123,1128,1133,1138,1143,1148],{"text":1114,"config":1115},"CICD",{"href":1116,"dataGaName":1117,"dataGaLocation":1035},"/topics/ci-cd/","cicd",{"text":1119,"config":1120},"GitOps",{"href":1121,"dataGaName":1122,"dataGaLocation":1035},"/topics/gitops/","gitops",{"text":1124,"config":1125},"DevOps",{"href":1126,"dataGaName":1127,"dataGaLocation":1035},"/topics/devops/","devops",{"text":1129,"config":1130},"Version Control",{"href":1131,"dataGaName":1132,"dataGaLocation":1035},"/topics/version-control/","version control",{"text":1134,"config":1135},"DevSecOps",{"href":1136,"dataGaName":1137,"dataGaLocation":1035},"/topics/devsecops/","devsecops",{"text":1139,"config":1140},"Cloud Native",{"href":1141,"dataGaName":1142,"dataGaLocation":1035},"/topics/cloud-native/","cloud native",{"text":1144,"config":1145},"AI for Coding",{"href":1146,"dataGaName":1147,"dataGaLocation":1035},"/topics/devops/ai-for-coding/","ai for coding",{"text":1149,"config":1150},"Agentic AI",{"href":1151,"dataGaName":1152,"dataGaLocation":1035},"/topics/agentic-ai/","agentic ai",{"title":1154,"links":1155},"Solutions",[1156,1158,1160,1165,1169,1172,1176,1179,1181,1184,1187,1192],{"text":686,"config":1157},{"href":681,"dataGaName":686,"dataGaLocation":1035},{"text":675,"config":1159},{"href":658,"dataGaName":659,"dataGaLocation":1035},{"text":1161,"config":1162},"Agile development",{"href":1163,"dataGaName":1164,"dataGaLocation":1035},"/solutions/agile-delivery/","agile delivery",{"text":1166,"config":1167},"SCM",{"href":671,"dataGaName":1168,"dataGaLocation":1035},"source code management",{"text":1114,"config":1170},{"href":664,"dataGaName":1171,"dataGaLocation":1035},"continuous integration & delivery",{"text":1173,"config":1174},"Value stream management",{"href":714,"dataGaName":1175,"dataGaLocation":1035},"value stream management",{"text":1119,"config":1177},{"href":1178,"dataGaName":1122,"dataGaLocation":1035},"/solutions/gitops/",{"text":724,"config":1180},{"href":727,"dataGaName":728,"dataGaLocation":1035},{"text":1182,"config":1183},"Small business",{"href":733,"dataGaName":734,"dataGaLocation":1035},{"text":1185,"config":1186},"Public sector",{"href":739,"dataGaName":740,"dataGaLocation":1035},{"text":1188,"config":1189},"Education",{"href":1190,"dataGaName":1191,"dataGaLocation":1035},"/solutions/education/","education",{"text":1193,"config":1194},"Financial services",{"href":1195,"dataGaName":1196,"dataGaLocation":1035},"/solutions/finance/","financial services",{"title":747,"links":1198},[1199,1201,1203,1205,1208,1210,1213,1215,1217,1219,1221,1223,1225,1227],{"text":760,"config":1200},{"href":762,"dataGaName":763,"dataGaLocation":1035},{"text":765,"config":1202},{"href":767,"dataGaName":768,"dataGaLocation":1035},{"text":770,"config":1204},{"href":772,"dataGaName":773,"dataGaLocation":1035},{"text":775,"config":1206},{"href":777,"dataGaName":1207,"dataGaLocation":1035},"docs",{"text":798,"config":1209},{"href":800,"dataGaName":801,"dataGaLocation":1035},{"text":1211,"config":1212},"What's new",{"href":858,"dataGaName":859,"dataGaLocation":1035},{"text":793,"config":1214},{"href":795,"dataGaName":796,"dataGaLocation":1035},{"text":812,"config":1216},{"href":814,"dataGaName":815,"dataGaLocation":1035},{"text":820,"config":1218},{"href":822,"dataGaName":823,"dataGaLocation":1035},{"text":825,"config":1220},{"href":827,"dataGaName":828,"dataGaLocation":1035},{"text":830,"config":1222},{"href":832,"dataGaName":833,"dataGaLocation":1035},{"text":835,"config":1224},{"href":837,"dataGaName":838,"dataGaLocation":1035},{"text":840,"config":1226},{"href":842,"dataGaName":843,"dataGaLocation":1035},{"text":845,"config":1228},{"href":847,"dataGaName":848,"dataGaLocation":1035},{"title":861,"links":1230},[1231,1233,1235,1237,1239,1241,1245,1250,1252,1254,1256],{"text":869,"config":1232},{"href":871,"dataGaName":863,"dataGaLocation":1035},{"text":874,"config":1234},{"href":876,"dataGaName":877,"dataGaLocation":1035},{"text":882,"config":1236},{"href":884,"dataGaName":885,"dataGaLocation":1035},{"text":887,"config":1238},{"href":889,"dataGaName":890,"dataGaLocation":1035},{"text":892,"config":1240},{"href":894,"dataGaName":895,"dataGaLocation":1035},{"text":1242,"config":1243},"Sustainability",{"href":1244,"dataGaName":1242,"dataGaLocation":1035},"/sustainability/",{"text":1246,"config":1247},"Diversity, inclusion and belonging (DIB)",{"href":1248,"dataGaName":1249,"dataGaLocation":1035},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":897,"config":1251},{"href":899,"dataGaName":900,"dataGaLocation":1035},{"text":907,"config":1253},{"href":909,"dataGaName":910,"dataGaLocation":1035},{"text":912,"config":1255},{"href":914,"dataGaName":915,"dataGaLocation":1035},{"text":1257,"config":1258},"Modern Slavery Transparency Statement",{"href":1259,"dataGaName":1260,"dataGaLocation":1035},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1262},[1263,1266,1269],{"text":1264,"config":1265},"Terms",{"href":1087,"dataGaName":1088,"dataGaLocation":1035},{"text":1267,"config":1268},"Cookies",{"dataGaName":1097,"dataGaLocation":1035,"id":1098,"isOneTrustButton":579},{"text":1270,"config":1271},"Privacy",{"href":1092,"dataGaName":1093,"dataGaLocation":1035},[1273],{"id":1274,"title":7,"body":575,"config":1275,"content":1277,"description":575,"extension":1281,"meta":1282,"navigation":579,"path":1283,"seo":1284,"stem":1285,"__hash__":1286},"blogAuthors/en-us/blog/authors/madeline-lake.yml",{"template":1276},"BlogAuthor",{"name":7,"config":1278},{"headshot":1279,"ctfId":1280},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659736/Blog/Author%20Headshots/madlake-headshot.jpg","madlake","yml",{},"/en-us/blog/authors/madeline-lake",{},"en-us/blog/authors/madeline-lake","wc1XeqlglUDVgKznqVDbvWqojsm8nt25Olw0crrDwxk",[1288,1296,1304],{"title":1289,"description":1290,"heroImage":1291,"category":571,"date":1292,"authors":1293,"slug":1295,"externalUrl":575},"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",[1294],"Julian Thome","improved-scope-offset-fingerprinting",{"title":1297,"description":1298,"heroImage":1291,"category":571,"date":1299,"authors":1300,"slug":1303,"externalUrl":575},"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",[1301,1302],"Erick Bajao","Joe Randazzo","gitlab-secrets-manager-add-eso-terraform-api-support",{"title":1305,"description":1306,"heroImage":1307,"category":571,"date":1308,"authors":1309,"slug":1311,"externalUrl":575},"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",[1310],"Alisa Ho","claude-security-and-gitlab",{"promotions":1313},[1314,1328,1340,1351],{"id":1315,"categories":1316,"header":1318,"text":1319,"button":1320,"image":1325},"ai-modernization",[1317],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1321,"config":1322},"Get your AI maturity score",{"href":1323,"dataGaName":1324,"dataGaLocation":801},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1326},{"src":1327},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1329,"categories":1330,"header":1332,"text":1319,"button":1333,"image":1337},"devops-modernization",[1331,1137],"product","Are you just managing tools or shipping innovation?",{"text":1334,"config":1335},"Get your DevOps maturity score",{"href":1336,"dataGaName":1324,"dataGaLocation":801},"/assessments/devops-modernization-assessment/",{"config":1338},{"src":1339},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1341,"categories":1342,"header":1343,"text":1319,"button":1344,"image":1348},"security-modernization",[571],"Are you trading speed for security?",{"text":1345,"config":1346},"Get your security maturity score",{"href":1347,"dataGaName":1324,"dataGaLocation":801},"/assessments/security-modernization-assessment/",{"config":1349},{"src":1350},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1352,"paths":1353,"header":1356,"text":1357,"button":1358,"image":1363},"github-azure-migration",[1354,1355],"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":1359,"config":1360},"See how GitLab compares to GitHub",{"href":1361,"dataGaName":1362,"dataGaLocation":801},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1364},{"src":1339},{"header":1366,"blurb":1367,"button":1368,"secondaryButton":1373},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1369,"config":1370},"Get your free trial",{"href":1371,"dataGaName":600,"dataGaLocation":1372},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":1073,"config":1374},{"href":528,"dataGaName":605,"dataGaLocation":1372},1786803755669]