[{"data":1,"prerenderedAt":936},["ShallowReactive",2],{"/blog/use-streaming-audit-events-to-connect-your-technology-stack-with-gitlab-and-pipedream":3,"navigation-en-us":152,"banner-en-us":579,"footer-en-us":589,"blog-post-authors-en-us-Sam Kerr":833,"blog-related-posts-en-us-use-streaming-audit-events-to-connect-your-technology-stack-with-gitlab-and-pipedream":848,"blog-promotions-en-us":873,"next-steps-en-us":926},{"id":4,"title":5,"authors":6,"body":8,"category":130,"date":131,"description":132,"extension":133,"externalUrl":134,"faq":134,"featured":135,"heroImage":136,"meta":137,"navigation":138,"path":139,"seo":140,"slug":145,"stem":146,"tags":147,"template":150,"updatedDate":134,"__hash__":151},"blogPosts/en-us/blog/use-streaming-audit-events-to-connect-your-technology-stack-with-gitlab-and-pipedream.md","Use Streaming Audit Events to connect your technology stack with GitLab and Pipedream",[7],"Sam Kerr",{"type":9,"value":10,"toc":122},"minimark",[11,15,25,30,39,42,49,64,68,71,84,99,103,112,116,119],[12,13,14],"p",{},"Gitlab recently released Streaming Audit Events to provide you real-time visibility into what happens inside your GitLab groups and projects. Whenever something happens, an event will be sent to the HTTPS destination of your choice. This is a great way to understand immediately when something has changed and if there is an action that needs to be taken.",[12,16,17,18,24],{},"These events are often used to drive automation to update GitLab in response to certain actions, such as creating a new issue to onboard a team member when an account is added to a group, or to restore the correct value of a ",[19,20,23],"a",{"href":21,"rel":22},"https://docs.gitlab.com/user/project/merge_requests/approvals/settings/",[],"merge request approval setting"," if it is changed. We know that many users want to combine the streaming audit events with other data sets and tools they already work with. Taking automatic action in response to audit events happening can help ensure your GitLab groups and projects are always in the correct, compliant state.",[26,27,29],"h2",{"id":28},"pipedream-simplifies-the-streaming-audit-event-process","Pipedream simplifies the streaming audit event process",[12,31,32,33,38],{},"Driving automation off of these events or combining the events with other data sets means the destination which will receive the events needs to be running and have logic in place for how to handle the events as they come in. This normally would require setting up and maintaining a server with high availability to receive events as they happen, run any automation scripts, and then process the events if they needed to be sent to another tool or combined with another data set. This is tricky to do right and an extra step that takes time.\nEnter our partner, ",[19,34,37],{"href":35,"rel":36},"https://pipedream.com/",[],"Pipedream",".",[12,40,41],{},"Pipedream lets you connect APIs, remarkably fast. This includes the new streaming audit events from GitLab. When you select the GitLab New Audit Events trigger in a Pipedream workflow, Pipedream will automatically register an HTTPS endpoint for audit events in your GitLab group:",[12,43,44],{},[45,46],"img",{"alt":47,"src":48},"Pipedream registration process","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398828/blog/Content%20Images/pipedreamscreenshot.png",[12,50,51,52,57,58,63],{},"From there, Pipedream allows you to transform the data, forward it to any other tools using Pipedream’s ",[19,53,56],{"href":54,"rel":55},"https://pipedream.com/docs/workflows/steps/actions/",[],"prebuilt actions",", or write any custom automation ",[19,59,62],{"href":60,"rel":61},"https://pipedream.com/docs/code/",[],"with code"," (i.e., Node.js, Python, Go, or Bash).",[26,65,67],{"id":66},"getting-started-with-pipedream-and-gitlab","Getting started with Pipedream and GitLab",[12,69,70],{},"The video below shows an example of how to use GitLab streaming audit events and Pipedream together to automatically alert your security team if a sensitive project setting is changed. This is powerful because it ensures that your security teams can immediately take action when a change occurs and understand why it happened.",[72,73,76,77],"figure",{"className":74},[75],"video_container","\n  ",[78,79,83],"iframe",{"src":80,"frameBorder":81,"allowFullScreen":82},"https://www.youtube.com/embed/ggzoUMEsjjU","0","true"," ",[12,85,86,87,92,93,98],{},"This is just one example of what you can do with Pipedream and GitLab together. Pipedream allows you to use any ",[19,88,91],{"href":89,"rel":90},"https://docs.gitlab.com/api/",[],"GitLab API"," in response to an audit event: You can change the setting to its original value, add comments to issues, kick off pipelines, and more. You can also trigger any action in any of the ",[19,94,97],{"href":95,"rel":96},"https://pipedream.com/apps",[],"700+ other apps"," that it has built-in integrations with.",[26,100,102],{"id":101},"open-source-integration-means-everyone-can-contribute","Open source integration means everyone can contribute",[12,104,105,106,111],{},"Pipedream and GitLab are both strong believers in open source. The integration is publicly available at the Pipedream ",[19,107,110],{"href":108,"rel":109},"https://github.com/PipedreamHQ/pipedream",[],"repository",", and contributions are welcome! We are excited to see what sort of workflows you create with Pipedream and GitLab together.",[26,113,115],{"id":114},"final-thoughts","Final thoughts",[12,117,118],{},"In this post, we talked about the power of GitLab’s Streaming Audit Events to give you immediate visibility into your groups and projects and how Pipedream makes it easy to build and automate workflows based on those audit events. This was just a preview of what is possible though, as you can use the entire GitLab API within Pipedream in response to audit events or interact with other tools supported by Pipedream.",[12,120,121],{},"We are excited to see the workflows you build with GitLab and Pipedream together. We showed how you can create a GitLab issue to alert the security team when settings are changed, but the sky is the limit - you might also create issues when new user accounts are created to onboard new team members, automatically restore changed settings, or forward data to a security information and event management, a.k.a. SIEM, system. With Pipedream and Gitlab, you can automatically take the actions necessary when things change to ensure you remain secure and compliant.",{"title":123,"searchDepth":124,"depth":124,"links":125},"",2,[126,127,128,129],{"id":28,"depth":124,"text":29},{"id":66,"depth":124,"text":67},{"id":101,"depth":124,"text":102},{"id":114,"depth":124,"text":115},"security","2022-06-27","Automation lets your DevSecOps teams have logic in place for how to handle events as they come in.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667845/Blog/Hero%20Images/gl15.jpg",{},true,"/en-us/blog/use-streaming-audit-events-to-connect-your-technology-stack-with-gitlab-and-pipedream",{"title":141,"description":132,"ogTitle":141,"ogDescription":132,"noIndex":135,"ogImage":136,"ogUrl":142,"ogSiteName":143,"ogType":144,"canonicalUrls":142},"Streaming audit events: Connect GitLab to your tech stack","https://about.gitlab.com/blog/use-streaming-audit-events-to-connect-your-technology-stack-with-gitlab-and-pipedream","https://about.gitlab.com","article","use-streaming-audit-events-to-connect-your-technology-stack-with-gitlab-and-pipedream","en-us/blog/use-streaming-audit-events-to-connect-your-technology-stack-with-gitlab-and-pipedream",[148,149,130],"DevOps","integrations","BlogPost","3WVhootHebMfgDoF3l-Mwuye2PTub-daWbyb4oL59hw",{"logo":153,"freeTrial":158,"sales":163,"login":168,"items":173,"search":499,"minimal":530,"duo":549,"switchNav":558,"pricingDeployment":569},{"config":154},{"href":155,"dataGaName":156,"dataGaLocation":157},"/","gitlab logo","header",{"text":159,"config":160},"Get free trial",{"href":161,"dataGaName":162,"dataGaLocation":157},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":164,"config":165},"Request a demo",{"href":166,"dataGaName":167,"dataGaLocation":157},"/sales/?contact-topic=request-demo","sales",{"text":169,"config":170},"Sign in",{"href":171,"dataGaName":172,"dataGaLocation":157},"https://gitlab.com/users/sign_in/","sign in",[174,203,303,308,421,477],{"text":175,"config":176,"menu":178},"Platform",{"dataNavLevelOne":177},"platform",{"type":179,"columns":180},"cards",[181,187,195],{"title":175,"description":182,"link":183},"The intelligent orchestration platform for DevSecOps",{"text":184,"config":185},"Explore our Platform",{"href":186,"dataGaName":177,"dataGaLocation":157},"/platform/",{"title":188,"description":189,"link":190},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":191,"config":192},"Meet GitLab Duo",{"href":193,"dataGaName":194,"dataGaLocation":157},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":196,"description":197,"link":198},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":199,"config":200},"Learn more",{"href":201,"dataGaName":202,"dataGaLocation":157},"/why-gitlab/","why gitlab",{"text":204,"left":138,"config":205,"menu":207},"Product",{"dataNavLevelOne":206},"solutions",{"type":208,"link":209,"columns":213,"feature":282},"lists",{"text":210,"config":211},"View all Solutions",{"href":212,"dataGaName":206,"dataGaLocation":157},"/solutions/",[214,238,261],{"title":215,"description":216,"link":217,"items":222},"Automation","CI/CD and automation to accelerate deployment",{"config":218},{"icon":219,"href":220,"dataGaName":221,"dataGaLocation":157},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[223,227,230,234],{"text":224,"config":225},"CI/CD",{"href":226,"dataGaLocation":157,"dataGaName":224},"/solutions/continuous-integration/",{"text":188,"config":228},{"href":193,"dataGaLocation":157,"dataGaName":229},"gitlab duo agent platform - product menu",{"text":231,"config":232},"Source Code Management",{"href":233,"dataGaLocation":157,"dataGaName":231},"/solutions/source-code-management/",{"text":235,"config":236},"Automated Software Delivery",{"href":220,"dataGaLocation":157,"dataGaName":237},"Automated software delivery",{"title":239,"description":240,"link":241,"items":246},"Security","Deliver code faster without compromising security",{"config":242},{"href":243,"dataGaName":244,"dataGaLocation":157,"icon":245},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[247,251,256],{"text":248,"config":249},"Application Security Testing",{"href":243,"dataGaName":250,"dataGaLocation":157},"Application security testing",{"text":252,"config":253},"Software Supply Chain Security",{"href":254,"dataGaLocation":157,"dataGaName":255},"/solutions/supply-chain/","Software supply chain security",{"text":257,"config":258},"Software Compliance",{"href":259,"dataGaName":260,"dataGaLocation":157},"/solutions/software-compliance/","software compliance",{"title":262,"link":263,"items":268},"Measurement",{"config":264},{"icon":265,"href":266,"dataGaName":267,"dataGaLocation":157},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[269,273,277],{"text":270,"config":271},"Visibility & Measurement",{"href":266,"dataGaLocation":157,"dataGaName":272},"Visibility and Measurement",{"text":274,"config":275},"Value Stream Management",{"href":276,"dataGaLocation":157,"dataGaName":274},"/solutions/value-stream-management/",{"text":278,"config":279},"Analytics & Insights",{"href":280,"dataGaLocation":157,"dataGaName":281},"/solutions/analytics-and-insights/","Analytics and insights",{"title":283,"type":208,"items":284},"GitLab for",[285,291,297],{"text":286,"config":287},"Enterprise",{"icon":288,"href":289,"dataGaLocation":157,"dataGaName":290},"Building","/enterprise/","enterprise",{"text":292,"config":293},"Small Business",{"icon":294,"href":295,"dataGaLocation":157,"dataGaName":296},"Work","/small-business/","small business",{"text":298,"config":299},"Public Sector",{"icon":300,"href":301,"dataGaLocation":157,"dataGaName":302},"Organization","/solutions/public-sector/","public sector",{"text":304,"config":305},"Pricing",{"href":306,"dataGaName":307,"dataGaLocation":157,"dataNavLevelOne":307},"/pricing/","pricing",{"text":309,"config":310,"menu":312},"Resources",{"dataNavLevelOne":311},"resources",{"type":208,"link":313,"columns":317,"feature":410},{"text":314,"config":315},"View all resources",{"href":316,"dataGaName":311,"dataGaLocation":157},"/resources/",[318,350,377],{"title":319,"items":320},"Getting started",[321,326,331,336,341,346],{"text":322,"config":323},"Install",{"href":324,"dataGaName":325,"dataGaLocation":157},"/install/","install",{"text":327,"config":328},"Quick start guides",{"href":329,"dataGaName":330,"dataGaLocation":157},"/get-started/","quick setup checklists",{"text":332,"config":333},"Learn",{"href":334,"dataGaLocation":157,"dataGaName":335},"https://university.gitlab.com/","learn",{"text":337,"config":338},"Product documentation",{"href":339,"dataGaName":340,"dataGaLocation":157},"https://docs.gitlab.com/","product documentation",{"text":342,"config":343},"Best practice videos",{"href":344,"dataGaName":345,"dataGaLocation":157},"/getting-started-videos/","best practice videos",{"text":347,"config":348},"Integrations",{"href":349,"dataGaName":149,"dataGaLocation":157},"/integrations/",{"title":351,"items":352},"Discover",[353,358,363,368,372],{"text":354,"config":355},"Customer success stories",{"href":356,"dataGaName":357,"dataGaLocation":157},"/customers/","customer success stories",{"text":359,"config":360},"Blog",{"href":361,"dataGaName":362,"dataGaLocation":157},"/blog/","blog",{"text":364,"config":365},"Demo Hub",{"href":366,"dataGaName":367,"dataGaLocation":157},"/demo-hub/","demo hub",{"text":369,"config":370},"The Source",{"href":371,"dataGaName":362,"dataGaLocation":157},"/the-source/",{"text":373,"config":374},"Remote",{"href":375,"dataGaName":376,"dataGaLocation":157},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":378,"items":379},"Connect",[380,385,390,395,400,405],{"text":381,"config":382},"GitLab Services",{"href":383,"dataGaName":384,"dataGaLocation":157},"/services/","services",{"text":386,"config":387},"Contribute",{"href":388,"dataGaName":389,"dataGaLocation":157},"https://contributors.gitlab.com","contribute",{"text":391,"config":392},"Community",{"href":393,"dataGaName":394,"dataGaLocation":157},"/community/","community",{"text":396,"config":397},"Forum",{"href":398,"dataGaName":399,"dataGaLocation":157},"https://forum.gitlab.com/","forum",{"text":401,"config":402},"Events",{"href":403,"dataGaName":404,"dataGaLocation":157},"/events/","events",{"text":406,"config":407},"Partners",{"href":408,"dataGaName":409,"dataGaLocation":157},"/partners/","partners",{"config":411,"title":414,"text":415,"link":416},{"background":412,"textColor":413},"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":417,"config":418},"Read the latest",{"href":419,"dataGaName":420,"dataGaLocation":157},"/whats-new/","whats new",{"text":422,"config":423,"menu":425},"Company",{"dataNavLevelOne":424},"company",{"type":208,"columns":426},[427],{"items":428},[429,434,440,442,447,452,457,462,467,472],{"text":430,"config":431},"About",{"href":432,"dataGaName":433,"dataGaLocation":157},"/company/","about",{"text":435,"config":436,"footerGa":439},"Jobs",{"href":437,"dataGaName":438,"dataGaLocation":157},"/jobs/","jobs",{"dataGaName":438},{"text":401,"config":441},{"href":403,"dataGaName":404,"dataGaLocation":157},{"text":443,"config":444},"Leadership",{"href":445,"dataGaName":446,"dataGaLocation":157},"/company/team/e-group/","leadership",{"text":448,"config":449},"Handbook",{"href":450,"dataGaName":451,"dataGaLocation":157},"https://handbook.gitlab.com/","handbook",{"text":453,"config":454},"Investor relations",{"href":455,"dataGaName":456,"dataGaLocation":157},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":458,"config":459},"Trust Center",{"href":460,"dataGaName":461,"dataGaLocation":157},"/security/","trust center",{"text":463,"config":464},"AI Transparency Center",{"href":465,"dataGaName":466,"dataGaLocation":157},"/ai-transparency-center/","ai transparency center",{"text":468,"config":469},"Newsletter",{"href":470,"dataGaName":471,"dataGaLocation":157},"/company/contact/#contact-forms","newsletter",{"text":473,"config":474},"Press",{"href":475,"dataGaName":476,"dataGaLocation":157},"/press/","press",{"text":478,"config":479,"menu":480},"Contact us",{"dataNavLevelOne":424},{"type":208,"columns":481},[482],{"items":483},[484,489,494],{"text":485,"config":486},"Talk to sales",{"href":487,"dataGaName":488,"dataGaLocation":157},"/sales/","talk to sales",{"text":490,"config":491},"Support portal",{"href":492,"dataGaName":493,"dataGaLocation":157},"https://support.gitlab.com/hc/en-us","support portal",{"text":495,"config":496},"Customer portal",{"href":497,"dataGaName":498,"dataGaLocation":157},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":500,"login":501,"suggestions":508},"Close",{"text":502,"link":503},"To search repositories and projects, login to",{"text":504,"config":505},"gitlab.com",{"href":171,"dataGaName":506,"dataGaLocation":507},"search login","search",{"text":509,"default":510},"Suggestions",[511,513,517,519,523,527],{"text":188,"config":512},{"href":193,"dataGaName":188,"dataGaLocation":507},{"text":514,"config":515},"Code Suggestions (AI)",{"href":516,"dataGaName":514,"dataGaLocation":507},"/solutions/code-suggestions/",{"text":224,"config":518},{"href":226,"dataGaName":224,"dataGaLocation":507},{"text":520,"config":521},"GitLab on AWS",{"href":522,"dataGaName":520,"dataGaLocation":507},"/partners/technology-partners/aws/",{"text":524,"config":525},"GitLab on Google Cloud",{"href":526,"dataGaName":524,"dataGaLocation":507},"/partners/technology-partners/google-cloud-platform/",{"text":528,"config":529},"Why GitLab?",{"href":201,"dataGaName":528,"dataGaLocation":507},{"freeTrial":531,"mobileIcon":536,"desktopIcon":541,"secondaryButton":544},{"text":532,"config":533},"Start free trial",{"href":534,"dataGaName":162,"dataGaLocation":535},"https://gitlab.com/-/trials/new/","nav",{"altText":537,"config":538},"Gitlab Icon",{"src":539,"dataGaName":540,"dataGaLocation":535},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":537,"config":542},{"src":543,"dataGaName":540,"dataGaLocation":535},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":545,"config":546},"Get Started",{"href":547,"dataGaName":548,"dataGaLocation":535},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":550,"mobileIcon":554,"desktopIcon":556},{"text":551,"config":552},"Learn more about GitLab Duo",{"href":193,"dataGaName":553,"dataGaLocation":535},"gitlab duo",{"altText":537,"config":555},{"src":539,"dataGaName":540,"dataGaLocation":535},{"altText":537,"config":557},{"src":543,"dataGaName":540,"dataGaLocation":535},{"button":559,"mobileIcon":564,"desktopIcon":566},{"text":560,"config":561},"/switch",{"href":562,"dataGaName":563,"dataGaLocation":535},"#contact","switch",{"altText":537,"config":565},{"src":539,"dataGaName":540,"dataGaLocation":535},{"altText":537,"config":567},{"src":568,"dataGaName":540,"dataGaLocation":535},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":570,"mobileIcon":575,"desktopIcon":577},{"text":571,"config":572},"Back to pricing",{"href":306,"dataGaName":573,"dataGaLocation":535,"icon":574},"back to pricing","GoBack",{"altText":537,"config":576},{"src":539,"dataGaName":540,"dataGaLocation":535},{"altText":537,"config":578},{"src":543,"dataGaName":540,"dataGaLocation":535},{"title":580,"titleMobile":581,"button":582,"config":587},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":199,"config":583},{"href":584,"dataGaName":585,"dataGaLocation":586},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":588,"disabled":135},"release",{"data":590},{"text":591,"source":592,"edit":598,"contribute":603,"config":608,"items":613,"minimal":822},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":593,"config":594},"View page source",{"href":595,"dataGaName":596,"dataGaLocation":597},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":599,"config":600},"Edit this page",{"href":601,"dataGaName":602,"dataGaLocation":597},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":604,"config":605},"Please contribute",{"href":606,"dataGaName":607,"dataGaLocation":597},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":609,"facebook":610,"youtube":611,"linkedin":612},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[614,661,714,758,790],{"title":304,"links":615,"subMenu":630},[616,620,625],{"text":617,"config":618},"View plans",{"href":306,"dataGaName":619,"dataGaLocation":597},"view plans",{"text":621,"config":622},"Why Premium?",{"href":623,"dataGaName":624,"dataGaLocation":597},"/pricing/premium/","why premium",{"text":626,"config":627},"Why Ultimate?",{"href":628,"dataGaName":629,"dataGaLocation":597},"/pricing/ultimate/","why ultimate",[631],{"title":632,"links":633},"Contact Us",[634,637,639,641,646,651,656],{"text":635,"config":636},"Contact sales",{"href":487,"dataGaName":167,"dataGaLocation":597},{"text":490,"config":638},{"href":492,"dataGaName":493,"dataGaLocation":597},{"text":495,"config":640},{"href":497,"dataGaName":498,"dataGaLocation":597},{"text":642,"config":643},"Status",{"href":644,"dataGaName":645,"dataGaLocation":597},"https://status.gitlab.com/","status",{"text":647,"config":648},"Terms of use",{"href":649,"dataGaName":650,"dataGaLocation":597},"/terms/","terms of use",{"text":652,"config":653},"Privacy statement",{"href":654,"dataGaName":655,"dataGaLocation":597},"/privacy/","privacy statement",{"text":657,"config":658},"Cookie preferences",{"dataGaName":659,"dataGaLocation":597,"id":660,"isOneTrustButton":138},"cookie preferences","ot-sdk-btn",{"title":204,"links":662,"subMenu":671},[663,667],{"text":664,"config":665},"DevSecOps platform",{"href":186,"dataGaName":666,"dataGaLocation":597},"devsecops platform",{"text":668,"config":669},"AI-Assisted Development",{"href":193,"dataGaName":670,"dataGaLocation":597},"ai-assisted development",[672],{"title":673,"links":674},"Topics",[675,680,685,689,694,699,704,709],{"text":676,"config":677},"CICD",{"href":678,"dataGaName":679,"dataGaLocation":597},"/topics/ci-cd/","cicd",{"text":681,"config":682},"GitOps",{"href":683,"dataGaName":684,"dataGaLocation":597},"/topics/gitops/","gitops",{"text":148,"config":686},{"href":687,"dataGaName":688,"dataGaLocation":597},"/topics/devops/","devops",{"text":690,"config":691},"Version Control",{"href":692,"dataGaName":693,"dataGaLocation":597},"/topics/version-control/","version control",{"text":695,"config":696},"DevSecOps",{"href":697,"dataGaName":698,"dataGaLocation":597},"/topics/devsecops/","devsecops",{"text":700,"config":701},"Cloud Native",{"href":702,"dataGaName":703,"dataGaLocation":597},"/topics/cloud-native/","cloud native",{"text":705,"config":706},"AI for Coding",{"href":707,"dataGaName":708,"dataGaLocation":597},"/topics/devops/ai-for-coding/","ai for coding",{"text":710,"config":711},"Agentic AI",{"href":712,"dataGaName":713,"dataGaLocation":597},"/topics/agentic-ai/","agentic ai",{"title":715,"links":716},"Solutions",[717,719,721,726,730,733,737,740,742,745,748,753],{"text":248,"config":718},{"href":243,"dataGaName":248,"dataGaLocation":597},{"text":237,"config":720},{"href":220,"dataGaName":221,"dataGaLocation":597},{"text":722,"config":723},"Agile development",{"href":724,"dataGaName":725,"dataGaLocation":597},"/solutions/agile-delivery/","agile delivery",{"text":727,"config":728},"SCM",{"href":233,"dataGaName":729,"dataGaLocation":597},"source code management",{"text":676,"config":731},{"href":226,"dataGaName":732,"dataGaLocation":597},"continuous integration & delivery",{"text":734,"config":735},"Value stream management",{"href":276,"dataGaName":736,"dataGaLocation":597},"value stream management",{"text":681,"config":738},{"href":739,"dataGaName":684,"dataGaLocation":597},"/solutions/gitops/",{"text":286,"config":741},{"href":289,"dataGaName":290,"dataGaLocation":597},{"text":743,"config":744},"Small business",{"href":295,"dataGaName":296,"dataGaLocation":597},{"text":746,"config":747},"Public sector",{"href":301,"dataGaName":302,"dataGaLocation":597},{"text":749,"config":750},"Education",{"href":751,"dataGaName":752,"dataGaLocation":597},"/solutions/education/","education",{"text":754,"config":755},"Financial services",{"href":756,"dataGaName":757,"dataGaLocation":597},"/solutions/finance/","financial services",{"title":309,"links":759},[760,762,764,766,769,771,774,776,778,780,782,784,786,788],{"text":322,"config":761},{"href":324,"dataGaName":325,"dataGaLocation":597},{"text":327,"config":763},{"href":329,"dataGaName":330,"dataGaLocation":597},{"text":332,"config":765},{"href":334,"dataGaName":335,"dataGaLocation":597},{"text":337,"config":767},{"href":339,"dataGaName":768,"dataGaLocation":597},"docs",{"text":359,"config":770},{"href":361,"dataGaName":362,"dataGaLocation":597},{"text":772,"config":773},"What's new",{"href":419,"dataGaName":420,"dataGaLocation":597},{"text":354,"config":775},{"href":356,"dataGaName":357,"dataGaLocation":597},{"text":373,"config":777},{"href":375,"dataGaName":376,"dataGaLocation":597},{"text":381,"config":779},{"href":383,"dataGaName":384,"dataGaLocation":597},{"text":386,"config":781},{"href":388,"dataGaName":389,"dataGaLocation":597},{"text":391,"config":783},{"href":393,"dataGaName":394,"dataGaLocation":597},{"text":396,"config":785},{"href":398,"dataGaName":399,"dataGaLocation":597},{"text":401,"config":787},{"href":403,"dataGaName":404,"dataGaLocation":597},{"text":406,"config":789},{"href":408,"dataGaName":409,"dataGaLocation":597},{"title":422,"links":791},[792,794,796,798,800,802,806,811,813,815,817],{"text":430,"config":793},{"href":432,"dataGaName":424,"dataGaLocation":597},{"text":435,"config":795},{"href":437,"dataGaName":438,"dataGaLocation":597},{"text":443,"config":797},{"href":445,"dataGaName":446,"dataGaLocation":597},{"text":448,"config":799},{"href":450,"dataGaName":451,"dataGaLocation":597},{"text":453,"config":801},{"href":455,"dataGaName":456,"dataGaLocation":597},{"text":803,"config":804},"Sustainability",{"href":805,"dataGaName":803,"dataGaLocation":597},"/sustainability/",{"text":807,"config":808},"Diversity, inclusion and belonging (DIB)",{"href":809,"dataGaName":810,"dataGaLocation":597},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":458,"config":812},{"href":460,"dataGaName":461,"dataGaLocation":597},{"text":468,"config":814},{"href":470,"dataGaName":471,"dataGaLocation":597},{"text":473,"config":816},{"href":475,"dataGaName":476,"dataGaLocation":597},{"text":818,"config":819},"Modern Slavery Transparency Statement",{"href":820,"dataGaName":821,"dataGaLocation":597},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":823},[824,827,830],{"text":825,"config":826},"Terms",{"href":649,"dataGaName":650,"dataGaLocation":597},{"text":828,"config":829},"Cookies",{"dataGaName":659,"dataGaLocation":597,"id":660,"isOneTrustButton":138},{"text":831,"config":832},"Privacy",{"href":654,"dataGaName":655,"dataGaLocation":597},[834],{"id":835,"title":7,"body":134,"config":836,"content":838,"description":134,"extension":842,"meta":843,"navigation":138,"path":844,"seo":845,"stem":846,"__hash__":847},"blogAuthors/en-us/blog/authors/sam-kerr.yml",{"template":837},"BlogAuthor",{"name":7,"config":839},{"headshot":840,"ctfId":841},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668841/Blog/Author%20Headshots/stkerr-headshot.jpg","stkerr","yml",{},"/en-us/blog/authors/sam-kerr",{},"en-us/blog/authors/sam-kerr","Uy_fuPl-EwaUBm9ppfxsmwgZvhXQR9HumvuLsv4cbko",[849,857,865],{"title":850,"description":851,"heroImage":852,"category":130,"date":853,"authors":854,"slug":856,"externalUrl":134},"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",[855],"Julian Thome","improved-scope-offset-fingerprinting",{"title":858,"description":859,"heroImage":852,"category":130,"date":860,"authors":861,"slug":864,"externalUrl":134},"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",[862,863],"Erick Bajao","Joe Randazzo","gitlab-secrets-manager-add-eso-terraform-api-support",{"title":866,"description":867,"heroImage":868,"category":130,"date":869,"authors":870,"slug":872,"externalUrl":134},"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",[871],"Alisa Ho","claude-security-and-gitlab",{"promotions":874},[875,889,901,912],{"id":876,"categories":877,"header":879,"text":880,"button":881,"image":886},"ai-modernization",[878],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":882,"config":883},"Get your AI maturity score",{"href":884,"dataGaName":885,"dataGaLocation":362},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":887},{"src":888},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":890,"categories":891,"header":893,"text":880,"button":894,"image":898},"devops-modernization",[892,698],"product","Are you just managing tools or shipping innovation?",{"text":895,"config":896},"Get your DevOps maturity score",{"href":897,"dataGaName":885,"dataGaLocation":362},"/assessments/devops-modernization-assessment/",{"config":899},{"src":900},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":902,"categories":903,"header":904,"text":880,"button":905,"image":909},"security-modernization",[130],"Are you trading speed for security?",{"text":906,"config":907},"Get your security maturity score",{"href":908,"dataGaName":885,"dataGaLocation":362},"/assessments/security-modernization-assessment/",{"config":910},{"src":911},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":913,"paths":914,"header":917,"text":918,"button":919,"image":924},"github-azure-migration",[915,916],"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":920,"config":921},"See how GitLab compares to GitHub",{"href":922,"dataGaName":923,"dataGaLocation":362},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":925},{"src":900},{"header":927,"blurb":928,"button":929,"secondaryButton":934},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":930,"config":931},"Get your free trial",{"href":932,"dataGaName":162,"dataGaLocation":933},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":635,"config":935},{"href":487,"dataGaName":167,"dataGaLocation":933},1786803756052]