[{"data":1,"prerenderedAt":957},["ShallowReactive",2],{"/blog/how-to-security-as-code":3,"navigation-en-us":177,"banner-en-us":603,"footer-en-us":613,"blog-post-authors-en-us-Vanessa Wegner":855,"blog-related-posts-en-us-how-to-security-as-code":869,"blog-promotions-en-us":894,"next-steps-en-us":947},{"id":4,"title":5,"authors":6,"body":8,"category":154,"date":155,"description":156,"extension":157,"externalUrl":158,"faq":158,"featured":159,"heroImage":160,"meta":161,"navigation":162,"path":163,"seo":164,"slug":168,"stem":169,"tags":170,"template":175,"updatedDate":158,"__hash__":176},"blogPosts/en-us/blog/how-to-security-as-code.md","Why implementing security as code is important for DevSecOps",[7],"Vanessa Wegner",{"type":9,"value":10,"toc":145},"minimark",[11,16,32,35,39,47,50,54,69,109,113,116,119,123,131],[12,13,15],"h2",{"id":14},"what-is-security-as-code","What is security as code?",[17,18,19,20,25,26,31],"p",{},"Security as code is a driving force in the future of ",[21,22,24],"a",{"href":23},"/topics/devsecops/","application security",".\nAccording to O’Reilly, ",[21,27,30],{"href":28,"rel":29},"https://www.oreilly.com/library/view/devopssec/9781491971413/ch04.html",[],"security as code is the practice of building security\ninto DevOps tools and workflows"," by mapping out how changes to code and infrastructure\nare made and finding places to add security checks, tests, and gates without\nintroducing unnecessary costs or delays.\nDevelopers can define infrastructure using a\nprogramming language with infrastructure as code. The same needs to happen to bring security to the speed of DevOps.",[17,33,34],{},"At a basic level, security as code can be achieved by integrating security\npolicies, tests, and scans into the pipeline and code itself. Tests should be\nrun automatically on every code commit, with results made immediately available\nto developers for fixing. By bringing security scans to the code as it’s written,\nteams will save both time and money by streamlining the review process later in\nthe software development lifecycle (SDLC).",[12,36,38],{"id":37},"why-is-it-important","Why is it important?",[17,40,41,42,46],{},"Security as code is key to shifting left and achieving ",[21,43,45],{"href":44},"/solutions/application-security-testing/","DevSecOps",": It requires\nthat security be defined at the beginning of a project and codified for\nrepeated and consistent use. In this way, it gives developers a self-service\noption for ensuring their code is secure.",[17,48,49],{},"Predefined security policies boost efficiency, and also allow for checks on\nautomated processes to prevent any mishaps in the deployment process (like\naccidentally taking down the whole infrastructure because a problem wasn’t\nidentified in a staging environment).",[12,51,53],{"id":52},"six-security-as-code-capabilities-to-prioritize","Six security as code capabilities to prioritize",[17,55,56,57,62,63,68],{},"Francois Raynaud, founder and managing director of ",[21,58,61],{"href":59,"rel":60},"https://www.devseccon.com/",[],"DevSecCon",",\nsaid that ",[21,64,67],{"href":65,"rel":66},"https://techbeacon.com/devops/devseccon-security-code-secure-devops-techniques-track",[],"security as code is about making security more transparent and\ngetting security practitioners and developers to speak the same language",".\nIn other words – security teams need to understand how developers work, and use that\ninsight to help developers build the necessary security controls into the SDLC.\nDevelopers can reciprocate by staying open-minded as they adopt new tools and\npractices to boost security during the development process. Here are six best\npractices and capabilities to build into your pipeline:",[70,71,72,88,91,94,97,100],"ol",{},[73,74,75,76,81,82,87],"li",{},"Automate security scans and tests (such as ",[21,77,80],{"href":78,"rel":79},"https://docs.gitlab.com/user/application_security/sast/",[],"static analysis",",\n",[21,83,86],{"href":84,"rel":85},"https://docs.gitlab.com/user/application_security/dast/",[],"dynamic analysis",",\nand penetration testing) within your pipeline so that they can be reused across\nall projects and environments.",[73,89,90],{},"Build a continuous feedback loop by presenting results to developers, allowing\nthem to remediate issues while coding and learn best practices during the coding\nprocess.",[73,92,93],{},"Evaluate and monitor automated security policies by building checks into the\nprocess. Verify that sensitive data and secrets are not inadvertently shared or published.",[73,95,96],{},"Automate complex or time-consuming manual tests via custom scripts, with\nhuman sign-off on results if necessary. Validate the accuracy and efficiency of\ntest scripts so that they can be replicated across different projects.",[73,98,99],{},"Test new code within a staging environment to allow for thorough security and\nlow-impact failure, and test on every code commit.",[73,101,102,103,108],{},"Scheduled or continuous monitoring should automatically create logs (or red\nflags) within a review dashboard (such as GitLab’s ",[21,104,107],{"href":105,"rel":106},"https://docs.gitlab.com/user/application_security/security_dashboard/",[],"Security Dashboard feature",").",[12,110,112],{"id":111},"security-as-code-is-a-best-practice-for-a-bigger-goal","Security as code is a best practice for a bigger goal",[17,114,115],{},"Security as code gives pragmatic meaning to the concept of DevSecOps, but it\nshould not be your end goal. Ultimately, security as code is a means to get more people on board with integrating security throughout your\nSDLC. The idea will feel familiar to developers who\nhave practiced infrastructure as code, and it provides an opportunity for\nsecurity to step into the fray both to better understand software development\nand to help design the policies that will be codified in the process.",[17,117,118],{},"As your team works its way toward becoming a well-oiled DevSecOps machine,\nsecurity as code will inevitably present itself as a smart solution within a complex endeavor.",[12,120,122],{"id":121},"gitlabs-devsecops-methodology-assessment","GitLab’s DevSecOps methodology assessment",[17,124,125,126],{},"There’s a lot to cover when standing up a DevSecOps process – so to help you\nmaster the key elements, we created a DevSecOps methodology assessment. Score\nyourself on 20 capabilities, and then use those scores to understand your DevSecOps\nmaturity level, and determine what actions your team can take to bring your DevSecOps to\nthe next level. ",[21,127,130],{"href":128,"rel":129},"https://about.gitlab.com/devsecops/",[],"Download the assessment here.",[17,132,133,134,139,140],{},"Cover image by ",[21,135,138],{"href":136,"rel":137},"https://unsplash.com/@tjevans",[],"Tim Evans"," on ",[21,141,144],{"href":142,"rel":143},"https://unsplash.com/photos/Uf-c4u1usFQ",[],"Unsplash",{"title":146,"searchDepth":147,"depth":147,"links":148},"",2,[149,150,151,152,153],{"id":14,"depth":147,"text":15},{"id":37,"depth":147,"text":38},{"id":52,"depth":147,"text":53},{"id":111,"depth":147,"text":112},{"id":121,"depth":147,"text":122},"insights","2020-03-12","We created a DevSecOps assessment to help your company level up its DevSecOps capabilities.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663618/Blog/Hero%20Images/how-to-implement-security-as-code.jpg",{},true,"/en-us/blog/how-to-security-as-code",{"title":5,"description":156,"ogTitle":5,"ogDescription":156,"noIndex":159,"ogImage":160,"ogUrl":165,"ogSiteName":166,"ogType":167,"canonicalUrls":165},"https://about.gitlab.com/blog/how-to-security-as-code","https://about.gitlab.com","article","how-to-security-as-code","en-us/blog/how-to-security-as-code",[171,172,173,174],"DevOps","security","CI/CD","workflow","BlogPost","BmJjo6oPcrbUfMn3yx5_owfHwbnXC_XyM2vvGNhz3CQ",{"logo":178,"freeTrial":183,"sales":188,"login":193,"items":198,"search":523,"minimal":554,"duo":573,"switchNav":582,"pricingDeployment":593},{"config":179},{"href":180,"dataGaName":181,"dataGaLocation":182},"/","gitlab logo","header",{"text":184,"config":185},"Get free trial",{"href":186,"dataGaName":187,"dataGaLocation":182},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":189,"config":190},"Request a demo",{"href":191,"dataGaName":192,"dataGaLocation":182},"/sales/?contact-topic=request-demo","sales",{"text":194,"config":195},"Sign in",{"href":196,"dataGaName":197,"dataGaLocation":182},"https://gitlab.com/users/sign_in/","sign in",[199,228,326,331,445,501],{"text":200,"config":201,"menu":203},"Platform",{"dataNavLevelOne":202},"platform",{"type":204,"columns":205},"cards",[206,212,220],{"title":200,"description":207,"link":208},"The intelligent orchestration platform for DevSecOps",{"text":209,"config":210},"Explore our Platform",{"href":211,"dataGaName":202,"dataGaLocation":182},"/platform/",{"title":213,"description":214,"link":215},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":216,"config":217},"Meet GitLab Duo",{"href":218,"dataGaName":219,"dataGaLocation":182},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":221,"description":222,"link":223},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":224,"config":225},"Learn more",{"href":226,"dataGaName":227,"dataGaLocation":182},"/why-gitlab/","why gitlab",{"text":229,"left":162,"config":230,"menu":232},"Product",{"dataNavLevelOne":231},"solutions",{"type":233,"link":234,"columns":238,"feature":305},"lists",{"text":235,"config":236},"View all Solutions",{"href":237,"dataGaName":231,"dataGaLocation":182},"/solutions/",[239,262,284],{"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":182},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[248,251,254,258],{"text":173,"config":249},{"href":250,"dataGaLocation":182,"dataGaName":173},"/solutions/continuous-integration/",{"text":213,"config":252},{"href":218,"dataGaLocation":182,"dataGaName":253},"gitlab duo agent platform - product menu",{"text":255,"config":256},"Source Code Management",{"href":257,"dataGaLocation":182,"dataGaName":255},"/solutions/source-code-management/",{"text":259,"config":260},"Automated Software Delivery",{"href":245,"dataGaLocation":182,"dataGaName":261},"Automated software delivery",{"title":263,"description":264,"link":265,"items":269},"Security","Deliver code faster without compromising security",{"config":266},{"href":44,"dataGaName":267,"dataGaLocation":182,"icon":268},"security and compliance","ShieldCheckLight",[270,274,279],{"text":271,"config":272},"Application Security Testing",{"href":44,"dataGaName":273,"dataGaLocation":182},"Application security testing",{"text":275,"config":276},"Software Supply Chain Security",{"href":277,"dataGaLocation":182,"dataGaName":278},"/solutions/supply-chain/","Software supply chain security",{"text":280,"config":281},"Software Compliance",{"href":282,"dataGaName":283,"dataGaLocation":182},"/solutions/software-compliance/","software compliance",{"title":285,"link":286,"items":291},"Measurement",{"config":287},{"icon":288,"href":289,"dataGaName":290,"dataGaLocation":182},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[292,296,300],{"text":293,"config":294},"Visibility & Measurement",{"href":289,"dataGaLocation":182,"dataGaName":295},"Visibility and Measurement",{"text":297,"config":298},"Value Stream Management",{"href":299,"dataGaLocation":182,"dataGaName":297},"/solutions/value-stream-management/",{"text":301,"config":302},"Analytics & Insights",{"href":303,"dataGaLocation":182,"dataGaName":304},"/solutions/analytics-and-insights/","Analytics and insights",{"title":306,"type":233,"items":307},"GitLab for",[308,314,320],{"text":309,"config":310},"Enterprise",{"icon":311,"href":312,"dataGaLocation":182,"dataGaName":313},"Building","/enterprise/","enterprise",{"text":315,"config":316},"Small Business",{"icon":317,"href":318,"dataGaLocation":182,"dataGaName":319},"Work","/small-business/","small business",{"text":321,"config":322},"Public Sector",{"icon":323,"href":324,"dataGaLocation":182,"dataGaName":325},"Organization","/solutions/public-sector/","public sector",{"text":327,"config":328},"Pricing",{"href":329,"dataGaName":330,"dataGaLocation":182,"dataNavLevelOne":330},"/pricing/","pricing",{"text":332,"config":333,"menu":335},"Resources",{"dataNavLevelOne":334},"resources",{"type":233,"link":336,"columns":340,"feature":434},{"text":337,"config":338},"View all resources",{"href":339,"dataGaName":334,"dataGaLocation":182},"/resources/",[341,374,401],{"title":342,"items":343},"Getting started",[344,349,354,359,364,369],{"text":345,"config":346},"Install",{"href":347,"dataGaName":348,"dataGaLocation":182},"/install/","install",{"text":350,"config":351},"Quick start guides",{"href":352,"dataGaName":353,"dataGaLocation":182},"/get-started/","quick setup checklists",{"text":355,"config":356},"Learn",{"href":357,"dataGaLocation":182,"dataGaName":358},"https://university.gitlab.com/","learn",{"text":360,"config":361},"Product documentation",{"href":362,"dataGaName":363,"dataGaLocation":182},"https://docs.gitlab.com/","product documentation",{"text":365,"config":366},"Best practice videos",{"href":367,"dataGaName":368,"dataGaLocation":182},"/getting-started-videos/","best practice videos",{"text":370,"config":371},"Integrations",{"href":372,"dataGaName":373,"dataGaLocation":182},"/integrations/","integrations",{"title":375,"items":376},"Discover",[377,382,387,392,396],{"text":378,"config":379},"Customer success stories",{"href":380,"dataGaName":381,"dataGaLocation":182},"/customers/","customer success stories",{"text":383,"config":384},"Blog",{"href":385,"dataGaName":386,"dataGaLocation":182},"/blog/","blog",{"text":388,"config":389},"Demo Hub",{"href":390,"dataGaName":391,"dataGaLocation":182},"/demo-hub/","demo hub",{"text":393,"config":394},"The Source",{"href":395,"dataGaName":386,"dataGaLocation":182},"/the-source/",{"text":397,"config":398},"Remote",{"href":399,"dataGaName":400,"dataGaLocation":182},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":402,"items":403},"Connect",[404,409,414,419,424,429],{"text":405,"config":406},"GitLab Services",{"href":407,"dataGaName":408,"dataGaLocation":182},"/services/","services",{"text":410,"config":411},"Contribute",{"href":412,"dataGaName":413,"dataGaLocation":182},"https://contributors.gitlab.com","contribute",{"text":415,"config":416},"Community",{"href":417,"dataGaName":418,"dataGaLocation":182},"/community/","community",{"text":420,"config":421},"Forum",{"href":422,"dataGaName":423,"dataGaLocation":182},"https://forum.gitlab.com/","forum",{"text":425,"config":426},"Events",{"href":427,"dataGaName":428,"dataGaLocation":182},"/events/","events",{"text":430,"config":431},"Partners",{"href":432,"dataGaName":433,"dataGaLocation":182},"/partners/","partners",{"config":435,"title":438,"text":439,"link":440},{"background":436,"textColor":437},"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":441,"config":442},"Read the latest",{"href":443,"dataGaName":444,"dataGaLocation":182},"/whats-new/","whats new",{"text":446,"config":447,"menu":449},"Company",{"dataNavLevelOne":448},"company",{"type":233,"columns":450},[451],{"items":452},[453,458,464,466,471,476,481,486,491,496],{"text":454,"config":455},"About",{"href":456,"dataGaName":457,"dataGaLocation":182},"/company/","about",{"text":459,"config":460,"footerGa":463},"Jobs",{"href":461,"dataGaName":462,"dataGaLocation":182},"/jobs/","jobs",{"dataGaName":462},{"text":425,"config":465},{"href":427,"dataGaName":428,"dataGaLocation":182},{"text":467,"config":468},"Leadership",{"href":469,"dataGaName":470,"dataGaLocation":182},"/company/team/e-group/","leadership",{"text":472,"config":473},"Handbook",{"href":474,"dataGaName":475,"dataGaLocation":182},"https://handbook.gitlab.com/","handbook",{"text":477,"config":478},"Investor relations",{"href":479,"dataGaName":480,"dataGaLocation":182},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":482,"config":483},"Trust Center",{"href":484,"dataGaName":485,"dataGaLocation":182},"/security/","trust center",{"text":487,"config":488},"AI Transparency Center",{"href":489,"dataGaName":490,"dataGaLocation":182},"/ai-transparency-center/","ai transparency center",{"text":492,"config":493},"Newsletter",{"href":494,"dataGaName":495,"dataGaLocation":182},"/company/contact/#contact-forms","newsletter",{"text":497,"config":498},"Press",{"href":499,"dataGaName":500,"dataGaLocation":182},"/press/","press",{"text":502,"config":503,"menu":504},"Contact us",{"dataNavLevelOne":448},{"type":233,"columns":505},[506],{"items":507},[508,513,518],{"text":509,"config":510},"Talk to sales",{"href":511,"dataGaName":512,"dataGaLocation":182},"/sales/","talk to sales",{"text":514,"config":515},"Support portal",{"href":516,"dataGaName":517,"dataGaLocation":182},"https://support.gitlab.com/hc/en-us","support portal",{"text":519,"config":520},"Customer portal",{"href":521,"dataGaName":522,"dataGaLocation":182},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":524,"login":525,"suggestions":532},"Close",{"text":526,"link":527},"To search repositories and projects, login to",{"text":528,"config":529},"gitlab.com",{"href":196,"dataGaName":530,"dataGaLocation":531},"search login","search",{"text":533,"default":534},"Suggestions",[535,537,541,543,547,551],{"text":213,"config":536},{"href":218,"dataGaName":213,"dataGaLocation":531},{"text":538,"config":539},"Code Suggestions (AI)",{"href":540,"dataGaName":538,"dataGaLocation":531},"/solutions/code-suggestions/",{"text":173,"config":542},{"href":250,"dataGaName":173,"dataGaLocation":531},{"text":544,"config":545},"GitLab on AWS",{"href":546,"dataGaName":544,"dataGaLocation":531},"/partners/technology-partners/aws/",{"text":548,"config":549},"GitLab on Google Cloud",{"href":550,"dataGaName":548,"dataGaLocation":531},"/partners/technology-partners/google-cloud-platform/",{"text":552,"config":553},"Why GitLab?",{"href":226,"dataGaName":552,"dataGaLocation":531},{"freeTrial":555,"mobileIcon":560,"desktopIcon":565,"secondaryButton":568},{"text":556,"config":557},"Start free trial",{"href":558,"dataGaName":187,"dataGaLocation":559},"https://gitlab.com/-/trials/new/","nav",{"altText":561,"config":562},"Gitlab Icon",{"src":563,"dataGaName":564,"dataGaLocation":559},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":561,"config":566},{"src":567,"dataGaName":564,"dataGaLocation":559},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":569,"config":570},"Get Started",{"href":571,"dataGaName":572,"dataGaLocation":559},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":574,"mobileIcon":578,"desktopIcon":580},{"text":575,"config":576},"Learn more about GitLab Duo",{"href":218,"dataGaName":577,"dataGaLocation":559},"gitlab duo",{"altText":561,"config":579},{"src":563,"dataGaName":564,"dataGaLocation":559},{"altText":561,"config":581},{"src":567,"dataGaName":564,"dataGaLocation":559},{"button":583,"mobileIcon":588,"desktopIcon":590},{"text":584,"config":585},"/switch",{"href":586,"dataGaName":587,"dataGaLocation":559},"#contact","switch",{"altText":561,"config":589},{"src":563,"dataGaName":564,"dataGaLocation":559},{"altText":561,"config":591},{"src":592,"dataGaName":564,"dataGaLocation":559},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":594,"mobileIcon":599,"desktopIcon":601},{"text":595,"config":596},"Back to pricing",{"href":329,"dataGaName":597,"dataGaLocation":559,"icon":598},"back to pricing","GoBack",{"altText":561,"config":600},{"src":563,"dataGaName":564,"dataGaLocation":559},{"altText":561,"config":602},{"src":567,"dataGaName":564,"dataGaLocation":559},{"title":604,"titleMobile":605,"button":606,"config":611},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":224,"config":607},{"href":608,"dataGaName":609,"dataGaLocation":610},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":612,"disabled":159},"release",{"data":614},{"text":615,"source":616,"edit":622,"contribute":627,"config":632,"items":637,"minimal":844},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":617,"config":618},"View page source",{"href":619,"dataGaName":620,"dataGaLocation":621},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":623,"config":624},"Edit this page",{"href":625,"dataGaName":626,"dataGaLocation":621},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":628,"config":629},"Please contribute",{"href":630,"dataGaName":631,"dataGaLocation":621},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":633,"facebook":634,"youtube":635,"linkedin":636},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[638,685,736,780,812],{"title":327,"links":639,"subMenu":654},[640,644,649],{"text":641,"config":642},"View plans",{"href":329,"dataGaName":643,"dataGaLocation":621},"view plans",{"text":645,"config":646},"Why Premium?",{"href":647,"dataGaName":648,"dataGaLocation":621},"/pricing/premium/","why premium",{"text":650,"config":651},"Why Ultimate?",{"href":652,"dataGaName":653,"dataGaLocation":621},"/pricing/ultimate/","why ultimate",[655],{"title":656,"links":657},"Contact Us",[658,661,663,665,670,675,680],{"text":659,"config":660},"Contact sales",{"href":511,"dataGaName":192,"dataGaLocation":621},{"text":514,"config":662},{"href":516,"dataGaName":517,"dataGaLocation":621},{"text":519,"config":664},{"href":521,"dataGaName":522,"dataGaLocation":621},{"text":666,"config":667},"Status",{"href":668,"dataGaName":669,"dataGaLocation":621},"https://status.gitlab.com/","status",{"text":671,"config":672},"Terms of use",{"href":673,"dataGaName":674,"dataGaLocation":621},"/terms/","terms of use",{"text":676,"config":677},"Privacy statement",{"href":678,"dataGaName":679,"dataGaLocation":621},"/privacy/","privacy statement",{"text":681,"config":682},"Cookie preferences",{"dataGaName":683,"dataGaLocation":621,"id":684,"isOneTrustButton":162},"cookie preferences","ot-sdk-btn",{"title":229,"links":686,"subMenu":695},[687,691],{"text":688,"config":689},"DevSecOps platform",{"href":211,"dataGaName":690,"dataGaLocation":621},"devsecops platform",{"text":692,"config":693},"AI-Assisted Development",{"href":218,"dataGaName":694,"dataGaLocation":621},"ai-assisted development",[696],{"title":697,"links":698},"Topics",[699,704,709,713,718,721,726,731],{"text":700,"config":701},"CICD",{"href":702,"dataGaName":703,"dataGaLocation":621},"/topics/ci-cd/","cicd",{"text":705,"config":706},"GitOps",{"href":707,"dataGaName":708,"dataGaLocation":621},"/topics/gitops/","gitops",{"text":171,"config":710},{"href":711,"dataGaName":712,"dataGaLocation":621},"/topics/devops/","devops",{"text":714,"config":715},"Version Control",{"href":716,"dataGaName":717,"dataGaLocation":621},"/topics/version-control/","version control",{"text":45,"config":719},{"href":23,"dataGaName":720,"dataGaLocation":621},"devsecops",{"text":722,"config":723},"Cloud Native",{"href":724,"dataGaName":725,"dataGaLocation":621},"/topics/cloud-native/","cloud native",{"text":727,"config":728},"AI for Coding",{"href":729,"dataGaName":730,"dataGaLocation":621},"/topics/devops/ai-for-coding/","ai for coding",{"text":732,"config":733},"Agentic AI",{"href":734,"dataGaName":735,"dataGaLocation":621},"/topics/agentic-ai/","agentic ai",{"title":737,"links":738},"Solutions",[739,741,743,748,752,755,759,762,764,767,770,775],{"text":271,"config":740},{"href":44,"dataGaName":271,"dataGaLocation":621},{"text":261,"config":742},{"href":245,"dataGaName":246,"dataGaLocation":621},{"text":744,"config":745},"Agile development",{"href":746,"dataGaName":747,"dataGaLocation":621},"/solutions/agile-delivery/","agile delivery",{"text":749,"config":750},"SCM",{"href":257,"dataGaName":751,"dataGaLocation":621},"source code management",{"text":700,"config":753},{"href":250,"dataGaName":754,"dataGaLocation":621},"continuous integration & delivery",{"text":756,"config":757},"Value stream management",{"href":299,"dataGaName":758,"dataGaLocation":621},"value stream management",{"text":705,"config":760},{"href":761,"dataGaName":708,"dataGaLocation":621},"/solutions/gitops/",{"text":309,"config":763},{"href":312,"dataGaName":313,"dataGaLocation":621},{"text":765,"config":766},"Small business",{"href":318,"dataGaName":319,"dataGaLocation":621},{"text":768,"config":769},"Public sector",{"href":324,"dataGaName":325,"dataGaLocation":621},{"text":771,"config":772},"Education",{"href":773,"dataGaName":774,"dataGaLocation":621},"/solutions/education/","education",{"text":776,"config":777},"Financial services",{"href":778,"dataGaName":779,"dataGaLocation":621},"/solutions/finance/","financial services",{"title":332,"links":781},[782,784,786,788,791,793,796,798,800,802,804,806,808,810],{"text":345,"config":783},{"href":347,"dataGaName":348,"dataGaLocation":621},{"text":350,"config":785},{"href":352,"dataGaName":353,"dataGaLocation":621},{"text":355,"config":787},{"href":357,"dataGaName":358,"dataGaLocation":621},{"text":360,"config":789},{"href":362,"dataGaName":790,"dataGaLocation":621},"docs",{"text":383,"config":792},{"href":385,"dataGaName":386,"dataGaLocation":621},{"text":794,"config":795},"What's new",{"href":443,"dataGaName":444,"dataGaLocation":621},{"text":378,"config":797},{"href":380,"dataGaName":381,"dataGaLocation":621},{"text":397,"config":799},{"href":399,"dataGaName":400,"dataGaLocation":621},{"text":405,"config":801},{"href":407,"dataGaName":408,"dataGaLocation":621},{"text":410,"config":803},{"href":412,"dataGaName":413,"dataGaLocation":621},{"text":415,"config":805},{"href":417,"dataGaName":418,"dataGaLocation":621},{"text":420,"config":807},{"href":422,"dataGaName":423,"dataGaLocation":621},{"text":425,"config":809},{"href":427,"dataGaName":428,"dataGaLocation":621},{"text":430,"config":811},{"href":432,"dataGaName":433,"dataGaLocation":621},{"title":446,"links":813},[814,816,818,820,822,824,828,833,835,837,839],{"text":454,"config":815},{"href":456,"dataGaName":448,"dataGaLocation":621},{"text":459,"config":817},{"href":461,"dataGaName":462,"dataGaLocation":621},{"text":467,"config":819},{"href":469,"dataGaName":470,"dataGaLocation":621},{"text":472,"config":821},{"href":474,"dataGaName":475,"dataGaLocation":621},{"text":477,"config":823},{"href":479,"dataGaName":480,"dataGaLocation":621},{"text":825,"config":826},"Sustainability",{"href":827,"dataGaName":825,"dataGaLocation":621},"/sustainability/",{"text":829,"config":830},"Diversity, inclusion and belonging (DIB)",{"href":831,"dataGaName":832,"dataGaLocation":621},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":482,"config":834},{"href":484,"dataGaName":485,"dataGaLocation":621},{"text":492,"config":836},{"href":494,"dataGaName":495,"dataGaLocation":621},{"text":497,"config":838},{"href":499,"dataGaName":500,"dataGaLocation":621},{"text":840,"config":841},"Modern Slavery Transparency Statement",{"href":842,"dataGaName":843,"dataGaLocation":621},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":845},[846,849,852],{"text":847,"config":848},"Terms",{"href":673,"dataGaName":674,"dataGaLocation":621},{"text":850,"config":851},"Cookies",{"dataGaName":683,"dataGaLocation":621,"id":684,"isOneTrustButton":162},{"text":853,"config":854},"Privacy",{"href":678,"dataGaName":679,"dataGaLocation":621},[856],{"id":857,"title":7,"body":158,"config":858,"content":860,"description":158,"extension":863,"meta":864,"navigation":162,"path":865,"seo":866,"stem":867,"__hash__":868},"blogAuthors/en-us/blog/authors/vanessa-wegner.yml",{"template":859},"BlogAuthor",{"name":7,"config":861},{"headshot":146,"ctfId":862},"vwegner","yml",{},"/en-us/blog/authors/vanessa-wegner",{},"en-us/blog/authors/vanessa-wegner","g7HCM0Grx5gV_2xQsDV9uteKV2uGLbv0_gKd-wvL26M",[870,878,886],{"title":871,"description":872,"heroImage":873,"category":154,"date":874,"authors":875,"slug":877,"externalUrl":158},"How we overhauled GitLab navigation","Users weren't getting what they needed from our navigation. Here are the steps we took to turn that experience around.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682884/Blog/Hero%20Images/navigation.jpg","2023-08-15",[876],"Ashley Knobloch","navigation-research-blog-post",{"title":879,"description":880,"heroImage":881,"category":154,"date":882,"authors":883,"slug":885,"externalUrl":158},"Beautifying our UI: Giving GitLab build features a fresh look","Get an inside look at how we are improving the usability of GitLab build features with multiple visual design improvements.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682807/Blog/Hero%20Images/beautify.jpg","2023-07-05",[884],"Veethika Mishra","beautifying-of-our-ui",{"title":887,"description":888,"heroImage":889,"category":154,"date":890,"authors":891,"slug":893,"externalUrl":158},"4 best practices leading orgs to release software faster","GitLab's 2023 Global DevSecOps Survey illuminates the strategies that organizations deploying more frequently have in common.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663908/Blog/Hero%20Images/2023-devsecops-report-blog-banner2.png","2023-06-08",[892],"Kristina Weis","best-practices-leading-orgs-to-release-software-faster",{"promotions":895},[896,910,922,933],{"id":897,"categories":898,"header":900,"text":901,"button":902,"image":907},"ai-modernization",[899],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":903,"config":904},"Get your AI maturity score",{"href":905,"dataGaName":906,"dataGaLocation":386},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":908},{"src":909},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":911,"categories":912,"header":914,"text":901,"button":915,"image":919},"devops-modernization",[913,720],"product","Are you just managing tools or shipping innovation?",{"text":916,"config":917},"Get your DevOps maturity score",{"href":918,"dataGaName":906,"dataGaLocation":386},"/assessments/devops-modernization-assessment/",{"config":920},{"src":921},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":923,"categories":924,"header":925,"text":901,"button":926,"image":930},"security-modernization",[172],"Are you trading speed for security?",{"text":927,"config":928},"Get your security maturity score",{"href":929,"dataGaName":906,"dataGaLocation":386},"/assessments/security-modernization-assessment/",{"config":931},{"src":932},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":934,"paths":935,"header":938,"text":939,"button":940,"image":945},"github-azure-migration",[936,937],"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":941,"config":942},"See how GitLab compares to GitHub",{"href":943,"dataGaName":944,"dataGaLocation":386},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":946},{"src":921},{"header":948,"blurb":949,"button":950,"secondaryButton":955},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":951,"config":952},"Get your free trial",{"href":953,"dataGaName":187,"dataGaLocation":954},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":659,"config":956},{"href":511,"dataGaName":192,"dataGaLocation":954},1786803735063]