[{"data":1,"prerenderedAt":961},["ShallowReactive",2],{"/blog/defend-cicd-security":3,"navigation-en-us":183,"banner-en-us":608,"footer-en-us":618,"blog-post-authors-en-us-Vanessa Wegner":859,"blog-related-posts-en-us-defend-cicd-security":873,"blog-promotions-en-us":898,"next-steps-en-us":951},{"id":4,"title":5,"authors":6,"body":8,"category":162,"date":163,"description":164,"extension":165,"externalUrl":166,"faq":166,"featured":167,"heroImage":168,"meta":169,"navigation":170,"path":171,"seo":172,"slug":176,"stem":177,"tags":178,"template":181,"updatedDate":166,"__hash__":182},"blogPosts/en-us/blog/defend-cicd-security.md","Defending the CI/CD pipeline",[7],"Vanessa Wegner",{"type":9,"value":10,"toc":148},"minimark",[11,31,39,44,53,56,60,67,72,79,83,92,95,99,107,110,114,117,121,124,128,131,134],[12,13,14,19,20,25,26,30],"p",{},[15,16,18],"a",{"href":17},"/topics/ci-cd/","CI/CD"," is a way to release software as quickly as possible, which, unfortunately, often comes at the expense of security. ",[15,21,24],{"href":22,"rel":23},"https://www.synopsys.com/blogs/software-security/security-challenges-cicd-workflows/",[],"Synopsys and\n451 Research found","\nthe most significant ",[15,27,29],{"href":28},"/topics/devsecops/","application security"," challenges in CI/CD workflows\ninclude a lack of automated, integrated security testing tools, inconsistent\nmethods, slowed workflows, and too many false positives.",[12,32,33,34,38],{},"There’s also the challenge of securing the pipeline itself. Traditional and\nmanual security practices can’t scale to the level of CI/CD – the resulting delivery pipelines expand a company’s attack surface by a significant measure. The pipeline represents an end-to-end lifecycle for your software which makes it a\nprime target for hackers. It's clear ",[15,35,37],{"href":36},"/solutions/application-security-testing/","CI/CD security"," can’t be an afterthought. DevOps teams\nmust bring security issues to the forefront of their considerations throughout the SDLC.",[40,41,43],"h2",{"id":42},"security-risks-in-enterprise-cicd","Security risks in enterprise CI/CD",[12,45,46,47,52],{},"CI/CD significantly broadens your attack surface with a lengthy list of\ncomponents – repositories, servers, containers, and for those who don’t use\nGitLab, a wide array of tools. A large number of moving pieces presents a\ntempting ROI for hackers – one compromised segment of the ecosystem could open\nup the entire infrastructure for exploitation. ",[15,48,51],{"href":49,"rel":50},"https://thenewstack.io/the-biggest-security-risks-lurking-in-your-ci-cd-pipeline/",[],"As tech journalist Twain Taylor\nexplains",",\nsecuring the CI/CD pipeline is not a straightforward process. Teams need to study the\npipeline, understand what information the pipeline ingests, uncover any major\nvulnerabilities and find ways to eliminate those risks.",[12,54,55],{},"Also, tools that lack transparency, require frequent switching\nbetween platforms, and inhibit the overall workflow are less likely to be\nadopted – and more likely to be worked around. Workarounds can create friction in the pipeline which can mean inconsistent\ntesting and remediation, all of which can allow more vulnerabilities to make their way\nthrough to production and launch.",[40,57,59],{"id":58},"defending-against-cicd-pipeline-risks","Defending against CI/CD pipeline risks",[12,61,62,63,66],{},"Secure CI/CD can be achieved through ",[15,64,65],{"href":28},"DevSecOps"," but you’ll need a mature CI/CD solution to get you there. In addition to the\nstability of the solution, your lifecycle ecosystem must be well-maintained and\neasily monitored for suspicious activity. Four of the most important aspects of\na secure CI/CD pipeline are automation, access management, positive user\nexperience, and transparency.",[68,69,71],"h3",{"id":70},"automation","Automation",[12,73,74,75,78],{},"Automation, at the very least, should allow you to bring your security\npractices (especially ",[15,76,77],{"href":36},"testing",")\nup to the speed and scale of CI/CD. The value of automation magnifies when\nprocesses are standardized across teams and organizations. By introducing\nrepeatability to your projects, you’re also creating expected functionality and operations within your pipeline. When there are behaviors\nor activities that don’t align to the expected, a red flag will be triggered alerting developers to potential threats.",[68,80,82],{"id":81},"access-management","Access management",[12,84,85,86,91],{},"Access rights should be considered for both human-to-tool and tool-to-tool\ninteractions. ",[15,87,90],{"href":88,"rel":89},"https://www.tripwire.com/state-of-security/devops/security-ci-cd-pipeline-flowing/",[],"Tripwire recommends","\nrequiring authentication for anyone to push changes to the pipeline,\nimplementing login tracking, and confirming that builds reside on secure\nservers.",[12,93,94],{},"Communication between tools and components should be carefully managed\nto ensure that access is only granted on an as-needed basis. The New Stack's Twain also notes it’s important to consider what secrets are contained in pipeline scripts. He recommends removing any keys, credentials, and secrets from scripts and\nprotecting them with trusted secrets managers. He also suggests implementing\naccess control across your entire toolchain to revoke anything anonymous or shared, and to regularly audit the controls across the\necosystem.",[68,96,98],{"id":97},"user-experience","User experience",[12,100,101,102,106],{},"Seamless integration between tools will make a night-and-day difference in\nsecuring your CI/CD pipeline (alternatively, you could also use ",[103,104,105],"span",{},"a single tool\nfor the entire lifecycle","/handbook/product/single-application/)).\nEven though security is gaining traction in the minds of non-security\nprofessionals, it still remains a challenge for many development teams. Provide\ndevelopers with tools and practices that are standard across the organization,\nand reduce friction between tools as much as possible.",[12,108,109],{},"With lower barriers to\nadoption, your team will be less likely to create workarounds that could\njeopardize your business or customers. Providing users with immediate\nfeedback on the security of their code will enable them to remediate on the\nspot and serve an educational purpose, showing developers what to watch out\nfor when writing code.",[68,111,113],{"id":112},"transparency","Transparency",[12,115,116],{},"It's vital to have a view into what happens throughout the CI/CD pipeline. Maintain a single source of truth that logs every change –\nas well as its origin – and include functionality that allows sign-off for any\nhigh-stakes updates. Transparency also builds accountability among team members,\nreenforcing the idea that everyone is responsible for security. Lastly,\ntransparency is crucial to your team communication strategy. Methodologies and\nknowledge should be communicated openly and thoroughly, so that everyone on the\nteam understands how to apply best practices and what the intended outcomes are.",[40,118,120],{"id":119},"speed-and-security-no-longer-a-paradox","Speed and security: No longer a paradox",[12,122,123],{},"Each of the above steps will help your security efforts shift left in the\nSDLC. Moving it all earlier in the process will enable you to release secure, quality software at the\nspeed of the business. This can only happen if there is true collaboration between development, operations,\nand security. Set policies and standard practices, understand respective\ngoals, and foster a culture of responsibility for the software as a\nwhole – and not just one facet of its creation or performance.",[40,125,127],{"id":126},"the-security-benefits-of-a-single-cicd-tool-for-the-entire-lifecycle","The security benefits of a single CI/CD tool for the entire lifecycle",[12,129,130],{},"It’s extremely important to use established tools that have been thoroughly\nvetted by both your internal teams and the market at large. That being said,\nfinding the best-in-class tools for every phase of the lifecycle and then\nsuccessfully (and securely) stringing them together can be a nightmare and result in untold technical debt. A single CI/CD tool relieves much of\nthat burden, by eliminating unnecessary platform switching and enabling high\ntransparency throughout the pipeline. With GitLab in particular, security\nchecks are embedded within the development workflow, which both reduces\nfriction for developers and provides a single source of truth for the entire\npipeline.",[12,132,133],{},"Regardless of your tool (or tools) of choice, it’s critical that you and your\nteam prioritize security in all aspects of work.",[12,135,136,137,142,143],{},"Cover image by ",[15,138,141],{"href":139,"rel":140},"https://unsplash.com/@3031n",[],"Boban Simonovski"," on ",[15,144,147],{"href":145,"rel":146},"https://unsplash.com/photos/akQ06aB6MfM",[],"Unsplash",{"title":149,"searchDepth":150,"depth":150,"links":151},"",2,[152,153,160,161],{"id":42,"depth":150,"text":43},{"id":58,"depth":150,"text":59,"children":154},[155,157,158,159],{"id":70,"depth":156,"text":71},3,{"id":81,"depth":156,"text":82},{"id":97,"depth":156,"text":98},{"id":112,"depth":156,"text":113},{"id":119,"depth":150,"text":120},{"id":126,"depth":150,"text":127},"insights","2019-11-19","Speed to launch often comes at the cost of security – but it doesn’t have to. Here are four ways to achieve both by using a CI/CD pipeline","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678499/Blog/Hero%20Images/defend-cicd-security.jpg",{},true,"/en-us/blog/defend-cicd-security",{"title":5,"description":164,"ogTitle":5,"ogDescription":164,"noIndex":167,"ogImage":168,"ogUrl":173,"ogSiteName":174,"ogType":175,"canonicalUrls":173},"https://about.gitlab.com/blog/defend-cicd-security","https://about.gitlab.com","article","defend-cicd-security","en-us/blog/defend-cicd-security",[18,179,180],"DevOps","security","BlogPost","KhDJiZZ3a8EohZ7QhYsnPoZeWvO-puWsnI0BuBsHngU",{"logo":184,"freeTrial":189,"sales":194,"login":199,"items":204,"search":528,"minimal":559,"duo":578,"switchNav":587,"pricingDeployment":598},{"config":185},{"href":186,"dataGaName":187,"dataGaLocation":188},"/","gitlab logo","header",{"text":190,"config":191},"Get free trial",{"href":192,"dataGaName":193,"dataGaLocation":188},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":195,"config":196},"Request a demo",{"href":197,"dataGaName":198,"dataGaLocation":188},"/sales/?contact-topic=request-demo","sales",{"text":200,"config":201},"Sign in",{"href":202,"dataGaName":203,"dataGaLocation":188},"https://gitlab.com/users/sign_in/","sign in",[205,234,331,336,450,506],{"text":206,"config":207,"menu":209},"Platform",{"dataNavLevelOne":208},"platform",{"type":210,"columns":211},"cards",[212,218,226],{"title":206,"description":213,"link":214},"The intelligent orchestration platform for DevSecOps",{"text":215,"config":216},"Explore our Platform",{"href":217,"dataGaName":208,"dataGaLocation":188},"/platform/",{"title":219,"description":220,"link":221},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":222,"config":223},"Meet GitLab Duo",{"href":224,"dataGaName":225,"dataGaLocation":188},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":227,"description":228,"link":229},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":230,"config":231},"Learn more",{"href":232,"dataGaName":233,"dataGaLocation":188},"/why-gitlab/","why gitlab",{"text":235,"left":170,"config":236,"menu":238},"Product",{"dataNavLevelOne":237},"solutions",{"type":239,"link":240,"columns":244,"feature":310},"lists",{"text":241,"config":242},"View all Solutions",{"href":243,"dataGaName":237,"dataGaLocation":188},"/solutions/",[245,267,289],{"title":71,"description":246,"link":247,"items":252},"CI/CD and automation to accelerate deployment",{"config":248},{"icon":249,"href":250,"dataGaName":251,"dataGaLocation":188},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[253,256,259,263],{"text":18,"config":254},{"href":255,"dataGaLocation":188,"dataGaName":18},"/solutions/continuous-integration/",{"text":219,"config":257},{"href":224,"dataGaLocation":188,"dataGaName":258},"gitlab duo agent platform - product menu",{"text":260,"config":261},"Source Code Management",{"href":262,"dataGaLocation":188,"dataGaName":260},"/solutions/source-code-management/",{"text":264,"config":265},"Automated Software Delivery",{"href":250,"dataGaLocation":188,"dataGaName":266},"Automated software delivery",{"title":268,"description":269,"link":270,"items":274},"Security","Deliver code faster without compromising security",{"config":271},{"href":36,"dataGaName":272,"dataGaLocation":188,"icon":273},"security and compliance","ShieldCheckLight",[275,279,284],{"text":276,"config":277},"Application Security Testing",{"href":36,"dataGaName":278,"dataGaLocation":188},"Application security testing",{"text":280,"config":281},"Software Supply Chain Security",{"href":282,"dataGaLocation":188,"dataGaName":283},"/solutions/supply-chain/","Software supply chain security",{"text":285,"config":286},"Software Compliance",{"href":287,"dataGaName":288,"dataGaLocation":188},"/solutions/software-compliance/","software compliance",{"title":290,"link":291,"items":296},"Measurement",{"config":292},{"icon":293,"href":294,"dataGaName":295,"dataGaLocation":188},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[297,301,305],{"text":298,"config":299},"Visibility & Measurement",{"href":294,"dataGaLocation":188,"dataGaName":300},"Visibility and Measurement",{"text":302,"config":303},"Value Stream Management",{"href":304,"dataGaLocation":188,"dataGaName":302},"/solutions/value-stream-management/",{"text":306,"config":307},"Analytics & Insights",{"href":308,"dataGaLocation":188,"dataGaName":309},"/solutions/analytics-and-insights/","Analytics and insights",{"title":311,"type":239,"items":312},"GitLab for",[313,319,325],{"text":314,"config":315},"Enterprise",{"icon":316,"href":317,"dataGaLocation":188,"dataGaName":318},"Building","/enterprise/","enterprise",{"text":320,"config":321},"Small Business",{"icon":322,"href":323,"dataGaLocation":188,"dataGaName":324},"Work","/small-business/","small business",{"text":326,"config":327},"Public Sector",{"icon":328,"href":329,"dataGaLocation":188,"dataGaName":330},"Organization","/solutions/public-sector/","public sector",{"text":332,"config":333},"Pricing",{"href":334,"dataGaName":335,"dataGaLocation":188,"dataNavLevelOne":335},"/pricing/","pricing",{"text":337,"config":338,"menu":340},"Resources",{"dataNavLevelOne":339},"resources",{"type":239,"link":341,"columns":345,"feature":439},{"text":342,"config":343},"View all resources",{"href":344,"dataGaName":339,"dataGaLocation":188},"/resources/",[346,379,406],{"title":347,"items":348},"Getting started",[349,354,359,364,369,374],{"text":350,"config":351},"Install",{"href":352,"dataGaName":353,"dataGaLocation":188},"/install/","install",{"text":355,"config":356},"Quick start guides",{"href":357,"dataGaName":358,"dataGaLocation":188},"/get-started/","quick setup checklists",{"text":360,"config":361},"Learn",{"href":362,"dataGaLocation":188,"dataGaName":363},"https://university.gitlab.com/","learn",{"text":365,"config":366},"Product documentation",{"href":367,"dataGaName":368,"dataGaLocation":188},"https://docs.gitlab.com/","product documentation",{"text":370,"config":371},"Best practice videos",{"href":372,"dataGaName":373,"dataGaLocation":188},"/getting-started-videos/","best practice videos",{"text":375,"config":376},"Integrations",{"href":377,"dataGaName":378,"dataGaLocation":188},"/integrations/","integrations",{"title":380,"items":381},"Discover",[382,387,392,397,401],{"text":383,"config":384},"Customer success stories",{"href":385,"dataGaName":386,"dataGaLocation":188},"/customers/","customer success stories",{"text":388,"config":389},"Blog",{"href":390,"dataGaName":391,"dataGaLocation":188},"/blog/","blog",{"text":393,"config":394},"Demo Hub",{"href":395,"dataGaName":396,"dataGaLocation":188},"/demo-hub/","demo hub",{"text":398,"config":399},"The Source",{"href":400,"dataGaName":391,"dataGaLocation":188},"/the-source/",{"text":402,"config":403},"Remote",{"href":404,"dataGaName":405,"dataGaLocation":188},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":407,"items":408},"Connect",[409,414,419,424,429,434],{"text":410,"config":411},"GitLab Services",{"href":412,"dataGaName":413,"dataGaLocation":188},"/services/","services",{"text":415,"config":416},"Contribute",{"href":417,"dataGaName":418,"dataGaLocation":188},"https://contributors.gitlab.com","contribute",{"text":420,"config":421},"Community",{"href":422,"dataGaName":423,"dataGaLocation":188},"/community/","community",{"text":425,"config":426},"Forum",{"href":427,"dataGaName":428,"dataGaLocation":188},"https://forum.gitlab.com/","forum",{"text":430,"config":431},"Events",{"href":432,"dataGaName":433,"dataGaLocation":188},"/events/","events",{"text":435,"config":436},"Partners",{"href":437,"dataGaName":438,"dataGaLocation":188},"/partners/","partners",{"config":440,"title":443,"text":444,"link":445},{"background":441,"textColor":442},"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":446,"config":447},"Read the latest",{"href":448,"dataGaName":449,"dataGaLocation":188},"/whats-new/","whats new",{"text":451,"config":452,"menu":454},"Company",{"dataNavLevelOne":453},"company",{"type":239,"columns":455},[456],{"items":457},[458,463,469,471,476,481,486,491,496,501],{"text":459,"config":460},"About",{"href":461,"dataGaName":462,"dataGaLocation":188},"/company/","about",{"text":464,"config":465,"footerGa":468},"Jobs",{"href":466,"dataGaName":467,"dataGaLocation":188},"/jobs/","jobs",{"dataGaName":467},{"text":430,"config":470},{"href":432,"dataGaName":433,"dataGaLocation":188},{"text":472,"config":473},"Leadership",{"href":474,"dataGaName":475,"dataGaLocation":188},"/company/team/e-group/","leadership",{"text":477,"config":478},"Handbook",{"href":479,"dataGaName":480,"dataGaLocation":188},"https://handbook.gitlab.com/","handbook",{"text":482,"config":483},"Investor relations",{"href":484,"dataGaName":485,"dataGaLocation":188},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":487,"config":488},"Trust Center",{"href":489,"dataGaName":490,"dataGaLocation":188},"/security/","trust center",{"text":492,"config":493},"AI Transparency Center",{"href":494,"dataGaName":495,"dataGaLocation":188},"/ai-transparency-center/","ai transparency center",{"text":497,"config":498},"Newsletter",{"href":499,"dataGaName":500,"dataGaLocation":188},"/company/contact/#contact-forms","newsletter",{"text":502,"config":503},"Press",{"href":504,"dataGaName":505,"dataGaLocation":188},"/press/","press",{"text":507,"config":508,"menu":509},"Contact us",{"dataNavLevelOne":453},{"type":239,"columns":510},[511],{"items":512},[513,518,523],{"text":514,"config":515},"Talk to sales",{"href":516,"dataGaName":517,"dataGaLocation":188},"/sales/","talk to sales",{"text":519,"config":520},"Support portal",{"href":521,"dataGaName":522,"dataGaLocation":188},"https://support.gitlab.com/hc/en-us","support portal",{"text":524,"config":525},"Customer portal",{"href":526,"dataGaName":527,"dataGaLocation":188},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":529,"login":530,"suggestions":537},"Close",{"text":531,"link":532},"To search repositories and projects, login to",{"text":533,"config":534},"gitlab.com",{"href":202,"dataGaName":535,"dataGaLocation":536},"search login","search",{"text":538,"default":539},"Suggestions",[540,542,546,548,552,556],{"text":219,"config":541},{"href":224,"dataGaName":219,"dataGaLocation":536},{"text":543,"config":544},"Code Suggestions (AI)",{"href":545,"dataGaName":543,"dataGaLocation":536},"/solutions/code-suggestions/",{"text":18,"config":547},{"href":255,"dataGaName":18,"dataGaLocation":536},{"text":549,"config":550},"GitLab on AWS",{"href":551,"dataGaName":549,"dataGaLocation":536},"/partners/technology-partners/aws/",{"text":553,"config":554},"GitLab on Google Cloud",{"href":555,"dataGaName":553,"dataGaLocation":536},"/partners/technology-partners/google-cloud-platform/",{"text":557,"config":558},"Why GitLab?",{"href":232,"dataGaName":557,"dataGaLocation":536},{"freeTrial":560,"mobileIcon":565,"desktopIcon":570,"secondaryButton":573},{"text":561,"config":562},"Start free trial",{"href":563,"dataGaName":193,"dataGaLocation":564},"https://gitlab.com/-/trials/new/","nav",{"altText":566,"config":567},"Gitlab Icon",{"src":568,"dataGaName":569,"dataGaLocation":564},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":566,"config":571},{"src":572,"dataGaName":569,"dataGaLocation":564},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":574,"config":575},"Get Started",{"href":576,"dataGaName":577,"dataGaLocation":564},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":579,"mobileIcon":583,"desktopIcon":585},{"text":580,"config":581},"Learn more about GitLab Duo",{"href":224,"dataGaName":582,"dataGaLocation":564},"gitlab duo",{"altText":566,"config":584},{"src":568,"dataGaName":569,"dataGaLocation":564},{"altText":566,"config":586},{"src":572,"dataGaName":569,"dataGaLocation":564},{"button":588,"mobileIcon":593,"desktopIcon":595},{"text":589,"config":590},"/switch",{"href":591,"dataGaName":592,"dataGaLocation":564},"#contact","switch",{"altText":566,"config":594},{"src":568,"dataGaName":569,"dataGaLocation":564},{"altText":566,"config":596},{"src":597,"dataGaName":569,"dataGaLocation":564},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":599,"mobileIcon":604,"desktopIcon":606},{"text":600,"config":601},"Back to pricing",{"href":334,"dataGaName":602,"dataGaLocation":564,"icon":603},"back to pricing","GoBack",{"altText":566,"config":605},{"src":568,"dataGaName":569,"dataGaLocation":564},{"altText":566,"config":607},{"src":572,"dataGaName":569,"dataGaLocation":564},{"title":609,"titleMobile":610,"button":611,"config":616},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":230,"config":612},{"href":613,"dataGaName":614,"dataGaLocation":615},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":617,"disabled":167},"release",{"data":619},{"text":620,"source":621,"edit":627,"contribute":632,"config":637,"items":642,"minimal":848},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":622,"config":623},"View page source",{"href":624,"dataGaName":625,"dataGaLocation":626},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":628,"config":629},"Edit this page",{"href":630,"dataGaName":631,"dataGaLocation":626},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":633,"config":634},"Please contribute",{"href":635,"dataGaName":636,"dataGaLocation":626},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":638,"facebook":639,"youtube":640,"linkedin":641},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[643,690,740,784,816],{"title":332,"links":644,"subMenu":659},[645,649,654],{"text":646,"config":647},"View plans",{"href":334,"dataGaName":648,"dataGaLocation":626},"view plans",{"text":650,"config":651},"Why Premium?",{"href":652,"dataGaName":653,"dataGaLocation":626},"/pricing/premium/","why premium",{"text":655,"config":656},"Why Ultimate?",{"href":657,"dataGaName":658,"dataGaLocation":626},"/pricing/ultimate/","why ultimate",[660],{"title":661,"links":662},"Contact Us",[663,666,668,670,675,680,685],{"text":664,"config":665},"Contact sales",{"href":516,"dataGaName":198,"dataGaLocation":626},{"text":519,"config":667},{"href":521,"dataGaName":522,"dataGaLocation":626},{"text":524,"config":669},{"href":526,"dataGaName":527,"dataGaLocation":626},{"text":671,"config":672},"Status",{"href":673,"dataGaName":674,"dataGaLocation":626},"https://status.gitlab.com/","status",{"text":676,"config":677},"Terms of use",{"href":678,"dataGaName":679,"dataGaLocation":626},"/terms/","terms of use",{"text":681,"config":682},"Privacy statement",{"href":683,"dataGaName":684,"dataGaLocation":626},"/privacy/","privacy statement",{"text":686,"config":687},"Cookie preferences",{"dataGaName":688,"dataGaLocation":626,"id":689,"isOneTrustButton":170},"cookie preferences","ot-sdk-btn",{"title":235,"links":691,"subMenu":700},[692,696],{"text":693,"config":694},"DevSecOps platform",{"href":217,"dataGaName":695,"dataGaLocation":626},"devsecops platform",{"text":697,"config":698},"AI-Assisted Development",{"href":224,"dataGaName":699,"dataGaLocation":626},"ai-assisted development",[701],{"title":702,"links":703},"Topics",[704,708,713,717,722,725,730,735],{"text":705,"config":706},"CICD",{"href":17,"dataGaName":707,"dataGaLocation":626},"cicd",{"text":709,"config":710},"GitOps",{"href":711,"dataGaName":712,"dataGaLocation":626},"/topics/gitops/","gitops",{"text":179,"config":714},{"href":715,"dataGaName":716,"dataGaLocation":626},"/topics/devops/","devops",{"text":718,"config":719},"Version Control",{"href":720,"dataGaName":721,"dataGaLocation":626},"/topics/version-control/","version control",{"text":65,"config":723},{"href":28,"dataGaName":724,"dataGaLocation":626},"devsecops",{"text":726,"config":727},"Cloud Native",{"href":728,"dataGaName":729,"dataGaLocation":626},"/topics/cloud-native/","cloud native",{"text":731,"config":732},"AI for Coding",{"href":733,"dataGaName":734,"dataGaLocation":626},"/topics/devops/ai-for-coding/","ai for coding",{"text":736,"config":737},"Agentic AI",{"href":738,"dataGaName":739,"dataGaLocation":626},"/topics/agentic-ai/","agentic ai",{"title":741,"links":742},"Solutions",[743,745,747,752,756,759,763,766,768,771,774,779],{"text":276,"config":744},{"href":36,"dataGaName":276,"dataGaLocation":626},{"text":266,"config":746},{"href":250,"dataGaName":251,"dataGaLocation":626},{"text":748,"config":749},"Agile development",{"href":750,"dataGaName":751,"dataGaLocation":626},"/solutions/agile-delivery/","agile delivery",{"text":753,"config":754},"SCM",{"href":262,"dataGaName":755,"dataGaLocation":626},"source code management",{"text":705,"config":757},{"href":255,"dataGaName":758,"dataGaLocation":626},"continuous integration & delivery",{"text":760,"config":761},"Value stream management",{"href":304,"dataGaName":762,"dataGaLocation":626},"value stream management",{"text":709,"config":764},{"href":765,"dataGaName":712,"dataGaLocation":626},"/solutions/gitops/",{"text":314,"config":767},{"href":317,"dataGaName":318,"dataGaLocation":626},{"text":769,"config":770},"Small business",{"href":323,"dataGaName":324,"dataGaLocation":626},{"text":772,"config":773},"Public sector",{"href":329,"dataGaName":330,"dataGaLocation":626},{"text":775,"config":776},"Education",{"href":777,"dataGaName":778,"dataGaLocation":626},"/solutions/education/","education",{"text":780,"config":781},"Financial services",{"href":782,"dataGaName":783,"dataGaLocation":626},"/solutions/finance/","financial services",{"title":337,"links":785},[786,788,790,792,795,797,800,802,804,806,808,810,812,814],{"text":350,"config":787},{"href":352,"dataGaName":353,"dataGaLocation":626},{"text":355,"config":789},{"href":357,"dataGaName":358,"dataGaLocation":626},{"text":360,"config":791},{"href":362,"dataGaName":363,"dataGaLocation":626},{"text":365,"config":793},{"href":367,"dataGaName":794,"dataGaLocation":626},"docs",{"text":388,"config":796},{"href":390,"dataGaName":391,"dataGaLocation":626},{"text":798,"config":799},"What's new",{"href":448,"dataGaName":449,"dataGaLocation":626},{"text":383,"config":801},{"href":385,"dataGaName":386,"dataGaLocation":626},{"text":402,"config":803},{"href":404,"dataGaName":405,"dataGaLocation":626},{"text":410,"config":805},{"href":412,"dataGaName":413,"dataGaLocation":626},{"text":415,"config":807},{"href":417,"dataGaName":418,"dataGaLocation":626},{"text":420,"config":809},{"href":422,"dataGaName":423,"dataGaLocation":626},{"text":425,"config":811},{"href":427,"dataGaName":428,"dataGaLocation":626},{"text":430,"config":813},{"href":432,"dataGaName":433,"dataGaLocation":626},{"text":435,"config":815},{"href":437,"dataGaName":438,"dataGaLocation":626},{"title":451,"links":817},[818,820,822,824,826,828,832,837,839,841,843],{"text":459,"config":819},{"href":461,"dataGaName":453,"dataGaLocation":626},{"text":464,"config":821},{"href":466,"dataGaName":467,"dataGaLocation":626},{"text":472,"config":823},{"href":474,"dataGaName":475,"dataGaLocation":626},{"text":477,"config":825},{"href":479,"dataGaName":480,"dataGaLocation":626},{"text":482,"config":827},{"href":484,"dataGaName":485,"dataGaLocation":626},{"text":829,"config":830},"Sustainability",{"href":831,"dataGaName":829,"dataGaLocation":626},"/sustainability/",{"text":833,"config":834},"Diversity, inclusion and belonging (DIB)",{"href":835,"dataGaName":836,"dataGaLocation":626},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":487,"config":838},{"href":489,"dataGaName":490,"dataGaLocation":626},{"text":497,"config":840},{"href":499,"dataGaName":500,"dataGaLocation":626},{"text":502,"config":842},{"href":504,"dataGaName":505,"dataGaLocation":626},{"text":844,"config":845},"Modern Slavery Transparency Statement",{"href":846,"dataGaName":847,"dataGaLocation":626},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":849},[850,853,856],{"text":851,"config":852},"Terms",{"href":678,"dataGaName":679,"dataGaLocation":626},{"text":854,"config":855},"Cookies",{"dataGaName":688,"dataGaLocation":626,"id":689,"isOneTrustButton":170},{"text":857,"config":858},"Privacy",{"href":683,"dataGaName":684,"dataGaLocation":626},[860],{"id":861,"title":7,"body":166,"config":862,"content":864,"description":166,"extension":867,"meta":868,"navigation":170,"path":869,"seo":870,"stem":871,"__hash__":872},"blogAuthors/en-us/blog/authors/vanessa-wegner.yml",{"template":863},"BlogAuthor",{"name":7,"config":865},{"headshot":149,"ctfId":866},"vwegner","yml",{},"/en-us/blog/authors/vanessa-wegner",{},"en-us/blog/authors/vanessa-wegner","g7HCM0Grx5gV_2xQsDV9uteKV2uGLbv0_gKd-wvL26M",[874,882,890],{"title":875,"description":876,"heroImage":877,"category":162,"date":878,"authors":879,"slug":881,"externalUrl":166},"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",[880],"Ashley Knobloch","navigation-research-blog-post",{"title":883,"description":884,"heroImage":885,"category":162,"date":886,"authors":887,"slug":889,"externalUrl":166},"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",[888],"Veethika Mishra","beautifying-of-our-ui",{"title":891,"description":892,"heroImage":893,"category":162,"date":894,"authors":895,"slug":897,"externalUrl":166},"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",[896],"Kristina Weis","best-practices-leading-orgs-to-release-software-faster",{"promotions":899},[900,914,926,937],{"id":901,"categories":902,"header":904,"text":905,"button":906,"image":911},"ai-modernization",[903],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":907,"config":908},"Get your AI maturity score",{"href":909,"dataGaName":910,"dataGaLocation":391},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":912},{"src":913},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":915,"categories":916,"header":918,"text":905,"button":919,"image":923},"devops-modernization",[917,724],"product","Are you just managing tools or shipping innovation?",{"text":920,"config":921},"Get your DevOps maturity score",{"href":922,"dataGaName":910,"dataGaLocation":391},"/assessments/devops-modernization-assessment/",{"config":924},{"src":925},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":927,"categories":928,"header":929,"text":905,"button":930,"image":934},"security-modernization",[180],"Are you trading speed for security?",{"text":931,"config":932},"Get your security maturity score",{"href":933,"dataGaName":910,"dataGaLocation":391},"/assessments/security-modernization-assessment/",{"config":935},{"src":936},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":938,"paths":939,"header":942,"text":943,"button":944,"image":949},"github-azure-migration",[940,941],"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":945,"config":946},"See how GitLab compares to GitHub",{"href":947,"dataGaName":948,"dataGaLocation":391},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":950},{"src":925},{"header":952,"blurb":953,"button":954,"secondaryButton":959},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":955,"config":956},"Get your free trial",{"href":957,"dataGaName":193,"dataGaLocation":958},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":664,"config":960},{"href":516,"dataGaName":198,"dataGaLocation":958},1786803748370]