[{"data":1,"prerenderedAt":976},["ShallowReactive",2],{"/blog/top-10-technical-articles-of-2022":3,"navigation-en-us":189,"banner-en-us":617,"footer-en-us":627,"blog-post-authors-en-us-Valerie Silverthorne":871,"blog-related-posts-en-us-top-10-technical-articles-of-2022":886,"blog-promotions-en-us":912,"next-steps-en-us":966},{"id":4,"title":5,"authors":6,"body":8,"category":167,"date":168,"description":169,"extension":170,"externalUrl":171,"faq":171,"featured":172,"heroImage":173,"meta":174,"navigation":175,"path":176,"seo":177,"slug":181,"stem":182,"tags":183,"template":187,"updatedDate":171,"__hash__":188},"blogPosts/en-us/blog/top-10-technical-articles-of-2022.md","Top 10 technical articles of 2022",[7],"Valerie Silverthorne",{"type":9,"value":10,"toc":153},"minimark",[11,15,20,28,36,40,43,49,53,56,62,66,69,75,79,82,88,92,95,101,105,108,114,118,121,127,131,134,140,144,147],[12,13,14],"p",{},"With 2022 coming to a close, we wanted to ensure everyone gets one more chance to explore our top 10 technical blog posts of the year. Roll up your sleeves and enjoy our most-viewed how-to articles and don’t forget to bookmark them for next year!",[16,17,19],"h2",{"id":18},"_1-failed-pipeline","1. Failed pipeline?",[12,21,22,23,27],{},"We have ",[24,25,26],"em",{},"all"," been there, and not much is more frustrating than that red X. Staff Developer Evangelist Brendan O’Leary offers his best advice on troubleshooting the “why?” of a GitLab failed pipeline – it starts with keeping the right perspective. So many factors are involved in code development that it’s critical to ask all of the questions: Is it the code? Is it the test? Is it a vulnerability, etc.?",[12,29,30],{},[31,32,35],"a",{"href":33,"rel":34},"https://docs.gitlab.com/ci/debugging/",[],"How to troubleshoot a GitLab pipeline failure",[16,37,39],{"id":38},"_2-why-git-rebase-is-your-bff","2. Why Git Rebase is your BFF",[12,41,42],{},"With code review increasingly important to successful DevOps, Senior Backend Engineer (Gitaly) Christian Couder thinks devs might be forgetting a secret weapon in their IDE: Git Rebase. Learn how to rework commits with Git Rebase, including expert tips to try different instructions like ‘reword’, ‘edit’, and ‘squash’.",[12,44,45],{},[31,46,48],{"href":47},"/blog/take-advantage-of-git-rebase/","Take advantage of Git Rebase",[16,50,52],{"id":51},"_3-alert-fatigue-is-real","3. Alert fatigue is real",[12,54,55],{},"Follow along with Senior Site Reliability Engineer Steve Azzopardi as he lays out a GitLab investigation into annoying, time-consuming (and customer-facing) 502 errors in the GitLab Pages logs. To uncover the problem, Azzopardi and team had to unearth some red herrings along the way, but ultimately discovered the importance of PID 1 in a container.",[12,57,58],{},[31,59,61],{"href":60},"/blog/how-we-removed-all-502-errors-by-caring-about-pid-1-in-kubernetes/","How we reduced 502 errors by caring about PID 1 in containers",[16,63,65],{"id":64},"_4-more-pipelines-less-complexity","4. More pipelines = less complexity",[12,67,68],{},"CI/CD is at the heart of most modern DevOps practices, but that doesn’t mean it’s a “set it and forget it.” Staff Backend Engineer Fabio Pittino acknowledges the complexity challenges of CI/CD and suggests the solution is choosing the right pipelines for the job. Understand the differences between parent-child and multi-project pipelines to streamline your CI/CD efforts.",[12,70,71],{},[31,72,74],{"href":73},"/blog/parent-child-vs-multi-project-pipelines/","Breaking down CI/CD complexity with parent-child and multi-project pipelines",[16,76,78],{"id":77},"_5-hacking-and-bug-bounties","5. Hacking and bug bounties",[12,80,81],{},"How did a Swedish web developer go from zero to number seven on our HackerOne Top 10 list in just over a year? Johan Carlsson offers a detailed look at how and why he started looking for bugs in GitLab in his spare time, and how others can jump into hacking, too.",[12,83,84],{},[31,85,87],{"href":86},"/blog/cracking-our-bug-bounty-top-10/","Want to start hacking? Here’s how to quickly dive in",[16,89,91],{"id":90},"_6-gitlab-on-an-ipad","6. Gitlab… on an iPad",[12,93,94],{},"Yes, you can code on an M1-chip-based iPad, and Staff Developer Evangelist Brendan O’Leary walks through all the necessary steps to get GitLab running using GitPod.",[12,96,97],{},[31,98,100],{"href":99},"/blog/how-to-code-build-and-deploy-from-an-ipad-using-gitlab-and-gitpod/","How to code, build, and deploy from an iPad using GitLab and GitPod",[16,102,104],{"id":103},"_7-speed-up-database-changes","7. Speed up database changes",[12,106,107],{},"Many DevOps teams have mastered speedy application code changes but have struggled to make database updates equally streamlined. In this step-by-step guide, you’ll learn how to apply DevOps principles to database change management.",[12,109,110],{},[31,111,113],{"href":112},"/blog/how-to-bring-devops-to-the-database-with-gitlab-and-liquibase/","How to bring DevOps to the database with GitLab and Liquibase",[16,115,117],{"id":116},"_8-a-primer-on-iac-security","8. A primer on IaC security",[12,119,120],{},"Infrastructure as Code (IaC) is an increasingly popular solution for DevOps teams, and with good reason: It’s an efficient and low-resource solution. But, as Senior Developer Evangelist Michael Friedrich explains, it’s also ripe with potential security vulnerabilities. Friedrich takes an exhaustive look at the threats, tools, integrations, and strategies that make IaC a safer choice.",[12,122,123],{},[31,124,126],{"href":125},"/blog/fantastic-infrastructure-as-code-security-attacks-and-how-to-find-them/","Fantastic Infrastructure as Code security attacks and how to find them",[16,128,130],{"id":129},"_9-everything-you-need-to-know-about-gitops","9. Everything you need to know about GitOps",[12,132,133],{},"Want to know how to make GitLab work with GitOps? Senior Product Manager (Configure) Viktor Nagy created an eight-part tutorial covering everything GitLab and GitOps, culminating in how to make a GitLab agent for Kubernetes self-managing.",[12,135,136],{},[31,137,139],{"href":138},"/blog/the-ultimate-guide-to-gitops-with-gitlab/","The ultimate guide to GitOps with GitLab",[16,141,143],{"id":142},"_10-the-skinny-on-static-site-generators","10. The skinny on static site generators",[12,145,146],{},"Devs will get the most out of GitLab Pages by choosing the right static site generator (SSG). Developer Evangelist Fatima Sarah Khalid reviews six options and has also created a toolkit to help make the SSG evaluation process easier.",[12,148,149],{},[31,150,152],{"href":151},"/blog/comparing-static-site-generators/","How to choose the right static site generator",{"title":154,"searchDepth":155,"depth":155,"links":156},"",2,[157,158,159,160,161,162,163,164,165,166],{"id":18,"depth":155,"text":19},{"id":38,"depth":155,"text":39},{"id":51,"depth":155,"text":52},{"id":64,"depth":155,"text":65},{"id":77,"depth":155,"text":78},{"id":90,"depth":155,"text":91},{"id":103,"depth":155,"text":104},{"id":116,"depth":155,"text":117},{"id":129,"depth":155,"text":130},{"id":142,"depth":155,"text":143},"engineering","2022-12-08","Let’s review our fantastic year of how-to guides. From fixing failed pipelines to making the best use of GitOps, we have you covered with our in-depth tutorials.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663736/Blog/Hero%20Images/a-deep-dive-into-the-security-analyst-persona.jpg",{},true,"/en-us/blog/top-10-technical-articles-of-2022",{"title":5,"description":169,"ogTitle":5,"ogDescription":169,"noIndex":172,"ogImage":173,"ogUrl":178,"ogSiteName":179,"ogType":180,"canonicalUrls":178},"https://about.gitlab.com/blog/top-10-technical-articles-of-2022","https://about.gitlab.com","article","top-10-technical-articles-of-2022","en-us/blog/top-10-technical-articles-of-2022",[184,185,186],"DevOps","tutorial","git","BlogPost","6BtZPFmXH6m6Yisk6BDIc3lwGH1fRFFmgz1IZukT_6w",{"logo":190,"freeTrial":195,"sales":200,"login":205,"items":210,"search":537,"minimal":568,"duo":587,"switchNav":596,"pricingDeployment":607},{"config":191},{"href":192,"dataGaName":193,"dataGaLocation":194},"/","gitlab logo","header",{"text":196,"config":197},"Get free trial",{"href":198,"dataGaName":199,"dataGaLocation":194},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":201,"config":202},"Request a demo",{"href":203,"dataGaName":204,"dataGaLocation":194},"/sales/?contact-topic=request-demo","sales",{"text":206,"config":207},"Sign in",{"href":208,"dataGaName":209,"dataGaLocation":194},"https://gitlab.com/users/sign_in/","sign in",[211,240,340,345,459,515],{"text":212,"config":213,"menu":215},"Platform",{"dataNavLevelOne":214},"platform",{"type":216,"columns":217},"cards",[218,224,232],{"title":212,"description":219,"link":220},"The intelligent orchestration platform for DevSecOps",{"text":221,"config":222},"Explore our Platform",{"href":223,"dataGaName":214,"dataGaLocation":194},"/platform/",{"title":225,"description":226,"link":227},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":228,"config":229},"Meet GitLab Duo",{"href":230,"dataGaName":231,"dataGaLocation":194},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":233,"description":234,"link":235},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":236,"config":237},"Learn more",{"href":238,"dataGaName":239,"dataGaLocation":194},"/why-gitlab/","why gitlab",{"text":241,"left":175,"config":242,"menu":244},"Product",{"dataNavLevelOne":243},"solutions",{"type":245,"link":246,"columns":250,"feature":319},"lists",{"text":247,"config":248},"View all Solutions",{"href":249,"dataGaName":243,"dataGaLocation":194},"/solutions/",[251,275,298],{"title":252,"description":253,"link":254,"items":259},"Automation","CI/CD and automation to accelerate deployment",{"config":255},{"icon":256,"href":257,"dataGaName":258,"dataGaLocation":194},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[260,264,267,271],{"text":261,"config":262},"CI/CD",{"href":263,"dataGaLocation":194,"dataGaName":261},"/solutions/continuous-integration/",{"text":225,"config":265},{"href":230,"dataGaLocation":194,"dataGaName":266},"gitlab duo agent platform - product menu",{"text":268,"config":269},"Source Code Management",{"href":270,"dataGaLocation":194,"dataGaName":268},"/solutions/source-code-management/",{"text":272,"config":273},"Automated Software Delivery",{"href":257,"dataGaLocation":194,"dataGaName":274},"Automated software delivery",{"title":276,"description":277,"link":278,"items":283},"Security","Deliver code faster without compromising security",{"config":279},{"href":280,"dataGaName":281,"dataGaLocation":194,"icon":282},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[284,288,293],{"text":285,"config":286},"Application Security Testing",{"href":280,"dataGaName":287,"dataGaLocation":194},"Application security testing",{"text":289,"config":290},"Software Supply Chain Security",{"href":291,"dataGaLocation":194,"dataGaName":292},"/solutions/supply-chain/","Software supply chain security",{"text":294,"config":295},"Software Compliance",{"href":296,"dataGaName":297,"dataGaLocation":194},"/solutions/software-compliance/","software compliance",{"title":299,"link":300,"items":305},"Measurement",{"config":301},{"icon":302,"href":303,"dataGaName":304,"dataGaLocation":194},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[306,310,314],{"text":307,"config":308},"Visibility & Measurement",{"href":303,"dataGaLocation":194,"dataGaName":309},"Visibility and Measurement",{"text":311,"config":312},"Value Stream Management",{"href":313,"dataGaLocation":194,"dataGaName":311},"/solutions/value-stream-management/",{"text":315,"config":316},"Analytics & Insights",{"href":317,"dataGaLocation":194,"dataGaName":318},"/solutions/analytics-and-insights/","Analytics and insights",{"title":320,"type":245,"items":321},"GitLab for",[322,328,334],{"text":323,"config":324},"Enterprise",{"icon":325,"href":326,"dataGaLocation":194,"dataGaName":327},"Building","/enterprise/","enterprise",{"text":329,"config":330},"Small Business",{"icon":331,"href":332,"dataGaLocation":194,"dataGaName":333},"Work","/small-business/","small business",{"text":335,"config":336},"Public Sector",{"icon":337,"href":338,"dataGaLocation":194,"dataGaName":339},"Organization","/solutions/public-sector/","public sector",{"text":341,"config":342},"Pricing",{"href":343,"dataGaName":344,"dataGaLocation":194,"dataNavLevelOne":344},"/pricing/","pricing",{"text":346,"config":347,"menu":349},"Resources",{"dataNavLevelOne":348},"resources",{"type":245,"link":350,"columns":354,"feature":448},{"text":351,"config":352},"View all resources",{"href":353,"dataGaName":348,"dataGaLocation":194},"/resources/",[355,388,415],{"title":356,"items":357},"Getting started",[358,363,368,373,378,383],{"text":359,"config":360},"Install",{"href":361,"dataGaName":362,"dataGaLocation":194},"/install/","install",{"text":364,"config":365},"Quick start guides",{"href":366,"dataGaName":367,"dataGaLocation":194},"/get-started/","quick setup checklists",{"text":369,"config":370},"Learn",{"href":371,"dataGaLocation":194,"dataGaName":372},"https://university.gitlab.com/","learn",{"text":374,"config":375},"Product documentation",{"href":376,"dataGaName":377,"dataGaLocation":194},"https://docs.gitlab.com/","product documentation",{"text":379,"config":380},"Best practice videos",{"href":381,"dataGaName":382,"dataGaLocation":194},"/getting-started-videos/","best practice videos",{"text":384,"config":385},"Integrations",{"href":386,"dataGaName":387,"dataGaLocation":194},"/integrations/","integrations",{"title":389,"items":390},"Discover",[391,396,401,406,410],{"text":392,"config":393},"Customer success stories",{"href":394,"dataGaName":395,"dataGaLocation":194},"/customers/","customer success stories",{"text":397,"config":398},"Blog",{"href":399,"dataGaName":400,"dataGaLocation":194},"/blog/","blog",{"text":402,"config":403},"Demo Hub",{"href":404,"dataGaName":405,"dataGaLocation":194},"/demo-hub/","demo hub",{"text":407,"config":408},"The Source",{"href":409,"dataGaName":400,"dataGaLocation":194},"/the-source/",{"text":411,"config":412},"Remote",{"href":413,"dataGaName":414,"dataGaLocation":194},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":416,"items":417},"Connect",[418,423,428,433,438,443],{"text":419,"config":420},"GitLab Services",{"href":421,"dataGaName":422,"dataGaLocation":194},"/services/","services",{"text":424,"config":425},"Contribute",{"href":426,"dataGaName":427,"dataGaLocation":194},"https://contributors.gitlab.com","contribute",{"text":429,"config":430},"Community",{"href":431,"dataGaName":432,"dataGaLocation":194},"/community/","community",{"text":434,"config":435},"Forum",{"href":436,"dataGaName":437,"dataGaLocation":194},"https://forum.gitlab.com/","forum",{"text":439,"config":440},"Events",{"href":441,"dataGaName":442,"dataGaLocation":194},"/events/","events",{"text":444,"config":445},"Partners",{"href":446,"dataGaName":447,"dataGaLocation":194},"/partners/","partners",{"config":449,"title":452,"text":453,"link":454},{"background":450,"textColor":451},"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":455,"config":456},"Read the latest",{"href":457,"dataGaName":458,"dataGaLocation":194},"/whats-new/","whats new",{"text":460,"config":461,"menu":463},"Company",{"dataNavLevelOne":462},"company",{"type":245,"columns":464},[465],{"items":466},[467,472,478,480,485,490,495,500,505,510],{"text":468,"config":469},"About",{"href":470,"dataGaName":471,"dataGaLocation":194},"/company/","about",{"text":473,"config":474,"footerGa":477},"Jobs",{"href":475,"dataGaName":476,"dataGaLocation":194},"/jobs/","jobs",{"dataGaName":476},{"text":439,"config":479},{"href":441,"dataGaName":442,"dataGaLocation":194},{"text":481,"config":482},"Leadership",{"href":483,"dataGaName":484,"dataGaLocation":194},"/company/team/e-group/","leadership",{"text":486,"config":487},"Handbook",{"href":488,"dataGaName":489,"dataGaLocation":194},"https://handbook.gitlab.com/","handbook",{"text":491,"config":492},"Investor relations",{"href":493,"dataGaName":494,"dataGaLocation":194},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":496,"config":497},"Trust Center",{"href":498,"dataGaName":499,"dataGaLocation":194},"/security/","trust center",{"text":501,"config":502},"AI Transparency Center",{"href":503,"dataGaName":504,"dataGaLocation":194},"/ai-transparency-center/","ai transparency center",{"text":506,"config":507},"Newsletter",{"href":508,"dataGaName":509,"dataGaLocation":194},"/company/contact/#contact-forms","newsletter",{"text":511,"config":512},"Press",{"href":513,"dataGaName":514,"dataGaLocation":194},"/press/","press",{"text":516,"config":517,"menu":518},"Contact us",{"dataNavLevelOne":462},{"type":245,"columns":519},[520],{"items":521},[522,527,532],{"text":523,"config":524},"Talk to sales",{"href":525,"dataGaName":526,"dataGaLocation":194},"/sales/","talk to sales",{"text":528,"config":529},"Support portal",{"href":530,"dataGaName":531,"dataGaLocation":194},"https://support.gitlab.com/hc/en-us","support portal",{"text":533,"config":534},"Customer portal",{"href":535,"dataGaName":536,"dataGaLocation":194},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":538,"login":539,"suggestions":546},"Close",{"text":540,"link":541},"To search repositories and projects, login to",{"text":542,"config":543},"gitlab.com",{"href":208,"dataGaName":544,"dataGaLocation":545},"search login","search",{"text":547,"default":548},"Suggestions",[549,551,555,557,561,565],{"text":225,"config":550},{"href":230,"dataGaName":225,"dataGaLocation":545},{"text":552,"config":553},"Code Suggestions (AI)",{"href":554,"dataGaName":552,"dataGaLocation":545},"/solutions/code-suggestions/",{"text":261,"config":556},{"href":263,"dataGaName":261,"dataGaLocation":545},{"text":558,"config":559},"GitLab on AWS",{"href":560,"dataGaName":558,"dataGaLocation":545},"/partners/technology-partners/aws/",{"text":562,"config":563},"GitLab on Google Cloud",{"href":564,"dataGaName":562,"dataGaLocation":545},"/partners/technology-partners/google-cloud-platform/",{"text":566,"config":567},"Why GitLab?",{"href":238,"dataGaName":566,"dataGaLocation":545},{"freeTrial":569,"mobileIcon":574,"desktopIcon":579,"secondaryButton":582},{"text":570,"config":571},"Start free trial",{"href":572,"dataGaName":199,"dataGaLocation":573},"https://gitlab.com/-/trials/new/","nav",{"altText":575,"config":576},"Gitlab Icon",{"src":577,"dataGaName":578,"dataGaLocation":573},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":575,"config":580},{"src":581,"dataGaName":578,"dataGaLocation":573},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":583,"config":584},"Get Started",{"href":585,"dataGaName":586,"dataGaLocation":573},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":588,"mobileIcon":592,"desktopIcon":594},{"text":589,"config":590},"Learn more about GitLab Duo",{"href":230,"dataGaName":591,"dataGaLocation":573},"gitlab duo",{"altText":575,"config":593},{"src":577,"dataGaName":578,"dataGaLocation":573},{"altText":575,"config":595},{"src":581,"dataGaName":578,"dataGaLocation":573},{"button":597,"mobileIcon":602,"desktopIcon":604},{"text":598,"config":599},"/switch",{"href":600,"dataGaName":601,"dataGaLocation":573},"#contact","switch",{"altText":575,"config":603},{"src":577,"dataGaName":578,"dataGaLocation":573},{"altText":575,"config":605},{"src":606,"dataGaName":578,"dataGaLocation":573},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":608,"mobileIcon":613,"desktopIcon":615},{"text":609,"config":610},"Back to pricing",{"href":343,"dataGaName":611,"dataGaLocation":573,"icon":612},"back to pricing","GoBack",{"altText":575,"config":614},{"src":577,"dataGaName":578,"dataGaLocation":573},{"altText":575,"config":616},{"src":581,"dataGaName":578,"dataGaLocation":573},{"title":618,"titleMobile":619,"button":620,"config":625},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":236,"config":621},{"href":622,"dataGaName":623,"dataGaLocation":624},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":626,"disabled":172},"release",{"data":628},{"text":629,"source":630,"edit":636,"contribute":641,"config":646,"items":651,"minimal":860},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":631,"config":632},"View page source",{"href":633,"dataGaName":634,"dataGaLocation":635},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":637,"config":638},"Edit this page",{"href":639,"dataGaName":640,"dataGaLocation":635},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":642,"config":643},"Please contribute",{"href":644,"dataGaName":645,"dataGaLocation":635},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":647,"facebook":648,"youtube":649,"linkedin":650},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[652,699,752,796,828],{"title":341,"links":653,"subMenu":668},[654,658,663],{"text":655,"config":656},"View plans",{"href":343,"dataGaName":657,"dataGaLocation":635},"view plans",{"text":659,"config":660},"Why Premium?",{"href":661,"dataGaName":662,"dataGaLocation":635},"/pricing/premium/","why premium",{"text":664,"config":665},"Why Ultimate?",{"href":666,"dataGaName":667,"dataGaLocation":635},"/pricing/ultimate/","why ultimate",[669],{"title":670,"links":671},"Contact Us",[672,675,677,679,684,689,694],{"text":673,"config":674},"Contact sales",{"href":525,"dataGaName":204,"dataGaLocation":635},{"text":528,"config":676},{"href":530,"dataGaName":531,"dataGaLocation":635},{"text":533,"config":678},{"href":535,"dataGaName":536,"dataGaLocation":635},{"text":680,"config":681},"Status",{"href":682,"dataGaName":683,"dataGaLocation":635},"https://status.gitlab.com/","status",{"text":685,"config":686},"Terms of use",{"href":687,"dataGaName":688,"dataGaLocation":635},"/terms/","terms of use",{"text":690,"config":691},"Privacy statement",{"href":692,"dataGaName":693,"dataGaLocation":635},"/privacy/","privacy statement",{"text":695,"config":696},"Cookie preferences",{"dataGaName":697,"dataGaLocation":635,"id":698,"isOneTrustButton":175},"cookie preferences","ot-sdk-btn",{"title":241,"links":700,"subMenu":709},[701,705],{"text":702,"config":703},"DevSecOps platform",{"href":223,"dataGaName":704,"dataGaLocation":635},"devsecops platform",{"text":706,"config":707},"AI-Assisted Development",{"href":230,"dataGaName":708,"dataGaLocation":635},"ai-assisted development",[710],{"title":711,"links":712},"Topics",[713,718,723,727,732,737,742,747],{"text":714,"config":715},"CICD",{"href":716,"dataGaName":717,"dataGaLocation":635},"/topics/ci-cd/","cicd",{"text":719,"config":720},"GitOps",{"href":721,"dataGaName":722,"dataGaLocation":635},"/topics/gitops/","gitops",{"text":184,"config":724},{"href":725,"dataGaName":726,"dataGaLocation":635},"/topics/devops/","devops",{"text":728,"config":729},"Version Control",{"href":730,"dataGaName":731,"dataGaLocation":635},"/topics/version-control/","version control",{"text":733,"config":734},"DevSecOps",{"href":735,"dataGaName":736,"dataGaLocation":635},"/topics/devsecops/","devsecops",{"text":738,"config":739},"Cloud Native",{"href":740,"dataGaName":741,"dataGaLocation":635},"/topics/cloud-native/","cloud native",{"text":743,"config":744},"AI for Coding",{"href":745,"dataGaName":746,"dataGaLocation":635},"/topics/devops/ai-for-coding/","ai for coding",{"text":748,"config":749},"Agentic AI",{"href":750,"dataGaName":751,"dataGaLocation":635},"/topics/agentic-ai/","agentic ai",{"title":753,"links":754},"Solutions",[755,757,759,764,768,771,775,778,780,783,786,791],{"text":285,"config":756},{"href":280,"dataGaName":285,"dataGaLocation":635},{"text":274,"config":758},{"href":257,"dataGaName":258,"dataGaLocation":635},{"text":760,"config":761},"Agile development",{"href":762,"dataGaName":763,"dataGaLocation":635},"/solutions/agile-delivery/","agile delivery",{"text":765,"config":766},"SCM",{"href":270,"dataGaName":767,"dataGaLocation":635},"source code management",{"text":714,"config":769},{"href":263,"dataGaName":770,"dataGaLocation":635},"continuous integration & delivery",{"text":772,"config":773},"Value stream management",{"href":313,"dataGaName":774,"dataGaLocation":635},"value stream management",{"text":719,"config":776},{"href":777,"dataGaName":722,"dataGaLocation":635},"/solutions/gitops/",{"text":323,"config":779},{"href":326,"dataGaName":327,"dataGaLocation":635},{"text":781,"config":782},"Small business",{"href":332,"dataGaName":333,"dataGaLocation":635},{"text":784,"config":785},"Public sector",{"href":338,"dataGaName":339,"dataGaLocation":635},{"text":787,"config":788},"Education",{"href":789,"dataGaName":790,"dataGaLocation":635},"/solutions/education/","education",{"text":792,"config":793},"Financial services",{"href":794,"dataGaName":795,"dataGaLocation":635},"/solutions/finance/","financial services",{"title":346,"links":797},[798,800,802,804,807,809,812,814,816,818,820,822,824,826],{"text":359,"config":799},{"href":361,"dataGaName":362,"dataGaLocation":635},{"text":364,"config":801},{"href":366,"dataGaName":367,"dataGaLocation":635},{"text":369,"config":803},{"href":371,"dataGaName":372,"dataGaLocation":635},{"text":374,"config":805},{"href":376,"dataGaName":806,"dataGaLocation":635},"docs",{"text":397,"config":808},{"href":399,"dataGaName":400,"dataGaLocation":635},{"text":810,"config":811},"What's new",{"href":457,"dataGaName":458,"dataGaLocation":635},{"text":392,"config":813},{"href":394,"dataGaName":395,"dataGaLocation":635},{"text":411,"config":815},{"href":413,"dataGaName":414,"dataGaLocation":635},{"text":419,"config":817},{"href":421,"dataGaName":422,"dataGaLocation":635},{"text":424,"config":819},{"href":426,"dataGaName":427,"dataGaLocation":635},{"text":429,"config":821},{"href":431,"dataGaName":432,"dataGaLocation":635},{"text":434,"config":823},{"href":436,"dataGaName":437,"dataGaLocation":635},{"text":439,"config":825},{"href":441,"dataGaName":442,"dataGaLocation":635},{"text":444,"config":827},{"href":446,"dataGaName":447,"dataGaLocation":635},{"title":460,"links":829},[830,832,834,836,838,840,844,849,851,853,855],{"text":468,"config":831},{"href":470,"dataGaName":462,"dataGaLocation":635},{"text":473,"config":833},{"href":475,"dataGaName":476,"dataGaLocation":635},{"text":481,"config":835},{"href":483,"dataGaName":484,"dataGaLocation":635},{"text":486,"config":837},{"href":488,"dataGaName":489,"dataGaLocation":635},{"text":491,"config":839},{"href":493,"dataGaName":494,"dataGaLocation":635},{"text":841,"config":842},"Sustainability",{"href":843,"dataGaName":841,"dataGaLocation":635},"/sustainability/",{"text":845,"config":846},"Diversity, inclusion and belonging (DIB)",{"href":847,"dataGaName":848,"dataGaLocation":635},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":496,"config":850},{"href":498,"dataGaName":499,"dataGaLocation":635},{"text":506,"config":852},{"href":508,"dataGaName":509,"dataGaLocation":635},{"text":511,"config":854},{"href":513,"dataGaName":514,"dataGaLocation":635},{"text":856,"config":857},"Modern Slavery Transparency Statement",{"href":858,"dataGaName":859,"dataGaLocation":635},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":861},[862,865,868],{"text":863,"config":864},"Terms",{"href":687,"dataGaName":688,"dataGaLocation":635},{"text":866,"config":867},"Cookies",{"dataGaName":697,"dataGaLocation":635,"id":698,"isOneTrustButton":175},{"text":869,"config":870},"Privacy",{"href":692,"dataGaName":693,"dataGaLocation":635},[872],{"id":873,"title":7,"body":171,"config":874,"content":876,"description":171,"extension":880,"meta":881,"navigation":175,"path":882,"seo":883,"stem":884,"__hash__":885},"blogAuthors/en-us/blog/authors/valerie-silverthorne.yml",{"template":875},"BlogAuthor",{"name":7,"config":877},{"headshot":878,"ctfId":879},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","vsilverthorne","yml",{},"/en-us/blog/authors/valerie-silverthorne",{},"en-us/blog/authors/valerie-silverthorne","r2glbOZCR5HOKEwYKJRy7sOVW6u0oTjxVRg28ZvHJ-I",[887,896,904],{"title":888,"description":889,"heroImage":890,"category":167,"date":891,"authors":892,"slug":895,"externalUrl":171},"Confidential AI for GitLab Self-Hosted","Give developers AI coding agents in GitLab Duo without source code leaving a hardware-encrypted boundary — no GPUs needed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-08-06",[893,894],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":897,"description":898,"heroImage":899,"category":167,"date":900,"authors":901,"slug":903,"externalUrl":171},"Green DevOps: Why carbon measurement belongs in your CI/CD pipeline","CI/CD pipelines have a hidden carbon cost. Here's why measuring it matters, and how you can get started with Eco CI and Carmen in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-07-09",[902],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":905,"description":906,"heroImage":907,"category":167,"date":908,"authors":909,"slug":911,"externalUrl":171},"How to build CI/CD observability at scale","This practical guide to GitLab pipeline analytics helps self-managed users gain operational insights using Prometheus and Grafana.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-28",[910],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":913},[914,928,940,952],{"id":915,"categories":916,"header":918,"text":919,"button":920,"image":925},"ai-modernization",[917],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":921,"config":922},"Get your AI maturity score",{"href":923,"dataGaName":924,"dataGaLocation":400},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":926},{"src":927},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":929,"categories":930,"header":932,"text":919,"button":933,"image":937},"devops-modernization",[931,736],"product","Are you just managing tools or shipping innovation?",{"text":934,"config":935},"Get your DevOps maturity score",{"href":936,"dataGaName":924,"dataGaLocation":400},"/assessments/devops-modernization-assessment/",{"config":938},{"src":939},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":941,"categories":942,"header":944,"text":919,"button":945,"image":949},"security-modernization",[943],"security","Are you trading speed for security?",{"text":946,"config":947},"Get your security maturity score",{"href":948,"dataGaName":924,"dataGaLocation":400},"/assessments/security-modernization-assessment/",{"config":950},{"src":951},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":953,"paths":954,"header":957,"text":958,"button":959,"image":964},"github-azure-migration",[955,956],"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":960,"config":961},"See how GitLab compares to GitHub",{"href":962,"dataGaName":963,"dataGaLocation":400},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":965},{"src":939},{"header":967,"blurb":968,"button":969,"secondaryButton":974},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":970,"config":971},"Get your free trial",{"href":972,"dataGaName":199,"dataGaLocation":973},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":673,"config":975},{"href":525,"dataGaName":204,"dataGaLocation":973},1786803738504]