[{"data":1,"prerenderedAt":938},["ShallowReactive",2],{"/blog/archive/page/28":3,"navigation-en-us":20,"banner-en-us":448,"footer-en-us":459,"archived-posts-en-us":704,"archived-posts-page-28-en-us":705},{"id":4,"title":5,"body":6,"category":6,"config":7,"content":9,"description":6,"extension":11,"meta":12,"navigation":13,"path":14,"seo":15,"slug":6,"stem":18,"testContent":6,"type":6,"__hash__":19},"pages/en-us/blog/archive/index.yml","",null,{"template":8},"BlogArchive",{"header":10},"Blog Archive","yml",{},true,"/en-us/blog/archive",{"title":16,"description":17},"GitLab Blog Archives","Tutorials, product information, expert insights, and more from GitLab to help DevSecOps teams build, test, and deploy secure software faster.","en-us/blog/archive/index","Ua6FaTXW6kDCSV7f-TNcWLVIojWYT_CsjiByJn9gYUs",{"logo":21,"freeTrial":26,"sales":31,"login":36,"items":41,"search":368,"minimal":399,"duo":418,"switchNav":427,"pricingDeployment":438},{"config":22},{"href":23,"dataGaName":24,"dataGaLocation":25},"/","gitlab logo","header",{"text":27,"config":28},"Get free trial",{"href":29,"dataGaName":30,"dataGaLocation":25},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":32,"config":33},"Request a demo",{"href":34,"dataGaName":35,"dataGaLocation":25},"/sales/?contact-topic=request-demo","sales",{"text":37,"config":38},"Sign in",{"href":39,"dataGaName":40,"dataGaLocation":25},"https://gitlab.com/users/sign_in/","sign in",[42,71,171,176,290,346],{"text":43,"config":44,"menu":46},"Platform",{"dataNavLevelOne":45},"platform",{"type":47,"columns":48},"cards",[49,55,63],{"title":43,"description":50,"link":51},"The intelligent orchestration platform for DevSecOps",{"text":52,"config":53},"Explore our Platform",{"href":54,"dataGaName":45,"dataGaLocation":25},"/platform/",{"title":56,"description":57,"link":58},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":59,"config":60},"Meet GitLab Duo",{"href":61,"dataGaName":62,"dataGaLocation":25},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":64,"description":65,"link":66},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":67,"config":68},"Learn more",{"href":69,"dataGaName":70,"dataGaLocation":25},"/why-gitlab/","why gitlab",{"text":72,"left":13,"config":73,"menu":75},"Product",{"dataNavLevelOne":74},"solutions",{"type":76,"link":77,"columns":81,"feature":150},"lists",{"text":78,"config":79},"View all Solutions",{"href":80,"dataGaName":74,"dataGaLocation":25},"/solutions/",[82,106,129],{"title":83,"description":84,"link":85,"items":90},"Automation","CI/CD and automation to accelerate deployment",{"config":86},{"icon":87,"href":88,"dataGaName":89,"dataGaLocation":25},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[91,95,98,102],{"text":92,"config":93},"CI/CD",{"href":94,"dataGaLocation":25,"dataGaName":92},"/solutions/continuous-integration/",{"text":56,"config":96},{"href":61,"dataGaLocation":25,"dataGaName":97},"gitlab duo agent platform - product menu",{"text":99,"config":100},"Source Code Management",{"href":101,"dataGaLocation":25,"dataGaName":99},"/solutions/source-code-management/",{"text":103,"config":104},"Automated Software Delivery",{"href":88,"dataGaLocation":25,"dataGaName":105},"Automated software delivery",{"title":107,"description":108,"link":109,"items":114},"Security","Deliver code faster without compromising security",{"config":110},{"href":111,"dataGaName":112,"dataGaLocation":25,"icon":113},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[115,119,124],{"text":116,"config":117},"Application Security Testing",{"href":111,"dataGaName":118,"dataGaLocation":25},"Application security testing",{"text":120,"config":121},"Software Supply Chain Security",{"href":122,"dataGaLocation":25,"dataGaName":123},"/solutions/supply-chain/","Software supply chain security",{"text":125,"config":126},"Software Compliance",{"href":127,"dataGaName":128,"dataGaLocation":25},"/solutions/software-compliance/","software compliance",{"title":130,"link":131,"items":136},"Measurement",{"config":132},{"icon":133,"href":134,"dataGaName":135,"dataGaLocation":25},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[137,141,145],{"text":138,"config":139},"Visibility & Measurement",{"href":134,"dataGaLocation":25,"dataGaName":140},"Visibility and Measurement",{"text":142,"config":143},"Value Stream Management",{"href":144,"dataGaLocation":25,"dataGaName":142},"/solutions/value-stream-management/",{"text":146,"config":147},"Analytics & Insights",{"href":148,"dataGaLocation":25,"dataGaName":149},"/solutions/analytics-and-insights/","Analytics and insights",{"title":151,"type":76,"items":152},"GitLab for",[153,159,165],{"text":154,"config":155},"Enterprise",{"icon":156,"href":157,"dataGaLocation":25,"dataGaName":158},"Building","/enterprise/","enterprise",{"text":160,"config":161},"Small Business",{"icon":162,"href":163,"dataGaLocation":25,"dataGaName":164},"Work","/small-business/","small business",{"text":166,"config":167},"Public Sector",{"icon":168,"href":169,"dataGaLocation":25,"dataGaName":170},"Organization","/solutions/public-sector/","public sector",{"text":172,"config":173},"Pricing",{"href":174,"dataGaName":175,"dataGaLocation":25,"dataNavLevelOne":175},"/pricing/","pricing",{"text":177,"config":178,"menu":180},"Resources",{"dataNavLevelOne":179},"resources",{"type":76,"link":181,"columns":185,"feature":279},{"text":182,"config":183},"View all resources",{"href":184,"dataGaName":179,"dataGaLocation":25},"/resources/",[186,219,246],{"title":187,"items":188},"Getting started",[189,194,199,204,209,214],{"text":190,"config":191},"Install",{"href":192,"dataGaName":193,"dataGaLocation":25},"/install/","install",{"text":195,"config":196},"Quick start guides",{"href":197,"dataGaName":198,"dataGaLocation":25},"/get-started/","quick setup checklists",{"text":200,"config":201},"Learn",{"href":202,"dataGaLocation":25,"dataGaName":203},"https://university.gitlab.com/","learn",{"text":205,"config":206},"Product documentation",{"href":207,"dataGaName":208,"dataGaLocation":25},"https://docs.gitlab.com/","product documentation",{"text":210,"config":211},"Best practice videos",{"href":212,"dataGaName":213,"dataGaLocation":25},"/getting-started-videos/","best practice videos",{"text":215,"config":216},"Integrations",{"href":217,"dataGaName":218,"dataGaLocation":25},"/integrations/","integrations",{"title":220,"items":221},"Discover",[222,227,232,237,241],{"text":223,"config":224},"Customer success stories",{"href":225,"dataGaName":226,"dataGaLocation":25},"/customers/","customer success stories",{"text":228,"config":229},"Blog",{"href":230,"dataGaName":231,"dataGaLocation":25},"/blog/","blog",{"text":233,"config":234},"Demo Hub",{"href":235,"dataGaName":236,"dataGaLocation":25},"/demo-hub/","demo hub",{"text":238,"config":239},"The Source",{"href":240,"dataGaName":231,"dataGaLocation":25},"/the-source/",{"text":242,"config":243},"Remote",{"href":244,"dataGaName":245,"dataGaLocation":25},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":247,"items":248},"Connect",[249,254,259,264,269,274],{"text":250,"config":251},"GitLab Services",{"href":252,"dataGaName":253,"dataGaLocation":25},"/services/","services",{"text":255,"config":256},"Contribute",{"href":257,"dataGaName":258,"dataGaLocation":25},"https://contributors.gitlab.com","contribute",{"text":260,"config":261},"Community",{"href":262,"dataGaName":263,"dataGaLocation":25},"/community/","community",{"text":265,"config":266},"Forum",{"href":267,"dataGaName":268,"dataGaLocation":25},"https://forum.gitlab.com/","forum",{"text":270,"config":271},"Events",{"href":272,"dataGaName":273,"dataGaLocation":25},"/events/","events",{"text":275,"config":276},"Partners",{"href":277,"dataGaName":278,"dataGaLocation":25},"/partners/","partners",{"config":280,"title":283,"text":284,"link":285},{"background":281,"textColor":282},"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":286,"config":287},"Read the latest",{"href":288,"dataGaName":289,"dataGaLocation":25},"/whats-new/","whats new",{"text":291,"config":292,"menu":294},"Company",{"dataNavLevelOne":293},"company",{"type":76,"columns":295},[296],{"items":297},[298,303,309,311,316,321,326,331,336,341],{"text":299,"config":300},"About",{"href":301,"dataGaName":302,"dataGaLocation":25},"/company/","about",{"text":304,"config":305,"footerGa":308},"Jobs",{"href":306,"dataGaName":307,"dataGaLocation":25},"/jobs/","jobs",{"dataGaName":307},{"text":270,"config":310},{"href":272,"dataGaName":273,"dataGaLocation":25},{"text":312,"config":313},"Leadership",{"href":314,"dataGaName":315,"dataGaLocation":25},"/company/team/e-group/","leadership",{"text":317,"config":318},"Handbook",{"href":319,"dataGaName":320,"dataGaLocation":25},"https://handbook.gitlab.com/","handbook",{"text":322,"config":323},"Investor relations",{"href":324,"dataGaName":325,"dataGaLocation":25},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":327,"config":328},"Trust Center",{"href":329,"dataGaName":330,"dataGaLocation":25},"/security/","trust center",{"text":332,"config":333},"AI Transparency Center",{"href":334,"dataGaName":335,"dataGaLocation":25},"/ai-transparency-center/","ai transparency center",{"text":337,"config":338},"Newsletter",{"href":339,"dataGaName":340,"dataGaLocation":25},"/company/contact/#contact-forms","newsletter",{"text":342,"config":343},"Press",{"href":344,"dataGaName":345,"dataGaLocation":25},"/press/","press",{"text":347,"config":348,"menu":349},"Contact us",{"dataNavLevelOne":293},{"type":76,"columns":350},[351],{"items":352},[353,358,363],{"text":354,"config":355},"Talk to sales",{"href":356,"dataGaName":357,"dataGaLocation":25},"/sales/","talk to sales",{"text":359,"config":360},"Support portal",{"href":361,"dataGaName":362,"dataGaLocation":25},"https://support.gitlab.com/hc/en-us","support portal",{"text":364,"config":365},"Customer portal",{"href":366,"dataGaName":367,"dataGaLocation":25},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":369,"login":370,"suggestions":377},"Close",{"text":371,"link":372},"To search repositories and projects, login to",{"text":373,"config":374},"gitlab.com",{"href":39,"dataGaName":375,"dataGaLocation":376},"search login","search",{"text":378,"default":379},"Suggestions",[380,382,386,388,392,396],{"text":56,"config":381},{"href":61,"dataGaName":56,"dataGaLocation":376},{"text":383,"config":384},"Code Suggestions (AI)",{"href":385,"dataGaName":383,"dataGaLocation":376},"/solutions/code-suggestions/",{"text":92,"config":387},{"href":94,"dataGaName":92,"dataGaLocation":376},{"text":389,"config":390},"GitLab on AWS",{"href":391,"dataGaName":389,"dataGaLocation":376},"/partners/technology-partners/aws/",{"text":393,"config":394},"GitLab on Google Cloud",{"href":395,"dataGaName":393,"dataGaLocation":376},"/partners/technology-partners/google-cloud-platform/",{"text":397,"config":398},"Why GitLab?",{"href":69,"dataGaName":397,"dataGaLocation":376},{"freeTrial":400,"mobileIcon":405,"desktopIcon":410,"secondaryButton":413},{"text":401,"config":402},"Start free trial",{"href":403,"dataGaName":30,"dataGaLocation":404},"https://gitlab.com/-/trials/new/","nav",{"altText":406,"config":407},"Gitlab Icon",{"src":408,"dataGaName":409,"dataGaLocation":404},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":406,"config":411},{"src":412,"dataGaName":409,"dataGaLocation":404},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":414,"config":415},"Get Started",{"href":416,"dataGaName":417,"dataGaLocation":404},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":419,"mobileIcon":423,"desktopIcon":425},{"text":420,"config":421},"Learn more about GitLab Duo",{"href":61,"dataGaName":422,"dataGaLocation":404},"gitlab duo",{"altText":406,"config":424},{"src":408,"dataGaName":409,"dataGaLocation":404},{"altText":406,"config":426},{"src":412,"dataGaName":409,"dataGaLocation":404},{"button":428,"mobileIcon":433,"desktopIcon":435},{"text":429,"config":430},"/switch",{"href":431,"dataGaName":432,"dataGaLocation":404},"#contact","switch",{"altText":406,"config":434},{"src":408,"dataGaName":409,"dataGaLocation":404},{"altText":406,"config":436},{"src":437,"dataGaName":409,"dataGaLocation":404},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":439,"mobileIcon":444,"desktopIcon":446},{"text":440,"config":441},"Back to pricing",{"href":174,"dataGaName":442,"dataGaLocation":404,"icon":443},"back to pricing","GoBack",{"altText":406,"config":445},{"src":408,"dataGaName":409,"dataGaLocation":404},{"altText":406,"config":447},{"src":412,"dataGaName":409,"dataGaLocation":404},{"title":449,"titleMobile":450,"button":451,"config":456},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":67,"config":452},{"href":453,"dataGaName":454,"dataGaLocation":455},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":457,"disabled":458},"release",false,{"data":460},{"text":461,"source":462,"edit":468,"contribute":473,"config":478,"items":483,"minimal":693},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":463,"config":464},"View page source",{"href":465,"dataGaName":466,"dataGaLocation":467},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":469,"config":470},"Edit this page",{"href":471,"dataGaName":472,"dataGaLocation":467},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":474,"config":475},"Please contribute",{"href":476,"dataGaName":477,"dataGaLocation":467},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":479,"facebook":480,"youtube":481,"linkedin":482},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[484,531,585,629,661],{"title":172,"links":485,"subMenu":500},[486,490,495],{"text":487,"config":488},"View plans",{"href":174,"dataGaName":489,"dataGaLocation":467},"view plans",{"text":491,"config":492},"Why Premium?",{"href":493,"dataGaName":494,"dataGaLocation":467},"/pricing/premium/","why premium",{"text":496,"config":497},"Why Ultimate?",{"href":498,"dataGaName":499,"dataGaLocation":467},"/pricing/ultimate/","why ultimate",[501],{"title":502,"links":503},"Contact Us",[504,507,509,511,516,521,526],{"text":505,"config":506},"Contact sales",{"href":356,"dataGaName":35,"dataGaLocation":467},{"text":359,"config":508},{"href":361,"dataGaName":362,"dataGaLocation":467},{"text":364,"config":510},{"href":366,"dataGaName":367,"dataGaLocation":467},{"text":512,"config":513},"Status",{"href":514,"dataGaName":515,"dataGaLocation":467},"https://status.gitlab.com/","status",{"text":517,"config":518},"Terms of use",{"href":519,"dataGaName":520,"dataGaLocation":467},"/terms/","terms of use",{"text":522,"config":523},"Privacy statement",{"href":524,"dataGaName":525,"dataGaLocation":467},"/privacy/","privacy statement",{"text":527,"config":528},"Cookie preferences",{"dataGaName":529,"dataGaLocation":467,"id":530,"isOneTrustButton":13},"cookie preferences","ot-sdk-btn",{"title":72,"links":532,"subMenu":541},[533,537],{"text":534,"config":535},"DevSecOps platform",{"href":54,"dataGaName":536,"dataGaLocation":467},"devsecops platform",{"text":538,"config":539},"AI-Assisted Development",{"href":61,"dataGaName":540,"dataGaLocation":467},"ai-assisted development",[542],{"title":543,"links":544},"Topics",[545,550,555,560,565,570,575,580],{"text":546,"config":547},"CICD",{"href":548,"dataGaName":549,"dataGaLocation":467},"/topics/ci-cd/","cicd",{"text":551,"config":552},"GitOps",{"href":553,"dataGaName":554,"dataGaLocation":467},"/topics/gitops/","gitops",{"text":556,"config":557},"DevOps",{"href":558,"dataGaName":559,"dataGaLocation":467},"/topics/devops/","devops",{"text":561,"config":562},"Version Control",{"href":563,"dataGaName":564,"dataGaLocation":467},"/topics/version-control/","version control",{"text":566,"config":567},"DevSecOps",{"href":568,"dataGaName":569,"dataGaLocation":467},"/topics/devsecops/","devsecops",{"text":571,"config":572},"Cloud Native",{"href":573,"dataGaName":574,"dataGaLocation":467},"/topics/cloud-native/","cloud native",{"text":576,"config":577},"AI for Coding",{"href":578,"dataGaName":579,"dataGaLocation":467},"/topics/devops/ai-for-coding/","ai for coding",{"text":581,"config":582},"Agentic AI",{"href":583,"dataGaName":584,"dataGaLocation":467},"/topics/agentic-ai/","agentic ai",{"title":586,"links":587},"Solutions",[588,590,592,597,601,604,608,611,613,616,619,624],{"text":116,"config":589},{"href":111,"dataGaName":116,"dataGaLocation":467},{"text":105,"config":591},{"href":88,"dataGaName":89,"dataGaLocation":467},{"text":593,"config":594},"Agile development",{"href":595,"dataGaName":596,"dataGaLocation":467},"/solutions/agile-delivery/","agile delivery",{"text":598,"config":599},"SCM",{"href":101,"dataGaName":600,"dataGaLocation":467},"source code management",{"text":546,"config":602},{"href":94,"dataGaName":603,"dataGaLocation":467},"continuous integration & delivery",{"text":605,"config":606},"Value stream management",{"href":144,"dataGaName":607,"dataGaLocation":467},"value stream management",{"text":551,"config":609},{"href":610,"dataGaName":554,"dataGaLocation":467},"/solutions/gitops/",{"text":154,"config":612},{"href":157,"dataGaName":158,"dataGaLocation":467},{"text":614,"config":615},"Small business",{"href":163,"dataGaName":164,"dataGaLocation":467},{"text":617,"config":618},"Public sector",{"href":169,"dataGaName":170,"dataGaLocation":467},{"text":620,"config":621},"Education",{"href":622,"dataGaName":623,"dataGaLocation":467},"/solutions/education/","education",{"text":625,"config":626},"Financial services",{"href":627,"dataGaName":628,"dataGaLocation":467},"/solutions/finance/","financial services",{"title":177,"links":630},[631,633,635,637,640,642,645,647,649,651,653,655,657,659],{"text":190,"config":632},{"href":192,"dataGaName":193,"dataGaLocation":467},{"text":195,"config":634},{"href":197,"dataGaName":198,"dataGaLocation":467},{"text":200,"config":636},{"href":202,"dataGaName":203,"dataGaLocation":467},{"text":205,"config":638},{"href":207,"dataGaName":639,"dataGaLocation":467},"docs",{"text":228,"config":641},{"href":230,"dataGaName":231,"dataGaLocation":467},{"text":643,"config":644},"What's new",{"href":288,"dataGaName":289,"dataGaLocation":467},{"text":223,"config":646},{"href":225,"dataGaName":226,"dataGaLocation":467},{"text":242,"config":648},{"href":244,"dataGaName":245,"dataGaLocation":467},{"text":250,"config":650},{"href":252,"dataGaName":253,"dataGaLocation":467},{"text":255,"config":652},{"href":257,"dataGaName":258,"dataGaLocation":467},{"text":260,"config":654},{"href":262,"dataGaName":263,"dataGaLocation":467},{"text":265,"config":656},{"href":267,"dataGaName":268,"dataGaLocation":467},{"text":270,"config":658},{"href":272,"dataGaName":273,"dataGaLocation":467},{"text":275,"config":660},{"href":277,"dataGaName":278,"dataGaLocation":467},{"title":291,"links":662},[663,665,667,669,671,673,677,682,684,686,688],{"text":299,"config":664},{"href":301,"dataGaName":293,"dataGaLocation":467},{"text":304,"config":666},{"href":306,"dataGaName":307,"dataGaLocation":467},{"text":312,"config":668},{"href":314,"dataGaName":315,"dataGaLocation":467},{"text":317,"config":670},{"href":319,"dataGaName":320,"dataGaLocation":467},{"text":322,"config":672},{"href":324,"dataGaName":325,"dataGaLocation":467},{"text":674,"config":675},"Sustainability",{"href":676,"dataGaName":674,"dataGaLocation":467},"/sustainability/",{"text":678,"config":679},"Diversity, inclusion and belonging (DIB)",{"href":680,"dataGaName":681,"dataGaLocation":467},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":327,"config":683},{"href":329,"dataGaName":330,"dataGaLocation":467},{"text":337,"config":685},{"href":339,"dataGaName":340,"dataGaLocation":467},{"text":342,"config":687},{"href":344,"dataGaName":345,"dataGaLocation":467},{"text":689,"config":690},"Modern Slavery Transparency Statement",{"href":691,"dataGaName":692,"dataGaLocation":467},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":694},[695,698,701],{"text":696,"config":697},"Terms",{"href":519,"dataGaName":520,"dataGaLocation":467},{"text":699,"config":700},"Cookies",{"dataGaName":529,"dataGaLocation":467,"id":530,"isOneTrustButton":13},{"text":702,"config":703},"Privacy",{"href":524,"dataGaName":525,"dataGaLocation":467},2371,[706,712,718,723,729,733,738,743,749,755,762,768,774,780,785,792,798,804,809,815,821,826,831,837,843,849,854,859,866,870,876,881,887,891,897,903,909,915,921,931],{"title":707,"date":708,"authors":709,"slug":711,"externalUrl":6},"GitLab Inc. takes The DevOps Platform public","2021-10-14",[710],"Sid Sijbrandij","gitlab-inc-takes-the-devops-platform-public",{"title":713,"date":714,"authors":715,"slug":717,"externalUrl":6},"GitLab's Kubernetes Operator with support for Red Hat OpenShift is now generally available","2021-10-12",[716],"William Chia","open-shift-ga",{"title":719,"date":714,"authors":720,"slug":722,"externalUrl":6},"GitLab updates its cookie management tool",[721],"GitLab","gitlab-updates-its-cookie-management-tool",{"title":724,"date":725,"authors":726,"slug":728,"externalUrl":6},"Threat modeling the Kubernetes Agent: from MVC to continuous improvement","2021-10-11",[727],"Vitor Meireles De Sousa","threat-modeling-kubernetes-agent",{"title":730,"date":725,"authors":731,"slug":732,"externalUrl":6},"Notice for GitKraken users with GitLab",[721],"notice-for-gitkraken-users-with-gitlab",{"title":734,"date":725,"authors":735,"slug":737,"externalUrl":6},"How ten steps over ten years led to the DevOps Platform",[736],"Brendan O'Leary","how-ten-steps-over-ten-years-led-to-the-devops-platform",{"title":739,"date":740,"authors":741,"slug":742,"externalUrl":6},"Updates to de-identifying Service Usage Data","2021-10-08",[721],"updates-to-de-identifying-service-usage-data",{"title":744,"date":745,"authors":746,"slug":748,"externalUrl":6},"DevOps salaries in 2021: where do you rank?","2021-10-07",[747],"Sharon Gaudin","a-look-at-devops-salaries",{"title":750,"date":751,"authors":752,"slug":754,"externalUrl":6},"How to provision Ready-To-Run GitLab for 50,000 users with the AWS Quick Start","2021-10-06",[753],"Darwin Sanoy","gitlab-cnh-for-50k-users",{"title":756,"date":757,"authors":758,"slug":761,"externalUrl":6},"Why we built GitDock, our desktop app to navigate your GitLab activities","2021-10-05",[759,760],"Marcel van Remmerden","Jeremy Elder","gitpod-desktop-app-personal-activities",{"title":763,"date":764,"authors":765,"slug":767,"externalUrl":6},"How to use external status checks for merge requests","2021-10-04",[766],"Cesar Saavedra","how-to-status-checks",{"title":769,"date":770,"authors":771,"slug":773,"externalUrl":6},"Join us for Hacktoberfest 2021!","2021-10-01",[772],"Christos Bacharakis","join-us-for-hacktoberfest-2021",{"title":775,"date":776,"authors":777,"slug":779,"externalUrl":6},"Want faster releases? Your answer lies in automated software testing","2021-09-30",[778],"Valerie Silverthorne","want-faster-releases-your-answer-lies-in-automated-software-testing",{"title":781,"date":776,"authors":782,"slug":784,"externalUrl":6},"GitLab user profiles have just become more personal",[783],"Orit Golowinski","personal-profile",{"title":786,"date":787,"authors":788,"slug":791,"externalUrl":6},"Why we spent the last month eliminating PostgreSQL subtransactions","2021-09-29",[789,790],"Grzegorz Bizon","Stan Hu","why-we-spent-the-last-month-eliminating-postgresql-subtransactions",{"title":793,"date":794,"authors":795,"slug":797,"externalUrl":6},"SemVer versioning: how we handled it with linear interval arithmetic","2021-09-28",[796],"Julian Thome","generic-semantic-version-processing",{"title":799,"date":800,"authors":801,"slug":803,"externalUrl":6},"How to configure Sidekiq for specialized or large-scale GitLab instances","2021-09-27",[802],"Craig Miskell","how-to-configure-sidekiq-for-gitlab-at-scale",{"title":805,"date":806,"authors":807,"slug":808,"externalUrl":6},"Have DevOps jobs to fill? Try these 3 strategies to hire and retain","2021-09-23",[778],"have-devops-jobs-to-fill-try-these-3-strategies-to-hire-and-retain",{"title":810,"date":806,"authors":811,"slug":814,"externalUrl":6},"How to incorporate private customer needs into a public product roadmap",[812,813],"Christina Hupy, Ph.D.","Neil McCorrison","best-practices-customer-feature-request",{"title":816,"date":817,"authors":818,"slug":820,"externalUrl":6},"GitLab's realtime Preview Markdown is an editor for everyone","2021-09-21",[819],"Parker Ennis","introducing-markdown-live-preview",{"title":822,"date":817,"authors":823,"slug":825,"externalUrl":6},"It's time to build more accessible software. A DevOps platform can help",[824],"Sara Kassabian","how-the-devops-platform-makes-building-accessible-software-easier",{"title":827,"date":828,"authors":829,"slug":830,"externalUrl":6},"How QPage achieved automatic deployment and efficiency using the GitLab DevOps Platform","2021-09-15",[721],"qpage-on-the-devops-platform",{"title":832,"date":833,"authors":834,"slug":836,"externalUrl":6},"How to use Terratag to automatically manage tags and labels for your Terraform Code","2021-09-14",[835],"Itzik Gan Baruch","gitlab-together-with-terratag-open-source-to-help-you-manage-terraform-resources",{"title":838,"date":839,"authors":840,"slug":842,"externalUrl":6},"How Weet integrates localization into the GitLab pipeline with Lokalise","2021-09-13",[841],"Alexander Pereverzevs","lessons-weet-learned-lokalise",{"title":844,"date":845,"authors":846,"slug":848,"externalUrl":6},"How to deploy the GitLab Agent for Kubernetes with limited permissions","2021-09-10",[847],"Fernando Diaz","setting-up-the-k-agent",{"title":850,"date":845,"authors":851,"slug":853,"externalUrl":6},"The benefits of DevOps practices for IBM Z",[852],"Vick Kelkar","adopt-agile-and-devops-for-ibm-z",{"title":855,"date":856,"authors":857,"slug":858,"externalUrl":6},"How GitLab's 5 new code review features will make life easier","2021-09-09",[736],"5-code-review-features",{"title":860,"date":861,"authors":862,"slug":865,"externalUrl":6},"How to write and continuously test vulnerability detection rules for SAST","2021-09-08",[863,864,796],"Ross Fuhrman","Anshuman Singh","write-vulnerability-detection-rules",{"title":867,"date":861,"authors":868,"slug":869,"externalUrl":6},"Making the case for a DevOps platform: What data and customers say",[778],"making-the-case-for-a-devops-platform-what-data-and-customers-say",{"title":871,"date":872,"authors":873,"slug":875,"externalUrl":6},"Why are developers so vulnerable to drive-by attacks?","2021-09-07",[874],"Chris Moberly","why-are-developers-vulnerable-to-driveby-attacks",{"title":877,"date":878,"authors":879,"slug":880,"externalUrl":6},"The code review struggle is real. Here's what you need to know","2021-09-03",[778],"the-code-review-struggle-is-real-heres-what-you-need-to-know",{"title":882,"date":883,"authors":884,"slug":886,"externalUrl":6},"The journey to a DevOps Platform","2021-09-02",[885],"Cormac Foster","the-journey-to-a-devops-platform",{"title":888,"date":883,"authors":889,"slug":890,"externalUrl":6},"What we learned about configuring Sidekiq from GitLab.com",[802],"specialized-sidekiq-configuration-lessons-from-gitlab-dot-com",{"title":892,"date":893,"authors":894,"slug":896,"externalUrl":6},"Google Summer of Code at GitLab – some intern highlights","2021-09-01",[895],"Aakriti Gupta","gsoc-at-gitlab",{"title":898,"date":899,"authors":900,"slug":902,"externalUrl":6},"How to secure your software build pipeline using code signing","2021-08-30",[901],"Eddie Glenn","secure-pipeline-with-single-sign-in",{"title":904,"date":905,"authors":906,"slug":908,"externalUrl":6},"It's time to update Docker Engine","2021-08-26",[907],"Tomasz Maczukin","its-time-to-upgrade-docker-engine",{"title":910,"date":911,"authors":912,"slug":914,"externalUrl":6},"Write a stageless CI/CD pipeline using GitLab 14.2","2021-08-24",[913],"Dov Hershkovitch","stageless-pipelines",{"title":916,"date":917,"authors":918,"slug":920,"externalUrl":6},"How a new integration helps GitLab customers secure their code","2021-08-20",[919],"Christian Simko","how-grammatech-and-gitlab-enables-better-devsecops",{"title":922,"date":923,"authors":924,"slug":930,"externalUrl":6},"Introducing Spamcheck: A data-driven, anti-abuse engine","2021-08-19",[925,926,927,928,929],"Jayson Salazar","Alexander Dietrich","Alex Groleau","Ethan Urie","Juliet Wanjohi","introducing-spamcheck-data-driven-anti-abuse",{"title":932,"date":933,"authors":934,"slug":937,"externalUrl":6},"How DevSecOps can protect businesses from future supply chain attacks","2021-08-18",[935,936],"Pedro Fortuna","Sam Kerr","what-the-solarwinds-attack-can-teach-us-about-devsecops",1786803781180]