[{"data":1,"prerenderedAt":851},["ShallowReactive",2],{"/en-us/topics/devsecops/devsecops-security-checklist":3,"navigation-en-us":180,"banner-en-us":591,"footer-en-us":601,"next-steps-en-us":841},{"id":4,"title":5,"body":6,"category":6,"config":6,"content":7,"description":6,"extension":171,"meta":172,"navigation":173,"path":174,"seo":175,"slug":6,"stem":178,"testContent":6,"type":6,"__hash__":179},"pages/en-us/topics/devsecops/devsecops-security-checklist/index.yml","",null,[8,22,30,147,169],{"type":9,"componentName":9,"componentContent":10},"CommonBreadcrumbs",{"crumbs":11},[12,16,20],{"title":13,"config":14},"Topics",{"href":15},"/topics/",{"title":17,"config":18},"Devsecops",{"href":19},"/topics/devsecops/",{"title":21},"Devsecops security checklist",{"type":23,"componentName":23,"componentContent":24},"CommonArticleHero",{"title":25,"text":26,"config":27},"DevSecOps Security Checklist: Complete Guide","DevSecOps security checklist covers ten steps to shift security left: align goals, automate scans, share reports, and streamline tools into a single platform.\n\n",{"id":28,"twoColumns":29},"a-devsecops-security-checklist",false,{"type":31,"componentName":31,"componentContent":32},"CommonSideNavigationWithTree",{"anchors":33,"components":80},{"text":34,"data":35},"More on this topic",[36,40,44,48,52,56,60,64,68,72,76],{"text":37,"config":38},"What is a DevSecOps security checklist?",{"href":39},"#devsecops-security-checklist",{"text":41,"config":42},"Understand security creates development challenges",{"href":43},"#security-creating-development-challenges",{"text":45,"config":46},"Align everyone on common goals",{"href":47},"#align-on-common-goals",{"text":49,"config":50},"Audit to identify where teams waste time",{"href":51},"#where-teams-waste-time",{"text":53,"config":54},"Discuss pain points and bottlenecks openly",{"href":55},"#address-pain-points-and-bottlenecks",{"text":57,"config":58},"Make small, incremental code changes",{"href":59},"#small-changes",{"text":61,"config":62},"Automate and integrate security scans",{"href":63},"#automation-integration-critical",{"text":65,"config":66},"Give developers access to security reports",{"href":67},"#access-security-reports",{"text":69,"config":70},"Audit and eliminate waterfall-style processes",{"href":71},"#audit-waterfall-security-processes",{"text":73,"config":74},"Ensure security teams have vulnerability visibility",{"href":75},"#give-security-teams-vulnerability-visibility",{"text":77,"config":78},"Streamline tools into a single platform",{"href":79},"#streamline-tools",[81,87,93,99,105,111,117,123,129,135,141],{"type":82,"componentName":82,"componentContent":83},"TopicsCopy",{"header":37,"text":84,"config":85},"A [DevSecOps](/topics/devsecops/) security checklist helps teams shift security left by moving it closer to developers. Developers find and fix bugs more effectively when security tools integrate directly into their workflow.\n\nChanging long-held beliefs about security requires planning, patience, and persistence. A structured checklist ensures teams address all critical areas systematically.\n",{"id":86},"devsecops-security-checklist",{"type":82,"componentName":82,"componentContent":88},{"header":89,"text":90,"config":91},"Step 1: Where is security creating development challenges?","Understanding current challenges is the essential first step. Friction often exists between developers and security teams despite improving relationships.\n\n### What challenges commonly exist?\n\nMany organisations struggle with getting developers to prioritise fixing vulnerabilities. Security teams often find vulnerabilities only after code merges in test environments rather than during development.\n\n### Why does confusion about ownership exist?\n\nTeams frequently disagree about [security responsibility](/solutions/application-security-testing/). Some security professionals believe they own security entirely while others say everyone shares responsibility. Clarifying ownership resolves this confusion.\n",{"id":92},"security-creating-development-challenges",{"type":82,"componentName":82,"componentContent":94},{"header":95,"text":96,"config":97},"Step 2: How do you align everyone on common goals?","With different assumptions about security and ownership, clear goals provide tangible targets. Moving security forward fails if teams do not understand their responsibilities and expectations.\n\nGoals like testing more code translate into faster releases once processes stabilize. Bringing a security champion into planning from the beginning ensures security involvement at every step.\n\n### How does alignment improve accountability?\n\nSuccessful DevSecOps improves accountability among non-security team members. Creating a culture where reducing security risks is everyone's responsibility distributes ownership effectively.\n",{"id":98},"align-on-common-goals",{"type":82,"componentName":82,"componentContent":100},{"header":101,"text":102,"config":103},"Step 3: How do you identify where teams waste time?","Without DevSecOps, security teams identify vulnerabilities using separate tools at the end of development cycles. They then return issues to developers for remediation, creating constant friction.\n\nIdentify how much time teams waste dealing with vulnerabilities after code merges. Look for security teams struggling to track remediation status of critical vulnerabilities.\n\nA single dashboard where developers and security professionals see remediation status eliminates constant check-ins. Shared visibility reduces inefficient communications.\n",{"id":104},"where-teams-waste-time",{"type":82,"componentName":82,"componentContent":106},{"header":107,"text":108,"config":109},"Step 4: How do you address pain points and bottlenecks?","Security can bottleneck software releases, but it is too important to minimise or ignore. DevSecOps brings security forward in the lifecycle, but getting there requires honest discussion.\n\nBring development, security, and operations teams together for frank discussion about security-related pain points and bottlenecks. Ensure everyone's voice is heard.\n\nOnce everything is on the table, create a plan to resolve each concern and execute that plan. Discussion identifies pain points not apparent from data alone.\n",{"id":110},"address-pain-points-and-bottlenecks",{"type":82,"componentName":82,"componentContent":112},{"header":113,"text":114,"config":115},"Step 5: Why make small, incremental code changes?","Smaller, incremental code changes are easier to review and secure than monolithic project changes. Small changes launch more quickly and reduce security review complexity.\n\n### How do small changes improve security?\n\nProducing code in small units and running automated tests on each commit allows developers to remediate vulnerabilities immediately. Developers fix issues on the spot rather than waiting days or weeks for feedback.\n\n### How do small changes save time?\n\nRunning regular tests saves time when the completed application is tested before production. Early detection prevents accumulation of security debt.\n",{"id":116},"small-changes",{"type":82,"componentName":82,"componentContent":118},{"header":119,"text":120,"config":121},"Step 6: Why are automation and integration critical?","Automation and integration make security scans powerful tools in DevOps. Ubiquitous scans mean every code change is reviewed and vulnerabilities are found much earlier.\n\nScans must be built into the developer's workflow rather than run separately. Integrated security enables developers to find and fix vulnerabilities before code leaves their hands.\n\nIntegration reduces the volume of security issues sent to security teams, streamlining their review. Security professionals focus on complex issues rather than routine findings.\n",{"id":122},"automation-integration-critical",{"type":82,"componentName":82,"componentContent":124},{"header":125,"text":126,"config":127},"Step 7: Why should developers access security reports?","Rather than keeping [SAST](/blog/gitlab-advanced-sast-is-now-generally-available/) and [DAST](/blog/comprehensive-guide-to-gitlab-dast/) results siloed with security teams, share information across the team, especially with developers.\n\nShared reports enable developers to understand and fix vulnerabilities directly. Immediate access accelerates remediation timelines.\n\nSecurity reports help developers build necessary security controls into the software development lifecycle. Exposure to findings improves security awareness over time.\n",{"id":128},"access-security-reports",{"type":82,"componentName":82,"componentContent":130},{"header":131,"text":132,"config":133},"Step 8: How do you audit waterfall-style security processes?","Traditional waterfall-style security finds vulnerabilities at the end of development cycles. Audit existing security workflows within your software development lifecycle to identify these patterns.\n\nConsider eliminating or greatly reducing dependence on waterfall-style security processes. Organisations should always be able to change direction as needs arise.\n\nKeeping your organisation nimble enables rapid response to security threats. Rigid processes prevent adaptation to emerging vulnerabilities.\n",{"id":134},"audit-waterfall-security-processes",{"type":82,"componentName":82,"componentContent":136},{"header":137,"text":138,"config":139},"Step 9: How do you give security teams vulnerability visibility?","The biggest challenge facing security professionals is prioritising vulnerability remediation. Other concerns include false positive volume and difficulty tracking vulnerability status.\n\nSecurity teams need visibility into both resolved and unresolved vulnerabilities. They need to see where vulnerabilities reside, who created them, and remediation status.\n\nLimited visibility contributes to security professionals feeling less prepared for the future. Better visibility improves confidence and effectiveness.\n",{"id":140},"give-security-teams-vulnerability-visibility",{"type":82,"componentName":82,"componentContent":142},{"header":143,"text":144,"config":145},"Step 10: Why streamline tools into a single platform?","Teams cannot be responsible for security without the right tools. Shifting security left works best with an end-to-end platform.\n\nAn [effective platform](/devsecops/) helps teams move away from waterfall processes, streamlines communication, includes automation and continuous integration, and provides a single source of truth for security scan results and vulnerability status.\n\nSingle platforms eliminate context switching between tools and ensure all team members access the same information. Consolidated visibility enables shared responsibility.\n",{"id":146},"streamline-tools",{"type":148,"componentName":148,"componentContent":149},"CommonFaq",{"header":150,"groups":151},"Frequently Asked Questions",[152],{"questions":153},[154,157,160,163,166],{"question":155,"answer":156},"What is DevSecOps?","DevSecOps is the practice of integrating security into every phase of the software development lifecycle.",{"question":158,"answer":159},"Why is DevSecOps important?","It helps detect and fix vulnerabilities early, reduces risk, and aligns security with development workflows.",{"question":161,"answer":162},"How does DevSecOps improve developer productivity?","By automating security checks and integrating tools into developer workflows, it reduces delays and context switching.",{"question":164,"answer":165},"What’s the first step in implementing DevSecOps?","Start by identifying where security causes friction in your development process and align teams on common goals.",{"question":167,"answer":168},"What tools support DevSecOps?","End-to-end DevOps platforms like GitLab offer integrated CI/CD, security scanning, dashboards, and collaboration features.",{"type":170,"componentName":170},"CommonNextSteps","yml",{},true,"/en-us/topics/devsecops/devsecops-security-checklist",{"title":176,"ogTitle":176,"description":177,"ogDescription":177},"DevSecOps Security Checklist: Complete Guide\n","DevSecOps security checklist covers ten steps to shift security left: align goals, automate scans, share reports, and streamline tools into a single platform.\n","en-us/topics/devsecops/devsecops-security-checklist/index","I5x74JBe76qoK63gLM6SjZxaBcUG-5Q_voLBp0nZ_5Y",{"data":181},{"logo":182,"freeTrial":187,"sales":192,"login":197,"items":202,"search":511,"minimal":542,"duo":561,"switchNav":570,"pricingDeployment":581},{"config":183},{"href":184,"dataGaName":185,"dataGaLocation":186},"/","gitlab logo","header",{"text":188,"config":189},"Get free trial",{"href":190,"dataGaName":191,"dataGaLocation":186},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":193,"config":194},"Talk to sales",{"href":195,"dataGaName":196,"dataGaLocation":186},"/sales/","sales",{"text":198,"config":199},"Sign in",{"href":200,"dataGaName":201,"dataGaLocation":186},"https://gitlab.com/users/sign_in/","sign in",[203,230,325,330,432,492],{"text":204,"config":205,"cards":207},"Platform",{"dataNavLevelOne":206},"platform",[208,214,222],{"title":204,"description":209,"link":210},"The intelligent orchestration platform for DevSecOps",{"text":211,"config":212},"Explore our Platform",{"href":213,"dataGaName":206,"dataGaLocation":186},"/platform/",{"title":215,"description":216,"link":217},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":218,"config":219},"Meet GitLab Duo",{"href":220,"dataGaName":221,"dataGaLocation":186},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":223,"description":224,"link":225},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":226,"config":227},"Learn more",{"href":228,"dataGaName":229,"dataGaLocation":186},"/why-gitlab/","why gitlab",{"text":231,"left":173,"config":232,"link":234,"lists":238,"footer":307},"Product",{"dataNavLevelOne":233},"solutions",{"text":235,"config":236},"View all Solutions",{"href":237,"dataGaName":233,"dataGaLocation":186},"/solutions/",[239,263,286],{"title":240,"description":241,"link":242,"items":247},"Automation","CI/CD and automation to accelerate deployment",{"config":243},{"icon":244,"href":245,"dataGaName":246,"dataGaLocation":186},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[248,252,255,259],{"text":249,"config":250},"CI/CD",{"href":251,"dataGaLocation":186,"dataGaName":249},"/solutions/continuous-integration/",{"text":215,"config":253},{"href":220,"dataGaLocation":186,"dataGaName":254},"gitlab duo agent platform - product menu",{"text":256,"config":257},"Source Code Management",{"href":258,"dataGaLocation":186,"dataGaName":256},"/solutions/source-code-management/",{"text":260,"config":261},"Automated Software Delivery",{"href":245,"dataGaLocation":186,"dataGaName":262},"Automated software delivery",{"title":264,"description":265,"link":266,"items":271},"Security","Deliver code faster without compromising security",{"config":267},{"href":268,"dataGaName":269,"dataGaLocation":186,"icon":270},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[272,276,281],{"text":273,"config":274},"Application Security Testing",{"href":268,"dataGaName":275,"dataGaLocation":186},"Application security testing",{"text":277,"config":278},"Software Supply Chain Security",{"href":279,"dataGaLocation":186,"dataGaName":280},"/solutions/supply-chain/","Software supply chain security",{"text":282,"config":283},"Software Compliance",{"href":284,"dataGaName":285,"dataGaLocation":186},"/solutions/software-compliance/","software compliance",{"title":287,"link":288,"items":293},"Measurement",{"config":289},{"icon":290,"href":291,"dataGaName":292,"dataGaLocation":186},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[294,298,302],{"text":295,"config":296},"Visibility & Measurement",{"href":291,"dataGaLocation":186,"dataGaName":297},"Visibility and Measurement",{"text":299,"config":300},"Value Stream Management",{"href":301,"dataGaLocation":186,"dataGaName":299},"/solutions/value-stream-management/",{"text":303,"config":304},"Analytics & Insights",{"href":305,"dataGaLocation":186,"dataGaName":306},"/solutions/analytics-and-insights/","Analytics and insights",{"title":308,"items":309},"GitLab for",[310,315,320],{"text":311,"config":312},"Enterprise",{"href":313,"dataGaLocation":186,"dataGaName":314},"/enterprise/","enterprise",{"text":316,"config":317},"Small Business",{"href":318,"dataGaLocation":186,"dataGaName":319},"/small-business/","small business",{"text":321,"config":322},"Public Sector",{"href":323,"dataGaLocation":186,"dataGaName":324},"/solutions/public-sector/","public sector",{"text":326,"config":327},"Pricing",{"href":328,"dataGaName":329,"dataGaLocation":186,"dataNavLevelOne":329},"/pricing/","pricing",{"text":331,"config":332,"link":334,"lists":338,"feature":423},"Resources",{"dataNavLevelOne":333},"resources",{"text":335,"config":336},"View all resources",{"href":337,"dataGaName":333,"dataGaLocation":186},"/resources/",[339,372,395],{"title":340,"items":341},"Getting started",[342,347,352,357,362,367],{"text":343,"config":344},"Install",{"href":345,"dataGaName":346,"dataGaLocation":186},"/install/","install",{"text":348,"config":349},"Quick start guides",{"href":350,"dataGaName":351,"dataGaLocation":186},"/get-started/","quick setup checklists",{"text":353,"config":354},"Learn",{"href":355,"dataGaLocation":186,"dataGaName":356},"https://university.gitlab.com/","learn",{"text":358,"config":359},"Product documentation",{"href":360,"dataGaName":361,"dataGaLocation":186},"https://docs.gitlab.com/","product documentation",{"text":363,"config":364},"Best practice videos",{"href":365,"dataGaName":366,"dataGaLocation":186},"/getting-started-videos/","best practice videos",{"text":368,"config":369},"Integrations",{"href":370,"dataGaName":371,"dataGaLocation":186},"/integrations/","integrations",{"title":373,"items":374},"Discover",[375,380,385,390],{"text":376,"config":377},"Customer success stories",{"href":378,"dataGaName":379,"dataGaLocation":186},"/customers/","customer success stories",{"text":381,"config":382},"Blog",{"href":383,"dataGaName":384,"dataGaLocation":186},"/blog/","blog",{"text":386,"config":387},"The Source",{"href":388,"dataGaName":389,"dataGaLocation":186},"/the-source/","the source",{"text":391,"config":392},"Remote",{"href":393,"dataGaName":394,"dataGaLocation":186},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":396,"items":397},"Connect",[398,403,408,413,418],{"text":399,"config":400},"GitLab Services",{"href":401,"dataGaName":402,"dataGaLocation":186},"/services/","services",{"text":404,"config":405},"Community",{"href":406,"dataGaName":407,"dataGaLocation":186},"/community/","community",{"text":409,"config":410},"Forum",{"href":411,"dataGaName":412,"dataGaLocation":186},"https://forum.gitlab.com/","forum",{"text":414,"config":415},"Events",{"href":416,"dataGaName":417,"dataGaLocation":186},"/events/","events",{"text":419,"config":420},"Partners",{"href":421,"dataGaName":422,"dataGaLocation":186},"/partners/","partners",{"textColor":424,"title":425,"text":426,"link":427},"#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":428,"config":429},"Read the latest",{"href":430,"dataGaName":431,"dataGaLocation":186},"/releases/whats-new/","whats new",{"text":433,"config":434,"lists":436},"Company",{"dataNavLevelOne":435},"company",[437],{"items":438},[439,444,450,452,457,462,467,472,477,482,487],{"text":440,"config":441},"About",{"href":442,"dataGaName":443,"dataGaLocation":186},"/company/","about",{"text":445,"config":446,"footerGa":449},"Jobs",{"href":447,"dataGaName":448,"dataGaLocation":186},"/jobs/","jobs",{"dataGaName":448},{"text":414,"config":451},{"href":416,"dataGaName":417,"dataGaLocation":186},{"text":453,"config":454},"Leadership",{"href":455,"dataGaName":456,"dataGaLocation":186},"/company/team/e-group/","leadership",{"text":458,"config":459},"Team",{"href":460,"dataGaName":461,"dataGaLocation":186},"/company/team/","team",{"text":463,"config":464},"Handbook",{"href":465,"dataGaName":466,"dataGaLocation":186},"https://handbook.gitlab.com/","handbook",{"text":468,"config":469},"Investor relations",{"href":470,"dataGaName":471,"dataGaLocation":186},"https://ir.gitlab.com/","investor relations",{"text":473,"config":474},"Trust Center",{"href":475,"dataGaName":476,"dataGaLocation":186},"/security/","trust center",{"text":478,"config":479},"AI Transparency Center",{"href":480,"dataGaName":481,"dataGaLocation":186},"/ai-transparency-center/","ai transparency center",{"text":483,"config":484},"Newsletter",{"href":485,"dataGaName":486,"dataGaLocation":186},"/company/contact/#contact-forms","newsletter",{"text":488,"config":489},"Press",{"href":490,"dataGaName":491,"dataGaLocation":186},"/press/","press",{"text":493,"config":494,"lists":495},"Contact us",{"dataNavLevelOne":435},[496],{"items":497},[498,501,506],{"text":193,"config":499},{"href":195,"dataGaName":500,"dataGaLocation":186},"talk to sales",{"text":502,"config":503},"Support portal",{"href":504,"dataGaName":505,"dataGaLocation":186},"https://support.gitlab.com","support portal",{"text":507,"config":508},"Customer portal",{"href":509,"dataGaName":510,"dataGaLocation":186},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":512,"login":513,"suggestions":520},"Close",{"text":514,"link":515},"To search repositories and projects, login to",{"text":516,"config":517},"gitlab.com",{"href":200,"dataGaName":518,"dataGaLocation":519},"search login","search",{"text":521,"default":522},"Suggestions",[523,525,529,531,535,539],{"text":215,"config":524},{"href":220,"dataGaName":215,"dataGaLocation":519},{"text":526,"config":527},"Code Suggestions (AI)",{"href":528,"dataGaName":526,"dataGaLocation":519},"/solutions/code-suggestions/",{"text":249,"config":530},{"href":251,"dataGaName":249,"dataGaLocation":519},{"text":532,"config":533},"GitLab on AWS",{"href":534,"dataGaName":532,"dataGaLocation":519},"/partners/technology-partners/aws/",{"text":536,"config":537},"GitLab on Google Cloud",{"href":538,"dataGaName":536,"dataGaLocation":519},"/partners/technology-partners/google-cloud-platform/",{"text":540,"config":541},"Why GitLab?",{"href":228,"dataGaName":540,"dataGaLocation":519},{"freeTrial":543,"mobileIcon":548,"desktopIcon":553,"secondaryButton":556},{"text":544,"config":545},"Start free trial",{"href":546,"dataGaName":191,"dataGaLocation":547},"https://gitlab.com/-/trials/new/","nav",{"altText":549,"config":550},"Gitlab Icon",{"src":551,"dataGaName":552,"dataGaLocation":547},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":549,"config":554},{"src":555,"dataGaName":552,"dataGaLocation":547},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":557,"config":558},"Get Started",{"href":559,"dataGaName":560,"dataGaLocation":547},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":562,"mobileIcon":566,"desktopIcon":568},{"text":563,"config":564},"Learn more about GitLab Duo",{"href":220,"dataGaName":565,"dataGaLocation":547},"gitlab duo",{"altText":549,"config":567},{"src":551,"dataGaName":552,"dataGaLocation":547},{"altText":549,"config":569},{"src":555,"dataGaName":552,"dataGaLocation":547},{"button":571,"mobileIcon":576,"desktopIcon":578},{"text":572,"config":573},"/switch",{"href":574,"dataGaName":575,"dataGaLocation":547},"#contact","switch",{"altText":549,"config":577},{"src":551,"dataGaName":552,"dataGaLocation":547},{"altText":549,"config":579},{"src":580,"dataGaName":552,"dataGaLocation":547},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":582,"mobileIcon":587,"desktopIcon":589},{"text":583,"config":584},"Back to pricing",{"href":328,"dataGaName":585,"dataGaLocation":547,"icon":586},"back to pricing","GoBack",{"altText":549,"config":588},{"src":551,"dataGaName":552,"dataGaLocation":547},{"altText":549,"config":590},{"src":555,"dataGaName":552,"dataGaLocation":547},{"title":592,"button":593,"config":598},"See how agentic AI transforms software delivery",{"text":594,"config":595},"Watch GitLab Transcend now",{"href":596,"dataGaName":597,"dataGaLocation":186},"/events/transcend/virtual/","transcend event",{"layout":599,"icon":600,"disabled":173},"release","AiStar",{"data":602},{"text":603,"source":604,"edit":610,"contribute":615,"config":620,"items":625,"minimal":830},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":605,"config":606},"View page source",{"href":607,"dataGaName":608,"dataGaLocation":609},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":611,"config":612},"Edit this page",{"href":613,"dataGaName":614,"dataGaLocation":609},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":616,"config":617},"Please contribute",{"href":618,"dataGaName":619,"dataGaLocation":609},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":621,"facebook":622,"youtube":623,"linkedin":624},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[626,673,725,769,796],{"title":326,"links":627,"subMenu":642},[628,632,637],{"text":629,"config":630},"View plans",{"href":328,"dataGaName":631,"dataGaLocation":609},"view plans",{"text":633,"config":634},"Why Premium?",{"href":635,"dataGaName":636,"dataGaLocation":609},"/pricing/premium/","why premium",{"text":638,"config":639},"Why Ultimate?",{"href":640,"dataGaName":641,"dataGaLocation":609},"/pricing/ultimate/","why ultimate",[643],{"title":644,"links":645},"Contact Us",[646,649,651,653,658,663,668],{"text":647,"config":648},"Contact sales",{"href":195,"dataGaName":196,"dataGaLocation":609},{"text":502,"config":650},{"href":504,"dataGaName":505,"dataGaLocation":609},{"text":507,"config":652},{"href":509,"dataGaName":510,"dataGaLocation":609},{"text":654,"config":655},"Status",{"href":656,"dataGaName":657,"dataGaLocation":609},"https://status.gitlab.com/","status",{"text":659,"config":660},"Terms of use",{"href":661,"dataGaName":662,"dataGaLocation":609},"/terms/","terms of use",{"text":664,"config":665},"Privacy statement",{"href":666,"dataGaName":667,"dataGaLocation":609},"/privacy/","privacy statement",{"text":669,"config":670},"Cookie preferences",{"dataGaName":671,"dataGaLocation":609,"id":672,"isOneTrustButton":173},"cookie preferences","ot-sdk-btn",{"title":231,"links":674,"subMenu":683},[675,679],{"text":676,"config":677},"DevSecOps platform",{"href":213,"dataGaName":678,"dataGaLocation":609},"devsecops platform",{"text":680,"config":681},"AI-Assisted Development",{"href":220,"dataGaName":682,"dataGaLocation":609},"ai-assisted development",[684],{"title":13,"links":685},[686,691,696,701,706,710,715,720],{"text":687,"config":688},"CICD",{"href":689,"dataGaName":690,"dataGaLocation":609},"/topics/ci-cd/","cicd",{"text":692,"config":693},"GitOps",{"href":694,"dataGaName":695,"dataGaLocation":609},"/topics/gitops/","gitops",{"text":697,"config":698},"DevOps",{"href":699,"dataGaName":700,"dataGaLocation":609},"/topics/devops/","devops",{"text":702,"config":703},"Version Control",{"href":704,"dataGaName":705,"dataGaLocation":609},"/topics/version-control/","version control",{"text":707,"config":708},"DevSecOps",{"href":19,"dataGaName":709,"dataGaLocation":609},"devsecops",{"text":711,"config":712},"Cloud Native",{"href":713,"dataGaName":714,"dataGaLocation":609},"/topics/cloud-native/","cloud native",{"text":716,"config":717},"AI for Coding",{"href":718,"dataGaName":719,"dataGaLocation":609},"/topics/devops/ai-for-coding/","ai for coding",{"text":721,"config":722},"Agentic AI",{"href":723,"dataGaName":724,"dataGaLocation":609},"/topics/agentic-ai/","agentic ai",{"title":726,"links":727},"Solutions",[728,730,732,737,741,744,748,751,753,756,759,764],{"text":273,"config":729},{"href":268,"dataGaName":273,"dataGaLocation":609},{"text":262,"config":731},{"href":245,"dataGaName":246,"dataGaLocation":609},{"text":733,"config":734},"Agile development",{"href":735,"dataGaName":736,"dataGaLocation":609},"/solutions/agile-delivery/","agile delivery",{"text":738,"config":739},"SCM",{"href":258,"dataGaName":740,"dataGaLocation":609},"source code management",{"text":687,"config":742},{"href":251,"dataGaName":743,"dataGaLocation":609},"continuous integration & delivery",{"text":745,"config":746},"Value stream management",{"href":301,"dataGaName":747,"dataGaLocation":609},"value stream management",{"text":692,"config":749},{"href":750,"dataGaName":695,"dataGaLocation":609},"/solutions/gitops/",{"text":311,"config":752},{"href":313,"dataGaName":314,"dataGaLocation":609},{"text":754,"config":755},"Small business",{"href":318,"dataGaName":319,"dataGaLocation":609},{"text":757,"config":758},"Public sector",{"href":323,"dataGaName":324,"dataGaLocation":609},{"text":760,"config":761},"Education",{"href":762,"dataGaName":763,"dataGaLocation":609},"/solutions/education/","education",{"text":765,"config":766},"Financial services",{"href":767,"dataGaName":768,"dataGaLocation":609},"/solutions/finance/","financial services",{"title":331,"links":770},[771,773,775,777,780,782,784,786,788,790,792,794],{"text":343,"config":772},{"href":345,"dataGaName":346,"dataGaLocation":609},{"text":348,"config":774},{"href":350,"dataGaName":351,"dataGaLocation":609},{"text":353,"config":776},{"href":355,"dataGaName":356,"dataGaLocation":609},{"text":358,"config":778},{"href":360,"dataGaName":779,"dataGaLocation":609},"docs",{"text":381,"config":781},{"href":383,"dataGaName":384,"dataGaLocation":609},{"text":376,"config":783},{"href":378,"dataGaName":379,"dataGaLocation":609},{"text":391,"config":785},{"href":393,"dataGaName":394,"dataGaLocation":609},{"text":399,"config":787},{"href":401,"dataGaName":402,"dataGaLocation":609},{"text":404,"config":789},{"href":406,"dataGaName":407,"dataGaLocation":609},{"text":409,"config":791},{"href":411,"dataGaName":412,"dataGaLocation":609},{"text":414,"config":793},{"href":416,"dataGaName":417,"dataGaLocation":609},{"text":419,"config":795},{"href":421,"dataGaName":422,"dataGaLocation":609},{"title":433,"links":797},[798,800,802,804,806,808,810,814,819,821,823,825],{"text":440,"config":799},{"href":442,"dataGaName":435,"dataGaLocation":609},{"text":445,"config":801},{"href":447,"dataGaName":448,"dataGaLocation":609},{"text":453,"config":803},{"href":455,"dataGaName":456,"dataGaLocation":609},{"text":458,"config":805},{"href":460,"dataGaName":461,"dataGaLocation":609},{"text":463,"config":807},{"href":465,"dataGaName":466,"dataGaLocation":609},{"text":468,"config":809},{"href":470,"dataGaName":471,"dataGaLocation":609},{"text":811,"config":812},"Sustainability",{"href":813,"dataGaName":811,"dataGaLocation":609},"/sustainability/",{"text":815,"config":816},"Diversity, inclusion and belonging (DIB)",{"href":817,"dataGaName":818,"dataGaLocation":609},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":473,"config":820},{"href":475,"dataGaName":476,"dataGaLocation":609},{"text":483,"config":822},{"href":485,"dataGaName":486,"dataGaLocation":609},{"text":488,"config":824},{"href":490,"dataGaName":491,"dataGaLocation":609},{"text":826,"config":827},"Modern Slavery Transparency Statement",{"href":828,"dataGaName":829,"dataGaLocation":609},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":831},[832,835,838],{"text":833,"config":834},"Terms",{"href":661,"dataGaName":662,"dataGaLocation":609},{"text":836,"config":837},"Cookies",{"dataGaName":671,"dataGaLocation":609,"id":672,"isOneTrustButton":173},{"text":839,"config":840},"Privacy",{"href":666,"dataGaName":667,"dataGaLocation":609},{"header":842,"blurb":843,"button":844,"secondaryButton":849},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":845,"config":846},"Get your free trial",{"href":847,"dataGaName":191,"dataGaLocation":848},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":647,"config":850},{"href":195,"dataGaName":196,"dataGaLocation":848},1777493620547]