[{"data":1,"prerenderedAt":1033},["ShallowReactive",2],{"/blog/ask-a-hacker-a-conversation-with-ahacker1":3,"navigation-en-us":248,"banner-en-us":675,"footer-en-us":685,"blog-post-authors-en-us-Ottilia Westerlund":930,"blog-related-posts-en-us-ask-a-hacker-a-conversation-with-ahacker1":945,"blog-promotions-en-us":970,"next-steps-en-us":1023},{"id":4,"title":5,"authors":6,"body":8,"category":225,"date":226,"description":227,"extension":228,"externalUrl":229,"faq":229,"featured":230,"heroImage":231,"meta":232,"navigation":230,"path":233,"seo":234,"slug":239,"stem":240,"tags":241,"template":246,"updatedDate":229,"__hash__":247},"blogPosts/en-us/blog/ask-a-hacker-a-conversation-with-ahacker1.md","Ask a hacker: A conversation with ahacker1",[7],"Ottilia Westerlund",{"type":9,"value":10,"toc":212},"minimark",[11,22,27,36,40,43,49,52,57,60,65,68,73,76,81,84,97,101,106,109,114,117,122,125,129,132,146,155,159,183,187,190,201],[12,13,14,15,21],"p",{},"At GitLab we have a tradition: Every year, we invite a bug bounty hunter to join us for an AMA. This year, we met with Alexander Siyou Tan, also known as ",[16,17,20],"a",{"href":18,"rel":19},"https://hackerone.com/ahacker1?type=user",[],"ahacker1",", and did a deep dive into all aspects of bug bounty hunting.",[23,24,26],"h2",{"id":25},"about-alexander-ahacker1","About Alexander (ahacker1)",[12,28,29,30,35],{},"Alexander is passionate about hacking complex SaaS applications, with a particular interest in authorization-based vulnerabilities. Currently, he's focusing on ",[16,31,34],{"href":32,"rel":33},"https://about.gitlab.com/blog/the-ultimate-guide-to-enabling-saml/",[],"SAML and SSO"," research. His hacking journey began during the Covid-19 pandemic, when he transitioned from gaming to exploring game hacks and easter eggs.",[23,37,39],{"id":38},"highlights-from-the-ama","Highlights from the AMA",[12,41,42],{},"Here are some of the questions AMA attendees asked Alexander, and his responses.",[12,44,45],{},[46,47,48],"strong",{},"What are the tools you use in your research?",[12,50,51],{},"I use RubyMine as my IDE, as I find it helps with analyzing code. You can jump to  different parts of the code, and that helps with efficiency and allows you to search quickly and determine interesting behavior. I used to just use BurpSuite, but not so much anymore. I mainly focus on using JetBrains to review repositories on GitLab.",[12,53,54],{},[46,55,56],{},"Have you explored using AI to assist in finding and/or exploiting vulnerabilities?",[12,58,59],{},"Yes! When I learn about a new feature or subject, I may ask ChatGPT how it works. It may give some insights or leads – when I do SAML research I use it.",[12,61,62],{},[46,63,64],{},"Tell us about moving into SAML and the experience of finding the awesome bugs in that area.",[12,66,67],{},"SAML is like a SaaS application within a SaaS application. There's a 100-page document on how SAML works, offering infinite possibilities. I focus on code analysis, reviewing the approximately 20 libraries available. While hacking SAML can be time-consuming due to setup and configuration, the payoff can be significant.",[12,69,70],{},[46,71,72],{},"What’s next after SAML? Will you keep digging?",[12,74,75],{},"I will fix SAML. I want to fix libraries. Not sure what’s next - maybe SSO stuff!",[77,78,80],"h3",{"id":79},"alexanders-tips-for-the-gitlab-bug-bounty-program","Alexander's tips for the GitLab Bug Bounty Program",[12,82,83],{},"Alexander offered the following advice for those interested in GitLab's Bug Bounty Program:",[85,86,87,91,94],"ol",{},[88,89,90],"li",{},"Leverage GitLab's open source nature for code analysis.",[88,92,93],{},"Study patch releases to learn reverse-engineering techniques.",[88,95,96],{},"Review GitLab's public issues and disclosed reports for insights.",[77,98,100],{"id":99},"getting-to-know-our-hacker","Getting to know our hacker",[12,102,103],{},[46,104,105],{},"What do you do when you don't hack?",[12,107,108],{},"I play games, I also go out on walks and explore nature/hike. It’s a nice break from sitting at the computer.",[12,110,111],{},[46,112,113],{},"How long do you think you would survive in a zombie apocalypse?",[12,115,116],{},"Not long. Without the internet, I don’t think I'd be able to adapt.",[12,118,119],{},[46,120,121],{},"Is cereal a type of soup?",[12,123,124],{},"It most definitely is. It has both liquid and food in it.",[23,126,128],{"id":127},"watch-the-replay","Watch the replay",[12,130,131],{},"For those interested in the full AMA, check out the YouTube live playback.",[133,134,137,138],"figure",{"className":135},[136],"video_container","\n  ",[139,140,145],"iframe",{"src":141,"title":142,"frameBorder":143,"allowFullScreen":144},"https://www.youtube.com/embed/EPV0eNOOfv4?si=byNqXWKZzZLXfLfW","GitLab Ask a Hacker AMA with Alexander Siyou Tan (@ahacker1)","0","true"," ",[12,147,148,149,154],{},"We extend our gratitude to all participants and, of course, to Alexander for sharing his insights. Keep up with Alexander's latest activities on his ",[16,150,153],{"href":151,"rel":152},"https://hackerone.com/ahacker1",[],"HackerOne profile",".",[23,156,158],{"id":157},"more-ask-a-hacker-amas","More \"Ask a Hacker\" AMAs",[160,161,162,169,176],"ul",{},[88,163,164],{},[16,165,168],{"href":166,"rel":167},"https://about.gitlab.com/blog/ask-a-hacker/",[],"Ask a hacker - 0xn3va",[88,170,171],{},[16,172,175],{"href":173,"rel":174},"https://about.gitlab.com/blog/ajxchapman-ask-a-hacker/",[],"Ask a hacker - ajxchapman",[88,177,178],{},[16,179,182],{"href":180,"rel":181},"https://about.gitlab.com/blog/rpadovani-ask-a-hacker/",[],"Ask a hacker - rpadovani",[23,184,186],{"id":185},"about-the-gitlab-bug-bounty-program","About the GitLab Bug Bounty Program",[12,188,189],{},"The GitLab Bug Bounty Program aims to enhance the security of our products and services. Managed by our Application Security team, the program has achieved significant milestones since its public launch in December 2018, including:",[160,191,192,195,198],{},[88,193,194],{},"Resolved 1,684 reports",[88,196,197],{},"Awarded over $4.7 million in bounties",[88,199,200],{},"Thanked 655 hackers for their findings",[202,203,204],"blockquote",{},[12,205,206,207,154],{},"Learn more about the ",[16,208,211],{"href":209,"rel":210},"https://hackerone.com/gitlab",[],"GitLab Bug Bounty Program",{"title":213,"searchDepth":214,"depth":214,"links":215},"",2,[216,217,222,223,224],{"id":25,"depth":214,"text":26},{"id":38,"depth":214,"text":39,"children":218},[219,221],{"id":79,"depth":220,"text":80},3,{"id":99,"depth":220,"text":100},{"id":127,"depth":214,"text":128},{"id":157,"depth":214,"text":158},{"id":185,"depth":214,"text":186},"open-source","2024-12-12","Alexander Siyou Tan, also known as ahacker1, joined us for an AMA to discuss how he got into hacking and some of his best bug bounty hunting strategies.","md",null,true,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098255/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%282%29_5kE1qyriiwHs6cpvIwuyB_1750098255490.png",{},"/en-us/blog/ask-a-hacker-a-conversation-with-ahacker1",{"title":5,"description":227,"ogTitle":5,"ogDescription":227,"noIndex":235,"ogImage":231,"ogUrl":236,"ogSiteName":237,"ogType":238,"canonicalUrls":236},false,"https://about.gitlab.com/blog/ask-a-hacker-a-conversation-with-ahacker1","https://about.gitlab.com","article","ask-a-hacker-a-conversation-with-ahacker1","en-us/blog/ask-a-hacker-a-conversation-with-ahacker1",[242,243,244,245],"bug bounty","security","open source","community","BlogPost","ZsTvbqqlK5TD6w0LMo0ifYr8pFlAe_uPV9W_TAqFENE",{"logo":249,"freeTrial":254,"sales":259,"login":264,"items":269,"search":595,"minimal":626,"duo":645,"switchNav":654,"pricingDeployment":665},{"config":250},{"href":251,"dataGaName":252,"dataGaLocation":253},"/","gitlab logo","header",{"text":255,"config":256},"Get free trial",{"href":257,"dataGaName":258,"dataGaLocation":253},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":260,"config":261},"Request a demo",{"href":262,"dataGaName":263,"dataGaLocation":253},"/sales/?contact-topic=request-demo","sales",{"text":265,"config":266},"Sign in",{"href":267,"dataGaName":268,"dataGaLocation":253},"https://gitlab.com/users/sign_in/","sign in",[270,299,399,404,517,573],{"text":271,"config":272,"menu":274},"Platform",{"dataNavLevelOne":273},"platform",{"type":275,"columns":276},"cards",[277,283,291],{"title":271,"description":278,"link":279},"The intelligent orchestration platform for DevSecOps",{"text":280,"config":281},"Explore our Platform",{"href":282,"dataGaName":273,"dataGaLocation":253},"/platform/",{"title":284,"description":285,"link":286},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":287,"config":288},"Meet GitLab Duo",{"href":289,"dataGaName":290,"dataGaLocation":253},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":292,"description":293,"link":294},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":295,"config":296},"Learn more",{"href":297,"dataGaName":298,"dataGaLocation":253},"/why-gitlab/","why gitlab",{"text":300,"left":230,"config":301,"menu":303},"Product",{"dataNavLevelOne":302},"solutions",{"type":304,"link":305,"columns":309,"feature":378},"lists",{"text":306,"config":307},"View all Solutions",{"href":308,"dataGaName":302,"dataGaLocation":253},"/solutions/",[310,334,357],{"title":311,"description":312,"link":313,"items":318},"Automation","CI/CD and automation to accelerate deployment",{"config":314},{"icon":315,"href":316,"dataGaName":317,"dataGaLocation":253},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[319,323,326,330],{"text":320,"config":321},"CI/CD",{"href":322,"dataGaLocation":253,"dataGaName":320},"/solutions/continuous-integration/",{"text":284,"config":324},{"href":289,"dataGaLocation":253,"dataGaName":325},"gitlab duo agent platform - product menu",{"text":327,"config":328},"Source Code Management",{"href":329,"dataGaLocation":253,"dataGaName":327},"/solutions/source-code-management/",{"text":331,"config":332},"Automated Software Delivery",{"href":316,"dataGaLocation":253,"dataGaName":333},"Automated software delivery",{"title":335,"description":336,"link":337,"items":342},"Security","Deliver code faster without compromising security",{"config":338},{"href":339,"dataGaName":340,"dataGaLocation":253,"icon":341},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[343,347,352],{"text":344,"config":345},"Application Security Testing",{"href":339,"dataGaName":346,"dataGaLocation":253},"Application security testing",{"text":348,"config":349},"Software Supply Chain Security",{"href":350,"dataGaLocation":253,"dataGaName":351},"/solutions/supply-chain/","Software supply chain security",{"text":353,"config":354},"Software Compliance",{"href":355,"dataGaName":356,"dataGaLocation":253},"/solutions/software-compliance/","software compliance",{"title":358,"link":359,"items":364},"Measurement",{"config":360},{"icon":361,"href":362,"dataGaName":363,"dataGaLocation":253},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[365,369,373],{"text":366,"config":367},"Visibility & Measurement",{"href":362,"dataGaLocation":253,"dataGaName":368},"Visibility and Measurement",{"text":370,"config":371},"Value Stream Management",{"href":372,"dataGaLocation":253,"dataGaName":370},"/solutions/value-stream-management/",{"text":374,"config":375},"Analytics & Insights",{"href":376,"dataGaLocation":253,"dataGaName":377},"/solutions/analytics-and-insights/","Analytics and insights",{"title":379,"type":304,"items":380},"GitLab for",[381,387,393],{"text":382,"config":383},"Enterprise",{"icon":384,"href":385,"dataGaLocation":253,"dataGaName":386},"Building","/enterprise/","enterprise",{"text":388,"config":389},"Small Business",{"icon":390,"href":391,"dataGaLocation":253,"dataGaName":392},"Work","/small-business/","small business",{"text":394,"config":395},"Public Sector",{"icon":396,"href":397,"dataGaLocation":253,"dataGaName":398},"Organization","/solutions/public-sector/","public sector",{"text":400,"config":401},"Pricing",{"href":402,"dataGaName":403,"dataGaLocation":253,"dataNavLevelOne":403},"/pricing/","pricing",{"text":405,"config":406,"menu":408},"Resources",{"dataNavLevelOne":407},"resources",{"type":304,"link":409,"columns":413,"feature":506},{"text":410,"config":411},"View all resources",{"href":412,"dataGaName":407,"dataGaLocation":253},"/resources/",[414,447,474],{"title":415,"items":416},"Getting started",[417,422,427,432,437,442],{"text":418,"config":419},"Install",{"href":420,"dataGaName":421,"dataGaLocation":253},"/install/","install",{"text":423,"config":424},"Quick start guides",{"href":425,"dataGaName":426,"dataGaLocation":253},"/get-started/","quick setup checklists",{"text":428,"config":429},"Learn",{"href":430,"dataGaLocation":253,"dataGaName":431},"https://university.gitlab.com/","learn",{"text":433,"config":434},"Product documentation",{"href":435,"dataGaName":436,"dataGaLocation":253},"https://docs.gitlab.com/","product documentation",{"text":438,"config":439},"Best practice videos",{"href":440,"dataGaName":441,"dataGaLocation":253},"/getting-started-videos/","best practice videos",{"text":443,"config":444},"Integrations",{"href":445,"dataGaName":446,"dataGaLocation":253},"/integrations/","integrations",{"title":448,"items":449},"Discover",[450,455,460,465,469],{"text":451,"config":452},"Customer success stories",{"href":453,"dataGaName":454,"dataGaLocation":253},"/customers/","customer success stories",{"text":456,"config":457},"Blog",{"href":458,"dataGaName":459,"dataGaLocation":253},"/blog/","blog",{"text":461,"config":462},"Demo Hub",{"href":463,"dataGaName":464,"dataGaLocation":253},"/demo-hub/","demo hub",{"text":466,"config":467},"The Source",{"href":468,"dataGaName":459,"dataGaLocation":253},"/the-source/",{"text":470,"config":471},"Remote",{"href":472,"dataGaName":473,"dataGaLocation":253},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":475,"items":476},"Connect",[477,482,487,491,496,501],{"text":478,"config":479},"GitLab Services",{"href":480,"dataGaName":481,"dataGaLocation":253},"/services/","services",{"text":483,"config":484},"Contribute",{"href":485,"dataGaName":486,"dataGaLocation":253},"https://contributors.gitlab.com","contribute",{"text":488,"config":489},"Community",{"href":490,"dataGaName":245,"dataGaLocation":253},"/community/",{"text":492,"config":493},"Forum",{"href":494,"dataGaName":495,"dataGaLocation":253},"https://forum.gitlab.com/","forum",{"text":497,"config":498},"Events",{"href":499,"dataGaName":500,"dataGaLocation":253},"/events/","events",{"text":502,"config":503},"Partners",{"href":504,"dataGaName":505,"dataGaLocation":253},"/partners/","partners",{"config":507,"title":510,"text":511,"link":512},{"background":508,"textColor":509},"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":513,"config":514},"Read the latest",{"href":515,"dataGaName":516,"dataGaLocation":253},"/whats-new/","whats new",{"text":518,"config":519,"menu":521},"Company",{"dataNavLevelOne":520},"company",{"type":304,"columns":522},[523],{"items":524},[525,530,536,538,543,548,553,558,563,568],{"text":526,"config":527},"About",{"href":528,"dataGaName":529,"dataGaLocation":253},"/company/","about",{"text":531,"config":532,"footerGa":535},"Jobs",{"href":533,"dataGaName":534,"dataGaLocation":253},"/jobs/","jobs",{"dataGaName":534},{"text":497,"config":537},{"href":499,"dataGaName":500,"dataGaLocation":253},{"text":539,"config":540},"Leadership",{"href":541,"dataGaName":542,"dataGaLocation":253},"/company/team/e-group/","leadership",{"text":544,"config":545},"Handbook",{"href":546,"dataGaName":547,"dataGaLocation":253},"https://handbook.gitlab.com/","handbook",{"text":549,"config":550},"Investor relations",{"href":551,"dataGaName":552,"dataGaLocation":253},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":554,"config":555},"Trust Center",{"href":556,"dataGaName":557,"dataGaLocation":253},"/security/","trust center",{"text":559,"config":560},"AI Transparency Center",{"href":561,"dataGaName":562,"dataGaLocation":253},"/ai-transparency-center/","ai transparency center",{"text":564,"config":565},"Newsletter",{"href":566,"dataGaName":567,"dataGaLocation":253},"/company/contact/#contact-forms","newsletter",{"text":569,"config":570},"Press",{"href":571,"dataGaName":572,"dataGaLocation":253},"/press/","press",{"text":574,"config":575,"menu":576},"Contact us",{"dataNavLevelOne":520},{"type":304,"columns":577},[578],{"items":579},[580,585,590],{"text":581,"config":582},"Talk to sales",{"href":583,"dataGaName":584,"dataGaLocation":253},"/sales/","talk to sales",{"text":586,"config":587},"Support portal",{"href":588,"dataGaName":589,"dataGaLocation":253},"https://support.gitlab.com/hc/en-us","support portal",{"text":591,"config":592},"Customer portal",{"href":593,"dataGaName":594,"dataGaLocation":253},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":596,"login":597,"suggestions":604},"Close",{"text":598,"link":599},"To search repositories and projects, login to",{"text":600,"config":601},"gitlab.com",{"href":267,"dataGaName":602,"dataGaLocation":603},"search login","search",{"text":605,"default":606},"Suggestions",[607,609,613,615,619,623],{"text":284,"config":608},{"href":289,"dataGaName":284,"dataGaLocation":603},{"text":610,"config":611},"Code Suggestions (AI)",{"href":612,"dataGaName":610,"dataGaLocation":603},"/solutions/code-suggestions/",{"text":320,"config":614},{"href":322,"dataGaName":320,"dataGaLocation":603},{"text":616,"config":617},"GitLab on AWS",{"href":618,"dataGaName":616,"dataGaLocation":603},"/partners/technology-partners/aws/",{"text":620,"config":621},"GitLab on Google Cloud",{"href":622,"dataGaName":620,"dataGaLocation":603},"/partners/technology-partners/google-cloud-platform/",{"text":624,"config":625},"Why GitLab?",{"href":297,"dataGaName":624,"dataGaLocation":603},{"freeTrial":627,"mobileIcon":632,"desktopIcon":637,"secondaryButton":640},{"text":628,"config":629},"Start free trial",{"href":630,"dataGaName":258,"dataGaLocation":631},"https://gitlab.com/-/trials/new/","nav",{"altText":633,"config":634},"Gitlab Icon",{"src":635,"dataGaName":636,"dataGaLocation":631},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":633,"config":638},{"src":639,"dataGaName":636,"dataGaLocation":631},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":641,"config":642},"Get Started",{"href":643,"dataGaName":644,"dataGaLocation":631},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":646,"mobileIcon":650,"desktopIcon":652},{"text":647,"config":648},"Learn more about GitLab Duo",{"href":289,"dataGaName":649,"dataGaLocation":631},"gitlab duo",{"altText":633,"config":651},{"src":635,"dataGaName":636,"dataGaLocation":631},{"altText":633,"config":653},{"src":639,"dataGaName":636,"dataGaLocation":631},{"button":655,"mobileIcon":660,"desktopIcon":662},{"text":656,"config":657},"/switch",{"href":658,"dataGaName":659,"dataGaLocation":631},"#contact","switch",{"altText":633,"config":661},{"src":635,"dataGaName":636,"dataGaLocation":631},{"altText":633,"config":663},{"src":664,"dataGaName":636,"dataGaLocation":631},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":666,"mobileIcon":671,"desktopIcon":673},{"text":667,"config":668},"Back to pricing",{"href":402,"dataGaName":669,"dataGaLocation":631,"icon":670},"back to pricing","GoBack",{"altText":633,"config":672},{"src":635,"dataGaName":636,"dataGaLocation":631},{"altText":633,"config":674},{"src":639,"dataGaName":636,"dataGaLocation":631},{"title":676,"titleMobile":677,"button":678,"config":683},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":295,"config":679},{"href":680,"dataGaName":681,"dataGaLocation":682},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":684,"disabled":235},"release",{"data":686},{"text":687,"source":688,"edit":694,"contribute":699,"config":704,"items":709,"minimal":919},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":689,"config":690},"View page source",{"href":691,"dataGaName":692,"dataGaLocation":693},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":695,"config":696},"Edit this page",{"href":697,"dataGaName":698,"dataGaLocation":693},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":700,"config":701},"Please contribute",{"href":702,"dataGaName":703,"dataGaLocation":693},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":705,"facebook":706,"youtube":707,"linkedin":708},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[710,757,811,855,887],{"title":400,"links":711,"subMenu":726},[712,716,721],{"text":713,"config":714},"View plans",{"href":402,"dataGaName":715,"dataGaLocation":693},"view plans",{"text":717,"config":718},"Why Premium?",{"href":719,"dataGaName":720,"dataGaLocation":693},"/pricing/premium/","why premium",{"text":722,"config":723},"Why Ultimate?",{"href":724,"dataGaName":725,"dataGaLocation":693},"/pricing/ultimate/","why ultimate",[727],{"title":728,"links":729},"Contact Us",[730,733,735,737,742,747,752],{"text":731,"config":732},"Contact sales",{"href":583,"dataGaName":263,"dataGaLocation":693},{"text":586,"config":734},{"href":588,"dataGaName":589,"dataGaLocation":693},{"text":591,"config":736},{"href":593,"dataGaName":594,"dataGaLocation":693},{"text":738,"config":739},"Status",{"href":740,"dataGaName":741,"dataGaLocation":693},"https://status.gitlab.com/","status",{"text":743,"config":744},"Terms of use",{"href":745,"dataGaName":746,"dataGaLocation":693},"/terms/","terms of use",{"text":748,"config":749},"Privacy statement",{"href":750,"dataGaName":751,"dataGaLocation":693},"/privacy/","privacy statement",{"text":753,"config":754},"Cookie preferences",{"dataGaName":755,"dataGaLocation":693,"id":756,"isOneTrustButton":230},"cookie preferences","ot-sdk-btn",{"title":300,"links":758,"subMenu":767},[759,763],{"text":760,"config":761},"DevSecOps platform",{"href":282,"dataGaName":762,"dataGaLocation":693},"devsecops platform",{"text":764,"config":765},"AI-Assisted Development",{"href":289,"dataGaName":766,"dataGaLocation":693},"ai-assisted development",[768],{"title":769,"links":770},"Topics",[771,776,781,786,791,796,801,806],{"text":772,"config":773},"CICD",{"href":774,"dataGaName":775,"dataGaLocation":693},"/topics/ci-cd/","cicd",{"text":777,"config":778},"GitOps",{"href":779,"dataGaName":780,"dataGaLocation":693},"/topics/gitops/","gitops",{"text":782,"config":783},"DevOps",{"href":784,"dataGaName":785,"dataGaLocation":693},"/topics/devops/","devops",{"text":787,"config":788},"Version Control",{"href":789,"dataGaName":790,"dataGaLocation":693},"/topics/version-control/","version control",{"text":792,"config":793},"DevSecOps",{"href":794,"dataGaName":795,"dataGaLocation":693},"/topics/devsecops/","devsecops",{"text":797,"config":798},"Cloud Native",{"href":799,"dataGaName":800,"dataGaLocation":693},"/topics/cloud-native/","cloud native",{"text":802,"config":803},"AI for Coding",{"href":804,"dataGaName":805,"dataGaLocation":693},"/topics/devops/ai-for-coding/","ai for coding",{"text":807,"config":808},"Agentic AI",{"href":809,"dataGaName":810,"dataGaLocation":693},"/topics/agentic-ai/","agentic ai",{"title":812,"links":813},"Solutions",[814,816,818,823,827,830,834,837,839,842,845,850],{"text":344,"config":815},{"href":339,"dataGaName":344,"dataGaLocation":693},{"text":333,"config":817},{"href":316,"dataGaName":317,"dataGaLocation":693},{"text":819,"config":820},"Agile development",{"href":821,"dataGaName":822,"dataGaLocation":693},"/solutions/agile-delivery/","agile delivery",{"text":824,"config":825},"SCM",{"href":329,"dataGaName":826,"dataGaLocation":693},"source code management",{"text":772,"config":828},{"href":322,"dataGaName":829,"dataGaLocation":693},"continuous integration & delivery",{"text":831,"config":832},"Value stream management",{"href":372,"dataGaName":833,"dataGaLocation":693},"value stream management",{"text":777,"config":835},{"href":836,"dataGaName":780,"dataGaLocation":693},"/solutions/gitops/",{"text":382,"config":838},{"href":385,"dataGaName":386,"dataGaLocation":693},{"text":840,"config":841},"Small business",{"href":391,"dataGaName":392,"dataGaLocation":693},{"text":843,"config":844},"Public sector",{"href":397,"dataGaName":398,"dataGaLocation":693},{"text":846,"config":847},"Education",{"href":848,"dataGaName":849,"dataGaLocation":693},"/solutions/education/","education",{"text":851,"config":852},"Financial services",{"href":853,"dataGaName":854,"dataGaLocation":693},"/solutions/finance/","financial services",{"title":405,"links":856},[857,859,861,863,866,868,871,873,875,877,879,881,883,885],{"text":418,"config":858},{"href":420,"dataGaName":421,"dataGaLocation":693},{"text":423,"config":860},{"href":425,"dataGaName":426,"dataGaLocation":693},{"text":428,"config":862},{"href":430,"dataGaName":431,"dataGaLocation":693},{"text":433,"config":864},{"href":435,"dataGaName":865,"dataGaLocation":693},"docs",{"text":456,"config":867},{"href":458,"dataGaName":459,"dataGaLocation":693},{"text":869,"config":870},"What's new",{"href":515,"dataGaName":516,"dataGaLocation":693},{"text":451,"config":872},{"href":453,"dataGaName":454,"dataGaLocation":693},{"text":470,"config":874},{"href":472,"dataGaName":473,"dataGaLocation":693},{"text":478,"config":876},{"href":480,"dataGaName":481,"dataGaLocation":693},{"text":483,"config":878},{"href":485,"dataGaName":486,"dataGaLocation":693},{"text":488,"config":880},{"href":490,"dataGaName":245,"dataGaLocation":693},{"text":492,"config":882},{"href":494,"dataGaName":495,"dataGaLocation":693},{"text":497,"config":884},{"href":499,"dataGaName":500,"dataGaLocation":693},{"text":502,"config":886},{"href":504,"dataGaName":505,"dataGaLocation":693},{"title":518,"links":888},[889,891,893,895,897,899,903,908,910,912,914],{"text":526,"config":890},{"href":528,"dataGaName":520,"dataGaLocation":693},{"text":531,"config":892},{"href":533,"dataGaName":534,"dataGaLocation":693},{"text":539,"config":894},{"href":541,"dataGaName":542,"dataGaLocation":693},{"text":544,"config":896},{"href":546,"dataGaName":547,"dataGaLocation":693},{"text":549,"config":898},{"href":551,"dataGaName":552,"dataGaLocation":693},{"text":900,"config":901},"Sustainability",{"href":902,"dataGaName":900,"dataGaLocation":693},"/sustainability/",{"text":904,"config":905},"Diversity, inclusion and belonging (DIB)",{"href":906,"dataGaName":907,"dataGaLocation":693},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":554,"config":909},{"href":556,"dataGaName":557,"dataGaLocation":693},{"text":564,"config":911},{"href":566,"dataGaName":567,"dataGaLocation":693},{"text":569,"config":913},{"href":571,"dataGaName":572,"dataGaLocation":693},{"text":915,"config":916},"Modern Slavery Transparency Statement",{"href":917,"dataGaName":918,"dataGaLocation":693},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":920},[921,924,927],{"text":922,"config":923},"Terms",{"href":745,"dataGaName":746,"dataGaLocation":693},{"text":925,"config":926},"Cookies",{"dataGaName":755,"dataGaLocation":693,"id":756,"isOneTrustButton":230},{"text":928,"config":929},"Privacy",{"href":750,"dataGaName":751,"dataGaLocation":693},[931],{"id":932,"title":7,"body":229,"config":933,"content":935,"description":229,"extension":939,"meta":940,"navigation":230,"path":941,"seo":942,"stem":943,"__hash__":944},"blogAuthors/en-us/blog/authors/ottilia-westerlund.yml",{"template":934},"BlogAuthor",{"name":7,"config":936},{"headshot":937,"ctfId":938},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664791/Blog/Author%20Headshots/ottiliawesterlundheadshot.png","ottiliawesterlund","yml",{},"/en-us/blog/authors/ottilia-westerlund",{},"en-us/blog/authors/ottilia-westerlund","vvR5UBe-q76_6tO20akJxb_TLH2y_45Kdl3yl1lc_vI",[946,954,962],{"title":947,"description":948,"heroImage":949,"category":225,"date":950,"authors":951,"slug":953,"externalUrl":229},"What's new in Git 2.55.0?","Learn about the new features and changes in Git 2.55, including a new git-history(1) fixup command, an fsmonitor daemon for Linux, pushing to remote groups, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782732487/ztwgrvlolpifo01vj8qc.png","2026-06-29",[952],"Toon Claes","whats-new-in-git-2-55-0",{"title":955,"description":956,"heroImage":957,"category":225,"date":958,"authors":959,"slug":961,"externalUrl":229},"GitLab AI Hackathon 2026: Meet the winners","Nearly 7,000 developers built 600+ AI agents and flows on GitLab Duo Agent Platform. Find out who won and what they created.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776457632/llddiylsgwuze0u1rjks.png","2026-04-22",[960],"Nick Veenhof","gitlab-ai-hackathon-2026-meet-the-winners",{"title":963,"description":964,"heroImage":965,"category":225,"date":966,"authors":967,"slug":969,"externalUrl":229},"What’s new in Git 2.54.0?","Learn about release contributions, including new repository maintenance, a new command to edit commit history, a replacement for git-sizer(1), and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782734716/ztwgrvlolpifo01vj8qc.png","2026-04-20",[968],"Patrick Steinhardt","whats-new-in-git-2-54-0",{"promotions":971},[972,986,998,1009],{"id":973,"categories":974,"header":976,"text":977,"button":978,"image":983},"ai-modernization",[975],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":979,"config":980},"Get your AI maturity score",{"href":981,"dataGaName":982,"dataGaLocation":459},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":984},{"src":985},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":987,"categories":988,"header":990,"text":977,"button":991,"image":995},"devops-modernization",[989,795],"product","Are you just managing tools or shipping innovation?",{"text":992,"config":993},"Get your DevOps maturity score",{"href":994,"dataGaName":982,"dataGaLocation":459},"/assessments/devops-modernization-assessment/",{"config":996},{"src":997},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":999,"categories":1000,"header":1001,"text":977,"button":1002,"image":1006},"security-modernization",[243],"Are you trading speed for security?",{"text":1003,"config":1004},"Get your security maturity score",{"href":1005,"dataGaName":982,"dataGaLocation":459},"/assessments/security-modernization-assessment/",{"config":1007},{"src":1008},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1010,"paths":1011,"header":1014,"text":1015,"button":1016,"image":1021},"github-azure-migration",[1012,1013],"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":1017,"config":1018},"See how GitLab compares to GitHub",{"href":1019,"dataGaName":1020,"dataGaLocation":459},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1022},{"src":997},{"header":1024,"blurb":1025,"button":1026,"secondaryButton":1031},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1027,"config":1028},"Get your free trial",{"href":1029,"dataGaName":258,"dataGaLocation":1030},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":731,"config":1032},{"href":583,"dataGaName":263,"dataGaLocation":1030},1786803742283]