[{"data":1,"prerenderedAt":1134},["ShallowReactive",2],{"/blog/gitlab-com-13-4-breaking-changes":3,"navigation-en-us":349,"banner-en-us":776,"footer-en-us":786,"blog-post-authors-en-us-Taylor McCaslin":1030,"blog-related-posts-en-us-gitlab-com-13-4-breaking-changes":1046,"blog-promotions-en-us":1071,"next-steps-en-us":1124},{"id":4,"title":5,"authors":6,"body":8,"category":327,"date":328,"description":329,"extension":330,"externalUrl":331,"faq":331,"featured":332,"heroImage":333,"meta":334,"navigation":335,"path":336,"seo":337,"slug":342,"stem":343,"tags":344,"template":347,"updatedDate":331,"__hash__":348},"blogPosts/en-us/blog/gitlab-com-13-4-breaking-changes.md","Upcoming GitLab.com narrow breaking changes to Secure Analyzers in GitLab 13.4",[7],"Taylor McCaslin",{"type":9,"value":10,"toc":319},"minimark",[11,21,48,51,54,66,71,89,109,143,160,164,183,197,201,221,231,240,244,297,300,308,312],[12,13,14,15,20],"p",{},"We've spent the first few releases of GitLab 13 with several user-focused improvements to our Static ",[16,17,19],"a",{"href":18},"/topics/devsecops/","Application Security Testing (SAST)"," capabilities:",[22,23,24,34],"ul",{},[25,26,27,28,33],"li",{},"We made our open-source based SAST analyzers free to use for every GitLab user on all tiers ",[16,29,32],{"href":30,"rel":31},"https://docs.gitlab.com/user/application_security/sast/#supported-languages-and-frameworks",[],"covering 18 languages/frameworks",".",[25,35,36,37,42,43,33],{},"We released a new ",[16,38,41],{"href":39,"rel":40},"https://docs.gitlab.com/user/application_security/secret_detection/",[],"Secret Detection"," scan type and a managed CI template. This also added new capabilities like ",[16,44,47],{"href":45,"rel":46},"https://docs.gitlab.com/user/application_security/secret_detection/#full-history-secret-scan",[],"full history secret detection",[12,49,50],{},"With these changes we've modernized and simplified the way our Security scans work, requiring the deprecation and removal of a few configuration options to improve the security, stability, and speed of our analyzers.",[12,52,53],{},"With these removals, there are a few changes that you should make to your Secure scan configurations to ensure you continue enjoying those capabilities. All of these removals were previously announced as deprecations in the past few release blog posts.",[12,55,56,60,61,33],{},[57,58,59],"strong",{},"These changes will release to GitLab.com as early as August 27th and will be released to self-managed customers with GitLab 13.4 on September 22."," If you have questions or feedback, you can ",[16,62,65],{"href":63,"rel":64},"https://gitlab.com/gitlab-org/gitlab/-/issues/235816",[],"let us know in this feedback issue",[67,68,70],"h2",{"id":69},"removal-of-secret-detection-job-in-sast-ci-template-high-impact","Removal of Secret Detection Job in SAST CI Template (High Impact)",[12,72,73,74,79,80,83,84,33],{},"Since ",[16,75,78],{"href":76,"rel":77},"https://docs.gitlab.com/releases/#deprecation-of-secret-detection-job-in-sast-configuration",[],"GitLab 13.1",", the ",[16,81,41],{"href":39,"rel":82},[]," CI/CD configuration settings moved to a separate GitLab-provided template and run as a new Secure scan type. This new Secret Detection template is also now ",[16,85,88],{"href":86,"rel":87},"https://docs.gitlab.com/user/application_security/#security-scanning-with-auto-devops",[],"included in Auto DevOps",[12,90,91,92,102,103,108],{},"In 13.4 we will remove the ",[16,93,96,97,101],{"href":94,"rel":95},"https://gitlab.com/gitlab-org/gitlab/-/blob/67e235bd5826c160db47bbb8c0dc87e6b9cd7b43/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml#L171",[],"old SAST ",[98,99,100],"code",{},"secrets-sast"," job definition"," and if you have not switched to the ",[16,104,107],{"href":105,"rel":106},"https://docs.gitlab.com/user/application_security/secret_detection/#configuration",[],"new Secret Detection template"," you will not continue to scan for secrets. You can easily transition by adding the new template.",[12,110,111,112,116,117,120,121,126,127,132,133,136,137,142],{},"Before upgrading to GitLab 13.4 we recommend you ",[16,113,115],{"href":105,"rel":114},[],"add the new Secret Detection template"," to your ",[98,118,119],{},"gitlab-ci.yml"," file, and then remove the ",[16,122,96,124,101],{"href":94,"rel":123},[],[98,125,100],{}," from the ",[16,128,131],{"href":129,"rel":130},"https://docs.gitlab.com/user/application_security/sast/#configuration",[],"SAST configuration template"," in ",[98,134,135],{},"SAST.gitlab-ci.yml"," file. We have made a ",[16,138,141],{"href":139,"rel":140},"https://www.youtube.com/watch?v=W2tjcQreDwQ&feature=emb_title",[],"video to guide you through the process of transitioning"," to this new template.",[22,144,145,154],{},[25,146,147,148,153],{},"You can follow ",[16,149,152],{"href":150,"rel":151},"https://gitlab.com/gitlab-org/gitlab/-/issues/234011",[],"this implementation issue"," for further details.",[25,155,156],{},[16,157,159],{"href":76,"rel":158},[],"Initial deprecation announced in 13.1 (6/22)",[67,161,163],{"id":162},"removal-of-dind-medium-impact","Removal of DinD (Medium impact)",[12,165,166,167,172,173,176,177,182],{},"To increase the security and reduce complexity of scans, use of Docker-in-Docker (DinD) in GitLab Secure scanners was ",[16,168,171],{"href":169,"rel":170},"https://docs.gitlab.com/releases/#deprecation-of-docker-in-docker-(dind)-for-security-scanners",[],"deprecated in 13.0"," and is ",[57,174,175],{},"scheduled for removal in 13.4",". GitLab security products started to use non-DinD mode by default in vendor templates in GitLab 13.0. We encourage customers to update their vendor CI templates to use this new behavior. If you override or use custom ",[16,178,181],{"href":179,"rel":180},"https://gitlab.com/gitlab-org/gitlab-foss/-/tree/master/lib/gitlab/ci/templates/Security",[],"Secure CI templates",", you can follow the guides below to disable Docker in Docker (DinD) from your existing job templates:",[22,184,185,188,191],{},[25,186,187],{},"Disabling Docker in Docker for Dependency Scanning (12.10 Documentation)",[25,189,190],{},"Disabling Docker in Docker for SAST (12.10 Documentation)",[25,192,193],{},[16,194,196],{"href":169,"rel":195},[],"Initial deprecation announced in 13.0 (5/22)",[67,198,200],{"id":199},"transition-of-secure-analyzers-to-linux-alpine-image-low-impact","Transition of Secure Analyzers to Linux Alpine image (Low impact)",[12,202,203,204,208,209,214,215,220],{},"To simplify and modernize our ",[16,205,207],{"href":30,"rel":206},[],"GitLab Secure SAST Analyzers",", we will transition the ",[16,210,213],{"href":211,"rel":212},"https://gitlab.com/gitlab-org/security-products/analyzers/bandit",[],"GitLab Bandit Python Analyzer"," image from Debian Buster to ",[16,216,219],{"href":217,"rel":218},"https://alpinelinux.org/about/",[],"Alpine Linux",". This transition will reduce the image size and increase both the speed and security of our analyzer.",[222,223,228],"pre",{"className":224,"code":226,"language":227},[225],"language-text","This transition will be backward incompatible though we expect limited impact. If you use a `before_script` to pre-build dependencies for your Python project, you should test this change before upgrading to GitLab 13.4. We will add a new section in the [SAST troubleshooting documentation](https://docs.gitlab.com/user/application_security/sast/#troubleshooting) with more information about this change as we approach 13.4.\n","text",[98,229,226],{"__ignoreMap":230},"",[22,232,233],{},[25,234,235],{},[16,236,239],{"href":237,"rel":238},"https://docs.gitlab.com/releases/#transitioning-gitlab-bandit-secure-analyzer-os-image",[],"Initial deprecation annouced in 13.2 (7/22)",[67,241,243],{"id":242},"transition-of-tslint-job-to-eslint-low-impact","Transition of TSLint Job to ESLint (Low impact)",[12,245,246,247,252,253,258,259,264,265,270,271,276,277,282,283,286,287,291,292,33],{},"The ",[16,248,251],{"href":249,"rel":250},"https://docs.gitlab.com/releases/#javascript--typescript-sast-analyzer-available-for-all",[],"recent update of our ESLint Secure analyzer"," includes new support for TypeScript which is actively maintained. Since 2019 the ",[16,254,257],{"href":255,"rel":256},"https://palantir.github.io/tslint/",[],"TSLint project has been deprecated"," in favor of ESLint. We have now unified these analyzers in ",[16,260,263],{"href":261,"rel":262},"https://gitlab.com/gitlab-org/security-products/analyzers/eslint",[],"GitLab's ESLint analyzer",", which renders our TSLint analyzer obsolete.\nIn 13.2 we deprecated the ",[16,266,269],{"href":267,"rel":268},"https://gitlab.com/gitlab-org/security-products/analyzers/tslint",[],"TSLint Secure analyzer"," and have removed the ",[16,272,275],{"href":273,"rel":274},"https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml",[],"TSLint job definition from the SAST template",". If you leverage ",[16,278,281],{"href":279,"rel":280},"https://docs.gitlab.com/topics/autodevops/",[],"Auto DevOps"," or ",[98,284,285],{},"include"," the ",[16,288,290],{"href":273,"rel":289},[],"GitLab Secure SAST Template"," no action is required, as this transition happened automatically when you updated to GitLab 13.2. We recommend that anyone using the TSLint SAST job in a customized CI template to migrate to the ",[16,293,296],{"href":294,"rel":295},"https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml#L85",[],"newly updated ESLint Job",[12,298,299],{},"The next time the SAST job runs after this transition you may see previously present TSLint vulnerabilities being marked as \"resolved\" and new TypeScript vulnerabilities from ESLint. This behavior is expected due to the new unique vulnerability signatures from ESLint which are different from old TSLint job scan vulnerability signatures.",[22,301,302],{},[25,303,304],{},[16,305,239],{"href":306,"rel":307},"https://docs.gitlab.com/releases/#deprecation-and-planned-removal-of-tslint-secure-analyzer",[],[67,309,311],{"id":310},"looking-towards-the-future","Looking towards the future",[12,313,314,315,33],{},"We are always working to improve the security, efficiency, and quality of our Security scanning tools. These deprecations and removals help us rapidly improve our solution and allow us to deliver on our Secure product vision. We appreciate your understanding of these changes, and if you have questions about these deprecations and removals please ",[16,316,318],{"href":63,"rel":317},[],"let us know in this issue",{"title":230,"searchDepth":320,"depth":320,"links":321},2,[322,323,324,325,326],{"id":69,"depth":320,"text":70},{"id":162,"depth":320,"text":163},{"id":199,"depth":320,"text":200},{"id":242,"depth":320,"text":243},{"id":310,"depth":320,"text":311},"security","2020-08-19","Our next release, 13.4, will include narrow breaking changes for our Secure scanning features. Find out how this could affect you and what you need to do.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg",{},true,"/en-us/blog/gitlab-com-13-4-breaking-changes",{"title":338,"description":329,"ogTitle":338,"ogDescription":329,"noIndex":332,"ogImage":333,"ogUrl":339,"ogSiteName":340,"ogType":341,"canonicalUrls":339},"Upcoming Breaking Changes to Secure Analyzers in GitLab 13.4","https://about.gitlab.com/blog/gitlab-com-13-4-breaking-changes","https://about.gitlab.com","article","gitlab-com-13-4-breaking-changes","en-us/blog/gitlab-com-13-4-breaking-changes",[345,346,327],"releases","CI/CD","BlogPost","AuAw-0Jw30iiJEnj-cSepNfNe4V2krQVu0icn2bvA6o",{"logo":350,"freeTrial":355,"sales":360,"login":365,"items":370,"search":696,"minimal":727,"duo":746,"switchNav":755,"pricingDeployment":766},{"config":351},{"href":352,"dataGaName":353,"dataGaLocation":354},"/","gitlab logo","header",{"text":356,"config":357},"Get free trial",{"href":358,"dataGaName":359,"dataGaLocation":354},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":361,"config":362},"Request a demo",{"href":363,"dataGaName":364,"dataGaLocation":354},"/sales/?contact-topic=request-demo","sales",{"text":366,"config":367},"Sign in",{"href":368,"dataGaName":369,"dataGaLocation":354},"https://gitlab.com/users/sign_in/","sign in",[371,400,499,504,618,674],{"text":372,"config":373,"menu":375},"Platform",{"dataNavLevelOne":374},"platform",{"type":376,"columns":377},"cards",[378,384,392],{"title":372,"description":379,"link":380},"The intelligent orchestration platform for DevSecOps",{"text":381,"config":382},"Explore our Platform",{"href":383,"dataGaName":374,"dataGaLocation":354},"/platform/",{"title":385,"description":386,"link":387},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":388,"config":389},"Meet GitLab Duo",{"href":390,"dataGaName":391,"dataGaLocation":354},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":393,"description":394,"link":395},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":396,"config":397},"Learn more",{"href":398,"dataGaName":399,"dataGaLocation":354},"/why-gitlab/","why gitlab",{"text":401,"left":335,"config":402,"menu":404},"Product",{"dataNavLevelOne":403},"solutions",{"type":405,"link":406,"columns":410,"feature":478},"lists",{"text":407,"config":408},"View all Solutions",{"href":409,"dataGaName":403,"dataGaLocation":354},"/solutions/",[411,434,457],{"title":412,"description":413,"link":414,"items":419},"Automation","CI/CD and automation to accelerate deployment",{"config":415},{"icon":416,"href":417,"dataGaName":418,"dataGaLocation":354},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[420,423,426,430],{"text":346,"config":421},{"href":422,"dataGaLocation":354,"dataGaName":346},"/solutions/continuous-integration/",{"text":385,"config":424},{"href":390,"dataGaLocation":354,"dataGaName":425},"gitlab duo agent platform - product menu",{"text":427,"config":428},"Source Code Management",{"href":429,"dataGaLocation":354,"dataGaName":427},"/solutions/source-code-management/",{"text":431,"config":432},"Automated Software Delivery",{"href":417,"dataGaLocation":354,"dataGaName":433},"Automated software delivery",{"title":435,"description":436,"link":437,"items":442},"Security","Deliver code faster without compromising security",{"config":438},{"href":439,"dataGaName":440,"dataGaLocation":354,"icon":441},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[443,447,452],{"text":444,"config":445},"Application Security Testing",{"href":439,"dataGaName":446,"dataGaLocation":354},"Application security testing",{"text":448,"config":449},"Software Supply Chain Security",{"href":450,"dataGaLocation":354,"dataGaName":451},"/solutions/supply-chain/","Software supply chain security",{"text":453,"config":454},"Software Compliance",{"href":455,"dataGaName":456,"dataGaLocation":354},"/solutions/software-compliance/","software compliance",{"title":458,"link":459,"items":464},"Measurement",{"config":460},{"icon":461,"href":462,"dataGaName":463,"dataGaLocation":354},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[465,469,473],{"text":466,"config":467},"Visibility & Measurement",{"href":462,"dataGaLocation":354,"dataGaName":468},"Visibility and Measurement",{"text":470,"config":471},"Value Stream Management",{"href":472,"dataGaLocation":354,"dataGaName":470},"/solutions/value-stream-management/",{"text":474,"config":475},"Analytics & Insights",{"href":476,"dataGaLocation":354,"dataGaName":477},"/solutions/analytics-and-insights/","Analytics and insights",{"title":479,"type":405,"items":480},"GitLab for",[481,487,493],{"text":482,"config":483},"Enterprise",{"icon":484,"href":485,"dataGaLocation":354,"dataGaName":486},"Building","/enterprise/","enterprise",{"text":488,"config":489},"Small Business",{"icon":490,"href":491,"dataGaLocation":354,"dataGaName":492},"Work","/small-business/","small business",{"text":494,"config":495},"Public Sector",{"icon":496,"href":497,"dataGaLocation":354,"dataGaName":498},"Organization","/solutions/public-sector/","public sector",{"text":500,"config":501},"Pricing",{"href":502,"dataGaName":503,"dataGaLocation":354,"dataNavLevelOne":503},"/pricing/","pricing",{"text":505,"config":506,"menu":508},"Resources",{"dataNavLevelOne":507},"resources",{"type":405,"link":509,"columns":513,"feature":607},{"text":510,"config":511},"View all resources",{"href":512,"dataGaName":507,"dataGaLocation":354},"/resources/",[514,547,574],{"title":515,"items":516},"Getting started",[517,522,527,532,537,542],{"text":518,"config":519},"Install",{"href":520,"dataGaName":521,"dataGaLocation":354},"/install/","install",{"text":523,"config":524},"Quick start guides",{"href":525,"dataGaName":526,"dataGaLocation":354},"/get-started/","quick setup checklists",{"text":528,"config":529},"Learn",{"href":530,"dataGaLocation":354,"dataGaName":531},"https://university.gitlab.com/","learn",{"text":533,"config":534},"Product documentation",{"href":535,"dataGaName":536,"dataGaLocation":354},"https://docs.gitlab.com/","product documentation",{"text":538,"config":539},"Best practice videos",{"href":540,"dataGaName":541,"dataGaLocation":354},"/getting-started-videos/","best practice videos",{"text":543,"config":544},"Integrations",{"href":545,"dataGaName":546,"dataGaLocation":354},"/integrations/","integrations",{"title":548,"items":549},"Discover",[550,555,560,565,569],{"text":551,"config":552},"Customer success stories",{"href":553,"dataGaName":554,"dataGaLocation":354},"/customers/","customer success stories",{"text":556,"config":557},"Blog",{"href":558,"dataGaName":559,"dataGaLocation":354},"/blog/","blog",{"text":561,"config":562},"Demo Hub",{"href":563,"dataGaName":564,"dataGaLocation":354},"/demo-hub/","demo hub",{"text":566,"config":567},"The Source",{"href":568,"dataGaName":559,"dataGaLocation":354},"/the-source/",{"text":570,"config":571},"Remote",{"href":572,"dataGaName":573,"dataGaLocation":354},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":575,"items":576},"Connect",[577,582,587,592,597,602],{"text":578,"config":579},"GitLab Services",{"href":580,"dataGaName":581,"dataGaLocation":354},"/services/","services",{"text":583,"config":584},"Contribute",{"href":585,"dataGaName":586,"dataGaLocation":354},"https://contributors.gitlab.com","contribute",{"text":588,"config":589},"Community",{"href":590,"dataGaName":591,"dataGaLocation":354},"/community/","community",{"text":593,"config":594},"Forum",{"href":595,"dataGaName":596,"dataGaLocation":354},"https://forum.gitlab.com/","forum",{"text":598,"config":599},"Events",{"href":600,"dataGaName":601,"dataGaLocation":354},"/events/","events",{"text":603,"config":604},"Partners",{"href":605,"dataGaName":606,"dataGaLocation":354},"/partners/","partners",{"config":608,"title":611,"text":612,"link":613},{"background":609,"textColor":610},"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":614,"config":615},"Read the latest",{"href":616,"dataGaName":617,"dataGaLocation":354},"/whats-new/","whats new",{"text":619,"config":620,"menu":622},"Company",{"dataNavLevelOne":621},"company",{"type":405,"columns":623},[624],{"items":625},[626,631,637,639,644,649,654,659,664,669],{"text":627,"config":628},"About",{"href":629,"dataGaName":630,"dataGaLocation":354},"/company/","about",{"text":632,"config":633,"footerGa":636},"Jobs",{"href":634,"dataGaName":635,"dataGaLocation":354},"/jobs/","jobs",{"dataGaName":635},{"text":598,"config":638},{"href":600,"dataGaName":601,"dataGaLocation":354},{"text":640,"config":641},"Leadership",{"href":642,"dataGaName":643,"dataGaLocation":354},"/company/team/e-group/","leadership",{"text":645,"config":646},"Handbook",{"href":647,"dataGaName":648,"dataGaLocation":354},"https://handbook.gitlab.com/","handbook",{"text":650,"config":651},"Investor relations",{"href":652,"dataGaName":653,"dataGaLocation":354},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":655,"config":656},"Trust Center",{"href":657,"dataGaName":658,"dataGaLocation":354},"/security/","trust center",{"text":660,"config":661},"AI Transparency Center",{"href":662,"dataGaName":663,"dataGaLocation":354},"/ai-transparency-center/","ai transparency center",{"text":665,"config":666},"Newsletter",{"href":667,"dataGaName":668,"dataGaLocation":354},"/company/contact/#contact-forms","newsletter",{"text":670,"config":671},"Press",{"href":672,"dataGaName":673,"dataGaLocation":354},"/press/","press",{"text":675,"config":676,"menu":677},"Contact us",{"dataNavLevelOne":621},{"type":405,"columns":678},[679],{"items":680},[681,686,691],{"text":682,"config":683},"Talk to sales",{"href":684,"dataGaName":685,"dataGaLocation":354},"/sales/","talk to sales",{"text":687,"config":688},"Support portal",{"href":689,"dataGaName":690,"dataGaLocation":354},"https://support.gitlab.com/hc/en-us","support portal",{"text":692,"config":693},"Customer portal",{"href":694,"dataGaName":695,"dataGaLocation":354},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":697,"login":698,"suggestions":705},"Close",{"text":699,"link":700},"To search repositories and projects, login to",{"text":701,"config":702},"gitlab.com",{"href":368,"dataGaName":703,"dataGaLocation":704},"search login","search",{"text":706,"default":707},"Suggestions",[708,710,714,716,720,724],{"text":385,"config":709},{"href":390,"dataGaName":385,"dataGaLocation":704},{"text":711,"config":712},"Code Suggestions (AI)",{"href":713,"dataGaName":711,"dataGaLocation":704},"/solutions/code-suggestions/",{"text":346,"config":715},{"href":422,"dataGaName":346,"dataGaLocation":704},{"text":717,"config":718},"GitLab on AWS",{"href":719,"dataGaName":717,"dataGaLocation":704},"/partners/technology-partners/aws/",{"text":721,"config":722},"GitLab on Google Cloud",{"href":723,"dataGaName":721,"dataGaLocation":704},"/partners/technology-partners/google-cloud-platform/",{"text":725,"config":726},"Why GitLab?",{"href":398,"dataGaName":725,"dataGaLocation":704},{"freeTrial":728,"mobileIcon":733,"desktopIcon":738,"secondaryButton":741},{"text":729,"config":730},"Start free trial",{"href":731,"dataGaName":359,"dataGaLocation":732},"https://gitlab.com/-/trials/new/","nav",{"altText":734,"config":735},"Gitlab Icon",{"src":736,"dataGaName":737,"dataGaLocation":732},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":734,"config":739},{"src":740,"dataGaName":737,"dataGaLocation":732},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":742,"config":743},"Get Started",{"href":744,"dataGaName":745,"dataGaLocation":732},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":747,"mobileIcon":751,"desktopIcon":753},{"text":748,"config":749},"Learn more about GitLab Duo",{"href":390,"dataGaName":750,"dataGaLocation":732},"gitlab duo",{"altText":734,"config":752},{"src":736,"dataGaName":737,"dataGaLocation":732},{"altText":734,"config":754},{"src":740,"dataGaName":737,"dataGaLocation":732},{"button":756,"mobileIcon":761,"desktopIcon":763},{"text":757,"config":758},"/switch",{"href":759,"dataGaName":760,"dataGaLocation":732},"#contact","switch",{"altText":734,"config":762},{"src":736,"dataGaName":737,"dataGaLocation":732},{"altText":734,"config":764},{"src":765,"dataGaName":737,"dataGaLocation":732},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":767,"mobileIcon":772,"desktopIcon":774},{"text":768,"config":769},"Back to pricing",{"href":502,"dataGaName":770,"dataGaLocation":732,"icon":771},"back to pricing","GoBack",{"altText":734,"config":773},{"src":736,"dataGaName":737,"dataGaLocation":732},{"altText":734,"config":775},{"src":740,"dataGaName":737,"dataGaLocation":732},{"title":777,"titleMobile":778,"button":779,"config":784},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":396,"config":780},{"href":781,"dataGaName":782,"dataGaLocation":783},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":785,"disabled":332},"release",{"data":787},{"text":788,"source":789,"edit":795,"contribute":800,"config":805,"items":810,"minimal":1019},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":790,"config":791},"View page source",{"href":792,"dataGaName":793,"dataGaLocation":794},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":796,"config":797},"Edit this page",{"href":798,"dataGaName":799,"dataGaLocation":794},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":801,"config":802},"Please contribute",{"href":803,"dataGaName":804,"dataGaLocation":794},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":806,"facebook":807,"youtube":808,"linkedin":809},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[811,858,911,955,987],{"title":500,"links":812,"subMenu":827},[813,817,822],{"text":814,"config":815},"View plans",{"href":502,"dataGaName":816,"dataGaLocation":794},"view plans",{"text":818,"config":819},"Why Premium?",{"href":820,"dataGaName":821,"dataGaLocation":794},"/pricing/premium/","why premium",{"text":823,"config":824},"Why Ultimate?",{"href":825,"dataGaName":826,"dataGaLocation":794},"/pricing/ultimate/","why ultimate",[828],{"title":829,"links":830},"Contact Us",[831,834,836,838,843,848,853],{"text":832,"config":833},"Contact sales",{"href":684,"dataGaName":364,"dataGaLocation":794},{"text":687,"config":835},{"href":689,"dataGaName":690,"dataGaLocation":794},{"text":692,"config":837},{"href":694,"dataGaName":695,"dataGaLocation":794},{"text":839,"config":840},"Status",{"href":841,"dataGaName":842,"dataGaLocation":794},"https://status.gitlab.com/","status",{"text":844,"config":845},"Terms of use",{"href":846,"dataGaName":847,"dataGaLocation":794},"/terms/","terms of use",{"text":849,"config":850},"Privacy statement",{"href":851,"dataGaName":852,"dataGaLocation":794},"/privacy/","privacy statement",{"text":854,"config":855},"Cookie preferences",{"dataGaName":856,"dataGaLocation":794,"id":857,"isOneTrustButton":335},"cookie preferences","ot-sdk-btn",{"title":401,"links":859,"subMenu":868},[860,864],{"text":861,"config":862},"DevSecOps platform",{"href":383,"dataGaName":863,"dataGaLocation":794},"devsecops platform",{"text":865,"config":866},"AI-Assisted Development",{"href":390,"dataGaName":867,"dataGaLocation":794},"ai-assisted development",[869],{"title":870,"links":871},"Topics",[872,877,882,887,892,896,901,906],{"text":873,"config":874},"CICD",{"href":875,"dataGaName":876,"dataGaLocation":794},"/topics/ci-cd/","cicd",{"text":878,"config":879},"GitOps",{"href":880,"dataGaName":881,"dataGaLocation":794},"/topics/gitops/","gitops",{"text":883,"config":884},"DevOps",{"href":885,"dataGaName":886,"dataGaLocation":794},"/topics/devops/","devops",{"text":888,"config":889},"Version Control",{"href":890,"dataGaName":891,"dataGaLocation":794},"/topics/version-control/","version control",{"text":893,"config":894},"DevSecOps",{"href":18,"dataGaName":895,"dataGaLocation":794},"devsecops",{"text":897,"config":898},"Cloud Native",{"href":899,"dataGaName":900,"dataGaLocation":794},"/topics/cloud-native/","cloud native",{"text":902,"config":903},"AI for Coding",{"href":904,"dataGaName":905,"dataGaLocation":794},"/topics/devops/ai-for-coding/","ai for coding",{"text":907,"config":908},"Agentic AI",{"href":909,"dataGaName":910,"dataGaLocation":794},"/topics/agentic-ai/","agentic ai",{"title":912,"links":913},"Solutions",[914,916,918,923,927,930,934,937,939,942,945,950],{"text":444,"config":915},{"href":439,"dataGaName":444,"dataGaLocation":794},{"text":433,"config":917},{"href":417,"dataGaName":418,"dataGaLocation":794},{"text":919,"config":920},"Agile development",{"href":921,"dataGaName":922,"dataGaLocation":794},"/solutions/agile-delivery/","agile delivery",{"text":924,"config":925},"SCM",{"href":429,"dataGaName":926,"dataGaLocation":794},"source code management",{"text":873,"config":928},{"href":422,"dataGaName":929,"dataGaLocation":794},"continuous integration & delivery",{"text":931,"config":932},"Value stream management",{"href":472,"dataGaName":933,"dataGaLocation":794},"value stream management",{"text":878,"config":935},{"href":936,"dataGaName":881,"dataGaLocation":794},"/solutions/gitops/",{"text":482,"config":938},{"href":485,"dataGaName":486,"dataGaLocation":794},{"text":940,"config":941},"Small business",{"href":491,"dataGaName":492,"dataGaLocation":794},{"text":943,"config":944},"Public sector",{"href":497,"dataGaName":498,"dataGaLocation":794},{"text":946,"config":947},"Education",{"href":948,"dataGaName":949,"dataGaLocation":794},"/solutions/education/","education",{"text":951,"config":952},"Financial services",{"href":953,"dataGaName":954,"dataGaLocation":794},"/solutions/finance/","financial services",{"title":505,"links":956},[957,959,961,963,966,968,971,973,975,977,979,981,983,985],{"text":518,"config":958},{"href":520,"dataGaName":521,"dataGaLocation":794},{"text":523,"config":960},{"href":525,"dataGaName":526,"dataGaLocation":794},{"text":528,"config":962},{"href":530,"dataGaName":531,"dataGaLocation":794},{"text":533,"config":964},{"href":535,"dataGaName":965,"dataGaLocation":794},"docs",{"text":556,"config":967},{"href":558,"dataGaName":559,"dataGaLocation":794},{"text":969,"config":970},"What's new",{"href":616,"dataGaName":617,"dataGaLocation":794},{"text":551,"config":972},{"href":553,"dataGaName":554,"dataGaLocation":794},{"text":570,"config":974},{"href":572,"dataGaName":573,"dataGaLocation":794},{"text":578,"config":976},{"href":580,"dataGaName":581,"dataGaLocation":794},{"text":583,"config":978},{"href":585,"dataGaName":586,"dataGaLocation":794},{"text":588,"config":980},{"href":590,"dataGaName":591,"dataGaLocation":794},{"text":593,"config":982},{"href":595,"dataGaName":596,"dataGaLocation":794},{"text":598,"config":984},{"href":600,"dataGaName":601,"dataGaLocation":794},{"text":603,"config":986},{"href":605,"dataGaName":606,"dataGaLocation":794},{"title":619,"links":988},[989,991,993,995,997,999,1003,1008,1010,1012,1014],{"text":627,"config":990},{"href":629,"dataGaName":621,"dataGaLocation":794},{"text":632,"config":992},{"href":634,"dataGaName":635,"dataGaLocation":794},{"text":640,"config":994},{"href":642,"dataGaName":643,"dataGaLocation":794},{"text":645,"config":996},{"href":647,"dataGaName":648,"dataGaLocation":794},{"text":650,"config":998},{"href":652,"dataGaName":653,"dataGaLocation":794},{"text":1000,"config":1001},"Sustainability",{"href":1002,"dataGaName":1000,"dataGaLocation":794},"/sustainability/",{"text":1004,"config":1005},"Diversity, inclusion and belonging (DIB)",{"href":1006,"dataGaName":1007,"dataGaLocation":794},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":655,"config":1009},{"href":657,"dataGaName":658,"dataGaLocation":794},{"text":665,"config":1011},{"href":667,"dataGaName":668,"dataGaLocation":794},{"text":670,"config":1013},{"href":672,"dataGaName":673,"dataGaLocation":794},{"text":1015,"config":1016},"Modern Slavery Transparency Statement",{"href":1017,"dataGaName":1018,"dataGaLocation":794},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1020},[1021,1024,1027],{"text":1022,"config":1023},"Terms",{"href":846,"dataGaName":847,"dataGaLocation":794},{"text":1025,"config":1026},"Cookies",{"dataGaName":856,"dataGaLocation":794,"id":857,"isOneTrustButton":335},{"text":1028,"config":1029},"Privacy",{"href":851,"dataGaName":852,"dataGaLocation":794},[1031],{"id":1032,"title":1033,"body":331,"config":1034,"content":1036,"description":331,"extension":1040,"meta":1041,"navigation":335,"path":1042,"seo":1043,"stem":1044,"__hash__":1045},"blogAuthors/en-us/blog/authors/taylor-mccaslin.yml","Taylor Mccaslin",{"template":1035},"BlogAuthor",{"name":7,"config":1037},{"headshot":1038,"ctfId":1039},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667996/Blog/Author%20Headshots/tmccaslin-headshot.png","tmccaslin","yml",{},"/en-us/blog/authors/taylor-mccaslin",{},"en-us/blog/authors/taylor-mccaslin","7SPWjJi2CicE7Or_JC0bA95HjfK2vx1NkcbRlLVcgCk",[1047,1055,1063],{"title":1048,"description":1049,"heroImage":1050,"category":327,"date":1051,"authors":1052,"slug":1054,"externalUrl":331},"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",[1053],"Julian Thome","improved-scope-offset-fingerprinting",{"title":1056,"description":1057,"heroImage":1050,"category":327,"date":1058,"authors":1059,"slug":1062,"externalUrl":331},"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",[1060,1061],"Erick Bajao","Joe Randazzo","gitlab-secrets-manager-add-eso-terraform-api-support",{"title":1064,"description":1065,"heroImage":1066,"category":327,"date":1067,"authors":1068,"slug":1070,"externalUrl":331},"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",[1069],"Alisa Ho","claude-security-and-gitlab",{"promotions":1072},[1073,1087,1099,1110],{"id":1074,"categories":1075,"header":1077,"text":1078,"button":1079,"image":1084},"ai-modernization",[1076],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1080,"config":1081},"Get your AI maturity score",{"href":1082,"dataGaName":1083,"dataGaLocation":559},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1085},{"src":1086},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1088,"categories":1089,"header":1091,"text":1078,"button":1092,"image":1096},"devops-modernization",[1090,895],"product","Are you just managing tools or shipping innovation?",{"text":1093,"config":1094},"Get your DevOps maturity score",{"href":1095,"dataGaName":1083,"dataGaLocation":559},"/assessments/devops-modernization-assessment/",{"config":1097},{"src":1098},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1100,"categories":1101,"header":1102,"text":1078,"button":1103,"image":1107},"security-modernization",[327],"Are you trading speed for security?",{"text":1104,"config":1105},"Get your security maturity score",{"href":1106,"dataGaName":1083,"dataGaLocation":559},"/assessments/security-modernization-assessment/",{"config":1108},{"src":1109},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1111,"paths":1112,"header":1115,"text":1116,"button":1117,"image":1122},"github-azure-migration",[1113,1114],"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":1118,"config":1119},"See how GitLab compares to GitHub",{"href":1120,"dataGaName":1121,"dataGaLocation":559},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1123},{"src":1098},{"header":1125,"blurb":1126,"button":1127,"secondaryButton":1132},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1128,"config":1129},"Get your free trial",{"href":1130,"dataGaName":359,"dataGaLocation":1131},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":832,"config":1133},{"href":684,"dataGaName":364,"dataGaLocation":1131},1786803769482]