[{"data":1,"prerenderedAt":685},["ShallowReactive",2],{"/en-us/blog/authors/oliver-smith":3,"navigation-en-us":22,"banner-en-us":422,"footer-en-us":432,"blog-author-posts-en-us-oliver-smith":674},{"id":4,"title":5,"body":6,"config":7,"content":10,"description":6,"extension":15,"meta":16,"navigation":17,"path":18,"seo":19,"stem":20,"__hash__":21},"blogAuthors/en-us/blog/authors/oliver-smith.yml","Oliver Smith",null,{"template":8,"gitlabHandle":9},"BlogAuthor","ojsmith",{"name":5,"role":11,"bio":12,"config":13},"","Senior Threat Intelligence Engineer",{"headshot":14},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1769722302/juupgr8w0batn0fek4xp.jpg","yml",{},true,"/en-us/blog/authors/oliver-smith",{},"en-us/blog/authors/oliver-smith","As55YdsLIHnkiElMCl4VahGEjaCR5uH_Py6RHVb0uxE",{"data":23},{"logo":24,"freeTrial":29,"sales":34,"login":39,"items":44,"search":352,"minimal":383,"duo":402,"pricingDeployment":412},{"config":25},{"href":26,"dataGaName":27,"dataGaLocation":28},"/","gitlab logo","header",{"text":30,"config":31},"Get free trial",{"href":32,"dataGaName":33,"dataGaLocation":28},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":35,"config":36},"Talk to sales",{"href":37,"dataGaName":38,"dataGaLocation":28},"/sales/","sales",{"text":40,"config":41},"Sign in",{"href":42,"dataGaName":43,"dataGaLocation":28},"https://gitlab.com/users/sign_in/","sign in",[45,72,167,172,273,333],{"text":46,"config":47,"cards":49},"Platform",{"dataNavLevelOne":48},"platform",[50,56,64],{"title":46,"description":51,"link":52},"The intelligent orchestration platform for DevSecOps",{"text":53,"config":54},"Explore our Platform",{"href":55,"dataGaName":48,"dataGaLocation":28},"/platform/",{"title":57,"description":58,"link":59},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":60,"config":61},"Meet GitLab Duo",{"href":62,"dataGaName":63,"dataGaLocation":28},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":65,"description":66,"link":67},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":68,"config":69},"Learn more",{"href":70,"dataGaName":71,"dataGaLocation":28},"/why-gitlab/","why gitlab",{"text":73,"left":17,"config":74,"link":76,"lists":80,"footer":149},"Product",{"dataNavLevelOne":75},"solutions",{"text":77,"config":78},"View all Solutions",{"href":79,"dataGaName":75,"dataGaLocation":28},"/solutions/",[81,105,128],{"title":82,"description":83,"link":84,"items":89},"Automation","CI/CD and automation to accelerate deployment",{"config":85},{"icon":86,"href":87,"dataGaName":88,"dataGaLocation":28},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[90,94,97,101],{"text":91,"config":92},"CI/CD",{"href":93,"dataGaLocation":28,"dataGaName":91},"/solutions/continuous-integration/",{"text":57,"config":95},{"href":62,"dataGaLocation":28,"dataGaName":96},"gitlab duo agent platform - product menu",{"text":98,"config":99},"Source Code Management",{"href":100,"dataGaLocation":28,"dataGaName":98},"/solutions/source-code-management/",{"text":102,"config":103},"Automated Software Delivery",{"href":87,"dataGaLocation":28,"dataGaName":104},"Automated software delivery",{"title":106,"description":107,"link":108,"items":113},"Security","Deliver code faster without compromising security",{"config":109},{"href":110,"dataGaName":111,"dataGaLocation":28,"icon":112},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[114,118,123],{"text":115,"config":116},"Application Security Testing",{"href":110,"dataGaName":117,"dataGaLocation":28},"Application security testing",{"text":119,"config":120},"Software Supply Chain Security",{"href":121,"dataGaLocation":28,"dataGaName":122},"/solutions/supply-chain/","Software supply chain security",{"text":124,"config":125},"Software Compliance",{"href":126,"dataGaName":127,"dataGaLocation":28},"/solutions/software-compliance/","software compliance",{"title":129,"link":130,"items":135},"Measurement",{"config":131},{"icon":132,"href":133,"dataGaName":134,"dataGaLocation":28},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[136,140,144],{"text":137,"config":138},"Visibility & Measurement",{"href":133,"dataGaLocation":28,"dataGaName":139},"Visibility and Measurement",{"text":141,"config":142},"Value Stream Management",{"href":143,"dataGaLocation":28,"dataGaName":141},"/solutions/value-stream-management/",{"text":145,"config":146},"Analytics & Insights",{"href":147,"dataGaLocation":28,"dataGaName":148},"/solutions/analytics-and-insights/","Analytics and insights",{"title":150,"items":151},"GitLab for",[152,157,162],{"text":153,"config":154},"Enterprise",{"href":155,"dataGaLocation":28,"dataGaName":156},"/enterprise/","enterprise",{"text":158,"config":159},"Small Business",{"href":160,"dataGaLocation":28,"dataGaName":161},"/small-business/","small business",{"text":163,"config":164},"Public Sector",{"href":165,"dataGaLocation":28,"dataGaName":166},"/solutions/public-sector/","public sector",{"text":168,"config":169},"Pricing",{"href":170,"dataGaName":171,"dataGaLocation":28,"dataNavLevelOne":171},"/pricing/","pricing",{"text":173,"config":174,"link":176,"lists":180,"feature":260},"Resources",{"dataNavLevelOne":175},"resources",{"text":177,"config":178},"View all resources",{"href":179,"dataGaName":175,"dataGaLocation":28},"/resources/",[181,214,232],{"title":182,"items":183},"Getting started",[184,189,194,199,204,209],{"text":185,"config":186},"Install",{"href":187,"dataGaName":188,"dataGaLocation":28},"/install/","install",{"text":190,"config":191},"Quick start guides",{"href":192,"dataGaName":193,"dataGaLocation":28},"/get-started/","quick setup checklists",{"text":195,"config":196},"Learn",{"href":197,"dataGaLocation":28,"dataGaName":198},"https://university.gitlab.com/","learn",{"text":200,"config":201},"Product documentation",{"href":202,"dataGaName":203,"dataGaLocation":28},"https://docs.gitlab.com/","product documentation",{"text":205,"config":206},"Best practice videos",{"href":207,"dataGaName":208,"dataGaLocation":28},"/getting-started-videos/","best practice videos",{"text":210,"config":211},"Integrations",{"href":212,"dataGaName":213,"dataGaLocation":28},"/integrations/","integrations",{"title":215,"items":216},"Discover",[217,222,227],{"text":218,"config":219},"Customer success stories",{"href":220,"dataGaName":221,"dataGaLocation":28},"/customers/","customer success stories",{"text":223,"config":224},"Blog",{"href":225,"dataGaName":226,"dataGaLocation":28},"/blog/","blog",{"text":228,"config":229},"Remote",{"href":230,"dataGaName":231,"dataGaLocation":28},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":233,"items":234},"Connect",[235,240,245,250,255],{"text":236,"config":237},"GitLab Services",{"href":238,"dataGaName":239,"dataGaLocation":28},"/services/","services",{"text":241,"config":242},"Community",{"href":243,"dataGaName":244,"dataGaLocation":28},"/community/","community",{"text":246,"config":247},"Forum",{"href":248,"dataGaName":249,"dataGaLocation":28},"https://forum.gitlab.com/","forum",{"text":251,"config":252},"Events",{"href":253,"dataGaName":254,"dataGaLocation":28},"/events/","events",{"text":256,"config":257},"Partners",{"href":258,"dataGaName":259,"dataGaLocation":28},"/partners/","partners",{"backgroundColor":261,"textColor":262,"text":263,"image":264,"link":268},"#2f2a6b","#fff","Insights for the future of software development",{"altText":265,"config":266},"the source promo card",{"src":267},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":269,"config":270},"Read the latest",{"href":271,"dataGaName":272,"dataGaLocation":28},"/the-source/","the source",{"text":274,"config":275,"lists":277},"Company",{"dataNavLevelOne":276},"company",[278],{"items":279},[280,285,291,293,298,303,308,313,318,323,328],{"text":281,"config":282},"About",{"href":283,"dataGaName":284,"dataGaLocation":28},"/company/","about",{"text":286,"config":287,"footerGa":290},"Jobs",{"href":288,"dataGaName":289,"dataGaLocation":28},"/jobs/","jobs",{"dataGaName":289},{"text":251,"config":292},{"href":253,"dataGaName":254,"dataGaLocation":28},{"text":294,"config":295},"Leadership",{"href":296,"dataGaName":297,"dataGaLocation":28},"/company/team/e-group/","leadership",{"text":299,"config":300},"Team",{"href":301,"dataGaName":302,"dataGaLocation":28},"/company/team/","team",{"text":304,"config":305},"Handbook",{"href":306,"dataGaName":307,"dataGaLocation":28},"https://handbook.gitlab.com/","handbook",{"text":309,"config":310},"Investor relations",{"href":311,"dataGaName":312,"dataGaLocation":28},"https://ir.gitlab.com/","investor relations",{"text":314,"config":315},"Trust Center",{"href":316,"dataGaName":317,"dataGaLocation":28},"/security/","trust center",{"text":319,"config":320},"AI Transparency Center",{"href":321,"dataGaName":322,"dataGaLocation":28},"/ai-transparency-center/","ai transparency center",{"text":324,"config":325},"Newsletter",{"href":326,"dataGaName":327,"dataGaLocation":28},"/company/contact/#contact-forms","newsletter",{"text":329,"config":330},"Press",{"href":331,"dataGaName":332,"dataGaLocation":28},"/press/","press",{"text":334,"config":335,"lists":336},"Contact us",{"dataNavLevelOne":276},[337],{"items":338},[339,342,347],{"text":35,"config":340},{"href":37,"dataGaName":341,"dataGaLocation":28},"talk to sales",{"text":343,"config":344},"Support portal",{"href":345,"dataGaName":346,"dataGaLocation":28},"https://support.gitlab.com","support portal",{"text":348,"config":349},"Customer portal",{"href":350,"dataGaName":351,"dataGaLocation":28},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":353,"login":354,"suggestions":361},"Close",{"text":355,"link":356},"To search repositories and projects, login to",{"text":357,"config":358},"gitlab.com",{"href":42,"dataGaName":359,"dataGaLocation":360},"search login","search",{"text":362,"default":363},"Suggestions",[364,366,370,372,376,380],{"text":57,"config":365},{"href":62,"dataGaName":57,"dataGaLocation":360},{"text":367,"config":368},"Code Suggestions (AI)",{"href":369,"dataGaName":367,"dataGaLocation":360},"/solutions/code-suggestions/",{"text":91,"config":371},{"href":93,"dataGaName":91,"dataGaLocation":360},{"text":373,"config":374},"GitLab on AWS",{"href":375,"dataGaName":373,"dataGaLocation":360},"/partners/technology-partners/aws/",{"text":377,"config":378},"GitLab on Google Cloud",{"href":379,"dataGaName":377,"dataGaLocation":360},"/partners/technology-partners/google-cloud-platform/",{"text":381,"config":382},"Why GitLab?",{"href":70,"dataGaName":381,"dataGaLocation":360},{"freeTrial":384,"mobileIcon":389,"desktopIcon":394,"secondaryButton":397},{"text":385,"config":386},"Start free trial",{"href":387,"dataGaName":33,"dataGaLocation":388},"https://gitlab.com/-/trials/new/","nav",{"altText":390,"config":391},"Gitlab Icon",{"src":392,"dataGaName":393,"dataGaLocation":388},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":390,"config":395},{"src":396,"dataGaName":393,"dataGaLocation":388},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":398,"config":399},"Get Started",{"href":400,"dataGaName":401,"dataGaLocation":388},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":403,"mobileIcon":408,"desktopIcon":410},{"text":404,"config":405},"Learn more about GitLab Duo",{"href":406,"dataGaName":407,"dataGaLocation":388},"/gitlab-duo/","gitlab duo",{"altText":390,"config":409},{"src":392,"dataGaName":393,"dataGaLocation":388},{"altText":390,"config":411},{"src":396,"dataGaName":393,"dataGaLocation":388},{"freeTrial":413,"mobileIcon":418,"desktopIcon":420},{"text":414,"config":415},"Back to pricing",{"href":170,"dataGaName":416,"dataGaLocation":388,"icon":417},"back to pricing","GoBack",{"altText":390,"config":419},{"src":392,"dataGaName":393,"dataGaLocation":388},{"altText":390,"config":421},{"src":396,"dataGaName":393,"dataGaLocation":388},{"title":423,"button":424,"config":429},"See how agentic AI transforms software delivery",{"text":425,"config":426},"Watch GitLab Transcend now",{"href":427,"dataGaName":428,"dataGaLocation":28},"/events/transcend/virtual/","transcend event",{"layout":430,"icon":431},"release","AiStar",{"data":433},{"text":434,"source":435,"edit":441,"contribute":446,"config":451,"items":456,"minimal":663},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":436,"config":437},"View page source",{"href":438,"dataGaName":439,"dataGaLocation":440},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":442,"config":443},"Edit this page",{"href":444,"dataGaName":445,"dataGaLocation":440},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":447,"config":448},"Please contribute",{"href":449,"dataGaName":450,"dataGaLocation":440},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":452,"facebook":453,"youtube":454,"linkedin":455},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[457,504,558,602,629],{"title":168,"links":458,"subMenu":473},[459,463,468],{"text":460,"config":461},"View plans",{"href":170,"dataGaName":462,"dataGaLocation":440},"view plans",{"text":464,"config":465},"Why Premium?",{"href":466,"dataGaName":467,"dataGaLocation":440},"/pricing/premium/","why premium",{"text":469,"config":470},"Why Ultimate?",{"href":471,"dataGaName":472,"dataGaLocation":440},"/pricing/ultimate/","why ultimate",[474],{"title":475,"links":476},"Contact Us",[477,480,482,484,489,494,499],{"text":478,"config":479},"Contact sales",{"href":37,"dataGaName":38,"dataGaLocation":440},{"text":343,"config":481},{"href":345,"dataGaName":346,"dataGaLocation":440},{"text":348,"config":483},{"href":350,"dataGaName":351,"dataGaLocation":440},{"text":485,"config":486},"Status",{"href":487,"dataGaName":488,"dataGaLocation":440},"https://status.gitlab.com/","status",{"text":490,"config":491},"Terms of use",{"href":492,"dataGaName":493,"dataGaLocation":440},"/terms/","terms of use",{"text":495,"config":496},"Privacy statement",{"href":497,"dataGaName":498,"dataGaLocation":440},"/privacy/","privacy statement",{"text":500,"config":501},"Cookie preferences",{"dataGaName":502,"dataGaLocation":440,"id":503,"isOneTrustButton":17},"cookie preferences","ot-sdk-btn",{"title":73,"links":505,"subMenu":514},[506,510],{"text":507,"config":508},"DevSecOps platform",{"href":55,"dataGaName":509,"dataGaLocation":440},"devsecops platform",{"text":511,"config":512},"AI-Assisted Development",{"href":406,"dataGaName":513,"dataGaLocation":440},"ai-assisted development",[515],{"title":516,"links":517},"Topics",[518,523,528,533,538,543,548,553],{"text":519,"config":520},"CICD",{"href":521,"dataGaName":522,"dataGaLocation":440},"/topics/ci-cd/","cicd",{"text":524,"config":525},"GitOps",{"href":526,"dataGaName":527,"dataGaLocation":440},"/topics/gitops/","gitops",{"text":529,"config":530},"DevOps",{"href":531,"dataGaName":532,"dataGaLocation":440},"/topics/devops/","devops",{"text":534,"config":535},"Version Control",{"href":536,"dataGaName":537,"dataGaLocation":440},"/topics/version-control/","version control",{"text":539,"config":540},"DevSecOps",{"href":541,"dataGaName":542,"dataGaLocation":440},"/topics/devsecops/","devsecops",{"text":544,"config":545},"Cloud Native",{"href":546,"dataGaName":547,"dataGaLocation":440},"/topics/cloud-native/","cloud native",{"text":549,"config":550},"AI for Coding",{"href":551,"dataGaName":552,"dataGaLocation":440},"/topics/devops/ai-for-coding/","ai for coding",{"text":554,"config":555},"Agentic AI",{"href":556,"dataGaName":557,"dataGaLocation":440},"/topics/agentic-ai/","agentic ai",{"title":559,"links":560},"Solutions",[561,563,565,570,574,577,581,584,586,589,592,597],{"text":115,"config":562},{"href":110,"dataGaName":115,"dataGaLocation":440},{"text":104,"config":564},{"href":87,"dataGaName":88,"dataGaLocation":440},{"text":566,"config":567},"Agile development",{"href":568,"dataGaName":569,"dataGaLocation":440},"/solutions/agile-delivery/","agile delivery",{"text":571,"config":572},"SCM",{"href":100,"dataGaName":573,"dataGaLocation":440},"source code management",{"text":519,"config":575},{"href":93,"dataGaName":576,"dataGaLocation":440},"continuous integration & delivery",{"text":578,"config":579},"Value stream management",{"href":143,"dataGaName":580,"dataGaLocation":440},"value stream management",{"text":524,"config":582},{"href":583,"dataGaName":527,"dataGaLocation":440},"/solutions/gitops/",{"text":153,"config":585},{"href":155,"dataGaName":156,"dataGaLocation":440},{"text":587,"config":588},"Small business",{"href":160,"dataGaName":161,"dataGaLocation":440},{"text":590,"config":591},"Public sector",{"href":165,"dataGaName":166,"dataGaLocation":440},{"text":593,"config":594},"Education",{"href":595,"dataGaName":596,"dataGaLocation":440},"/solutions/education/","education",{"text":598,"config":599},"Financial services",{"href":600,"dataGaName":601,"dataGaLocation":440},"/solutions/finance/","financial services",{"title":173,"links":603},[604,606,608,610,613,615,617,619,621,623,625,627],{"text":185,"config":605},{"href":187,"dataGaName":188,"dataGaLocation":440},{"text":190,"config":607},{"href":192,"dataGaName":193,"dataGaLocation":440},{"text":195,"config":609},{"href":197,"dataGaName":198,"dataGaLocation":440},{"text":200,"config":611},{"href":202,"dataGaName":612,"dataGaLocation":440},"docs",{"text":223,"config":614},{"href":225,"dataGaName":226,"dataGaLocation":440},{"text":218,"config":616},{"href":220,"dataGaName":221,"dataGaLocation":440},{"text":228,"config":618},{"href":230,"dataGaName":231,"dataGaLocation":440},{"text":236,"config":620},{"href":238,"dataGaName":239,"dataGaLocation":440},{"text":241,"config":622},{"href":243,"dataGaName":244,"dataGaLocation":440},{"text":246,"config":624},{"href":248,"dataGaName":249,"dataGaLocation":440},{"text":251,"config":626},{"href":253,"dataGaName":254,"dataGaLocation":440},{"text":256,"config":628},{"href":258,"dataGaName":259,"dataGaLocation":440},{"title":274,"links":630},[631,633,635,637,639,641,643,647,652,654,656,658],{"text":281,"config":632},{"href":283,"dataGaName":276,"dataGaLocation":440},{"text":286,"config":634},{"href":288,"dataGaName":289,"dataGaLocation":440},{"text":294,"config":636},{"href":296,"dataGaName":297,"dataGaLocation":440},{"text":299,"config":638},{"href":301,"dataGaName":302,"dataGaLocation":440},{"text":304,"config":640},{"href":306,"dataGaName":307,"dataGaLocation":440},{"text":309,"config":642},{"href":311,"dataGaName":312,"dataGaLocation":440},{"text":644,"config":645},"Sustainability",{"href":646,"dataGaName":644,"dataGaLocation":440},"/sustainability/",{"text":648,"config":649},"Diversity, inclusion and belonging (DIB)",{"href":650,"dataGaName":651,"dataGaLocation":440},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":314,"config":653},{"href":316,"dataGaName":317,"dataGaLocation":440},{"text":324,"config":655},{"href":326,"dataGaName":327,"dataGaLocation":440},{"text":329,"config":657},{"href":331,"dataGaName":332,"dataGaLocation":440},{"text":659,"config":660},"Modern Slavery Transparency Statement",{"href":661,"dataGaName":662,"dataGaLocation":440},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":664},[665,668,671],{"text":666,"config":667},"Terms",{"href":492,"dataGaName":493,"dataGaLocation":440},{"text":669,"config":670},"Cookies",{"dataGaName":502,"dataGaLocation":440,"id":503,"isOneTrustButton":17},{"text":672,"config":673},"Privacy",{"href":497,"dataGaName":498,"dataGaLocation":440},[675],{"content":676,"config":683},{"title":677,"heroImage":678,"category":679,"description":680,"authors":681,"date":682},"GitLab Threat Intelligence Team reveals North Korean tradecraft","https://res.cloudinary.com/about-gitlab-com/image/upload/v1751464282/r2ovpvmizpkcngy9kzqu.png","security","Gain threat intelligence about North Korea’s Contagious Interview and fake IT worker campaigns and learn how GitLab disrupted their operations.",[5],"2026-02-19",{"slug":684,"externalUrl":-1},"gitlab-threat-intelligence-reveals-north-korean-tradecraft",1772652077971]