[{"data":1,"prerenderedAt":868},["ShallowReactive",2],{"/fr-fr/blog/improved-scope-offset-fingerprinting":3,"navigation-fr-fr":128,"banner-fr-fr":555,"footer-fr-fr":562,"blog-post-authors-fr-fr-Julian Thome":811,"blog-related-posts-fr-fr-improved-scope-offset-fingerprinting":825,"blog-share-wrapper-fr-fr":849,"next-steps-fr-fr":859},{"id":4,"title":5,"authors":6,"body":8,"category":107,"date":108,"description":109,"extension":110,"externalUrl":111,"faq":111,"featured":112,"heroImage":113,"meta":114,"navigation":115,"path":116,"seo":117,"slug":120,"stem":121,"tags":122,"template":126,"updatedDate":111,"__hash__":127},"blogPosts/fr-fr/blog/improved-scope-offset-fingerprinting.md","Comment GitLab suit les vulnérabilités dans les refactorisations et les reformatages",[7],"Julian Thome",{"type":9,"value":10,"toc":103},"minimark",[11,15,35,43,46,49,55,66,82],[12,13,14],"p",{},"Chaque jour, les scans de sécurité se heurtent au même problème : un agent ou un développeur ajoute un commentaire, reformate un fichier ou déplace une fonction, et un outil de suivi des vulnérabilités peu sophistiqué signale soudainement le même résultat deux fois. Les équipes de sécurité se retrouvent à réexaminer des problèmes qu'elles avaient déjà écartés, ce qui génère des efforts d'audit inutiles et érode la confiance dans les résultats des scans.",[12,16,17,18,22,23,26,27,30,31,34],{},"En 2022, nous avons introduit le suivi avancé des vulnérabilités pour résoudre précisément ce problème de ",[19,20,21],"em",{},"volatilité du code",". Cette approche repose sur notre méthode d'empreinte ",[19,24,25],{},"Scope+Offset"," : au lieu d'identifier un résultat par son fichier et son numéro de ligne, nous l'identifions par sa ",[19,28,29],{},"portée"," englobante la plus étroite (module, classe, fonction) et son ",[19,32,33],{},"décalage"," de ligne au sein de cette portée. Cette méthode a renforcé le suivi face aux déplacements de code dans le fichier et a réduit les réexamens inutiles d'environ 30 % par rapport au suivi basé sur les lignes.",[12,36,37,38,42],{},"Mais une catégorie de modifications a tout de même échappé au contrôle : les ",[39,40,41],"strong",{},"modifications non fonctionnelles",". Le décalage comptabilisait chaque ligne entre la limite de portée et le résultat, y compris les commentaires et les lignes vides. L'ajout d'un commentaire au-dessus d'une instruction vulnérable modifiait le décalage. L'outil de suivi détectait alors une « nouvelle » vulnérabilité, et vous vous retrouviez face à un doublon.",[12,44,45],{},"Notre méthode améliorée résout ce problème en ignorant simplement le code non fonctionnel (commentaires et lignes vides) lors du calcul de l'empreinte. Puisque ces lignes n'affectent pas le comportement du programme, elles ne devraient pas non plus affecter l'identité d'une vulnérabilité. Grâce à cette normalisation, l'ajout d'un commentaire ou le reformatage d'un fichier ne modifie plus l'empreinte, tandis que la précision du suivi reste identique. Les détails de cette approche sont décrits dans notre article de recherche associé.",[12,47,48],{},"Nous avons évalué la méthode normalisée sur un benchmark ciblé : 439 fichiers sources en C/C++, C#, Go, Java, JavaScript, Python et Ruby. Nous avons généré 2 247 commits, chacun insérant un seul commentaire ou une seule ligne vide directement avant une vulnérabilité connue, puis analysé le code au fil de l'historique rejoué. Ce benchmark met délibérément à l'épreuve le pire des cas : chaque commit est une modification non fonctionnelle placée juste à côté d'un résultat.",[12,50,51,52,54],{},"Sur ce benchmark, la méthode ",[19,53,25],{}," d'origine a accumulé 1 361 doublons d'empreintes, soit une croissance de 77 % par rapport à la valeur de référence. La méthode normalisée n'a produit aucun doublon et a réduit le nombre d'empreintes uniques de 43 % au total.",[12,56,57,60,61,65],{},[19,58,59],{},"Normalized Scope+Offset"," est disponible dans GitLab sous le nom d'algorithme de suivi ",[62,63,64],"code",{},"scope_offset_compressed",", avec prise en charge de C#, C/C++, Go, Java, JavaScript, Python, Ruby et PHP. Il réutilise l'arbre syntaxique que le scanner construit déjà, de sorte que la durée de scan n'est pas affectée. Le format du rapport de sécurité est inchangé, ce qui assure sa compatibilité avec toute combinaison d'outils SAST (test statique de sécurité des applications) dans une configuration hétérogène.",[12,67,68,69,75,76,81],{},"La prépublication de notre étude « ",[70,71,74],"a",{"href":72,"rel":73},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1786457681/jm8oieyjhwut8ed2cpaq.pdf",[],"Vulnerability Tracking using Normalized\nScope+Offset"," » par Julian Thome, Hua Yan, Lucas Charles, Craig Smith et Jason Leasure sera présentée lors de l'",[70,77,80],{"href":78,"rel":79},"https://conf.researchr.org/track/ase-2026/ase-2026-industry-showcase",[],"ASE 2026 Industry Showcase",".",[12,83,84],{},[19,85,86,91,92,91,97,102],{},[70,87,90],{"href":88,"rel":89},"https://gitlab.com/hyan3",[],"Hua Yan",", ",[70,93,96],{"href":94,"rel":95},"https://gitlab.com/theoretick",[],"Lucas Charles",[70,98,101],{"href":99,"rel":100},"https://gitlab.com/craigmsmith",[],"Craig Smith"," et Jason Leasure ont contribué à cet article et à cette étude.",{"title":104,"searchDepth":105,"depth":105,"links":106},"",2,[],"security","2026-08-26","Découvrez comment l'empreinte Scope+Offset améliorée de GitLab maintient un suivi stable des vulnérabilités dans les commentaires, les lignes vides et les reformatages.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1759320418/xjmqcozxzt4frx0hori3.png",{},true,"/fr-fr/blog/improved-scope-offset-fingerprinting",{"title":118,"description":109,"config":119},"Suivi des vulnérabilités avec l'empreinte Scope+Offset",{"noIndex":112},"improved-scope-offset-fingerprinting","fr-fr/blog/improved-scope-offset-fingerprinting",[107,123,124,125],"security research","features","DevSecOps platform","BlogPost","D2qRzNNLSbAAGg1ZDB0PJCtSZ169DiOt63Akin3ciOo",{"logo":129,"freeTrial":134,"sales":139,"login":144,"items":149,"search":470,"minimal":506,"duo":525,"switchNav":534,"pricingDeployment":545},{"config":130},{"href":131,"dataGaName":132,"dataGaLocation":133},"/fr-fr/","gitlab logo","header",{"text":135,"config":136},"Commencer un essai gratuit",{"href":137,"dataGaName":138,"dataGaLocation":133},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":140,"config":141},"Demander une démo",{"href":142,"dataGaName":143,"dataGaLocation":133},"/fr-fr/sales/?contact-topic=request-demo","sales",{"text":145,"config":146},"Connexion",{"href":147,"dataGaName":148,"dataGaLocation":133},"https://gitlab.com/users/sign_in/","sign in",[150,226,314,319,394,448],{"text":151,"left":115,"config":152,"menu":154},"Plateforme",{"dataNavLevelOne":153},"platform",{"type":155,"link":156,"columns":160,"feature":215},"lists",{"text":157,"config":158},"Explorer la plateforme",{"href":159,"dataGaName":153,"dataGaLocation":133},"/fr-fr/platform/",[161,179,197],{"title":162,"items":163},"Exécution et workflows",[164,169,174],{"text":165,"config":166},"CI/CD",{"href":167,"dataGaLocation":133,"dataGaName":168},"/fr-fr/solutions/continuous-integration/","ci/cd",{"text":170,"config":171},"Gestion du code source",{"href":172,"dataGaLocation":133,"dataGaName":173},"/fr-fr/solutions/source-code-management/","source code management",{"text":175,"config":176},"Méthode de livraison selon les principes Agile",{"href":177,"dataGaLocation":133,"dataGaName":178},"/fr-fr/solutions/agile-delivery/","agile delivery",{"title":180,"items":181},"Sécurité et gouvernance",[182,187,192],{"text":183,"config":184},"Test de sécurité des applications",{"href":185,"dataGaLocation":133,"dataGaName":186},"/fr-fr/solutions/application-security-testing/","application security testing",{"text":188,"config":189},"Gouvernance et conformité",{"href":190,"dataGaLocation":133,"dataGaName":191},"/fr-fr/solutions/software-compliance/","governance and compliance",{"text":193,"config":194},"Sécurité de la chaîne d'approvisionnement",{"href":195,"dataGaLocation":133,"dataGaName":196},"/fr-fr/solutions/supply-chain/","supply chain security",{"title":198,"items":199},"Contexte et IA",[200,205,210],{"text":201,"config":202},"Orchestration agentique",{"href":203,"dataGaLocation":133,"dataGaName":204},"/fr-fr/gitlab-duo-agent-platform/","agentic orchestration",{"text":206,"config":207},"Graphe de contexte",{"href":208,"dataGaLocation":133,"dataGaName":209},"/fr-fr/gitlab-orbit/","context graph",{"text":211,"config":212},"Visibilité et mesures",{"href":213,"dataGaLocation":133,"dataGaName":214},"/fr-fr/solutions/visibility-measurement/","visibility and measurement",{"config":216,"title":219,"text":220,"link":221},{"background":217,"textColor":218},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Pourquoi utiliser GitLab","Une plateforme unique offrant une rapidité maîtrisée tout au long du cycle de développement logiciel.",{"text":222,"config":223},"En savoir plus",{"href":224,"dataGaName":225,"dataGaLocation":133},"/fr-fr/why-gitlab/","why gitlab",{"text":227,"left":115,"config":228,"menu":230},"Solutions",{"dataNavLevelOne":229},"solutions",{"type":155,"link":231,"columns":235,"feature":305},{"text":232,"config":233},"Voir toutes les solutions",{"href":234,"dataGaName":229,"dataGaLocation":133},"/fr-fr/solutions/",[236,254,272],{"title":237,"items":238},"Résultats",[239,244,249],{"text":240,"config":241},"Modernisation DevOps",{"href":242,"dataGaLocation":133,"dataGaName":243},"/fr-fr/assessments/devops-modernization-assessment/","devops modernization",{"text":245,"config":246},"Modernisation de la sécurité",{"href":247,"dataGaLocation":133,"dataGaName":248},"/fr-fr/assessments/security-modernization-assessment/","security modernization",{"text":250,"config":251},"Modernisation de l'IA",{"href":252,"dataGaLocation":133,"dataGaName":253},"/fr-fr/assessments/ai-modernization-assessment/","ai modernization",{"title":255,"items":256},"Par taille",[257,262,267],{"text":258,"config":259},"Entreprises",{"href":260,"dataGaLocation":133,"dataGaName":261},"/fr-fr/enterprise/","enterprise",{"text":263,"config":264},"PME",{"href":265,"dataGaLocation":133,"dataGaName":266},"/fr-fr/small-business/","small business",{"text":268,"config":269},"Start-up",{"href":270,"dataGaLocation":133,"dataGaName":271},"/fr-fr/solutions/startups/","startups",{"title":273,"items":274},"Secteurs",[275,280,285,290,295,300],{"text":276,"config":277},"Services financiers",{"href":278,"dataGaLocation":133,"dataGaName":279},"/fr-fr/solutions/finance/","financial services",{"text":281,"config":282},"Secteur public",{"href":283,"dataGaLocation":133,"dataGaName":284},"/fr-fr/solutions/public-sector/","public sector",{"text":286,"config":287},"Télécommunications",{"href":288,"dataGaLocation":133,"dataGaName":289},"/fr-fr/solutions/telecommunications/","telecommunications",{"text":291,"config":292},"Automobile",{"href":293,"dataGaLocation":133,"dataGaName":294},"/fr-fr/solutions/automotive/","automotive",{"text":296,"config":297},"Éducation",{"href":298,"dataGaLocation":133,"dataGaName":299},"/fr-fr/solutions/education/","education",{"text":301,"config":302},"Aérospatiale",{"href":303,"dataGaLocation":133,"dataGaName":304},"/fr-fr/solutions/aerospace/","aerospace",{"config":306,"title":307,"text":308,"link":309},{"background":217,"textColor":218},"GitLab Transcend","Découvrez les dernières innovations annoncées lors du dernier événement GitLab Transcend.",{"text":310,"config":311},"Lire le blog",{"href":312,"dataGaName":313,"dataGaLocation":133},"/fr-fr/blog/gitlab-transcend-announcements/","gitlab transcend",{"text":315,"config":316},"Tarifs",{"href":317,"dataGaName":318,"dataGaLocation":133,"dataNavLevelOne":318},"/fr-fr/pricing/","pricing",{"text":320,"config":321,"menu":323},"Ressources",{"dataNavLevelOne":322},"resources",{"type":155,"link":324,"columns":328,"feature":385},{"text":325,"config":326},"Afficher toutes les ressources",{"href":327,"dataGaName":322,"dataGaLocation":133},"/fr-fr/resources/",[329,357],{"title":330,"items":331},"Découvrir",[332,337,342,347,352],{"text":333,"config":334},"Documentation",{"href":335,"dataGaName":336,"dataGaLocation":133},"https://docs.gitlab.com/","docs",{"text":338,"config":339},"GitLab University",{"href":340,"dataGaName":341,"dataGaLocation":133},"https://university.gitlab.com/","university",{"text":343,"config":344},"Démos",{"href":345,"dataGaName":346,"dataGaLocation":133},"/fr-fr/gitlab-technical-demo-series/","demo series",{"text":348,"config":349},"Centre de démos",{"href":350,"dataGaName":351,"dataGaLocation":133},"/fr-fr/demo-hub/","demo hub",{"text":353,"config":354},"Services",{"href":355,"dataGaName":356,"dataGaLocation":133},"/fr-fr/services/","services",{"title":358,"items":359},"Connecter",[360,365,370,375,380],{"text":361,"config":362},"Blog",{"href":363,"dataGaName":364,"dataGaLocation":133},"/fr-fr/blog/","blog",{"text":366,"config":367},"Communauté",{"href":368,"dataGaName":369,"dataGaLocation":133},"/community/","community",{"text":371,"config":372},"Clients",{"href":373,"dataGaName":374,"dataGaLocation":133},"/fr-fr/customers/","customers",{"text":376,"config":377},"Partenaires",{"href":378,"dataGaName":379,"dataGaLocation":133},"/fr-fr/partners/","partners",{"text":381,"config":382},"Événements",{"href":383,"dataGaName":384,"dataGaLocation":133},"/events/","events",{"config":386,"title":387,"text":388,"link":389},{"background":217,"textColor":218},"Nouveautés de GitLab","Découvrez les dernières fonctionnalités et améliorations.",{"text":390,"config":391},"Lire les articles les plus récents",{"href":392,"dataGaName":393,"dataGaLocation":133},"/fr-fr/whats-new/","whats new",{"text":395,"config":396,"menu":398},"Société",{"dataNavLevelOne":397},"company",{"type":155,"columns":399},[400],{"items":401},[402,407,413,418,423,428,433,438,443],{"text":403,"config":404},"À propos",{"href":405,"dataGaName":406,"dataGaLocation":133},"/fr-fr/company/","about",{"text":408,"config":409,"footerGa":412},"Carrières",{"href":410,"dataGaName":411,"dataGaLocation":133},"/jobs/","jobs",{"dataGaName":411},{"text":414,"config":415},"Presse",{"href":416,"dataGaName":417,"dataGaLocation":133},"/press/","press",{"text":419,"config":420},"Manuel",{"href":421,"dataGaName":422,"dataGaLocation":133},"https://handbook.gitlab.com/","handbook",{"text":424,"config":425},"Leadership",{"href":426,"dataGaName":427,"dataGaLocation":133},"/company/team/e-group/","leadership",{"text":429,"config":430},"Relations avec les investisseurs",{"href":431,"dataGaName":432,"dataGaLocation":133},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":434,"config":435},"Trust Center",{"href":436,"dataGaName":437,"dataGaLocation":133},"/fr-fr/security/","trust center",{"text":439,"config":440},"Centre pour la transparence de l'IA",{"href":441,"dataGaName":442,"dataGaLocation":133},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":444,"config":445},"Newsletter",{"href":446,"dataGaName":447,"dataGaLocation":133},"/company/contact/#contact-forms","newsletter",{"text":449,"config":450,"menu":451},"Nous contacter",{"dataNavLevelOne":397},{"type":155,"columns":452},[453],{"items":454},[455,460,465],{"text":456,"config":457},"Contacter l'équipe commerciale",{"href":458,"dataGaName":459,"dataGaLocation":133},"/fr-fr/sales/","talk to sales",{"text":461,"config":462},"Assistance GitLab",{"href":463,"dataGaName":464,"dataGaLocation":133},"https://support.gitlab.com/hc/en-us","support portal",{"text":466,"config":467},"Portail clients GitLab",{"href":468,"dataGaName":469,"dataGaLocation":133},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":471,"login":472,"suggestions":479},"Fermer",{"text":473,"link":474},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":475,"config":476},"GitLab.com",{"href":147,"dataGaName":477,"dataGaLocation":478},"search login","search",{"text":480,"default":481},"Suggestions",[482,486,491,493,498,503],{"text":483,"config":484},"GitLab Duo Agent Platform",{"href":203,"dataGaName":485,"dataGaLocation":478},"GitLab Duo Agent Platform",{"text":487,"config":488},"Suggestions de code (IA)",{"href":489,"dataGaName":490,"dataGaLocation":478},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":165,"config":492},{"href":167,"dataGaName":165,"dataGaLocation":478},{"text":494,"config":495},"GitLab sur AWS",{"href":496,"dataGaName":497,"dataGaLocation":478},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":499,"config":500},"GitLab sur Google Cloud",{"href":501,"dataGaName":502,"dataGaLocation":478},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":219,"config":504},{"href":224,"dataGaName":505,"dataGaLocation":478},"Why GitLab?",{"freeTrial":507,"mobileIcon":512,"desktopIcon":517,"secondaryButton":520},{"text":508,"config":509},"Commencer votre essai gratuit",{"href":510,"dataGaName":138,"dataGaLocation":511},"https://gitlab.com/-/trials/new/","nav",{"altText":513,"config":514},"Icône GitLab",{"src":515,"dataGaName":516,"dataGaLocation":511},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":513,"config":518},{"src":519,"dataGaName":516,"dataGaLocation":511},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":521,"config":522},"Commencer",{"href":523,"dataGaName":524,"dataGaLocation":511},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":526,"mobileIcon":530,"desktopIcon":532},{"text":527,"config":528},"En savoir plus sur GitLab Duo",{"href":203,"dataGaName":529,"dataGaLocation":511},"gitlab duo",{"altText":513,"config":531},{"src":515,"dataGaName":516,"dataGaLocation":511},{"altText":513,"config":533},{"src":519,"dataGaName":516,"dataGaLocation":511},{"button":535,"mobileIcon":540,"desktopIcon":542},{"text":536,"config":537},"/switch",{"href":538,"dataGaName":539,"dataGaLocation":511},"#contact","switch",{"altText":513,"config":541},{"src":515,"dataGaName":516,"dataGaLocation":511},{"altText":513,"config":543},{"src":544,"dataGaName":516,"dataGaLocation":511},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":546,"mobileIcon":551,"desktopIcon":553},{"text":547,"config":548},"Retour aux tarifs",{"href":317,"dataGaName":549,"dataGaLocation":511,"icon":550},"back to pricing","GoBack",{"altText":513,"config":552},{"src":515,"dataGaName":516,"dataGaLocation":511},{"altText":513,"config":554},{"src":519,"dataGaName":516,"dataGaLocation":511},{"title":556,"button":557,"config":560},"GitLab Orbit est arrivé : la couche de contexte pour les agents d'IA.",{"text":222,"config":558},{"href":208,"dataGaName":559,"dataGaLocation":133},"orbit",{"layout":561,"disabled":112},"release",{"data":563},{"text":564,"source":565,"edit":571,"contribute":576,"config":581,"items":586,"minimal":803},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":566,"config":567},"Afficher le code source de la page",{"href":568,"dataGaName":569,"dataGaLocation":570},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":572,"config":573},"Modifier cette page",{"href":574,"dataGaName":575,"dataGaLocation":570},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":577,"config":578},"Contribuer",{"href":579,"dataGaName":580,"dataGaLocation":570},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":582,"facebook":583,"youtube":584,"linkedin":585},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[587,632,687,729,770],{"title":315,"links":588,"subMenu":603},[589,593,598],{"text":590,"config":591},"Voir les forfaits",{"href":317,"dataGaName":592,"dataGaLocation":570},"view plans",{"text":594,"config":595},"GitLab Premium",{"href":596,"dataGaName":597,"dataGaLocation":570},"/fr-fr/pricing/premium/","why premium",{"text":599,"config":600},"GitLab Ultimate",{"href":601,"dataGaName":602,"dataGaLocation":570},"/fr-fr/pricing/ultimate/","why ultimate",[604],{"title":449,"links":605},[606,608,610,612,617,622,627],{"text":456,"config":607},{"href":458,"dataGaName":143,"dataGaLocation":570},{"text":461,"config":609},{"href":463,"dataGaName":464,"dataGaLocation":570},{"text":466,"config":611},{"href":468,"dataGaName":469,"dataGaLocation":570},{"text":613,"config":614},"Statut",{"href":615,"dataGaName":616,"dataGaLocation":570},"https://status.gitlab.com/","status",{"text":618,"config":619},"Conditions d'utilisation",{"href":620,"dataGaName":621,"dataGaLocation":570},"/terms/","terms of use",{"text":623,"config":624},"Politique de confidentialité",{"href":625,"dataGaName":626,"dataGaLocation":570},"/fr-fr/privacy/","privacy statement",{"text":628,"config":629},"Gestion des cookies",{"dataGaName":630,"dataGaLocation":570,"id":631,"isOneTrustButton":115},"cookie preferences","ot-sdk-btn",{"title":151,"links":633,"subMenu":644},[634,636,638,640,642],{"text":157,"config":635},{"href":159,"dataGaName":153,"dataGaLocation":570},{"text":201,"config":637},{"href":203,"dataGaName":204,"dataGaLocation":570},{"text":165,"config":639},{"href":167,"dataGaName":168,"dataGaLocation":570},{"text":206,"config":641},{"href":208,"dataGaName":209,"dataGaLocation":570},{"text":219,"config":643},{"href":224,"dataGaName":225,"dataGaLocation":570},[645],{"title":646,"links":647},"Thèmes",[648,652,657,662,667,672,677,682],{"text":165,"config":649},{"href":650,"dataGaName":651,"dataGaLocation":570},"/fr-fr/topics/ci-cd/","cicd",{"text":653,"config":654},"GitOps",{"href":655,"dataGaName":656,"dataGaLocation":570},"/fr-fr/topics/gitops/","gitops",{"text":658,"config":659},"DevOps",{"href":660,"dataGaName":661,"dataGaLocation":570},"/fr-fr/topics/devops/","devops",{"text":663,"config":664},"Contrôle de version",{"href":665,"dataGaName":666,"dataGaLocation":570},"/fr-fr/topics/version-control/","version control",{"text":668,"config":669},"DevSecOps",{"href":670,"dataGaName":671,"dataGaLocation":570},"/fr-fr/topics/devsecops/","devsecops",{"text":673,"config":674},"Cloud-native",{"href":675,"dataGaName":676,"dataGaLocation":570},"/fr-fr/topics/cloud-native/","cloud native",{"text":678,"config":679},"IA pour la programmation",{"href":680,"dataGaName":681,"dataGaLocation":570},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":683,"config":684},"IA agentique",{"href":685,"dataGaName":686,"dataGaLocation":570},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":227,"links":688},[689,691,693,695,697,699,701,703,705,707,709,711,713,716,720,725],{"text":240,"config":690},{"href":242,"dataGaName":243,"dataGaLocation":570},{"text":245,"config":692},{"href":247,"dataGaName":248,"dataGaLocation":570},{"text":250,"config":694},{"href":252,"dataGaName":253,"dataGaLocation":570},{"text":276,"config":696},{"href":278,"dataGaName":279,"dataGaLocation":570},{"text":281,"config":698},{"href":283,"dataGaName":284,"dataGaLocation":570},{"text":286,"config":700},{"href":288,"dataGaName":289,"dataGaLocation":570},{"text":291,"config":702},{"href":293,"dataGaName":294,"dataGaLocation":570},{"text":296,"config":704},{"href":298,"dataGaName":299,"dataGaLocation":570},{"text":301,"config":706},{"href":303,"dataGaName":304,"dataGaLocation":570},{"text":258,"config":708},{"href":260,"dataGaName":261,"dataGaLocation":570},{"text":263,"config":710},{"href":265,"dataGaName":266,"dataGaLocation":570},{"text":268,"config":712},{"href":270,"dataGaName":271,"dataGaLocation":570},{"text":653,"config":714},{"href":715,"dataGaName":656,"dataGaLocation":570},"/fr-fr/solutions/gitops/",{"text":717,"config":718},"Analyse de la composition logicielle",{"href":195,"dataGaName":719,"dataGaLocation":570},"software composition analysis",{"text":721,"config":722},"Gestion de la chaîne de valeur",{"href":723,"dataGaName":724,"dataGaLocation":570},"/fr-fr/solutions/value-stream-management/","value stream management",{"text":726,"config":727},"Toutes les solutions",{"href":234,"dataGaName":728,"dataGaLocation":570},"all solutions",{"title":320,"links":730},[731,736,741,743,745,747,749,751,753,755,757,759,761,763,766],{"text":732,"config":733},"Installation",{"href":734,"dataGaName":735,"dataGaLocation":570},"/fr-fr/install/","install",{"text":737,"config":738},"Guides de démarrage",{"href":739,"dataGaName":740,"dataGaLocation":570},"/fr-fr/get-started/","quick setup checklists",{"text":333,"config":742},{"href":335,"dataGaName":336,"dataGaLocation":570},{"text":338,"config":744},{"href":340,"dataGaName":341,"dataGaLocation":570},{"text":343,"config":746},{"href":345,"dataGaName":346,"dataGaLocation":570},{"text":348,"config":748},{"href":350,"dataGaName":351,"dataGaLocation":570},{"text":353,"config":750},{"href":355,"dataGaName":356,"dataGaLocation":570},{"text":361,"config":752},{"href":363,"dataGaName":364,"dataGaLocation":570},{"text":366,"config":754},{"href":368,"dataGaName":369,"dataGaLocation":570},{"text":371,"config":756},{"href":373,"dataGaName":374,"dataGaLocation":570},{"text":376,"config":758},{"href":378,"dataGaName":379,"dataGaLocation":570},{"text":381,"config":760},{"href":383,"dataGaName":384,"dataGaLocation":570},{"text":444,"config":762},{"href":446,"dataGaName":447,"dataGaLocation":570},{"text":764,"config":765},"Nouveautés",{"href":392,"dataGaName":393,"dataGaLocation":570},{"text":767,"config":768},"Toutes les ressources",{"href":327,"dataGaName":769,"dataGaLocation":570},"all resources",{"title":395,"links":771},[772,774,776,778,780,782,784,786,788,793,798],{"text":403,"config":773},{"href":405,"dataGaName":397,"dataGaLocation":570},{"text":408,"config":775},{"href":410,"dataGaName":411,"dataGaLocation":570},{"text":414,"config":777},{"href":416,"dataGaName":417,"dataGaLocation":570},{"text":419,"config":779},{"href":421,"dataGaName":422,"dataGaLocation":570},{"text":424,"config":781},{"href":426,"dataGaName":427,"dataGaLocation":570},{"text":429,"config":783},{"href":431,"dataGaName":432,"dataGaLocation":570},{"text":434,"config":785},{"href":436,"dataGaName":437,"dataGaLocation":570},{"text":439,"config":787},{"href":441,"dataGaName":442,"dataGaLocation":570},{"text":789,"config":790},"Développement durable",{"href":791,"dataGaName":792,"dataGaLocation":570},"/sustainability/","Sustainability",{"text":794,"config":795},"Diversité, inclusion et appartenance (DIB)",{"href":796,"dataGaName":797,"dataGaLocation":570},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":799,"config":800},"Déclaration de transparence sur l'esclavage moderne",{"href":801,"dataGaName":802,"dataGaLocation":570},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":804},[805,807,809],{"text":618,"config":806},{"href":620,"dataGaName":621,"dataGaLocation":570},{"text":628,"config":808},{"dataGaName":630,"dataGaLocation":570,"id":631,"isOneTrustButton":115},{"text":623,"config":810},{"href":625,"dataGaName":626,"dataGaLocation":570},[812],{"id":813,"title":7,"body":111,"config":814,"content":816,"description":111,"extension":819,"meta":820,"navigation":115,"path":821,"seo":822,"stem":823,"__hash__":824},"blogAuthors/en-us/blog/authors/julian-thome.yml",{"template":815},"BlogAuthor",{"name":7,"config":817},{"headshot":104,"ctfId":818},"jthome","yml",{},"/en-us/blog/authors/julian-thome",{},"en-us/blog/authors/julian-thome","60j2yTW0PuY7q83cXf4NkfzrKTRE2sUlVv5TXE6o1xM",[826,834,842],{"title":827,"description":828,"heroImage":829,"category":107,"date":830,"authors":831,"slug":833,"externalUrl":111},"Sécuriser l'usine logicielle à la vitesse machine","Les bases du développement agentique doivent évoluer avec les modèles d'IA pour continuer à raccourcir le chemin entre détection et correction vérifiée.","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1759320418/xjmqcozxzt4frx0hori3.png","2026-09-21",[832],"Chaim Mazal","securing-the-software-factory-at-machine-speed",{"title":835,"description":836,"heroImage":837,"category":107,"date":838,"authors":839,"slug":841,"externalUrl":111},"Frameworks de conformité GitLab : adhérez à la norme SOC 2 en quelques minutes","Utilisez les templates de frameworks de conformité personnalisés de GitLab pour appliquer la norme SOC 2, surveiller son adhésion en continu et réduire le temps de préparation des audits.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-09-15",[840],"Fernando Diaz","quick-compliance-with-compliance-framework-templates",{"title":843,"description":844,"heroImage":113,"category":107,"date":845,"authors":846,"slug":848,"externalUrl":111},"Cyber Resilience Act et délai de signalement : comment s'y préparer","Le Cyber Resilience Act impose aux fabricants de signaler toute vulnérabilité activement exploitée dans les 24 heures. Découvrez comment GitLab vous aide à réagir rapidement.","2026-09-11",[847],"Amit Shalem","cyber-resilience-act-reporting-deadline",{"header":850,"text":851,"button":855,"disclaimer":858},"Commencez votre essai gratuit\n\nde 30 jours\n",[852,853,854],"Accédez à GitLab Duo Agent Platform","Essayez nos fonctionnalités les plus avancées","Automatisez les tâches complexes avec l'IA",{"text":135,"config":856},{"href":857,"dataGaName":138,"dataGaLocation":364},"https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/blog/","Aucune carte de crédit requise.",{"header":860,"blurb":861,"button":862,"secondaryButton":866},"Commencez à développer plus rapidement dès aujourd'hui","Découvrez ce que votre équipe peut accomplir avec la plateforme d'orchestration intelligente pour le DevSecOps.\n",{"text":135,"config":863},{"href":864,"dataGaName":138,"dataGaLocation":865},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":456,"config":867},{"href":458,"dataGaName":143,"dataGaLocation":865},1790746513260]