[{"data":1,"prerenderedAt":934},["ShallowReactive",2],{"/blog/third-party-code-risks":3,"navigation-en-us":149,"banner-en-us":577,"footer-en-us":587,"blog-post-authors-en-us-Vanessa Wegner":832,"blog-related-posts-en-us-third-party-code-risks":846,"blog-promotions-en-us":871,"next-steps-en-us":924},{"id":4,"title":5,"authors":6,"body":8,"category":128,"date":129,"description":130,"extension":131,"externalUrl":132,"faq":132,"featured":133,"heroImage":134,"meta":135,"navigation":136,"path":137,"seo":138,"slug":142,"stem":143,"tags":144,"template":147,"updatedDate":132,"__hash__":148},"blogPosts/en-us/blog/third-party-code-risks.md","4 Risks to consider when implementing third-party code",[7],"Vanessa Wegner",{"type":9,"value":10,"toc":116},"minimark",[11,15,30,33,38,66,70,73,78,81,85,88,92,95,99,102],[12,13,14],"p",{},"Managing a complex ecosystem of software and partnerships is a fundamental need\nfor today’s businesses. Most enterprises run hundreds of mission-critical apps,\nmany of which are either out-of-the-box or customized third-party solutions.\nThe benefit of third-party software is clear: It saves time, resources, and\nallows you to implement new capabilities quickly, efficiently, and at scale.",[12,16,17,18,22,23,29],{},"Unfortunately, with great reward comes some risk. Many of last year’s most\nsignificant breaches – like CSC, Best Buy, and Delta – were due to missed\nvulnerabilities in the company's third-party applications. For example, Best Buy suffered a breach\nvia their online chat service, ",[19,20,21],"span",{},"24","7.ai, ",[24,25,28],"a",{"href":26,"rel":27},"https://www.pcmag.com/news/360306/best-buy-suffers-customer-payment-data-breach",[],"which had stored BestBuy customer\npayment data on its servers",".",[12,31,32],{},"Bringing on new, third-party software can be an exciting step forward for your\nworkload and projects, allowing you to add new capabilities, build on the open source\ncommunity, and leverage some of the best code out there. However, each new\npartnership creates an opportunity for hackers to access your systems and\ndata. Even if your vendors claim to be secure, their code might not necessarily\nlive up to the security standards and compliance requirements of your business.\nDevelopers can’t leave all risk management up to their security counterparts;\ndevelopers need to share that responsibility just as they share responsibility\nfor writing their own secure code.",[34,35,37],"h2",{"id":36},"risks-developers-should-know-about-third-party-code","Risks developers should know about third-party code",[39,40,41,51,54,63],"ol",{},[42,43,44,45,50],"li",{},"As Bogdan Rancea writes, open source code fragments are downloaded hundreds\nor thousands of times a day – ",[24,46,49],{"href":47,"rel":48},"https://ecommerce-platforms.com/articles/the-dangers-of-third-party-code-dependency",[],"and not everyone is contributing secure code or\nmaintaining a secure code sharing system",".\nThe more complex the code, the easier it is for a few lines of malicious code\nto go undetected.",[42,52,53],{},"Rigorous testing is often overlooked for third-party code. If third-party code touches your\ndata, it should be tested – but many businesses either don’t test or complete the\nbare minimum required by their compliance teams.",[42,55,56,57,62],{},"Standard third-party script tracking is documented, but ",[24,58,61],{"href":59,"rel":60},"https://css-tricks.com/potential-dangers-of-third-party-javascript/",[],"there may be\nadditional tracking that isn’t disclosed",".\nThese scripts may be collecting data across your website and apps, storing\npersonally identifiable information from your customers as they engage with your business.",[42,64,65],{},"When a breach occurs, your brand will be held responsible. When your\ncustomers’ data is at stake, it doesn’t matter if the breach happens on\nthird-party soil; if it’s your data, it’s your problem.",[34,67,69],{"id":68},"protect-your-company-and-customers-by-planning-ahead","Protect your company and customers by planning ahead",[12,71,72],{},"While a breach may be inevitable, the disastrous aftermath isn’t. Proactive\nsecurity measures in third-party relationships can save your company a lot of\nheartache in the long run, and developers are well suited to lead the charge.\nHere are a few best practices to follow:",[74,75,77],"h3",{"id":76},"_1-take-inventory-of-all-of-your-current-third-party-relationships","1. Take inventory of all of your current third-party relationships",[12,79,80],{},"Begin with where you are now: Create a list of every third-party program used across your\ncompany. Make sure you know what code is being used, who the contact person is\nboth internally and at the vendor (if applicable), and understand what data is\nbeing accessed or stored by the third party. You may choose to pursue security\nconversations and testing with certain vendors based on the classification of\nthe data they work with, making an inventory of third-party relationships a valuable tool to prioritize.\nOnce your inventory is complete, it may be useful to consider a third-party or\nopen source code audit to thoroughly investigate your code ecosystem.",[74,82,84],{"id":83},"_2-work-with-security-to-create-formal-requirements-for-all-new-third-parties","2. Work with security to create formal requirements for all new third parties",[12,86,87],{},"Establishing standards will allow your team to vet potential collaborators and\nensure that any new software or code isn’t posing an unnecessary risk to your\nbusiness. It will also help to serve as a requirements guide during the\nprocurement process and can mitigate internal conflict when trying to get new tools\napproved. If you’re unsure where to start, begin by looking at the\nrequirements of all the legal regulations that apply to your business, such as\nGDPR. You could also look at how the third-party code or tools will interact\nwith your data, systems, and software and create requirements based on what\nwill help you best protect the business.",[74,89,91],{"id":90},"_3-take-on-a-security-mindset-its-everyones-responsibility","3. Take on a security mindset: It’s everyone’s responsibility",[12,93,94],{},"When hackers are trying to find any possible way in, it’s important that your entire\norganization – not just the security department – feels responsible for and capable of\ncontributing to your company’s security posture. Widespread security awareness\nwill hopefully make security a priority whenever a team is evaluating a new\ntool or code fragment.",[74,96,98],{"id":97},"_4-data-encryption-start-your-security-practices-with-the-data","4. Data encryption: Start your security practices with the data",[12,100,101],{},"Set policies to protect data based on certain trigger actions – like the creation\nof data or external sharing – or based on the level of data sensitivity. By making\nencryption a standard practice across all systems, you’re adding a layer of\nsecurity that requires identity-based authentication, which can give insight to\nwho is accessing your data and when. Moreover, any stolen data will only be\nuseful to hackers if it can be decrypted.",[12,103,104,105,110,111],{},"Cover image by ",[24,106,109],{"href":107,"rel":108},"https://unsplash.com/@kellysikkema?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText",[],"Kelly Sikkema"," on ",[24,112,115],{"href":113,"rel":114},"https://unsplash.com/collections/4571277/programming?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText",[],"Unsplash",{"title":117,"searchDepth":118,"depth":118,"links":119},"",2,[120,121],{"id":36,"depth":118,"text":37},{"id":68,"depth":118,"text":69,"children":122},[123,125,126,127],{"id":76,"depth":124,"text":77},3,{"id":83,"depth":124,"text":84},{"id":90,"depth":124,"text":91},{"id":97,"depth":124,"text":98},"insights","2019-07-16","Third-party code is a great resource for businesses, but comes with a number of risks. Explore four ways developers can keep their code secure.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680662/Blog/Hero%20Images/third-party-code-risks.jpg",{},true,"/en-us/blog/third-party-code-risks",{"title":5,"description":130,"ogTitle":5,"ogDescription":130,"noIndex":133,"ogImage":134,"ogUrl":139,"ogSiteName":140,"ogType":141,"canonicalUrls":139},"https://about.gitlab.com/blog/third-party-code-risks","https://about.gitlab.com","article","third-party-code-risks","en-us/blog/third-party-code-risks",[145,146],"open source","security","BlogPost","px8bjStkeqtLi6Y9_fouvDcb_s97EUH46XsOty7WBok",{"logo":150,"freeTrial":155,"sales":160,"login":165,"items":170,"search":497,"minimal":528,"duo":547,"switchNav":556,"pricingDeployment":567},{"config":151},{"href":152,"dataGaName":153,"dataGaLocation":154},"/","gitlab logo","header",{"text":156,"config":157},"Get free trial",{"href":158,"dataGaName":159,"dataGaLocation":154},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":161,"config":162},"Request a demo",{"href":163,"dataGaName":164,"dataGaLocation":154},"/sales/?contact-topic=request-demo","sales",{"text":166,"config":167},"Sign in",{"href":168,"dataGaName":169,"dataGaLocation":154},"https://gitlab.com/users/sign_in/","sign in",[171,200,300,305,419,475],{"text":172,"config":173,"menu":175},"Platform",{"dataNavLevelOne":174},"platform",{"type":176,"columns":177},"cards",[178,184,192],{"title":172,"description":179,"link":180},"The intelligent orchestration platform for DevSecOps",{"text":181,"config":182},"Explore our Platform",{"href":183,"dataGaName":174,"dataGaLocation":154},"/platform/",{"title":185,"description":186,"link":187},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":188,"config":189},"Meet GitLab Duo",{"href":190,"dataGaName":191,"dataGaLocation":154},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":193,"description":194,"link":195},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":196,"config":197},"Learn more",{"href":198,"dataGaName":199,"dataGaLocation":154},"/why-gitlab/","why gitlab",{"text":201,"left":136,"config":202,"menu":204},"Product",{"dataNavLevelOne":203},"solutions",{"type":205,"link":206,"columns":210,"feature":279},"lists",{"text":207,"config":208},"View all Solutions",{"href":209,"dataGaName":203,"dataGaLocation":154},"/solutions/",[211,235,258],{"title":212,"description":213,"link":214,"items":219},"Automation","CI/CD and automation to accelerate deployment",{"config":215},{"icon":216,"href":217,"dataGaName":218,"dataGaLocation":154},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[220,224,227,231],{"text":221,"config":222},"CI/CD",{"href":223,"dataGaLocation":154,"dataGaName":221},"/solutions/continuous-integration/",{"text":185,"config":225},{"href":190,"dataGaLocation":154,"dataGaName":226},"gitlab duo agent platform - product menu",{"text":228,"config":229},"Source Code Management",{"href":230,"dataGaLocation":154,"dataGaName":228},"/solutions/source-code-management/",{"text":232,"config":233},"Automated Software Delivery",{"href":217,"dataGaLocation":154,"dataGaName":234},"Automated software delivery",{"title":236,"description":237,"link":238,"items":243},"Security","Deliver code faster without compromising security",{"config":239},{"href":240,"dataGaName":241,"dataGaLocation":154,"icon":242},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[244,248,253],{"text":245,"config":246},"Application Security Testing",{"href":240,"dataGaName":247,"dataGaLocation":154},"Application security testing",{"text":249,"config":250},"Software Supply Chain Security",{"href":251,"dataGaLocation":154,"dataGaName":252},"/solutions/supply-chain/","Software supply chain security",{"text":254,"config":255},"Software Compliance",{"href":256,"dataGaName":257,"dataGaLocation":154},"/solutions/software-compliance/","software compliance",{"title":259,"link":260,"items":265},"Measurement",{"config":261},{"icon":262,"href":263,"dataGaName":264,"dataGaLocation":154},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[266,270,274],{"text":267,"config":268},"Visibility & Measurement",{"href":263,"dataGaLocation":154,"dataGaName":269},"Visibility and Measurement",{"text":271,"config":272},"Value Stream Management",{"href":273,"dataGaLocation":154,"dataGaName":271},"/solutions/value-stream-management/",{"text":275,"config":276},"Analytics & Insights",{"href":277,"dataGaLocation":154,"dataGaName":278},"/solutions/analytics-and-insights/","Analytics and insights",{"title":280,"type":205,"items":281},"GitLab for",[282,288,294],{"text":283,"config":284},"Enterprise",{"icon":285,"href":286,"dataGaLocation":154,"dataGaName":287},"Building","/enterprise/","enterprise",{"text":289,"config":290},"Small Business",{"icon":291,"href":292,"dataGaLocation":154,"dataGaName":293},"Work","/small-business/","small business",{"text":295,"config":296},"Public Sector",{"icon":297,"href":298,"dataGaLocation":154,"dataGaName":299},"Organization","/solutions/public-sector/","public sector",{"text":301,"config":302},"Pricing",{"href":303,"dataGaName":304,"dataGaLocation":154,"dataNavLevelOne":304},"/pricing/","pricing",{"text":306,"config":307,"menu":309},"Resources",{"dataNavLevelOne":308},"resources",{"type":205,"link":310,"columns":314,"feature":408},{"text":311,"config":312},"View all resources",{"href":313,"dataGaName":308,"dataGaLocation":154},"/resources/",[315,348,375],{"title":316,"items":317},"Getting started",[318,323,328,333,338,343],{"text":319,"config":320},"Install",{"href":321,"dataGaName":322,"dataGaLocation":154},"/install/","install",{"text":324,"config":325},"Quick start guides",{"href":326,"dataGaName":327,"dataGaLocation":154},"/get-started/","quick setup checklists",{"text":329,"config":330},"Learn",{"href":331,"dataGaLocation":154,"dataGaName":332},"https://university.gitlab.com/","learn",{"text":334,"config":335},"Product documentation",{"href":336,"dataGaName":337,"dataGaLocation":154},"https://docs.gitlab.com/","product documentation",{"text":339,"config":340},"Best practice videos",{"href":341,"dataGaName":342,"dataGaLocation":154},"/getting-started-videos/","best practice videos",{"text":344,"config":345},"Integrations",{"href":346,"dataGaName":347,"dataGaLocation":154},"/integrations/","integrations",{"title":349,"items":350},"Discover",[351,356,361,366,370],{"text":352,"config":353},"Customer success stories",{"href":354,"dataGaName":355,"dataGaLocation":154},"/customers/","customer success stories",{"text":357,"config":358},"Blog",{"href":359,"dataGaName":360,"dataGaLocation":154},"/blog/","blog",{"text":362,"config":363},"Demo Hub",{"href":364,"dataGaName":365,"dataGaLocation":154},"/demo-hub/","demo hub",{"text":367,"config":368},"The Source",{"href":369,"dataGaName":360,"dataGaLocation":154},"/the-source/",{"text":371,"config":372},"Remote",{"href":373,"dataGaName":374,"dataGaLocation":154},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":376,"items":377},"Connect",[378,383,388,393,398,403],{"text":379,"config":380},"GitLab Services",{"href":381,"dataGaName":382,"dataGaLocation":154},"/services/","services",{"text":384,"config":385},"Contribute",{"href":386,"dataGaName":387,"dataGaLocation":154},"https://contributors.gitlab.com","contribute",{"text":389,"config":390},"Community",{"href":391,"dataGaName":392,"dataGaLocation":154},"/community/","community",{"text":394,"config":395},"Forum",{"href":396,"dataGaName":397,"dataGaLocation":154},"https://forum.gitlab.com/","forum",{"text":399,"config":400},"Events",{"href":401,"dataGaName":402,"dataGaLocation":154},"/events/","events",{"text":404,"config":405},"Partners",{"href":406,"dataGaName":407,"dataGaLocation":154},"/partners/","partners",{"config":409,"title":412,"text":413,"link":414},{"background":410,"textColor":411},"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":415,"config":416},"Read the latest",{"href":417,"dataGaName":418,"dataGaLocation":154},"/whats-new/","whats new",{"text":420,"config":421,"menu":423},"Company",{"dataNavLevelOne":422},"company",{"type":205,"columns":424},[425],{"items":426},[427,432,438,440,445,450,455,460,465,470],{"text":428,"config":429},"About",{"href":430,"dataGaName":431,"dataGaLocation":154},"/company/","about",{"text":433,"config":434,"footerGa":437},"Jobs",{"href":435,"dataGaName":436,"dataGaLocation":154},"/jobs/","jobs",{"dataGaName":436},{"text":399,"config":439},{"href":401,"dataGaName":402,"dataGaLocation":154},{"text":441,"config":442},"Leadership",{"href":443,"dataGaName":444,"dataGaLocation":154},"/company/team/e-group/","leadership",{"text":446,"config":447},"Handbook",{"href":448,"dataGaName":449,"dataGaLocation":154},"https://handbook.gitlab.com/","handbook",{"text":451,"config":452},"Investor relations",{"href":453,"dataGaName":454,"dataGaLocation":154},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":456,"config":457},"Trust Center",{"href":458,"dataGaName":459,"dataGaLocation":154},"/security/","trust center",{"text":461,"config":462},"AI Transparency Center",{"href":463,"dataGaName":464,"dataGaLocation":154},"/ai-transparency-center/","ai transparency center",{"text":466,"config":467},"Newsletter",{"href":468,"dataGaName":469,"dataGaLocation":154},"/company/contact/#contact-forms","newsletter",{"text":471,"config":472},"Press",{"href":473,"dataGaName":474,"dataGaLocation":154},"/press/","press",{"text":476,"config":477,"menu":478},"Contact us",{"dataNavLevelOne":422},{"type":205,"columns":479},[480],{"items":481},[482,487,492],{"text":483,"config":484},"Talk to sales",{"href":485,"dataGaName":486,"dataGaLocation":154},"/sales/","talk to sales",{"text":488,"config":489},"Support portal",{"href":490,"dataGaName":491,"dataGaLocation":154},"https://support.gitlab.com/hc/en-us","support portal",{"text":493,"config":494},"Customer portal",{"href":495,"dataGaName":496,"dataGaLocation":154},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":498,"login":499,"suggestions":506},"Close",{"text":500,"link":501},"To search repositories and projects, login to",{"text":502,"config":503},"gitlab.com",{"href":168,"dataGaName":504,"dataGaLocation":505},"search login","search",{"text":507,"default":508},"Suggestions",[509,511,515,517,521,525],{"text":185,"config":510},{"href":190,"dataGaName":185,"dataGaLocation":505},{"text":512,"config":513},"Code Suggestions (AI)",{"href":514,"dataGaName":512,"dataGaLocation":505},"/solutions/code-suggestions/",{"text":221,"config":516},{"href":223,"dataGaName":221,"dataGaLocation":505},{"text":518,"config":519},"GitLab on AWS",{"href":520,"dataGaName":518,"dataGaLocation":505},"/partners/technology-partners/aws/",{"text":522,"config":523},"GitLab on Google Cloud",{"href":524,"dataGaName":522,"dataGaLocation":505},"/partners/technology-partners/google-cloud-platform/",{"text":526,"config":527},"Why GitLab?",{"href":198,"dataGaName":526,"dataGaLocation":505},{"freeTrial":529,"mobileIcon":534,"desktopIcon":539,"secondaryButton":542},{"text":530,"config":531},"Start free trial",{"href":532,"dataGaName":159,"dataGaLocation":533},"https://gitlab.com/-/trials/new/","nav",{"altText":535,"config":536},"Gitlab Icon",{"src":537,"dataGaName":538,"dataGaLocation":533},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":535,"config":540},{"src":541,"dataGaName":538,"dataGaLocation":533},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":543,"config":544},"Get Started",{"href":545,"dataGaName":546,"dataGaLocation":533},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":548,"mobileIcon":552,"desktopIcon":554},{"text":549,"config":550},"Learn more about GitLab Duo",{"href":190,"dataGaName":551,"dataGaLocation":533},"gitlab duo",{"altText":535,"config":553},{"src":537,"dataGaName":538,"dataGaLocation":533},{"altText":535,"config":555},{"src":541,"dataGaName":538,"dataGaLocation":533},{"button":557,"mobileIcon":562,"desktopIcon":564},{"text":558,"config":559},"/switch",{"href":560,"dataGaName":561,"dataGaLocation":533},"#contact","switch",{"altText":535,"config":563},{"src":537,"dataGaName":538,"dataGaLocation":533},{"altText":535,"config":565},{"src":566,"dataGaName":538,"dataGaLocation":533},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":568,"mobileIcon":573,"desktopIcon":575},{"text":569,"config":570},"Back to pricing",{"href":303,"dataGaName":571,"dataGaLocation":533,"icon":572},"back to pricing","GoBack",{"altText":535,"config":574},{"src":537,"dataGaName":538,"dataGaLocation":533},{"altText":535,"config":576},{"src":541,"dataGaName":538,"dataGaLocation":533},{"title":578,"titleMobile":579,"button":580,"config":585},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":196,"config":581},{"href":582,"dataGaName":583,"dataGaLocation":584},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":586,"disabled":133},"release",{"data":588},{"text":589,"source":590,"edit":596,"contribute":601,"config":606,"items":611,"minimal":821},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":591,"config":592},"View page source",{"href":593,"dataGaName":594,"dataGaLocation":595},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":597,"config":598},"Edit this page",{"href":599,"dataGaName":600,"dataGaLocation":595},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":602,"config":603},"Please contribute",{"href":604,"dataGaName":605,"dataGaLocation":595},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":607,"facebook":608,"youtube":609,"linkedin":610},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[612,659,713,757,789],{"title":301,"links":613,"subMenu":628},[614,618,623],{"text":615,"config":616},"View plans",{"href":303,"dataGaName":617,"dataGaLocation":595},"view plans",{"text":619,"config":620},"Why Premium?",{"href":621,"dataGaName":622,"dataGaLocation":595},"/pricing/premium/","why premium",{"text":624,"config":625},"Why Ultimate?",{"href":626,"dataGaName":627,"dataGaLocation":595},"/pricing/ultimate/","why ultimate",[629],{"title":630,"links":631},"Contact Us",[632,635,637,639,644,649,654],{"text":633,"config":634},"Contact sales",{"href":485,"dataGaName":164,"dataGaLocation":595},{"text":488,"config":636},{"href":490,"dataGaName":491,"dataGaLocation":595},{"text":493,"config":638},{"href":495,"dataGaName":496,"dataGaLocation":595},{"text":640,"config":641},"Status",{"href":642,"dataGaName":643,"dataGaLocation":595},"https://status.gitlab.com/","status",{"text":645,"config":646},"Terms of use",{"href":647,"dataGaName":648,"dataGaLocation":595},"/terms/","terms of use",{"text":650,"config":651},"Privacy statement",{"href":652,"dataGaName":653,"dataGaLocation":595},"/privacy/","privacy statement",{"text":655,"config":656},"Cookie preferences",{"dataGaName":657,"dataGaLocation":595,"id":658,"isOneTrustButton":136},"cookie preferences","ot-sdk-btn",{"title":201,"links":660,"subMenu":669},[661,665],{"text":662,"config":663},"DevSecOps platform",{"href":183,"dataGaName":664,"dataGaLocation":595},"devsecops platform",{"text":666,"config":667},"AI-Assisted Development",{"href":190,"dataGaName":668,"dataGaLocation":595},"ai-assisted development",[670],{"title":671,"links":672},"Topics",[673,678,683,688,693,698,703,708],{"text":674,"config":675},"CICD",{"href":676,"dataGaName":677,"dataGaLocation":595},"/topics/ci-cd/","cicd",{"text":679,"config":680},"GitOps",{"href":681,"dataGaName":682,"dataGaLocation":595},"/topics/gitops/","gitops",{"text":684,"config":685},"DevOps",{"href":686,"dataGaName":687,"dataGaLocation":595},"/topics/devops/","devops",{"text":689,"config":690},"Version Control",{"href":691,"dataGaName":692,"dataGaLocation":595},"/topics/version-control/","version control",{"text":694,"config":695},"DevSecOps",{"href":696,"dataGaName":697,"dataGaLocation":595},"/topics/devsecops/","devsecops",{"text":699,"config":700},"Cloud Native",{"href":701,"dataGaName":702,"dataGaLocation":595},"/topics/cloud-native/","cloud native",{"text":704,"config":705},"AI for Coding",{"href":706,"dataGaName":707,"dataGaLocation":595},"/topics/devops/ai-for-coding/","ai for coding",{"text":709,"config":710},"Agentic AI",{"href":711,"dataGaName":712,"dataGaLocation":595},"/topics/agentic-ai/","agentic ai",{"title":714,"links":715},"Solutions",[716,718,720,725,729,732,736,739,741,744,747,752],{"text":245,"config":717},{"href":240,"dataGaName":245,"dataGaLocation":595},{"text":234,"config":719},{"href":217,"dataGaName":218,"dataGaLocation":595},{"text":721,"config":722},"Agile development",{"href":723,"dataGaName":724,"dataGaLocation":595},"/solutions/agile-delivery/","agile delivery",{"text":726,"config":727},"SCM",{"href":230,"dataGaName":728,"dataGaLocation":595},"source code management",{"text":674,"config":730},{"href":223,"dataGaName":731,"dataGaLocation":595},"continuous integration & delivery",{"text":733,"config":734},"Value stream management",{"href":273,"dataGaName":735,"dataGaLocation":595},"value stream management",{"text":679,"config":737},{"href":738,"dataGaName":682,"dataGaLocation":595},"/solutions/gitops/",{"text":283,"config":740},{"href":286,"dataGaName":287,"dataGaLocation":595},{"text":742,"config":743},"Small business",{"href":292,"dataGaName":293,"dataGaLocation":595},{"text":745,"config":746},"Public sector",{"href":298,"dataGaName":299,"dataGaLocation":595},{"text":748,"config":749},"Education",{"href":750,"dataGaName":751,"dataGaLocation":595},"/solutions/education/","education",{"text":753,"config":754},"Financial services",{"href":755,"dataGaName":756,"dataGaLocation":595},"/solutions/finance/","financial services",{"title":306,"links":758},[759,761,763,765,768,770,773,775,777,779,781,783,785,787],{"text":319,"config":760},{"href":321,"dataGaName":322,"dataGaLocation":595},{"text":324,"config":762},{"href":326,"dataGaName":327,"dataGaLocation":595},{"text":329,"config":764},{"href":331,"dataGaName":332,"dataGaLocation":595},{"text":334,"config":766},{"href":336,"dataGaName":767,"dataGaLocation":595},"docs",{"text":357,"config":769},{"href":359,"dataGaName":360,"dataGaLocation":595},{"text":771,"config":772},"What's new",{"href":417,"dataGaName":418,"dataGaLocation":595},{"text":352,"config":774},{"href":354,"dataGaName":355,"dataGaLocation":595},{"text":371,"config":776},{"href":373,"dataGaName":374,"dataGaLocation":595},{"text":379,"config":778},{"href":381,"dataGaName":382,"dataGaLocation":595},{"text":384,"config":780},{"href":386,"dataGaName":387,"dataGaLocation":595},{"text":389,"config":782},{"href":391,"dataGaName":392,"dataGaLocation":595},{"text":394,"config":784},{"href":396,"dataGaName":397,"dataGaLocation":595},{"text":399,"config":786},{"href":401,"dataGaName":402,"dataGaLocation":595},{"text":404,"config":788},{"href":406,"dataGaName":407,"dataGaLocation":595},{"title":420,"links":790},[791,793,795,797,799,801,805,810,812,814,816],{"text":428,"config":792},{"href":430,"dataGaName":422,"dataGaLocation":595},{"text":433,"config":794},{"href":435,"dataGaName":436,"dataGaLocation":595},{"text":441,"config":796},{"href":443,"dataGaName":444,"dataGaLocation":595},{"text":446,"config":798},{"href":448,"dataGaName":449,"dataGaLocation":595},{"text":451,"config":800},{"href":453,"dataGaName":454,"dataGaLocation":595},{"text":802,"config":803},"Sustainability",{"href":804,"dataGaName":802,"dataGaLocation":595},"/sustainability/",{"text":806,"config":807},"Diversity, inclusion and belonging (DIB)",{"href":808,"dataGaName":809,"dataGaLocation":595},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":456,"config":811},{"href":458,"dataGaName":459,"dataGaLocation":595},{"text":466,"config":813},{"href":468,"dataGaName":469,"dataGaLocation":595},{"text":471,"config":815},{"href":473,"dataGaName":474,"dataGaLocation":595},{"text":817,"config":818},"Modern Slavery Transparency Statement",{"href":819,"dataGaName":820,"dataGaLocation":595},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":822},[823,826,829],{"text":824,"config":825},"Terms",{"href":647,"dataGaName":648,"dataGaLocation":595},{"text":827,"config":828},"Cookies",{"dataGaName":657,"dataGaLocation":595,"id":658,"isOneTrustButton":136},{"text":830,"config":831},"Privacy",{"href":652,"dataGaName":653,"dataGaLocation":595},[833],{"id":834,"title":7,"body":132,"config":835,"content":837,"description":132,"extension":840,"meta":841,"navigation":136,"path":842,"seo":843,"stem":844,"__hash__":845},"blogAuthors/en-us/blog/authors/vanessa-wegner.yml",{"template":836},"BlogAuthor",{"name":7,"config":838},{"headshot":117,"ctfId":839},"vwegner","yml",{},"/en-us/blog/authors/vanessa-wegner",{},"en-us/blog/authors/vanessa-wegner","g7HCM0Grx5gV_2xQsDV9uteKV2uGLbv0_gKd-wvL26M",[847,855,863],{"title":848,"description":849,"heroImage":850,"category":128,"date":851,"authors":852,"slug":854,"externalUrl":132},"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",[853],"Ashley Knobloch","navigation-research-blog-post",{"title":856,"description":857,"heroImage":858,"category":128,"date":859,"authors":860,"slug":862,"externalUrl":132},"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",[861],"Veethika Mishra","beautifying-of-our-ui",{"title":864,"description":865,"heroImage":866,"category":128,"date":867,"authors":868,"slug":870,"externalUrl":132},"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",[869],"Kristina Weis","best-practices-leading-orgs-to-release-software-faster",{"promotions":872},[873,887,899,910],{"id":874,"categories":875,"header":877,"text":878,"button":879,"image":884},"ai-modernization",[876],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":880,"config":881},"Get your AI maturity score",{"href":882,"dataGaName":883,"dataGaLocation":360},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":885},{"src":886},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":888,"categories":889,"header":891,"text":878,"button":892,"image":896},"devops-modernization",[890,697],"product","Are you just managing tools or shipping innovation?",{"text":893,"config":894},"Get your DevOps maturity score",{"href":895,"dataGaName":883,"dataGaLocation":360},"/assessments/devops-modernization-assessment/",{"config":897},{"src":898},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":900,"categories":901,"header":902,"text":878,"button":903,"image":907},"security-modernization",[146],"Are you trading speed for security?",{"text":904,"config":905},"Get your security maturity score",{"href":906,"dataGaName":883,"dataGaLocation":360},"/assessments/security-modernization-assessment/",{"config":908},{"src":909},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":911,"paths":912,"header":915,"text":916,"button":917,"image":922},"github-azure-migration",[913,914],"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":918,"config":919},"See how GitLab compares to GitHub",{"href":920,"dataGaName":921,"dataGaLocation":360},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":923},{"src":898},{"header":925,"blurb":926,"button":927,"secondaryButton":932},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":928,"config":929},"Get your free trial",{"href":930,"dataGaName":159,"dataGaLocation":931},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":633,"config":933},{"href":485,"dataGaName":164,"dataGaLocation":931},1786803766296]