[{"data":1,"prerenderedAt":1091},["ShallowReactive",2],{"/blog/twenty-twenty-through-a-bug-bounty-lens":3,"navigation-en-us":306,"banner-en-us":733,"footer-en-us":743,"blog-post-authors-en-us-Heather Simpson":988,"blog-related-posts-en-us-twenty-twenty-through-a-bug-bounty-lens":1003,"blog-promotions-en-us":1028,"next-steps-en-us":1081},{"id":4,"title":5,"authors":6,"body":8,"category":286,"date":287,"description":288,"extension":289,"externalUrl":290,"faq":290,"featured":291,"heroImage":292,"meta":293,"navigation":294,"path":295,"seo":296,"slug":300,"stem":301,"tags":302,"template":304,"updatedDate":290,"__hash__":305},"blogPosts/en-us/blog/twenty-twenty-through-a-bug-bounty-lens.md","2020 through a bug bounty lens",[7],"Heather Simpson",{"type":9,"value":10,"toc":277},"minimark",[11,50,53,56,61,67,83,89,96,100,103,108,149,152,160,168,171,175,187,202,213,224,236,251,256,268,271,274],[12,13,14,15,20,21,26,27,32,33,38,39,44,45],"p",{},"What a long, strange trip 2020 has been. It started with hitting the ",[16,17,19],"a",{"href":18},"/blog/celebrating-one-million-bug-bounties-paid/","million dollar bounties paid milestone"," in our ",[16,22,25],{"href":23,"rel":24},"https://hackerone.com/gitlab",[],"HackerOne program",", appearing at #6 on ",[16,28,31],{"href":29,"rel":30},"https://www.hackerone.com/resources/e-book/top-10-bounty-programs-2020",[],"HackerOne’s 2020 Top Ten Public Bug Bounties program list"," (up from our #10 spot from ",[16,34,37],{"href":35,"rel":36},"https://www.hackerone.com/resources/responsible-disclosure-program/top-20-public-bug-bounty-programs",[],"2019",") and having our approach to security and bug bounty program featured in this HackerOne ",[16,40,43],{"href":41,"rel":42},"https://www.hackerone.com/resources/gitlab/gitlabs-approach-to-security",[],"customer story",". And then, ",[46,47,49],"record",{"scratch":48},"","  like many across the globe, our year both screeched to a halt and raged on, as we all moved forward the best that we possibly could throughout a tumultuous year with a ton of eye-opening and unbelievable global happenings spanning the realm of those we’d soon forget, to those we can and should learn and grow from.",[12,51,52],{},"One thing remained a constant though: The awesomely talented security researchers who submit to our program kept finding small bugs and big bugs, and our teams kept on triaging, testing, and fixing them.",[12,54,55],{},"We’re ending 2020 with a look back at our bug bounty program and the people who have made it a success by making our product and company more secure: our bug bounty researchers!",[57,58,60],"h2",{"id":59},"_2020-by-the-numbers","2020 by the numbers",[12,62,63],{},[64,65,66],"strong",{},"This year we:",[68,69,70,74,77,80],"ul",{},[71,72,73],"li",{},"Received a total of 1,070 reports from 505 security researchers",[71,75,76],{},"Awarded a total of $380,800 USD in bounties to 62 different researchers reporting valid vulnerabilities",[71,78,79],{},"Resolved 259 reports and made 131 of those reports public.",[71,81,82],{},"Had 163 security researchers submit multiple reports, meaning their first engagement with us was a positive one.",[12,84,85,88],{},[64,86,87],{},"Note:"," Data pulled is accurate as of Dec. 7, 2020.",[12,90,91,95],{},[92,93,94],"em",{},"Shout out to our Bug Bounty Program manager, James Ritchey for providing these program stats."," 📣",[57,97,99],{"id":98},"bug-bounty-program-updates","Bug bounty program updates",[12,101,102],{},"We also rolled out a few new programs and initiatives to recognize and benefit contributors to our program.",[12,104,105],{},[64,106,107],{},"This year, we:",[68,109,110,113,133,141],{},[71,111,112],{},"Reduced the time to bounty in our program from 90 days to 45 days max. We intend to continue iterating on this so that we can shorten this time frame further.",[71,114,115,116,120,121,126,127,132],{},"Started a new researcher-focused blog series, called (creatively), Ask a Hacker. See our first ",[16,117,119],{"href":118},"/blog/rpadovani-ask-a-hacker/","blog feature"," with ",[16,122,125],{"href":123,"rel":124},"https://hackerone.com/rpadovani?type=user",[],"@rpadovani",". You can ",[16,128,131],{"href":129,"rel":130},"https://gitlab.com/rpadovani",[],"check him out on GitLab too",".",[71,134,135,136,132],{},"Kicked off a new Ask Me Anything (AMA) series with some of our top bug bounty hunters. You can see our first ",[16,137,140],{"href":138,"rel":139},"https://youtu.be/SK_vuZCafZ4",[],"AMA with Riccardo Padovani here",[71,142,143,144,132],{},"Began reporting our monthly program metrics and give shout-outs to the months’ high earners or critical bug contributors! See ",[16,145,148],{"href":146,"rel":147},"https://twitter.com/gitlab/status/1330892872808271873",[],"the metrics we reported out last month",[12,150,151],{},"Together, we are stronger 💪.",[12,153,154,155,159],{},"Now, onto the really good stuff. We’re excited to announce the winners of our hacking contest, which commemorates our ",[16,156,158],{"href":157},"/blog/gitlab-hackerone-bug-bounty-program-is-public-today/","second year as a public bug bounty program",". 🎉 🥁 🐛",[12,161,162,163,167],{},"We announced a ",[16,164,166],{"href":165},"/blog/top-tips-for-better-bug-bounty-reports-and-a-hacker-contest/#celebrating-great-reports-and-great-reporters","bug bounty contest"," in October and received 138 reports from 87 different individuals between October 1 and November 30, and 55 of them were from new reporters!",[12,169,170],{},"Thanks to all who contributed! 🙌",[57,172,174],{"id":173},"congratulations-to-these-5-contest-winners","Congratulations to these 5 contest winners",[12,176,177,180,181,186],{},[64,178,179],{},"Most reputation points from submissions to our program."," Congratulations to ",[16,182,185],{"href":183,"rel":184},"https://hackerone.com/vaib25vicky",[],"@vaib25vicky"," who was the frontrunner for reputation points this period.",[12,188,189,195,196,201],{},[64,190,191,192],{},"Most reputation points ",[92,193,194],{},"collected by a reporter new to our program",". Congratulations to ",[16,197,200],{"href":198,"rel":199},"https://hackerone.com/fsky",[],"@fsky"," who clinched the highest reputation score of any new reporter to our program.",[12,203,204,180,207,212],{},[64,205,206],{},"Best written report.",[16,208,211],{"href":209,"rel":210},"http://hackerone.com/afewgoats",[],"@afewgoats",", your DoS report outlined multiple attack scenarios, provided us with a cool script to reproduce, and was clever and well written!",[12,214,215,180,218,223],{},[64,216,217],{},"Most innovative report.",[16,219,222],{"href":220,"rel":221},"https://hackerone.com/anshraj_srivastava",[],"@anshraj_srivastava",", your discovery surrounding private repositories was a first of its kind in our program.",[12,225,226,229,230,235],{},[64,227,228],{},"Most impactful finding."," Congratulations ",[16,231,234],{"href":232,"rel":233},"https://hackerone.com/ledz1996",[],"@ledz1996",", your report on stealing an API OAuth token was eye-opening and innovative.",[12,237,238],{},[92,239,240,241,246,247,132],{},"Since it is ",[16,242,245],{"href":243,"rel":244},"https://hackerone.com/gitlab#disclosure",[],"GitLab’s policy"," to share details via public GitLab.com issue 30 days after releasing a fix, more details surrounding the research from the best written report, most innovative report, and most impactful finding category winners will be released in future ",[16,248,250],{"href":249},"/whats-new/","security release blog posts",[252,253,255],"h3",{"id":254},"we-cannot-wait-to-send-you-one-of-these","We cannot wait to send you one of these:",[12,257,258,263,264,267],{},[259,260],"img",{"alt":261,"src":262},"custom GitLab Mechanical Keyboard","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397657/blog/Content%20Images/2020-bugbountykeyboard.png","\nThis Tanuki-powered Code V3 with ",[92,265,266],{},"gold-plated cherry mx brown switches"," will light up your hackety hack.",[12,269,270],{},"We know though, that 2020 has not been all cherry-plated switches. It's been a trying year for all of us, with plenty of graphs trending in all the wrong ways. There have been highlights though and this program has been a continued source of fresh, expert perspectives, aha moments and positive energy from the sheer skill and innovation the security researchers bring to our program. We’re grateful to have your continued contributions and partnership in making our product and company more secure. Here’s to a better 2021, together.",[12,272,273],{},"Happy hacking,",[12,275,276],{},"The GitLab Security team",{"title":48,"searchDepth":278,"depth":278,"links":279},2,[280,281,282],{"id":59,"depth":278,"text":60},{"id":98,"depth":278,"text":99},{"id":173,"depth":278,"text":174,"children":283},[284],{"id":254,"depth":285,"text":255},3,"security","2020-12-14","We take a look back at the year in bugs and bounties and celebrate the reporters and contributions that make us more secure.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671018/Blog/Hero%20Images/gitlab-security-blog-cover_3.png",{},true,"/en-us/blog/twenty-twenty-through-a-bug-bounty-lens",{"title":5,"description":288,"ogTitle":5,"ogDescription":288,"noIndex":291,"ogImage":292,"ogUrl":297,"ogSiteName":298,"ogType":299,"canonicalUrls":297},"https://about.gitlab.com/blog/twenty-twenty-through-a-bug-bounty-lens","https://about.gitlab.com","article","twenty-twenty-through-a-bug-bounty-lens","en-us/blog/twenty-twenty-through-a-bug-bounty-lens",[286,303],"bug bounty","BlogPost","llCABKEqtfkRwj1aC2_Axf4vmwa9IMqHAz_OdknYzRI",{"logo":307,"freeTrial":312,"sales":317,"login":322,"items":327,"search":653,"minimal":684,"duo":703,"switchNav":712,"pricingDeployment":723},{"config":308},{"href":309,"dataGaName":310,"dataGaLocation":311},"/","gitlab logo","header",{"text":313,"config":314},"Get free trial",{"href":315,"dataGaName":316,"dataGaLocation":311},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":318,"config":319},"Request a demo",{"href":320,"dataGaName":321,"dataGaLocation":311},"/sales/?contact-topic=request-demo","sales",{"text":323,"config":324},"Sign in",{"href":325,"dataGaName":326,"dataGaLocation":311},"https://gitlab.com/users/sign_in/","sign in",[328,357,457,462,575,631],{"text":329,"config":330,"menu":332},"Platform",{"dataNavLevelOne":331},"platform",{"type":333,"columns":334},"cards",[335,341,349],{"title":329,"description":336,"link":337},"The intelligent orchestration platform for DevSecOps",{"text":338,"config":339},"Explore our Platform",{"href":340,"dataGaName":331,"dataGaLocation":311},"/platform/",{"title":342,"description":343,"link":344},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":345,"config":346},"Meet GitLab Duo",{"href":347,"dataGaName":348,"dataGaLocation":311},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":350,"description":351,"link":352},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":353,"config":354},"Learn more",{"href":355,"dataGaName":356,"dataGaLocation":311},"/why-gitlab/","why gitlab",{"text":358,"left":294,"config":359,"menu":361},"Product",{"dataNavLevelOne":360},"solutions",{"type":362,"link":363,"columns":367,"feature":436},"lists",{"text":364,"config":365},"View all Solutions",{"href":366,"dataGaName":360,"dataGaLocation":311},"/solutions/",[368,392,415],{"title":369,"description":370,"link":371,"items":376},"Automation","CI/CD and automation to accelerate deployment",{"config":372},{"icon":373,"href":374,"dataGaName":375,"dataGaLocation":311},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[377,381,384,388],{"text":378,"config":379},"CI/CD",{"href":380,"dataGaLocation":311,"dataGaName":378},"/solutions/continuous-integration/",{"text":342,"config":382},{"href":347,"dataGaLocation":311,"dataGaName":383},"gitlab duo agent platform - product menu",{"text":385,"config":386},"Source Code Management",{"href":387,"dataGaLocation":311,"dataGaName":385},"/solutions/source-code-management/",{"text":389,"config":390},"Automated Software Delivery",{"href":374,"dataGaLocation":311,"dataGaName":391},"Automated software delivery",{"title":393,"description":394,"link":395,"items":400},"Security","Deliver code faster without compromising security",{"config":396},{"href":397,"dataGaName":398,"dataGaLocation":311,"icon":399},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[401,405,410],{"text":402,"config":403},"Application Security Testing",{"href":397,"dataGaName":404,"dataGaLocation":311},"Application security testing",{"text":406,"config":407},"Software Supply Chain Security",{"href":408,"dataGaLocation":311,"dataGaName":409},"/solutions/supply-chain/","Software supply chain security",{"text":411,"config":412},"Software Compliance",{"href":413,"dataGaName":414,"dataGaLocation":311},"/solutions/software-compliance/","software compliance",{"title":416,"link":417,"items":422},"Measurement",{"config":418},{"icon":419,"href":420,"dataGaName":421,"dataGaLocation":311},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[423,427,431],{"text":424,"config":425},"Visibility & Measurement",{"href":420,"dataGaLocation":311,"dataGaName":426},"Visibility and Measurement",{"text":428,"config":429},"Value Stream Management",{"href":430,"dataGaLocation":311,"dataGaName":428},"/solutions/value-stream-management/",{"text":432,"config":433},"Analytics & Insights",{"href":434,"dataGaLocation":311,"dataGaName":435},"/solutions/analytics-and-insights/","Analytics and insights",{"title":437,"type":362,"items":438},"GitLab for",[439,445,451],{"text":440,"config":441},"Enterprise",{"icon":442,"href":443,"dataGaLocation":311,"dataGaName":444},"Building","/enterprise/","enterprise",{"text":446,"config":447},"Small Business",{"icon":448,"href":449,"dataGaLocation":311,"dataGaName":450},"Work","/small-business/","small business",{"text":452,"config":453},"Public Sector",{"icon":454,"href":455,"dataGaLocation":311,"dataGaName":456},"Organization","/solutions/public-sector/","public sector",{"text":458,"config":459},"Pricing",{"href":460,"dataGaName":461,"dataGaLocation":311,"dataNavLevelOne":461},"/pricing/","pricing",{"text":463,"config":464,"menu":466},"Resources",{"dataNavLevelOne":465},"resources",{"type":362,"link":467,"columns":471,"feature":565},{"text":468,"config":469},"View all resources",{"href":470,"dataGaName":465,"dataGaLocation":311},"/resources/",[472,505,532],{"title":473,"items":474},"Getting started",[475,480,485,490,495,500],{"text":476,"config":477},"Install",{"href":478,"dataGaName":479,"dataGaLocation":311},"/install/","install",{"text":481,"config":482},"Quick start guides",{"href":483,"dataGaName":484,"dataGaLocation":311},"/get-started/","quick setup checklists",{"text":486,"config":487},"Learn",{"href":488,"dataGaLocation":311,"dataGaName":489},"https://university.gitlab.com/","learn",{"text":491,"config":492},"Product documentation",{"href":493,"dataGaName":494,"dataGaLocation":311},"https://docs.gitlab.com/","product documentation",{"text":496,"config":497},"Best practice videos",{"href":498,"dataGaName":499,"dataGaLocation":311},"/getting-started-videos/","best practice videos",{"text":501,"config":502},"Integrations",{"href":503,"dataGaName":504,"dataGaLocation":311},"/integrations/","integrations",{"title":506,"items":507},"Discover",[508,513,518,523,527],{"text":509,"config":510},"Customer success stories",{"href":511,"dataGaName":512,"dataGaLocation":311},"/customers/","customer success stories",{"text":514,"config":515},"Blog",{"href":516,"dataGaName":517,"dataGaLocation":311},"/blog/","blog",{"text":519,"config":520},"Demo Hub",{"href":521,"dataGaName":522,"dataGaLocation":311},"/demo-hub/","demo hub",{"text":524,"config":525},"The Source",{"href":526,"dataGaName":517,"dataGaLocation":311},"/the-source/",{"text":528,"config":529},"Remote",{"href":530,"dataGaName":531,"dataGaLocation":311},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":533,"items":534},"Connect",[535,540,545,550,555,560],{"text":536,"config":537},"GitLab Services",{"href":538,"dataGaName":539,"dataGaLocation":311},"/services/","services",{"text":541,"config":542},"Contribute",{"href":543,"dataGaName":544,"dataGaLocation":311},"https://contributors.gitlab.com","contribute",{"text":546,"config":547},"Community",{"href":548,"dataGaName":549,"dataGaLocation":311},"/community/","community",{"text":551,"config":552},"Forum",{"href":553,"dataGaName":554,"dataGaLocation":311},"https://forum.gitlab.com/","forum",{"text":556,"config":557},"Events",{"href":558,"dataGaName":559,"dataGaLocation":311},"/events/","events",{"text":561,"config":562},"Partners",{"href":563,"dataGaName":564,"dataGaLocation":311},"/partners/","partners",{"config":566,"title":569,"text":570,"link":571},{"background":567,"textColor":568},"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":572,"config":573},"Read the latest",{"href":249,"dataGaName":574,"dataGaLocation":311},"whats new",{"text":576,"config":577,"menu":579},"Company",{"dataNavLevelOne":578},"company",{"type":362,"columns":580},[581],{"items":582},[583,588,594,596,601,606,611,616,621,626],{"text":584,"config":585},"About",{"href":586,"dataGaName":587,"dataGaLocation":311},"/company/","about",{"text":589,"config":590,"footerGa":593},"Jobs",{"href":591,"dataGaName":592,"dataGaLocation":311},"/jobs/","jobs",{"dataGaName":592},{"text":556,"config":595},{"href":558,"dataGaName":559,"dataGaLocation":311},{"text":597,"config":598},"Leadership",{"href":599,"dataGaName":600,"dataGaLocation":311},"/company/team/e-group/","leadership",{"text":602,"config":603},"Handbook",{"href":604,"dataGaName":605,"dataGaLocation":311},"https://handbook.gitlab.com/","handbook",{"text":607,"config":608},"Investor relations",{"href":609,"dataGaName":610,"dataGaLocation":311},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":612,"config":613},"Trust Center",{"href":614,"dataGaName":615,"dataGaLocation":311},"/security/","trust center",{"text":617,"config":618},"AI Transparency Center",{"href":619,"dataGaName":620,"dataGaLocation":311},"/ai-transparency-center/","ai transparency center",{"text":622,"config":623},"Newsletter",{"href":624,"dataGaName":625,"dataGaLocation":311},"/company/contact/#contact-forms","newsletter",{"text":627,"config":628},"Press",{"href":629,"dataGaName":630,"dataGaLocation":311},"/press/","press",{"text":632,"config":633,"menu":634},"Contact us",{"dataNavLevelOne":578},{"type":362,"columns":635},[636],{"items":637},[638,643,648],{"text":639,"config":640},"Talk to sales",{"href":641,"dataGaName":642,"dataGaLocation":311},"/sales/","talk to sales",{"text":644,"config":645},"Support portal",{"href":646,"dataGaName":647,"dataGaLocation":311},"https://support.gitlab.com/hc/en-us","support portal",{"text":649,"config":650},"Customer portal",{"href":651,"dataGaName":652,"dataGaLocation":311},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":654,"login":655,"suggestions":662},"Close",{"text":656,"link":657},"To search repositories and projects, login to",{"text":658,"config":659},"gitlab.com",{"href":325,"dataGaName":660,"dataGaLocation":661},"search login","search",{"text":663,"default":664},"Suggestions",[665,667,671,673,677,681],{"text":342,"config":666},{"href":347,"dataGaName":342,"dataGaLocation":661},{"text":668,"config":669},"Code Suggestions (AI)",{"href":670,"dataGaName":668,"dataGaLocation":661},"/solutions/code-suggestions/",{"text":378,"config":672},{"href":380,"dataGaName":378,"dataGaLocation":661},{"text":674,"config":675},"GitLab on AWS",{"href":676,"dataGaName":674,"dataGaLocation":661},"/partners/technology-partners/aws/",{"text":678,"config":679},"GitLab on Google Cloud",{"href":680,"dataGaName":678,"dataGaLocation":661},"/partners/technology-partners/google-cloud-platform/",{"text":682,"config":683},"Why GitLab?",{"href":355,"dataGaName":682,"dataGaLocation":661},{"freeTrial":685,"mobileIcon":690,"desktopIcon":695,"secondaryButton":698},{"text":686,"config":687},"Start free trial",{"href":688,"dataGaName":316,"dataGaLocation":689},"https://gitlab.com/-/trials/new/","nav",{"altText":691,"config":692},"Gitlab Icon",{"src":693,"dataGaName":694,"dataGaLocation":689},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":691,"config":696},{"src":697,"dataGaName":694,"dataGaLocation":689},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":699,"config":700},"Get Started",{"href":701,"dataGaName":702,"dataGaLocation":689},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":704,"mobileIcon":708,"desktopIcon":710},{"text":705,"config":706},"Learn more about GitLab Duo",{"href":347,"dataGaName":707,"dataGaLocation":689},"gitlab duo",{"altText":691,"config":709},{"src":693,"dataGaName":694,"dataGaLocation":689},{"altText":691,"config":711},{"src":697,"dataGaName":694,"dataGaLocation":689},{"button":713,"mobileIcon":718,"desktopIcon":720},{"text":714,"config":715},"/switch",{"href":716,"dataGaName":717,"dataGaLocation":689},"#contact","switch",{"altText":691,"config":719},{"src":693,"dataGaName":694,"dataGaLocation":689},{"altText":691,"config":721},{"src":722,"dataGaName":694,"dataGaLocation":689},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":724,"mobileIcon":729,"desktopIcon":731},{"text":725,"config":726},"Back to pricing",{"href":460,"dataGaName":727,"dataGaLocation":689,"icon":728},"back to pricing","GoBack",{"altText":691,"config":730},{"src":693,"dataGaName":694,"dataGaLocation":689},{"altText":691,"config":732},{"src":697,"dataGaName":694,"dataGaLocation":689},{"title":734,"titleMobile":735,"button":736,"config":741},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":353,"config":737},{"href":738,"dataGaName":739,"dataGaLocation":740},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":742,"disabled":291},"release",{"data":744},{"text":745,"source":746,"edit":752,"contribute":757,"config":762,"items":767,"minimal":977},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":747,"config":748},"View page source",{"href":749,"dataGaName":750,"dataGaLocation":751},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":753,"config":754},"Edit this page",{"href":755,"dataGaName":756,"dataGaLocation":751},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":758,"config":759},"Please contribute",{"href":760,"dataGaName":761,"dataGaLocation":751},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":763,"facebook":764,"youtube":765,"linkedin":766},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[768,815,869,913,945],{"title":458,"links":769,"subMenu":784},[770,774,779],{"text":771,"config":772},"View plans",{"href":460,"dataGaName":773,"dataGaLocation":751},"view plans",{"text":775,"config":776},"Why Premium?",{"href":777,"dataGaName":778,"dataGaLocation":751},"/pricing/premium/","why premium",{"text":780,"config":781},"Why Ultimate?",{"href":782,"dataGaName":783,"dataGaLocation":751},"/pricing/ultimate/","why ultimate",[785],{"title":786,"links":787},"Contact Us",[788,791,793,795,800,805,810],{"text":789,"config":790},"Contact sales",{"href":641,"dataGaName":321,"dataGaLocation":751},{"text":644,"config":792},{"href":646,"dataGaName":647,"dataGaLocation":751},{"text":649,"config":794},{"href":651,"dataGaName":652,"dataGaLocation":751},{"text":796,"config":797},"Status",{"href":798,"dataGaName":799,"dataGaLocation":751},"https://status.gitlab.com/","status",{"text":801,"config":802},"Terms of use",{"href":803,"dataGaName":804,"dataGaLocation":751},"/terms/","terms of use",{"text":806,"config":807},"Privacy statement",{"href":808,"dataGaName":809,"dataGaLocation":751},"/privacy/","privacy statement",{"text":811,"config":812},"Cookie preferences",{"dataGaName":813,"dataGaLocation":751,"id":814,"isOneTrustButton":294},"cookie preferences","ot-sdk-btn",{"title":358,"links":816,"subMenu":825},[817,821],{"text":818,"config":819},"DevSecOps platform",{"href":340,"dataGaName":820,"dataGaLocation":751},"devsecops platform",{"text":822,"config":823},"AI-Assisted Development",{"href":347,"dataGaName":824,"dataGaLocation":751},"ai-assisted development",[826],{"title":827,"links":828},"Topics",[829,834,839,844,849,854,859,864],{"text":830,"config":831},"CICD",{"href":832,"dataGaName":833,"dataGaLocation":751},"/topics/ci-cd/","cicd",{"text":835,"config":836},"GitOps",{"href":837,"dataGaName":838,"dataGaLocation":751},"/topics/gitops/","gitops",{"text":840,"config":841},"DevOps",{"href":842,"dataGaName":843,"dataGaLocation":751},"/topics/devops/","devops",{"text":845,"config":846},"Version Control",{"href":847,"dataGaName":848,"dataGaLocation":751},"/topics/version-control/","version control",{"text":850,"config":851},"DevSecOps",{"href":852,"dataGaName":853,"dataGaLocation":751},"/topics/devsecops/","devsecops",{"text":855,"config":856},"Cloud Native",{"href":857,"dataGaName":858,"dataGaLocation":751},"/topics/cloud-native/","cloud native",{"text":860,"config":861},"AI for Coding",{"href":862,"dataGaName":863,"dataGaLocation":751},"/topics/devops/ai-for-coding/","ai for coding",{"text":865,"config":866},"Agentic AI",{"href":867,"dataGaName":868,"dataGaLocation":751},"/topics/agentic-ai/","agentic ai",{"title":870,"links":871},"Solutions",[872,874,876,881,885,888,892,895,897,900,903,908],{"text":402,"config":873},{"href":397,"dataGaName":402,"dataGaLocation":751},{"text":391,"config":875},{"href":374,"dataGaName":375,"dataGaLocation":751},{"text":877,"config":878},"Agile development",{"href":879,"dataGaName":880,"dataGaLocation":751},"/solutions/agile-delivery/","agile delivery",{"text":882,"config":883},"SCM",{"href":387,"dataGaName":884,"dataGaLocation":751},"source code management",{"text":830,"config":886},{"href":380,"dataGaName":887,"dataGaLocation":751},"continuous integration & delivery",{"text":889,"config":890},"Value stream management",{"href":430,"dataGaName":891,"dataGaLocation":751},"value stream management",{"text":835,"config":893},{"href":894,"dataGaName":838,"dataGaLocation":751},"/solutions/gitops/",{"text":440,"config":896},{"href":443,"dataGaName":444,"dataGaLocation":751},{"text":898,"config":899},"Small business",{"href":449,"dataGaName":450,"dataGaLocation":751},{"text":901,"config":902},"Public sector",{"href":455,"dataGaName":456,"dataGaLocation":751},{"text":904,"config":905},"Education",{"href":906,"dataGaName":907,"dataGaLocation":751},"/solutions/education/","education",{"text":909,"config":910},"Financial services",{"href":911,"dataGaName":912,"dataGaLocation":751},"/solutions/finance/","financial services",{"title":463,"links":914},[915,917,919,921,924,926,929,931,933,935,937,939,941,943],{"text":476,"config":916},{"href":478,"dataGaName":479,"dataGaLocation":751},{"text":481,"config":918},{"href":483,"dataGaName":484,"dataGaLocation":751},{"text":486,"config":920},{"href":488,"dataGaName":489,"dataGaLocation":751},{"text":491,"config":922},{"href":493,"dataGaName":923,"dataGaLocation":751},"docs",{"text":514,"config":925},{"href":516,"dataGaName":517,"dataGaLocation":751},{"text":927,"config":928},"What's new",{"href":249,"dataGaName":574,"dataGaLocation":751},{"text":509,"config":930},{"href":511,"dataGaName":512,"dataGaLocation":751},{"text":528,"config":932},{"href":530,"dataGaName":531,"dataGaLocation":751},{"text":536,"config":934},{"href":538,"dataGaName":539,"dataGaLocation":751},{"text":541,"config":936},{"href":543,"dataGaName":544,"dataGaLocation":751},{"text":546,"config":938},{"href":548,"dataGaName":549,"dataGaLocation":751},{"text":551,"config":940},{"href":553,"dataGaName":554,"dataGaLocation":751},{"text":556,"config":942},{"href":558,"dataGaName":559,"dataGaLocation":751},{"text":561,"config":944},{"href":563,"dataGaName":564,"dataGaLocation":751},{"title":576,"links":946},[947,949,951,953,955,957,961,966,968,970,972],{"text":584,"config":948},{"href":586,"dataGaName":578,"dataGaLocation":751},{"text":589,"config":950},{"href":591,"dataGaName":592,"dataGaLocation":751},{"text":597,"config":952},{"href":599,"dataGaName":600,"dataGaLocation":751},{"text":602,"config":954},{"href":604,"dataGaName":605,"dataGaLocation":751},{"text":607,"config":956},{"href":609,"dataGaName":610,"dataGaLocation":751},{"text":958,"config":959},"Sustainability",{"href":960,"dataGaName":958,"dataGaLocation":751},"/sustainability/",{"text":962,"config":963},"Diversity, inclusion and belonging (DIB)",{"href":964,"dataGaName":965,"dataGaLocation":751},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":612,"config":967},{"href":614,"dataGaName":615,"dataGaLocation":751},{"text":622,"config":969},{"href":624,"dataGaName":625,"dataGaLocation":751},{"text":627,"config":971},{"href":629,"dataGaName":630,"dataGaLocation":751},{"text":973,"config":974},"Modern Slavery Transparency Statement",{"href":975,"dataGaName":976,"dataGaLocation":751},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":978},[979,982,985],{"text":980,"config":981},"Terms",{"href":803,"dataGaName":804,"dataGaLocation":751},{"text":983,"config":984},"Cookies",{"dataGaName":813,"dataGaLocation":751,"id":814,"isOneTrustButton":294},{"text":986,"config":987},"Privacy",{"href":808,"dataGaName":809,"dataGaLocation":751},[989],{"id":990,"title":7,"body":290,"config":991,"content":993,"description":290,"extension":997,"meta":998,"navigation":294,"path":999,"seo":1000,"stem":1001,"__hash__":1002},"blogAuthors/en-us/blog/authors/heather-simpson.yml",{"template":992},"BlogAuthor",{"name":7,"config":994},{"headshot":995,"ctfId":996},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","hsimpson","yml",{},"/en-us/blog/authors/heather-simpson",{},"en-us/blog/authors/heather-simpson","4CpsZWXsBE_aB4RLpF20WPoTR1QnmwDhrVLV8WUGGTk",[1004,1012,1020],{"title":1005,"description":1006,"heroImage":1007,"category":286,"date":1008,"authors":1009,"slug":1011,"externalUrl":290},"How GitLab tracks vulnerabilities through refactors and reformatting","Learn how GitLab's improved Scope+Offset fingerprinting keeps vulnerability tracking stable across comments, blank lines, and reformatting.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1759320418/xjmqcozxzt4frx0hori3.png","2026-08-12",[1010],"Julian Thome","improved-scope-offset-fingerprinting",{"title":1013,"description":1014,"heroImage":1007,"category":286,"date":1015,"authors":1016,"slug":1019,"externalUrl":290},"GitLab Secrets Manager adds ESO, Terraform, API support","Simplify credential management across your stack. GitLab Secrets Manager provides secure retrieval in Kubernetes, Terraform, and external workflows.","2026-08-06",[1017,1018],"Erick Bajao","Joe Randazzo","gitlab-secrets-manager-add-eso-terraform-api-support",{"title":1021,"description":1022,"heroImage":1023,"category":286,"date":1024,"authors":1025,"slug":1027,"externalUrl":290},"Secure every commit to production with Claude and GitLab","Claude Security catches vulnerabilities inside a coding session. GitLab picks up from there, scanning, enforcing policy, and producing audit evidence for the software lifecycle. ","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756122536/akivvcnafog9c4dhhzkp.png","2026-08-03",[1026],"Alisa Ho","claude-security-and-gitlab",{"promotions":1029},[1030,1044,1056,1067],{"id":1031,"categories":1032,"header":1034,"text":1035,"button":1036,"image":1041},"ai-modernization",[1033],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1037,"config":1038},"Get your AI maturity score",{"href":1039,"dataGaName":1040,"dataGaLocation":517},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1042},{"src":1043},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1045,"categories":1046,"header":1048,"text":1035,"button":1049,"image":1053},"devops-modernization",[1047,853],"product","Are you just managing tools or shipping innovation?",{"text":1050,"config":1051},"Get your DevOps maturity score",{"href":1052,"dataGaName":1040,"dataGaLocation":517},"/assessments/devops-modernization-assessment/",{"config":1054},{"src":1055},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1057,"categories":1058,"header":1059,"text":1035,"button":1060,"image":1064},"security-modernization",[286],"Are you trading speed for security?",{"text":1061,"config":1062},"Get your security maturity score",{"href":1063,"dataGaName":1040,"dataGaLocation":517},"/assessments/security-modernization-assessment/",{"config":1065},{"src":1066},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1068,"paths":1069,"header":1072,"text":1073,"button":1074,"image":1079},"github-azure-migration",[1070,1071],"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":1075,"config":1076},"See how GitLab compares to GitHub",{"href":1077,"dataGaName":1078,"dataGaLocation":517},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1080},{"src":1055},{"header":1082,"blurb":1083,"button":1084,"secondaryButton":1089},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1085,"config":1086},"Get your free trial",{"href":1087,"dataGaName":316,"dataGaLocation":1088},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":789,"config":1090},{"href":641,"dataGaName":321,"dataGaLocation":1088},1786803774435]