[{"data":1,"prerenderedAt":960},["ShallowReactive",2],{"/blog/archive/page/30":3,"navigation-en-us":19,"banner-en-us":451,"footer-en-us":462,"archived-posts-en-us":723,"archived-posts-page-30-en-us":724},{"id":4,"title":5,"body":6,"category":6,"config":6,"content":7,"description":6,"extension":10,"meta":11,"navigation":12,"path":13,"seo":14,"slug":6,"stem":17,"testContent":6,"type":6,"__hash__":18},"pages/en-us/blog/archive/index.yml","",null,[8],{"componentName":9},"BlogArchiveList","yml",{},true,"/en-us/blog/archive",{"title":15,"description":16},"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","elirbuj-oLhgcrf_v-7bVFfAxyqbKZLWXTOPO9CM6PQ",{"logo":20,"freeTrial":25,"sales":30,"login":35,"items":40,"search":371,"minimal":402,"duo":421,"switchNav":430,"pricingDeployment":441},{"config":21},{"href":22,"dataGaName":23,"dataGaLocation":24},"/","gitlab logo","header",{"text":26,"config":27},"Get free trial",{"href":28,"dataGaName":29,"dataGaLocation":24},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":31,"config":32},"Request a demo",{"href":33,"dataGaName":34,"dataGaLocation":24},"/request-a-demo/","sales",{"text":36,"config":37},"Sign in",{"href":38,"dataGaName":39,"dataGaLocation":24},"https://gitlab.com/users/sign_in/","sign in",[41,127,215,220,295,349],{"text":42,"left":12,"config":43,"menu":45},"Platform",{"dataNavLevelOne":44},"platform",{"type":46,"link":47,"columns":51,"feature":116},"lists",{"text":48,"config":49},"Explore the Platform",{"href":50,"dataGaName":44,"dataGaLocation":24},"/platform/",[52,75,98],{"title":53,"items":54},"Execution & Workflows",[55,60,65,70],{"text":56,"config":57},"CI/CD",{"href":58,"dataGaLocation":24,"dataGaName":59},"/solutions/continuous-integration/","ci/cd",{"text":61,"config":62},"Source Code Management",{"href":63,"dataGaLocation":24,"dataGaName":64},"/solutions/source-code-management/","source code management",{"text":66,"config":67},"Agile Delivery",{"href":68,"dataGaLocation":24,"dataGaName":69},"/solutions/agile-delivery/","agile delivery",{"text":71,"config":72},"Artifact Management",{"href":73,"dataGaLocation":24,"dataGaName":74},"/artifact-central/","artifact management",{"title":76,"items":77},"Security & Governance",[78,83,88,93],{"text":79,"config":80},"Application Security Testing",{"href":81,"dataGaLocation":24,"dataGaName":82},"/solutions/application-security-testing/","application security testing",{"text":84,"config":85},"Governance & Compliance",{"href":86,"dataGaLocation":24,"dataGaName":87},"/solutions/software-compliance/","governance and compliance",{"text":89,"config":90},"Secrets Management",{"href":91,"dataGaLocation":24,"dataGaName":92},"/gitlab-secrets-manager/","secrets management",{"text":94,"config":95},"Supply Chain Security",{"href":96,"dataGaLocation":24,"dataGaName":97},"/solutions/supply-chain/","supply chain security",{"title":99,"items":100},"Context & AI",[101,106,111],{"text":102,"config":103},"Agentic Orchestration",{"href":104,"dataGaLocation":24,"dataGaName":105},"/gitlab-duo-agent-platform/","agentic orchestration",{"text":107,"config":108},"Context Graph",{"href":109,"dataGaLocation":24,"dataGaName":110},"/gitlab-orbit/","context graph",{"text":112,"config":113},"Visibility & Measurement",{"href":114,"dataGaLocation":24,"dataGaName":115},"/solutions/visibility-measurement/","visibility and measurement",{"config":117,"title":120,"text":121,"link":122},{"background":118,"textColor":119},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1790185102/o7dn32anqcb6z8dgd3as.jpg')","#000","Why GitLab","One platform for speed with control across your software lifecycle.",{"text":123,"config":124},"Learn more",{"href":125,"dataGaName":126,"dataGaLocation":24},"/why-gitlab/","why gitlab",{"text":128,"left":12,"config":129,"menu":131},"Solutions",{"dataNavLevelOne":130},"solutions",{"type":46,"link":132,"columns":136,"feature":206},{"text":133,"config":134},"View all Solutions",{"href":135,"dataGaName":130,"dataGaLocation":24},"/solutions/",[137,155,173],{"title":138,"items":139},"Outcomes",[140,145,150],{"text":141,"config":142},"DevOps Modernization",{"href":143,"dataGaLocation":24,"dataGaName":144},"/assessments/devops-modernization-assessment/","devops modernization",{"text":146,"config":147},"Security Modernization",{"href":148,"dataGaLocation":24,"dataGaName":149},"/assessments/security-modernization-assessment/","security modernization",{"text":151,"config":152},"AI Modernization",{"href":153,"dataGaLocation":24,"dataGaName":154},"/assessments/ai-modernization-assessment/","ai modernization",{"title":156,"items":157},"By size",[158,163,168],{"text":159,"config":160},"Enterprise",{"href":161,"dataGaLocation":24,"dataGaName":162},"/enterprise/","enterprise",{"text":164,"config":165},"Small Business",{"href":166,"dataGaLocation":24,"dataGaName":167},"/small-business/","small business",{"text":169,"config":170},"Startups",{"href":171,"dataGaLocation":24,"dataGaName":172},"/solutions/startups/","startups",{"title":174,"items":175},"Industries",[176,181,186,191,196,201],{"text":177,"config":178},"Financial Services",{"href":179,"dataGaLocation":24,"dataGaName":180},"/solutions/finance/","financial services",{"text":182,"config":183},"Public Sector",{"href":184,"dataGaLocation":24,"dataGaName":185},"/solutions/public-sector/","public sector",{"text":187,"config":188},"Telecommunications",{"href":189,"dataGaLocation":24,"dataGaName":190},"/solutions/telecommunications/","telecommunications",{"text":192,"config":193},"Automotive",{"href":194,"dataGaLocation":24,"dataGaName":195},"/solutions/automotive/","automotive",{"text":197,"config":198},"Education",{"href":199,"dataGaLocation":24,"dataGaName":200},"/solutions/education/","education",{"text":202,"config":203},"Aerospace",{"href":204,"dataGaLocation":24,"dataGaName":205},"/solutions/aerospace/","aerospace",{"config":207,"title":208,"text":209,"link":210},{"background":118,"textColor":119},"GitLab Security Standard","Learn how to harden your software factory and let AI agents earn autonomy, without trading away security.",{"text":211,"config":212},"Explore the standard",{"href":213,"dataGaName":214,"dataGaLocation":24},"/gitlab-security-standard/","gitlab security standard",{"text":216,"config":217},"Pricing",{"href":218,"dataGaName":219,"dataGaLocation":24,"dataNavLevelOne":219},"/pricing/","pricing",{"text":221,"config":222,"menu":224},"Resources",{"dataNavLevelOne":223},"resources",{"type":46,"link":225,"columns":229,"feature":286},{"text":226,"config":227},"View all resources",{"href":228,"dataGaName":223,"dataGaLocation":24},"/resources/",[230,258],{"title":231,"items":232},"Discover",[233,238,243,248,253],{"text":234,"config":235},"Docs",{"href":236,"dataGaName":237,"dataGaLocation":24},"https://docs.gitlab.com/","docs",{"text":239,"config":240},"University",{"href":241,"dataGaName":242,"dataGaLocation":24},"https://university.gitlab.com/","university",{"text":244,"config":245},"Demo Series",{"href":246,"dataGaName":247,"dataGaLocation":24},"/gitlab-technical-demo-series/","demo series",{"text":249,"config":250},"Demo Hub",{"href":251,"dataGaName":252,"dataGaLocation":24},"/demo-hub/","demo hub",{"text":254,"config":255},"Services",{"href":256,"dataGaName":257,"dataGaLocation":24},"/services/","services",{"title":259,"items":260},"Connect",[261,266,271,276,281],{"text":262,"config":263},"Blog",{"href":264,"dataGaName":265,"dataGaLocation":24},"/blog/","blog",{"text":267,"config":268},"Community",{"href":269,"dataGaName":270,"dataGaLocation":24},"/community/","community",{"text":272,"config":273},"Customers",{"href":274,"dataGaName":275,"dataGaLocation":24},"/customers/","customers",{"text":277,"config":278},"Partners",{"href":279,"dataGaName":280,"dataGaLocation":24},"/partners/","partners",{"text":282,"config":283},"Events",{"href":284,"dataGaName":285,"dataGaLocation":24},"/events/","events",{"config":287,"title":288,"text":289,"link":290},{"background":118,"textColor":119},"What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":291,"config":292},"Read the latest",{"href":293,"dataGaName":294,"dataGaLocation":24},"/whats-new/","whats new",{"text":296,"config":297,"menu":299},"Company",{"dataNavLevelOne":298},"company",{"type":46,"columns":300},[301],{"items":302},[303,308,314,319,324,329,334,339,344],{"text":304,"config":305},"About",{"href":306,"dataGaName":307,"dataGaLocation":24},"/company/","about",{"text":309,"config":310,"footerGa":313},"Jobs",{"href":311,"dataGaName":312,"dataGaLocation":24},"/jobs/","jobs",{"dataGaName":312},{"text":315,"config":316},"Press",{"href":317,"dataGaName":318,"dataGaLocation":24},"/press/","press",{"text":320,"config":321},"Handbook",{"href":322,"dataGaName":323,"dataGaLocation":24},"https://handbook.gitlab.com/","handbook",{"text":325,"config":326},"Leadership",{"href":327,"dataGaName":328,"dataGaLocation":24},"/company/team/e-group/","leadership",{"text":330,"config":331},"Investor relations",{"href":332,"dataGaName":333,"dataGaLocation":24},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":335,"config":336},"Trust Center",{"href":337,"dataGaName":338,"dataGaLocation":24},"/security/","trust center",{"text":340,"config":341},"AI Transparency Center",{"href":342,"dataGaName":343,"dataGaLocation":24},"/ai-transparency-center/","ai transparency center",{"text":345,"config":346},"Newsletter",{"href":347,"dataGaName":348,"dataGaLocation":24},"/company/contact/#contact-forms","newsletter",{"text":350,"config":351,"menu":352},"Contact us",{"dataNavLevelOne":298},{"type":46,"columns":353},[354],{"items":355},[356,361,366],{"text":357,"config":358},"Talk to sales",{"href":359,"dataGaName":360,"dataGaLocation":24},"/sales/","talk to sales",{"text":362,"config":363},"Support portal",{"href":364,"dataGaName":365,"dataGaLocation":24},"https://support.gitlab.com/hc/en-us","support portal",{"text":367,"config":368},"Customer portal",{"href":369,"dataGaName":370,"dataGaLocation":24},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":372,"login":373,"suggestions":380},"Close",{"text":374,"link":375},"To search repositories and projects, login to",{"text":376,"config":377},"gitlab.com",{"href":38,"dataGaName":378,"dataGaLocation":379},"search login","search",{"text":381,"default":382},"Suggestions",[383,386,389,391,395,399],{"text":384,"config":385},"GitLab Duo Agent Platform",{"href":104,"dataGaName":384,"dataGaLocation":379},{"text":387,"config":388},"Code Suggestions (AI)",{"href":104,"dataGaName":387,"dataGaLocation":379},{"text":56,"config":390},{"href":58,"dataGaName":56,"dataGaLocation":379},{"text":392,"config":393},"GitLab on AWS",{"href":394,"dataGaName":392,"dataGaLocation":379},"/partners/technology-partners/aws/",{"text":396,"config":397},"GitLab on Google Cloud",{"href":398,"dataGaName":396,"dataGaLocation":379},"/partners/technology-partners/google-cloud-platform/",{"text":400,"config":401},"Why GitLab?",{"href":125,"dataGaName":400,"dataGaLocation":379},{"freeTrial":403,"mobileIcon":408,"desktopIcon":413,"secondaryButton":416},{"text":404,"config":405},"Start free trial",{"href":406,"dataGaName":29,"dataGaLocation":407},"https://gitlab.com/-/trials/new/","nav",{"altText":409,"config":410},"Gitlab Icon",{"src":411,"dataGaName":412,"dataGaLocation":407},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":409,"config":414},{"src":415,"dataGaName":412,"dataGaLocation":407},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":417,"config":418},"Get Started",{"href":419,"dataGaName":420,"dataGaLocation":407},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":422,"mobileIcon":426,"desktopIcon":428},{"text":423,"config":424},"Learn more about GitLab Duo",{"href":104,"dataGaName":425,"dataGaLocation":407},"gitlab duo",{"altText":409,"config":427},{"src":411,"dataGaName":412,"dataGaLocation":407},{"altText":409,"config":429},{"src":415,"dataGaName":412,"dataGaLocation":407},{"button":431,"mobileIcon":436,"desktopIcon":438},{"text":432,"config":433},"/switch",{"href":434,"dataGaName":435,"dataGaLocation":407},"#contact","switch",{"altText":409,"config":437},{"src":411,"dataGaName":412,"dataGaLocation":407},{"altText":409,"config":439},{"src":440,"dataGaName":412,"dataGaLocation":407},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":442,"mobileIcon":447,"desktopIcon":449},{"text":443,"config":444},"Back to pricing",{"href":218,"dataGaName":445,"dataGaLocation":407,"icon":446},"back to pricing","GoBack",{"altText":409,"config":448},{"src":411,"dataGaName":412,"dataGaLocation":407},{"altText":409,"config":450},{"src":415,"dataGaName":412,"dataGaLocation":407},{"title":452,"button":453,"config":459},"Ship at agent speed. Prove every step. Transcend is here.",{"text":454,"config":455},"Watch now",{"href":456,"dataGaName":457,"dataGaLocation":458},"/events/transcend/virtual/#watch-gitlab-transcend","transcend-october-2026-banner","global-banner",{"layout":460,"disabled":461},"release",false,{"data":463},{"text":464,"source":465,"edit":471,"contribute":476,"config":481,"items":486,"minimal":712},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":466,"config":467},"View page source",{"href":468,"dataGaName":469,"dataGaLocation":470},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":472,"config":473},"Edit this page",{"href":474,"dataGaName":475,"dataGaLocation":470},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":477,"config":478},"Please contribute",{"href":479,"dataGaName":480,"dataGaLocation":470},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":482,"facebook":483,"youtube":484,"linkedin":485},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[487,534,592,639,680],{"title":216,"links":488,"subMenu":503},[489,493,498],{"text":490,"config":491},"View plans",{"href":218,"dataGaName":492,"dataGaLocation":470},"view plans",{"text":494,"config":495},"Why Premium?",{"href":496,"dataGaName":497,"dataGaLocation":470},"/pricing/premium/","why premium",{"text":499,"config":500},"Why Ultimate?",{"href":501,"dataGaName":502,"dataGaLocation":470},"/pricing/ultimate/","why ultimate",[504],{"title":505,"links":506},"Contact Us",[507,510,512,514,519,524,529],{"text":508,"config":509},"Contact sales",{"href":359,"dataGaName":34,"dataGaLocation":470},{"text":362,"config":511},{"href":364,"dataGaName":365,"dataGaLocation":470},{"text":367,"config":513},{"href":369,"dataGaName":370,"dataGaLocation":470},{"text":515,"config":516},"Status",{"href":517,"dataGaName":518,"dataGaLocation":470},"https://status.gitlab.com/","status",{"text":520,"config":521},"Terms of use",{"href":522,"dataGaName":523,"dataGaLocation":470},"/terms/","terms of use",{"text":525,"config":526},"Privacy statement",{"href":527,"dataGaName":528,"dataGaLocation":470},"/privacy/","privacy statement",{"text":530,"config":531},"Cookie preferences",{"dataGaName":532,"dataGaLocation":470,"id":533,"isOneTrustButton":12},"cookie preferences","ot-sdk-btn",{"title":42,"links":535,"subMenu":549},[536,539,541,543,545,547],{"text":537,"config":538},"Explore the platform",{"href":50,"dataGaName":44,"dataGaLocation":470},{"text":102,"config":540},{"href":104,"dataGaName":105,"dataGaLocation":470},{"text":56,"config":542},{"href":58,"dataGaName":59,"dataGaLocation":470},{"text":107,"config":544},{"href":109,"dataGaName":110,"dataGaLocation":470},{"text":89,"config":546},{"href":91,"dataGaName":92,"dataGaLocation":470},{"text":120,"config":548},{"href":125,"dataGaName":126,"dataGaLocation":470},[550],{"title":551,"links":552},"Topics",[553,557,562,567,572,577,582,587],{"text":56,"config":554},{"href":555,"dataGaName":556,"dataGaLocation":470},"/topics/ci-cd/","cicd",{"text":558,"config":559},"GitOps",{"href":560,"dataGaName":561,"dataGaLocation":470},"/topics/gitops/","gitops",{"text":563,"config":564},"DevOps",{"href":565,"dataGaName":566,"dataGaLocation":470},"/topics/devops/","devops",{"text":568,"config":569},"Version Control",{"href":570,"dataGaName":571,"dataGaLocation":470},"/topics/version-control/","version control",{"text":573,"config":574},"DevSecOps",{"href":575,"dataGaName":576,"dataGaLocation":470},"/topics/devsecops/","devsecops",{"text":578,"config":579},"Cloud Native",{"href":580,"dataGaName":581,"dataGaLocation":470},"/topics/cloud-native/","cloud native",{"text":583,"config":584},"AI for Coding",{"href":585,"dataGaName":586,"dataGaLocation":470},"/topics/devops/ai-for-coding/","ai for coding",{"text":588,"config":589},"Agentic AI",{"href":590,"dataGaName":591,"dataGaLocation":470},"/topics/agentic-ai/","agentic ai",{"title":128,"links":593},[594,597,600,603,606,609,611,613,615,617,619,622,624,627,631,635],{"text":595,"config":596},"DevOps modernization",{"href":143,"dataGaName":144,"dataGaLocation":470},{"text":598,"config":599},"Security modernization",{"href":148,"dataGaName":149,"dataGaLocation":470},{"text":601,"config":602},"AI modernization",{"href":153,"dataGaName":154,"dataGaLocation":470},{"text":604,"config":605},"Financial services",{"href":179,"dataGaName":180,"dataGaLocation":470},{"text":607,"config":608},"Public sector",{"href":184,"dataGaName":185,"dataGaLocation":470},{"text":187,"config":610},{"href":189,"dataGaName":190,"dataGaLocation":470},{"text":192,"config":612},{"href":194,"dataGaName":195,"dataGaLocation":470},{"text":197,"config":614},{"href":199,"dataGaName":200,"dataGaLocation":470},{"text":202,"config":616},{"href":204,"dataGaName":205,"dataGaLocation":470},{"text":159,"config":618},{"href":161,"dataGaName":162,"dataGaLocation":470},{"text":620,"config":621},"Small business",{"href":166,"dataGaName":167,"dataGaLocation":470},{"text":169,"config":623},{"href":171,"dataGaName":172,"dataGaLocation":470},{"text":558,"config":625},{"href":626,"dataGaName":561,"dataGaLocation":470},"/solutions/gitops/",{"text":628,"config":629},"Software composition analysis",{"href":96,"dataGaName":630,"dataGaLocation":470},"software composition analysis",{"text":632,"config":633},"Value stream management",{"href":114,"dataGaName":634,"dataGaLocation":470},"value stream management",{"text":636,"config":637},"All solutions",{"href":135,"dataGaName":638,"dataGaLocation":470},"all solutions",{"title":221,"links":640},[641,646,651,653,655,657,659,661,663,665,667,669,671,673,676],{"text":642,"config":643},"Install",{"href":644,"dataGaName":645,"dataGaLocation":470},"/install/","install",{"text":647,"config":648},"Quick start guides",{"href":649,"dataGaName":650,"dataGaLocation":470},"/get-started/","quick setup checklists",{"text":234,"config":652},{"href":236,"dataGaName":237,"dataGaLocation":470},{"text":239,"config":654},{"href":241,"dataGaName":242,"dataGaLocation":470},{"text":244,"config":656},{"href":246,"dataGaName":247,"dataGaLocation":470},{"text":249,"config":658},{"href":251,"dataGaName":252,"dataGaLocation":470},{"text":254,"config":660},{"href":256,"dataGaName":257,"dataGaLocation":470},{"text":262,"config":662},{"href":264,"dataGaName":265,"dataGaLocation":470},{"text":267,"config":664},{"href":269,"dataGaName":270,"dataGaLocation":470},{"text":272,"config":666},{"href":274,"dataGaName":275,"dataGaLocation":470},{"text":277,"config":668},{"href":279,"dataGaName":280,"dataGaLocation":470},{"text":282,"config":670},{"href":284,"dataGaName":285,"dataGaLocation":470},{"text":345,"config":672},{"href":347,"dataGaName":348,"dataGaLocation":470},{"text":674,"config":675},"What's new",{"href":293,"dataGaName":294,"dataGaLocation":470},{"text":677,"config":678},"All resources",{"href":228,"dataGaName":679,"dataGaLocation":470},"all resources",{"title":296,"links":681},[682,684,686,688,690,692,694,696,698,702,707],{"text":304,"config":683},{"href":306,"dataGaName":298,"dataGaLocation":470},{"text":309,"config":685},{"href":311,"dataGaName":312,"dataGaLocation":470},{"text":315,"config":687},{"href":317,"dataGaName":318,"dataGaLocation":470},{"text":320,"config":689},{"href":322,"dataGaName":323,"dataGaLocation":470},{"text":325,"config":691},{"href":327,"dataGaName":328,"dataGaLocation":470},{"text":330,"config":693},{"href":332,"dataGaName":333,"dataGaLocation":470},{"text":335,"config":695},{"href":337,"dataGaName":338,"dataGaLocation":470},{"text":340,"config":697},{"href":342,"dataGaName":343,"dataGaLocation":470},{"text":699,"config":700},"Sustainability",{"href":701,"dataGaName":699,"dataGaLocation":470},"/sustainability/",{"text":703,"config":704},"Diversity, inclusion and belonging (DIB)",{"href":705,"dataGaName":706,"dataGaLocation":470},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":708,"config":709},"Modern Slavery Transparency Statement",{"href":710,"dataGaName":711,"dataGaLocation":470},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":713},[714,717,720],{"text":715,"config":716},"Terms",{"href":522,"dataGaName":523,"dataGaLocation":470},{"text":718,"config":719},"Cookies",{"dataGaName":532,"dataGaLocation":470,"id":533,"isOneTrustButton":12},{"text":721,"config":722},"Privacy",{"href":527,"dataGaName":528,"dataGaLocation":470},2424,[725,733,738,744,749,755,760,766,772,778,784,790,800,807,814,820,825,831,837,843,849,855,861,866,872,878,883,888,893,898,903,908,914,920,926,932,937,943,949,954],{"title":726,"date":727,"authors":728,"slug":732,"externalUrl":6},"How to write and continuously test vulnerability detection rules for SAST","2021-09-08",[729,730,731],"Ross Fuhrman","Anshuman Singh","Julian Thome","write-vulnerability-detection-rules",{"title":734,"date":727,"authors":735,"slug":737,"externalUrl":6},"Making the case for a DevOps platform: What data and customers say",[736],"Valerie Silverthorne","making-the-case-for-a-devops-platform-what-data-and-customers-say",{"title":739,"date":740,"authors":741,"slug":743,"externalUrl":6},"Why are developers so vulnerable to drive-by attacks?","2021-09-07",[742],"Chris Moberly","why-are-developers-vulnerable-to-driveby-attacks",{"title":745,"date":746,"authors":747,"slug":748,"externalUrl":6},"The code review struggle is real. Here's what you need to know","2021-09-03",[736],"the-code-review-struggle-is-real-heres-what-you-need-to-know",{"title":750,"date":751,"authors":752,"slug":754,"externalUrl":6},"The journey to a DevOps Platform","2021-09-02",[753],"Cormac Foster","the-journey-to-a-devops-platform",{"title":756,"date":751,"authors":757,"slug":759,"externalUrl":6},"What we learned about configuring Sidekiq from GitLab.com",[758],"Craig Miskell","specialized-sidekiq-configuration-lessons-from-gitlab-dot-com",{"title":761,"date":762,"authors":763,"slug":765,"externalUrl":6},"Google Summer of Code at GitLab – some intern highlights","2021-09-01",[764],"Aakriti Gupta","gsoc-at-gitlab",{"title":767,"date":768,"authors":769,"slug":771,"externalUrl":6},"How to secure your software build pipeline using code signing","2021-08-30",[770],"Eddie Glenn","secure-pipeline-with-single-sign-in",{"title":773,"date":774,"authors":775,"slug":777,"externalUrl":6},"It's time to update Docker Engine","2021-08-26",[776],"Tomasz Maczukin","its-time-to-upgrade-docker-engine",{"title":779,"date":780,"authors":781,"slug":783,"externalUrl":6},"Write a stageless CI/CD pipeline using GitLab 14.2","2021-08-24",[782],"Dov Hershkovitch","stageless-pipelines",{"title":785,"date":786,"authors":787,"slug":789,"externalUrl":6},"How a new integration helps GitLab customers secure their code","2021-08-20",[788],"Christian Simko","how-grammatech-and-gitlab-enables-better-devsecops",{"title":791,"date":792,"authors":793,"slug":799,"externalUrl":6},"Introducing Spamcheck: A data-driven, anti-abuse engine","2021-08-19",[794,795,796,797,798],"Jayson Salazar","Alexander Dietrich","Alex Groleau","Ethan Urie","Juliet Wanjohi","introducing-spamcheck-data-driven-anti-abuse",{"title":801,"date":802,"authors":803,"slug":806,"externalUrl":6},"How DevSecOps can protect businesses from future supply chain attacks","2021-08-18",[804,805],"Pedro Fortuna","Sam Kerr","what-the-solarwinds-attack-can-teach-us-about-devsecops",{"title":808,"date":809,"authors":810,"slug":813,"externalUrl":6},"How to provision 100 AWS Graviton GitLab Spot Runners in 10 Minutes for $2/hour","2021-08-17",[811,812],"Darwin Sanoy","Nupur Sharma","100-runners-in-less-than-10mins-and-less-than-10-clicks",{"title":815,"date":816,"authors":817,"slug":819,"externalUrl":6},"How I use analogy to design for highly technical spaces","2021-08-13",[818],"Camellia Yang","understand-highly-technical-spaces",{"title":821,"date":816,"authors":822,"slug":824,"externalUrl":6},"5 Great Phabricator features that inspired GitLab",[823],"Michael Friedrich","five-great-phabricator-features-inspired-gitlab",{"title":826,"date":827,"authors":828,"slug":830,"externalUrl":6},"How to use a push-based approach for GitOps with Terraform and AWS ECS and EC2","2021-08-10",[829],"Cesar Saavedra","how-to-agentless-gitops-aws",{"title":832,"date":833,"authors":834,"slug":836,"externalUrl":6},"5 Ways to scale remote work on your team","2021-08-09",[835],"Betsy Bula","five-ways-to-scale-remote-work",{"title":838,"date":839,"authors":840,"slug":842,"externalUrl":6},"23% Cost savings and 36% performance gain by deploying GitLab on Arm-based AWS Graviton2","2021-08-05",[841],"Pranay Bakre","achieving-23-cost-savings-and-36-performance-gain-using-gitlab-and-gitlab-runner-on-arm-neoverse-based-aws-graviton2-processor",{"title":844,"date":845,"authors":846,"slug":848,"externalUrl":6},"How UBS created their own DevOps platform using GitLab","2021-08-04",[847],"Sara Kassabian","ubs-gitlab-devops-platform",{"title":850,"date":851,"authors":852,"slug":854,"externalUrl":6},"Welcome to the DevOps Platform era","2021-08-03",[853],"Sid Sijbrandij","welcome-to-the-devops-platform-era",{"title":856,"date":857,"authors":858,"slug":860,"externalUrl":6},"How GitLab 14 satisfies the need for speed with modern DevOps","2021-07-29",[859],"Parker Ennis","velocity-with-confidence",{"title":862,"date":857,"authors":863,"slug":865,"externalUrl":6},"How Orange made a first step toward CI/CD standardization with GitLab",[864],"Pierre Smeyers","how-orange-uses-gitlab-ci-cd-for-modern-devops",{"title":867,"date":868,"authors":869,"slug":871,"externalUrl":6},"How to secure your container images with GitLab and Grype","2021-07-28",[870],"Dan Luhring","secure-container-images-with-gitlab-and-grype",{"title":873,"date":874,"authors":875,"slug":877,"externalUrl":6},"Introducing the GitLab Helm Package Registry","2021-07-26",[876],"William Chia","gitlab-helm-package-registry",{"title":879,"date":880,"authors":881,"slug":882,"externalUrl":6},"How to use a push-based approach for GitOps with GitLab scripting and variables","2021-07-23",[829],"how-to-agentless-gitops-vars",{"title":884,"date":880,"authors":885,"slug":887,"externalUrl":6},"Meet Package Hunter: A tool for detecting malicious code in your dependencies",[886],"Dennis Appelt","announcing-package-hunter",{"title":889,"date":890,"authors":891,"slug":892,"externalUrl":6},"Optimize DevOps with enhanced visibility tools in GitLab 14","2021-07-21",[753],"optimizing-devops-visibility-in-gitlab-14",{"title":894,"date":895,"authors":896,"slug":897,"externalUrl":6},"GitLab introduces updates to paid tiers for improved billing and subscription management","2021-07-20",[853],"improved-billing-and-subscription-management",{"title":899,"date":895,"authors":900,"slug":902,"externalUrl":6},"Are you ready for the newest era of DevSecOps?",[901],"Cindy Blake","are-you-ready-for-the-newest-era-of-devsecops",{"title":904,"date":905,"authors":906,"slug":907,"externalUrl":6},"How teams can use the Gitpod integration in GitLab to speed up their development process","2021-07-19",[823],"teams-gitpod-integration-gitlab-speed-up-development",{"title":909,"date":910,"authors":911,"slug":913,"externalUrl":6},"GitOps viewed as part of the Ops evolution","2021-07-12",[912],"Viktor Nagy","gitops-as-the-evolution-of-operations",{"title":915,"date":916,"authors":917,"slug":919,"externalUrl":6},"How we’re creating a threat model framework that works for GitLab","2021-07-09",[918],"Mark Loveless","creating-a-threat-model-that-works-for-gitlab",{"title":921,"date":922,"authors":923,"slug":925,"externalUrl":6},"A brief look at Gitpod, two bugs, and a quick fix","2021-07-08",[924],"Joern Schneeweisz","two-bugs-and-a-quick-fix-in-gitpod",{"title":927,"date":928,"authors":929,"slug":931,"externalUrl":6},"How to stand-up a GitLab instance in AWS Marketplace","2021-06-30",[930],"Itzik Gan Baruch","how-to-stand-up-gitlab-in-awsmp",{"title":933,"date":934,"authors":935,"slug":936,"externalUrl":6},"How to use a pull-based (agent-based) approach for GitOps","2021-06-23",[829],"how-to-use-agent-based-gitops",{"title":938,"date":939,"authors":940,"slug":942,"externalUrl":6},"GitLab 14 signals shift to modern DevOps: A DevOps platform with velocity, trust, and visibility","2021-06-22",[941],"Brian Glanz","gitlab-14-modern-devops",{"title":944,"date":945,"authors":946,"slug":948,"externalUrl":6},"Usage Ping configuration bug for self-managed instances","2021-06-21",[947],"GitLab","usage-ping-configuration-bug-for-self-managed-instances",{"title":950,"date":945,"authors":951,"slug":953,"externalUrl":6},"How to become more productive with Gitlab CI",[952],"Veethika Mishra","how-to-become-more-productive-with-gitlab-ci",{"title":955,"date":956,"authors":957,"slug":959,"externalUrl":6},"The GPG key used to sign GitLab Runner packages has been rotated","2021-06-16",[958],"Elliot Rushton","gpg-key-used-to-sign-gitlab-runner-packages-rotated",1792096409907]