[{"data":1,"prerenderedAt":1423},["ShallowReactive",2],{"/fr-fr/blog/how-to-integrate-custom-security-scanners-into-gitlab":3,"navigation-fr-fr":644,"banner-fr-fr":1079,"footer-fr-fr":1087,"blog-post-authors-fr-fr-Fernando Diaz":1324,"blog-related-posts-fr-fr-how-to-integrate-custom-security-scanners-into-gitlab":1339,"blog-promotions-fr-fr":1361,"next-steps-fr-fr":1414},{"id":4,"title":5,"authors":6,"body":8,"category":621,"date":622,"description":623,"extension":624,"externalUrl":625,"faq":625,"featured":626,"heroImage":627,"meta":628,"navigation":626,"path":629,"seo":630,"slug":635,"stem":636,"tags":637,"template":641,"updatedDate":642,"__hash__":643},"blogPosts/fr-fr/blog/how-to-integrate-custom-security-scanners-into-gitlab.md","Comment intégrer vos propres scanners de sécurité dans GitLab",[7],"Fernando Diaz",{"type":9,"value":10,"toc":604},"minimark",[11,23,28,31,50,59,63,78,83,86,93,99,102,128,134,139,142,145,149,152,158,163,166,170,173,184,190,194,197,201,204,230,233,239,244,247,251,254,265,271,276,279,285,290,294,297,300,337,351,357,362,367,373,378,383,389,394,403,406,412,417,420,424,427,445,448,461,465,468,482,489,494,499,508,516,519,523,526,537,540,567,573,576],[12,13,14,15,22],"p",{},"GitLab, la plateforme DevSecOps la plus complète, dispose de toutes les fonctionnalités nécessaires pour planifier, gérer, compiler, déployer, sécuriser, gouverner et surveiller vos applications. Vous pouvez toutefois utiliser en complément des outils tiers ou personnalisés, par exemple si vous devez migrer vers une plateforme ",[16,17,21],"a",{"href":18,"rel":19,"title":20},"https://about.gitlab.com/fr-fr/topics/devsecops/",[],"Qu'est-ce que le DevSecOps ? ","DevSecOps"," à partir de solutions distinctes, évaluer des outils tiers ou intégrer des solutions propriétaires ou personnalisées dans GitLab.",[24,25,27],"h2",{"id":26},"extensibilité-de-la-plateforme-devsecops-de-gitlab","Extensibilité de la plateforme DevSecOps de GitLab",[12,29,30],{},"La plateforme DevSecOps de GitLab peut être enrichie de nombreuses façons afin de prendre en charge les fonctionnalités améliorées dont votre entreprise a besoin.\nVoici quelques exemples d'intégrations courants :",[32,33,34,38,41,44,47],"ul",{},[35,36,37],"li",{},"Intégrations d'applications externes, telles que Jenkins et Slack",[35,39,40],{},"Intégrations de systèmes externes de gestion des tickets, tels que Bugzilla et Jira",[35,42,43],{},"Intégrations de fournisseurs d'authentification externes, tels que LDAP et SAML",[35,45,46],{},"Intégrations de scanners de sécurité externes, tels que Fortify et Checkmarx",[35,48,49],{},"Détection et gestion de secrets exposés, tels que les clés d'accès AWS et GCP",[12,51,52,53,58],{},"Consultez notre ",[16,54,57],{"href":55,"rel":56},"https://docs.gitlab.com/integration/",[],"documentation"," pour connaître toutes les intégrations disponibles (liste non exhaustive).",[24,60,62],{"id":61},"intégration-de-scanners-de-sécurité-dans-gitlab","Intégration de scanners de sécurité dans GitLab",[12,64,65,66,71,72,77],{},"Il est possible d'intégrer des ",[16,67,70],{"href":68,"rel":69},"https://docs.gitlab.com/integration/#security-improvements",[],"scanners de sécurité tiers"," ou des ",[16,73,76],{"href":74,"rel":75},"https://gitlab.com/gitlab-da/tutorials/security-and-governance/custom-scanner-integration",[],"scanners de sécurité personnalisés"," dans GitLab. Ces scanners peuvent ainsi alimenter plusieurs sections clés de l'interface GitLab, telles que le widget de sécurité des merges requests, la section Sécurité des pipelines, le rapport de vulnérabilités, les pages de vulnérabilités, le tableau de bord de sécurité ainsi que les politiques d'approbation des merge requests.\nPassons en revue chacune de ces intégrations.",[79,80,82],"h3",{"id":81},"widget-de-sécurité-des-merge-requests","Widget de sécurité des merge requests",[12,84,85],{},"Une merge request contient un widget de sécurité qui affiche un résumé des vulnérabilités récemment détectées.",[12,87,88],{},[89,90],"img",{"alt":91,"src":92},"intégration de scanners de sécurité - image 1","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097088837.png",[94,95,96],"center",{},[97,98,82],"i",{},[12,100,101],{},"Lorsque vous cliquez sur une vulnérabilité, la fenêtre contextuelle qui s'affiche contient les informations suivantes :",[32,103,104,107,110,113,116,119,122,125],{},[35,105,106],{},"Statut",[35,108,109],{},"Description",[35,111,112],{},"Projet",[35,114,115],{},"Fichier",[35,117,118],{},"Identifiants",[35,120,121],{},"Gravité",[35,123,124],{},"Outil",[35,126,127],{},"Fournisseur du scanner",[12,129,130],{},[89,131],{"alt":132,"src":133},"intégration de scanners de sécurité - image 2","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097088838.png",[94,135,136],{},[97,137,138],{},"Vulnérabilités exploitables et détails associés",[12,140,141],{},"Ces vulnérabilités sont également exploitables, ce qui signifie qu'elles peuvent être rejetées ou qu'un ticket confidentiel peut être créé.",[12,143,144],{},"Les résultats d'un scanner personnalisé peuvent être utilisés pour alimenter le widget de sécurité. Les données de vulnérabilité sont renseignées à partir du schéma JSON généré par le scanner.",[79,146,148],{"id":147},"section-sécurité-des-pipelines","Section Sécurité des pipelines",[12,150,151],{},"Tous les scanners de sécurité activés s'exécutent dans le pipeline et génèrent leurs résultats sous forme d'artefacts qui font l'objet d'un traitement (déduplication incluse). Les résultats sont ensuite répertoriés dans l'onglet Sécurité des pipelines. À partir de là, vous pouvez également télécharger les fichiers JSON générés.",[12,153,154],{},[89,155],{"alt":156,"src":157},"intégration de scanners de sécurité - image 3","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image11_aHR0cHM6_1750097088840.png",[94,159,160],{},[97,161,162],{},"Onglet Sécurité des pipelines",[12,164,165],{},"Les résultats d'un scanner personnalisé peuvent être utilisés pour alimenter l'onglet Sécurité des pipelines. Les colonnes sont remplies à l'aide du schéma JSON émis par le scanner.",[79,167,169],{"id":168},"rapport-de-vulnérabilités","Rapport de vulnérabilités",[12,171,172],{},"Le rapport de vulnérabilités fournit des informations sur les vulnérabilités issues des scans de la branche par défaut, notamment :",[32,174,175,178,181],{},[35,176,177],{},"Le nombre total de vulnérabilités par niveau de gravité",[35,179,180],{},"Les filtres d'attributs de vulnérabilité courants",[35,182,183],{},"Les détails de chaque vulnérabilité, présentés sous forme de tableau",[12,185,186],{},[89,187],{"alt":188,"src":189},"intégration de scanners de sécurité - image 4","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750097088842.png",[94,191,192],{},[97,193,169],{},[12,195,196],{},"Les résultats d'un scanner personnalisé sur la branche par défaut peuvent être utilisés pour alimenter le rapport de vulnérabilités.",[79,198,200],{"id":199},"pages-de-vulnérabilités","Pages de vulnérabilités",[12,202,203],{},"En cliquant sur une vulnérabilité présente dans le rapport de vulnérabilités, vous accédez à une page dédiée comprenant les informations suivantes :",[32,205,206,209,212,215,218,221,224,227],{},[35,207,208],{},"sa description",[35,210,211],{},"la date de détection",[35,213,214],{},"son statut actuel",[35,216,217],{},"son emplacement  - les actions disponibles pour y remédier",[35,219,220],{},"les tickets liés à cette vulnérabilité",[35,222,223],{},"le log des actions effectuées sur cette vulnérabilité",[35,225,226],{},"les solutions proposées",[35,228,229],{},"un identifiant - des ressources de formation pour prévenir ce type de faille",[12,231,232],{},"Vous pouvez utiliser les données fournies dans la page de vulnérabilité pour évaluer l’importance du problème et prendre les mesures nécessaires pour corriger la vulnérabilité efficacement.",[12,234,235],{},[89,236],{"alt":237,"src":238},"intégration de scanners de sécurité - image 5","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097088844.png",[94,240,241],{},[97,242,243],{},"Page de vulnérabilité pour une faille relative à la détection des secrets",[12,245,246],{},"Les résultats d'un scanner personnalisé peuvent être utilisés pour alimenter la page de vulnérabilité. Les données de vulnérabilité sont renseignées à partir du schéma JSON généré par le scanner.",[79,248,250],{"id":249},"tableau-de-bord-de-sécurité","Tableau de bord de sécurité",[12,252,253],{},"Les tableaux de bord de sécurité permettent d'évaluer la posture de sécurité de vos applications. GitLab vous fournit un ensemble d'indicateurs, d'évaluations et de graphiques correspondant aux vulnérabilités détectées par les scanners de sécurité exécutés sur votre projet. Le tableau de bord de sécurité fournit différentes données, notamment :",[32,255,256,259,262],{},[35,257,258],{},"Les tendances des vulnérabilités sur une période de 30, 60 ou 90 jours pour tous les projets d'un groupe",[35,260,261],{},"Une note sous forme de lettre pour chaque projet en fonction de la gravité de la vulnérabilité",[35,263,264],{},"Le nombre total de vulnérabilités détectées au cours des 365 derniers jours et leurs niveaux de gravité",[12,266,267],{},[89,268],{"alt":269,"src":270},"intégration de scanners de sécurité - image 6","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750097088846.png",[94,272,273],{},[97,274,275],{},"Tableau de bord de sécurité au niveau du groupe",[12,277,278],{},"À partir du tableau de bord de sécurité au niveau du groupe, vous pouvez cliquer sur un projet pour accéder au tableau de bord de sécurité associé, qui fournit une vue sur 365 jours.",[12,280,281],{},[89,282],{"alt":283,"src":284},"intégration de scanners de sécurité - image 7","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097088847.png",[94,286,287],{},[97,288,289],{},"Tableau de bord de sécurité au niveau du projet",[79,291,293],{"id":292},"intégration-des-politiques-dapprobation-des-merge-requests","Intégration des politiques d'approbation des merge requests",[12,295,296],{},"Les politiques d'approbation des merge requests, anciennement désignées comme stratégies de sécurité basées sur les résultats de scan dans les versions précédentes de GitLab, sont utilisées pour exiger une approbation en fonction des résultats d'un ou de plusieurs jobs de scan de sécurité. L'objectif est d'éviter que du code non sécurisé ne soit fusionné et déployé en production. Ces politiques sont évaluées après l'exécution complète des jobs de scan dans les pipelines CI, en s'appuyant sur les rapports générés par les artefacts de job et publiés dans le pipeline une fois celui-ci terminé.",[12,298,299],{},"Par exemple, vous pouvez créer une politique d'approbation des merge requests qui exige l'approbation des chargés de maintenance du projet dans le cas où le scanner de détection de secrets détecte des vulnérabilités. Voici comment procéder :",[301,302,303,311,317,323,334],"ol",{},[35,304,305,306,310],{},"Dans la barre latérale gauche, cliquez sur ",[307,308,309],"strong",{},"Rechercher ou accéder à"," et recherchez le projet auquel vous souhaitez ajouter une politique.",[35,312,313,314],{},"Dans la barre latérale gauche du projet, accédez à ",[307,315,316],{},"Sécurisation > Politiques",[35,318,319,320],{},"Sélectionnez ",[307,321,322],{},"Nouvelle stratégie de sécurité",[35,324,325,326,329,330,333],{},"Dans la section ",[307,327,328],{},"Politiques d'approbation des merge requests",", sélectionnez ",[307,331,332],{},"Sélectionner une stratégie de sécurité",".",[35,335,336],{},"Renseignez les champs suivants :",[32,338,339,342,345,348],{},[35,340,341],{},"Nom : le nom de la politique d'approbation",[35,343,344],{},"Description : la description de la politique d'approbation",[35,346,347],{},"État : indique si la politique d'approbation est activée ou non",[35,349,350],{},"Règles : les conditions qui doivent être remplies pour déclencher une action (comme exiger une approbation)",[12,352,353],{},[89,354],{"alt":355,"src":356},"intégration de scanners de sécurité - image 8","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097088849.png",[94,358,359],{},[97,360,361],{},"Règles de la politique d'approbation des merge requests",[32,363,364],{},[35,365,366],{},"Actions : l'action à entreprendre chaque fois que les conditions définies dans les règles (vulnérabilités/licences détectées) sont remplies",[12,368,369],{},[89,370],{"alt":371,"src":372},"intégration de scanners de sécurité - image 9","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image9_aHR0cHM6_1750097088850.png",[94,374,375],{},[97,376,377],{},"Actions associées à la politique d'approbation des merge requests",[32,379,380],{},[35,381,382],{},"Remplacer les paramètres d'approbation du projet : si cette option est sélectionnée, les choix suivants écraseront les paramètres du projet, mais uniquement pour les branches spécifiées dans la politique d'approbation des merges requests.",[12,384,385],{},[89,386],{"alt":387,"src":388},"intégration de scanners de sécurité - image 11","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097088851.png",[94,390,391],{},[97,392,393],{},"Paramètres d'approbation de la politique d'approbation des merge requests",[301,395,397],{"start":396},6,[35,398,399,400,333],{},"Cliquez sur le bouton ",[307,401,402],{},"Configurer avec une merge request",[12,404,405],{},"Une fois que la politique d'approbation des merge requests a été fusionnée, chaque fois que vous créez une merge request et que les critères définis dans les règles sont remplis, l'action définie est déclenchée. Dans ce cas, au moins une approbation de la part d'un chargé de maintenance sera requise avant que le code puisse être fusionné.",[12,407,408],{},[89,409],{"alt":410,"src":411},"scanner de sécurité intégré - image 10","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image10_aHR0cHM6_1750097088852.png",[94,413,414],{},[97,415,416],{},"Merge request bloquée en raison de vulnérabilités détectées",[12,418,419],{},"Les résultats d'un scanner personnalisé peuvent être entièrement intégrés aux politiques d'approbation des merge requests. Si le scanner personnalisé détecte une vulnérabilité, une approbation sera alors requise avant que le code puisse être fusionné. Le scanner que vous sélectionnez dans une telle politique doit utiliser le schéma JSON approprié.",[24,421,423],{"id":422},"tutoriel-intégration-de-scanners-de-sécurité-personnalisés","Tutoriel : intégration de scanners de sécurité personnalisés",[12,425,426],{},"Passons maintenant à la partie la plus intéressante : l'intégration d'un scanner de sécurité personnalisé. Dans ce tutoriel, vous apprendrez à créer un scanner de sécurité personnalisé, ainsi qu'à l'intégrer à GitLab. Nous nous appuierons sur les projets suivants :",[32,428,429,437],{},[35,430,431,436],{},[16,432,435],{"href":433,"rel":434},"https://gitlab.com/gitlab-da/tutorials/security-and-governance/custom-scanner-integration/fern-pattern-scanner",[],"Fern Pattern Scanner"," : analyse vos fichiers à la recherche de motifs spécifiques tels que les mots de passe, les clés privées et les numéros de sécurité sociale.",[35,438,439,444],{},[16,440,443],{"href":441,"rel":442},"https://gitlab.com/gitlab-da/tutorials/security-and-governance/custom-scanner-integration/secret-list",[],"Secret List"," : contient une liste répertoriant des mots de passe d'utilisateurs et de clients, et des clés. Ce projet sert à démontrer comment un scanner de sécurité personnalisé peut être intégré à GitLab.",[12,446,447],{},"Pour en savoir plus, consultez la vidéo suivante :",[449,450,453,454],"figure",{"className":451},[452],"video_container","\n  ",[455,456,460],"iframe",{"src":457,"frameBorder":458,"allowFullScreen":459},"https://www.youtube.com/embed/timMbl5SP-w?si=R2DKtZ5MmBR1rQFL","0","true"," ",[79,462,464],{"id":463},"création-dun-scanner-de-sécurité-personnalisé","Création d'un scanner de sécurité personnalisé",[12,466,467],{},"Créons maintenant un scanner personnalisé qui peut être intégré à GitLab. Avant qu'un scanner personnalisé puisse être entièrement intégré à GitLab, il doit respecter les conditions suivantes :",[32,469,470,473,476,479],{},[35,471,472],{},"scanner un répertoire à la recherche de motifs définis",[35,474,475],{},"générer un fichier JSON conforme au schéma approprié",[35,477,478],{},"être conteneurisé et accessible depuis GitLab",[35,480,481],{},"fournir un template autorisant son exécution sur un autre projet",[12,483,484,485,488],{},"Lorsque le ",[16,486,435],{"href":433,"rel":487},[]," est exécuté sur un projet à l'aide du template fourni, il effectue les étapes suivantes :",[301,490,491],{},[35,492,493],{},"Il charge un ensemble de règles qui définissent les motifs (regex) à détecter.",[32,495,496],{},[35,497,498],{},"Il permet la configuration des règles afin de s'adapter aux besoins en constante évolution de votre entreprise.",[301,500,502,505],{"start":501},2,[35,503,504],{},"Il scanne les fichiers à la recherche des motifs définis.",[35,506,507],{},"Il génère un rapport JSON conforme au schéma de détection des secrets.",[32,509,510,513],{},[35,511,512],{},"Il utilise des templates Go pour créer ce fichier JSON.",[35,514,515],{},"Veillez à utiliser le schéma adéquate, selon les éléments que votre scanner doit rechercher.",[12,517,518],{},"Une fois le rapport JSON chargé en tant qu'artefact dans GitLab, il alimente le widget de sécurité des merges requests, le rapport de vulnérabilités, les pages de vulnérabilités, les politiques d'approbation des merge requests ainsi que les tableaux de bord de sécurité, comme décrit précédemment.",[79,520,522],{"id":521},"intégration-dun-scanner-de-sécurité-personnalisé-à-gitlab","Intégration d'un scanner de sécurité personnalisé à GitLab",[12,524,525],{},"Une fois que vous avez créé votre scanner personnalisé qui répond à tous les besoins d'intégration, vous pouvez l'exécuter sur GitLab.",[12,527,528,529,533,534,333],{},"Exécuter un scanner personnalisé est aussi simple que d'ajouter un template. Par exemple, le template Fern Pattern Scanner est chargé dans le fichier ",[530,531,532],"code",{},".gitlab-ci.yml"," sur le projet ",[16,535,443],{"href":441,"rel":536},[],[12,538,539],{},"Voici les étapes à suivre :",[301,541,542,551,564],{},[35,543,544,545,550],{},"Créez un ",[16,546,549],{"href":547,"rel":548},"https://docs.gitlab.com/ci/quick_start/#create-a-gitlab-ciyml-file",[],"fichier .gitlab-ci.yml"," dans le projet sur lequel vous souhaitez exécuter le scanner.",[35,552,553,554,333,559],{},"Incluez le ",[16,555,558],{"href":556,"rel":557},"https://docs.gitlab.com/ci/yaml/includes/",[],"template du scanner personnalisé",[32,560,561],{},[35,562,563],{},"Vous pouvez également configurer ce template avec des variables d'environnement.",[35,565,566],{},"Validez ce fichier dans la branche principale.",[12,568,569,570,333],{},"Une fois le fichier validé, vous pouvez constater que le scanner personnalisé s'exécute dans votre pipeline. Une fois le pipeline terminé, le scanner alimentera toutes les zones définies ci-dessus dans la section ",[16,571,62],{"href":572},"#gitlab-security-scanner-integration",[12,574,575],{},"Pour en savoir plus, consultez les ressources ci-dessous et les autres possibilités d'extension de votre plateforme DevSecOps :",[32,577,578,585,591,597],{},[35,579,580],{},[16,581,584],{"href":582,"rel":583},"https://docs.gitlab.com/development/integrations/secure/",[],"Intégration du scanner de sécurité dans GitLab",[35,586,587],{},[16,588,590],{"href":55,"rel":589},[],"Intégrations des partenaires GitLab",[35,592,593],{},[16,594,596],{"href":74,"rel":595},[],"Groupe de projets du scanner de sécurité personnalisé",[35,598,599],{},[16,600,603],{"href":601,"rel":602},"https://docs.gitlab.com/user/application_security/secret_detection/automatic_response/",[],"Réponse automatique à une fuite de secret",{"title":605,"searchDepth":501,"depth":501,"links":606},"",[607,608,617],{"id":26,"depth":501,"text":27},{"id":61,"depth":501,"text":62,"children":609},[610,612,613,614,615,616],{"id":81,"depth":611,"text":82},3,{"id":147,"depth":611,"text":148},{"id":168,"depth":611,"text":169},{"id":199,"depth":611,"text":200},{"id":249,"depth":611,"text":250},{"id":292,"depth":611,"text":293},{"id":422,"depth":501,"text":423,"children":618},[619,620],{"id":463,"depth":611,"text":464},{"id":521,"depth":611,"text":522},"security","2024-02-27","Découvrez comment enrichir votre usage de la plateforme DevSecOps en ajoutant des scanners de sécurité personnalisés à vos workflows.","md",null,true,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097082/Blog/Hero%20Images/Blog/Hero%20Images/securitycheck_securitycheck.png_1750097081856.png",{},"/fr-fr/blog/how-to-integrate-custom-security-scanners-into-gitlab",{"title":5,"description":623,"ogTitle":5,"ogDescription":623,"noIndex":631,"ogImage":627,"ogUrl":632,"ogSiteName":633,"ogType":634,"canonicalUrls":632},false,"https://about.gitlab.com/blog/how-to-integrate-custom-security-scanners-into-gitlab","https://about.gitlab.com","article","how-to-integrate-custom-security-scanners-into-gitlab","fr-fr/blog/how-to-integrate-custom-security-scanners-into-gitlab",[638,621,639,640],"tutorial","testing","DevSecOps platform","BlogPost","2025-06-09","0L40n156JEx28LDIDFCXGJVIXBuhneyeGo27blC6cRQ",{"logo":645,"freeTrial":650,"sales":655,"login":660,"items":665,"search":994,"minimal":1030,"duo":1049,"switchNav":1058,"pricingDeployment":1069},{"config":646},{"href":647,"dataGaName":648,"dataGaLocation":649},"/fr-fr/","gitlab logo","header",{"text":651,"config":652},"Commencer un essai gratuit",{"href":653,"dataGaName":654,"dataGaLocation":649},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":656,"config":657},"Demander une démo",{"href":658,"dataGaName":659,"dataGaLocation":649},"/fr-fr/sales/?contact-topic=request-demo","sales",{"text":661,"config":662},"Connexion",{"href":663,"dataGaName":664,"dataGaLocation":649},"https://gitlab.com/users/sign_in/","sign in",[666,695,797,802,916,972],{"text":667,"config":668,"menu":670},"Plateforme",{"dataNavLevelOne":669},"platform",{"type":671,"columns":672},"cards",[673,679,687],{"title":667,"description":674,"link":675},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":676,"config":677},"Explorer notre plateforme",{"href":678,"dataGaName":669,"dataGaLocation":649},"/fr-fr/platform/",{"title":680,"description":681,"link":682},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":683,"config":684},"Découvrir GitLab Duo",{"href":685,"dataGaName":686,"dataGaLocation":649},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":688,"description":689,"link":690},"Pourquoi GitLab ?","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":691,"config":692},"En savoir plus",{"href":693,"dataGaName":694,"dataGaLocation":649},"/fr-fr/why-gitlab/","why gitlab",{"text":696,"left":626,"config":697,"menu":699},"Produit",{"dataNavLevelOne":698},"solutions",{"type":700,"link":701,"columns":705,"feature":776},"lists",{"text":702,"config":703},"Voir toutes les solutions",{"href":704,"dataGaName":698,"dataGaLocation":649},"/fr-fr/solutions/",[706,731,754],{"title":707,"description":708,"link":709,"items":714},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":710},{"icon":711,"href":712,"dataGaName":713,"dataGaLocation":649},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[715,719,722,727],{"text":716,"config":717},"CI/CD",{"href":718,"dataGaLocation":649,"dataGaName":716},"/fr-fr/solutions/continuous-integration/",{"text":680,"config":720},{"href":685,"dataGaLocation":649,"dataGaName":721},"gitlab duo agent platform - product menu",{"text":723,"config":724},"Gestion du code source",{"href":725,"dataGaLocation":649,"dataGaName":726},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":728,"config":729},"Livraison de logiciels automatisée",{"href":712,"dataGaLocation":649,"dataGaName":730},"Automated software delivery",{"title":732,"description":733,"link":734,"items":739},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":735},{"href":736,"dataGaName":737,"dataGaLocation":649,"icon":738},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[740,744,749],{"text":741,"config":742},"Tests de sécurité des applications",{"href":736,"dataGaName":743,"dataGaLocation":649},"Application security testing",{"text":745,"config":746},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":747,"dataGaLocation":649,"dataGaName":748},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":750,"config":751},"Conformité logicielle",{"href":752,"dataGaName":753,"dataGaLocation":649},"/fr-fr/solutions/software-compliance/","software compliance",{"title":755,"link":756,"items":761},"Mesures",{"config":757},{"icon":758,"href":759,"dataGaName":760,"dataGaLocation":649},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[762,766,771],{"text":763,"config":764},"Visibilité et mesures",{"href":759,"dataGaLocation":649,"dataGaName":765},"Visibility and Measurement",{"text":767,"config":768},"Gestion de la chaîne de valeur",{"href":769,"dataGaLocation":649,"dataGaName":770},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":772,"config":773},"Analyses et informations",{"href":774,"dataGaLocation":649,"dataGaName":775},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":777,"type":700,"items":778},"GitLab",[779,785,791],{"text":780,"config":781},"Entreprises",{"icon":782,"href":783,"dataGaLocation":649,"dataGaName":784},"Building","/fr-fr/enterprise/","enterprise",{"text":786,"config":787},"Pour les PME",{"icon":788,"href":789,"dataGaLocation":649,"dataGaName":790},"Work","/fr-fr/small-business/","small business",{"text":792,"config":793},"Pour le secteur public",{"icon":794,"href":795,"dataGaLocation":649,"dataGaName":796},"Organization","/fr-fr/solutions/public-sector/","public sector",{"text":798,"config":799},"Tarifs",{"href":800,"dataGaName":801,"dataGaLocation":649,"dataNavLevelOne":801},"/fr-fr/pricing/","pricing",{"text":803,"config":804,"menu":806},"Ressources",{"dataNavLevelOne":805},"resources",{"type":700,"link":807,"columns":811,"feature":905},{"text":808,"config":809},"Afficher toutes les ressources",{"href":810,"dataGaName":805,"dataGaLocation":649},"/fr-fr/resources/",[812,845,872],{"title":813,"items":814},"Premiers pas",[815,820,825,830,835,840],{"text":816,"config":817},"Installation",{"href":818,"dataGaName":819,"dataGaLocation":649},"/fr-fr/install/","install",{"text":821,"config":822},"Guides de démarrage",{"href":823,"dataGaName":824,"dataGaLocation":649},"/fr-fr/get-started/","quick setup checklists",{"text":826,"config":827},"Apprentissage",{"href":828,"dataGaLocation":649,"dataGaName":829},"https://university.gitlab.com/","learn",{"text":831,"config":832},"Documentation",{"href":833,"dataGaName":834,"dataGaLocation":649},"https://docs.gitlab.com/","product documentation",{"text":836,"config":837},"Vidéos sur les bonnes pratiques",{"href":838,"dataGaName":839,"dataGaLocation":649},"/fr-fr/getting-started-videos/","best practice videos",{"text":841,"config":842},"Intégrations",{"href":843,"dataGaName":844,"dataGaLocation":649},"/fr-fr/integrations/","integrations",{"title":846,"items":847},"Découvrir",[848,853,858,863,867],{"text":849,"config":850},"Témoignages clients",{"href":851,"dataGaName":852,"dataGaLocation":649},"/fr-fr/customers/","customer success stories",{"text":854,"config":855},"Blog",{"href":856,"dataGaName":857,"dataGaLocation":649},"/fr-fr/blog/","blog",{"text":859,"config":860},"Demo Hub",{"href":861,"dataGaName":862,"dataGaLocation":649},"/fr-fr/demo-hub/","demo hub",{"text":864,"config":865},"The Source",{"href":866,"dataGaName":857,"dataGaLocation":649},"/fr-fr/the-source/",{"text":868,"config":869},"Travail à distance",{"href":870,"dataGaName":871,"dataGaLocation":649},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":873,"items":874},"Connecter",[875,880,885,890,895,900],{"text":876,"config":877},"Services GitLab",{"href":878,"dataGaName":879,"dataGaLocation":649},"/fr-fr/services/","services",{"text":881,"config":882},"Contribuer",{"href":883,"dataGaName":884,"dataGaLocation":649},"https://contributors.gitlab.com","contribute",{"text":886,"config":887},"Communauté",{"href":888,"dataGaName":889,"dataGaLocation":649},"/community/","community",{"text":891,"config":892},"Forum",{"href":893,"dataGaName":894,"dataGaLocation":649},"https://forum.gitlab.com/","forum",{"text":896,"config":897},"Événements",{"href":898,"dataGaName":899,"dataGaLocation":649},"/events/","events",{"text":901,"config":902},"Partenaires",{"href":903,"dataGaName":904,"dataGaLocation":649},"/fr-fr/partners/","partners",{"config":906,"title":909,"text":910,"link":911},{"background":907,"textColor":908},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Nouveautés de GitLab","Découvrez les dernières fonctionnalités et améliorations.",{"text":912,"config":913},"Lire les articles les plus récents",{"href":914,"dataGaName":915,"dataGaLocation":649},"/fr-fr/whats-new/","whats new",{"text":917,"config":918,"menu":920},"Société",{"dataNavLevelOne":919},"company",{"type":700,"columns":921},[922],{"items":923},[924,929,935,937,942,947,952,957,962,967],{"text":925,"config":926},"À propos",{"href":927,"dataGaName":928,"dataGaLocation":649},"/fr-fr/company/","about",{"text":930,"config":931,"footerGa":934},"Carrières",{"href":932,"dataGaName":933,"dataGaLocation":649},"/jobs/","jobs",{"dataGaName":933},{"text":896,"config":936},{"href":898,"dataGaName":899,"dataGaLocation":649},{"text":938,"config":939},"Leadership",{"href":940,"dataGaName":941,"dataGaLocation":649},"/company/team/e-group/","leadership",{"text":943,"config":944},"Manuel",{"href":945,"dataGaName":946,"dataGaLocation":649},"https://handbook.gitlab.com/","handbook",{"text":948,"config":949},"Relations avec les investisseurs",{"href":950,"dataGaName":951,"dataGaLocation":649},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":953,"config":954},"Trust Center",{"href":955,"dataGaName":956,"dataGaLocation":649},"/fr-fr/security/","trust center",{"text":958,"config":959},"Centre pour la transparence de l'IA",{"href":960,"dataGaName":961,"dataGaLocation":649},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":963,"config":964},"Newsletter",{"href":965,"dataGaName":966,"dataGaLocation":649},"/company/contact/#contact-forms","newsletter",{"text":968,"config":969},"Presse",{"href":970,"dataGaName":971,"dataGaLocation":649},"/press/","press",{"text":973,"config":974,"menu":975},"Nous contacter",{"dataNavLevelOne":919},{"type":700,"columns":976},[977],{"items":978},[979,984,989],{"text":980,"config":981},"Contacter l'équipe commerciale",{"href":982,"dataGaName":983,"dataGaLocation":649},"/fr-fr/sales/","talk to sales",{"text":985,"config":986},"Assistance GitLab",{"href":987,"dataGaName":988,"dataGaLocation":649},"https://support.gitlab.com/hc/en-us","support portal",{"text":990,"config":991},"Portail clients GitLab",{"href":992,"dataGaName":993,"dataGaLocation":649},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":995,"login":996,"suggestions":1003},"Fermer",{"text":997,"link":998},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":999,"config":1000},"GitLab.com",{"href":663,"dataGaName":1001,"dataGaLocation":1002},"search login","search",{"text":1004,"default":1005},"Suggestions",[1006,1009,1014,1016,1021,1026],{"text":680,"config":1007},{"href":685,"dataGaName":1008,"dataGaLocation":1002},"GitLab Duo Agent Platform",{"text":1010,"config":1011},"Suggestions de code (IA)",{"href":1012,"dataGaName":1013,"dataGaLocation":1002},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":716,"config":1015},{"href":718,"dataGaName":716,"dataGaLocation":1002},{"text":1017,"config":1018},"GitLab sur AWS",{"href":1019,"dataGaName":1020,"dataGaLocation":1002},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":1022,"config":1023},"GitLab sur Google Cloud",{"href":1024,"dataGaName":1025,"dataGaLocation":1002},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":1027,"config":1028},"Pourquoi utiliser GitLab ?",{"href":693,"dataGaName":1029,"dataGaLocation":1002},"Why GitLab?",{"freeTrial":1031,"mobileIcon":1036,"desktopIcon":1041,"secondaryButton":1044},{"text":1032,"config":1033},"Commencer votre essai gratuit",{"href":1034,"dataGaName":654,"dataGaLocation":1035},"https://gitlab.com/-/trials/new/","nav",{"altText":1037,"config":1038},"Icône GitLab",{"src":1039,"dataGaName":1040,"dataGaLocation":1035},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1037,"config":1042},{"src":1043,"dataGaName":1040,"dataGaLocation":1035},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1045,"config":1046},"Commencer",{"href":1047,"dataGaName":1048,"dataGaLocation":1035},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":1050,"mobileIcon":1054,"desktopIcon":1056},{"text":1051,"config":1052},"En savoir plus sur GitLab Duo",{"href":685,"dataGaName":1053,"dataGaLocation":1035},"gitlab duo",{"altText":1037,"config":1055},{"src":1039,"dataGaName":1040,"dataGaLocation":1035},{"altText":1037,"config":1057},{"src":1043,"dataGaName":1040,"dataGaLocation":1035},{"button":1059,"mobileIcon":1064,"desktopIcon":1066},{"text":1060,"config":1061},"/switch",{"href":1062,"dataGaName":1063,"dataGaLocation":1035},"#contact","switch",{"altText":1037,"config":1065},{"src":1039,"dataGaName":1040,"dataGaLocation":1035},{"altText":1037,"config":1067},{"src":1068,"dataGaName":1040,"dataGaLocation":1035},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1070,"mobileIcon":1075,"desktopIcon":1077},{"text":1071,"config":1072},"Retour aux tarifs",{"href":800,"dataGaName":1073,"dataGaLocation":1035,"icon":1074},"back to pricing","GoBack",{"altText":1037,"config":1076},{"src":1039,"dataGaName":1040,"dataGaLocation":1035},{"altText":1037,"config":1078},{"src":1043,"dataGaName":1040,"dataGaLocation":1035},{"title":1080,"button":1081,"config":1085},"GitLab Orbit est arrivé : la couche de contexte pour les agents d'IA.",{"text":691,"config":1082},{"href":1083,"dataGaName":1084,"dataGaLocation":649},"/fr-fr/gitlab-orbit/","orbit",{"layout":1086,"disabled":631},"release",{"data":1088},{"text":1089,"source":1090,"edit":1096,"contribute":1101,"config":1105,"items":1110,"minimal":1316},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":1091,"config":1092},"Afficher le code source de la page",{"href":1093,"dataGaName":1094,"dataGaLocation":1095},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1097,"config":1098},"Modifier cette page",{"href":1099,"dataGaName":1100,"dataGaLocation":1095},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":881,"config":1102},{"href":1103,"dataGaName":1104,"dataGaLocation":1095},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1106,"facebook":1107,"youtube":1108,"linkedin":1109},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1111,1156,1208,1251,1283],{"title":798,"links":1112,"subMenu":1127},[1113,1117,1122],{"text":1114,"config":1115},"Voir les forfaits",{"href":800,"dataGaName":1116,"dataGaLocation":1095},"view plans",{"text":1118,"config":1119},"GitLab Premium",{"href":1120,"dataGaName":1121,"dataGaLocation":1095},"/fr-fr/pricing/premium/","why premium",{"text":1123,"config":1124},"GitLab Ultimate",{"href":1125,"dataGaName":1126,"dataGaLocation":1095},"/fr-fr/pricing/ultimate/","why ultimate",[1128],{"title":973,"links":1129},[1130,1132,1134,1137,1141,1146,1151],{"text":980,"config":1131},{"href":982,"dataGaName":659,"dataGaLocation":1095},{"text":985,"config":1133},{"href":987,"dataGaName":988,"dataGaLocation":1095},{"text":1135,"config":1136},"Portail clients",{"href":992,"dataGaName":993,"dataGaLocation":1095},{"text":106,"config":1138},{"href":1139,"dataGaName":1140,"dataGaLocation":1095},"https://status.gitlab.com/","status",{"text":1142,"config":1143},"Conditions d'utilisation",{"href":1144,"dataGaName":1145,"dataGaLocation":1095},"/terms/","terms of use",{"text":1147,"config":1148},"Politique de confidentialité",{"href":1149,"dataGaName":1150,"dataGaLocation":1095},"/fr-fr/privacy/","privacy statement",{"text":1152,"config":1153},"Gestion des cookies",{"dataGaName":1154,"dataGaLocation":1095,"id":1155,"isOneTrustButton":626},"cookie preferences","ot-sdk-btn",{"title":696,"links":1157,"subMenu":1166},[1158,1162],{"text":1159,"config":1160},"Plateforme DevSecOps",{"href":678,"dataGaName":1161,"dataGaLocation":1095},"devsecops platform",{"text":1163,"config":1164},"Développement assisté par l'IA",{"href":685,"dataGaName":1165,"dataGaLocation":1095},"ai-assisted development",[1167],{"title":1168,"links":1169},"Thèmes",[1170,1174,1179,1184,1189,1193,1198,1203],{"text":716,"config":1171},{"href":1172,"dataGaName":1173,"dataGaLocation":1095},"/fr-fr/topics/ci-cd/","cicd",{"text":1175,"config":1176},"GitOps",{"href":1177,"dataGaName":1178,"dataGaLocation":1095},"/fr-fr/topics/gitops/","gitops",{"text":1180,"config":1181},"DevOps",{"href":1182,"dataGaName":1183,"dataGaLocation":1095},"/fr-fr/topics/devops/","devops",{"text":1185,"config":1186},"Contrôle de version",{"href":1187,"dataGaName":1188,"dataGaLocation":1095},"/fr-fr/topics/version-control/","version control",{"text":21,"config":1190},{"href":1191,"dataGaName":1192,"dataGaLocation":1095},"/fr-fr/topics/devsecops/","devsecops",{"text":1194,"config":1195},"Cloud-native",{"href":1196,"dataGaName":1197,"dataGaLocation":1095},"/fr-fr/topics/cloud-native/","cloud native",{"text":1199,"config":1200},"IA pour la programmation",{"href":1201,"dataGaName":1202,"dataGaLocation":1095},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":1204,"config":1205},"IA agentique",{"href":1206,"dataGaName":1207,"dataGaLocation":1095},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":1209,"links":1210},"Solutions",[1211,1214,1216,1221,1224,1227,1230,1233,1235,1238,1241,1246],{"text":741,"config":1212},{"href":736,"dataGaName":1213,"dataGaLocation":1095},"Application Security Testing",{"text":728,"config":1215},{"href":712,"dataGaName":713,"dataGaLocation":1095},{"text":1217,"config":1218},"Développement Agile",{"href":1219,"dataGaName":1220,"dataGaLocation":1095},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":723,"config":1222},{"href":725,"dataGaName":1223,"dataGaLocation":1095},"source code management",{"text":716,"config":1225},{"href":718,"dataGaName":1226,"dataGaLocation":1095},"continuous integration & delivery",{"text":767,"config":1228},{"href":769,"dataGaName":1229,"dataGaLocation":1095},"value stream management",{"text":1175,"config":1231},{"href":1232,"dataGaName":1178,"dataGaLocation":1095},"/fr-fr/solutions/gitops/",{"text":780,"config":1234},{"href":783,"dataGaName":784,"dataGaLocation":1095},{"text":1236,"config":1237},"PME",{"href":789,"dataGaName":790,"dataGaLocation":1095},{"text":1239,"config":1240},"Secteur public",{"href":795,"dataGaName":796,"dataGaLocation":1095},{"text":1242,"config":1243},"Éducation",{"href":1244,"dataGaName":1245,"dataGaLocation":1095},"/fr-fr/solutions/education/","education",{"text":1247,"config":1248},"Services financiers",{"href":1249,"dataGaName":1250,"dataGaLocation":1095},"/fr-fr/solutions/finance/","financial services",{"title":803,"links":1252},[1253,1255,1257,1259,1262,1264,1267,1269,1271,1273,1275,1277,1279,1281],{"text":816,"config":1254},{"href":818,"dataGaName":819,"dataGaLocation":1095},{"text":821,"config":1256},{"href":823,"dataGaName":824,"dataGaLocation":1095},{"text":826,"config":1258},{"href":828,"dataGaName":829,"dataGaLocation":1095},{"text":831,"config":1260},{"href":833,"dataGaName":1261,"dataGaLocation":1095},"docs",{"text":854,"config":1263},{"href":856,"dataGaName":857,"dataGaLocation":1095},{"text":1265,"config":1266},"Nouveautés",{"href":914,"dataGaName":915,"dataGaLocation":1095},{"text":849,"config":1268},{"href":851,"dataGaName":852,"dataGaLocation":1095},{"text":868,"config":1270},{"href":870,"dataGaName":871,"dataGaLocation":1095},{"text":876,"config":1272},{"href":878,"dataGaName":879,"dataGaLocation":1095},{"text":881,"config":1274},{"href":883,"dataGaName":884,"dataGaLocation":1095},{"text":886,"config":1276},{"href":888,"dataGaName":889,"dataGaLocation":1095},{"text":891,"config":1278},{"href":893,"dataGaName":894,"dataGaLocation":1095},{"text":896,"config":1280},{"href":898,"dataGaName":899,"dataGaLocation":1095},{"text":901,"config":1282},{"href":903,"dataGaName":904,"dataGaLocation":1095},{"title":917,"links":1284},[1285,1287,1289,1291,1293,1295,1300,1305,1307,1309,1311],{"text":925,"config":1286},{"href":927,"dataGaName":919,"dataGaLocation":1095},{"text":930,"config":1288},{"href":932,"dataGaName":933,"dataGaLocation":1095},{"text":938,"config":1290},{"href":940,"dataGaName":941,"dataGaLocation":1095},{"text":943,"config":1292},{"href":945,"dataGaName":946,"dataGaLocation":1095},{"text":948,"config":1294},{"href":950,"dataGaName":951,"dataGaLocation":1095},{"text":1296,"config":1297},"Développement durable",{"href":1298,"dataGaName":1299,"dataGaLocation":1095},"/sustainability/","Sustainability",{"text":1301,"config":1302},"Diversité, inclusion et appartenance (DIB)",{"href":1303,"dataGaName":1304,"dataGaLocation":1095},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":953,"config":1306},{"href":955,"dataGaName":956,"dataGaLocation":1095},{"text":963,"config":1308},{"href":965,"dataGaName":966,"dataGaLocation":1095},{"text":968,"config":1310},{"href":970,"dataGaName":971,"dataGaLocation":1095},{"text":1312,"config":1313},"Déclaration de transparence sur l'esclavage moderne",{"href":1314,"dataGaName":1315,"dataGaLocation":1095},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1317},[1318,1320,1322],{"text":1142,"config":1319},{"href":1144,"dataGaName":1145,"dataGaLocation":1095},{"text":1152,"config":1321},{"dataGaName":1154,"dataGaLocation":1095,"id":1155,"isOneTrustButton":626},{"text":1147,"config":1323},{"href":1149,"dataGaName":1150,"dataGaLocation":1095},[1325],{"id":1326,"title":7,"body":625,"config":1327,"content":1329,"description":625,"extension":1333,"meta":1334,"navigation":626,"path":1335,"seo":1336,"stem":1337,"__hash__":1338},"blogAuthors/en-us/blog/authors/fernando-diaz.yml",{"template":1328},"BlogAuthor",{"name":7,"config":1330},{"headshot":1331,"ctfId":1332},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659556/Blog/Author%20Headshots/fern_diaz.png","fjdiaz","yml",{},"/en-us/blog/authors/fernando-diaz",{},"en-us/blog/authors/fernando-diaz","lxRJIOydP4_yzYZvsPcuQevP9AYAKREF7i8QmmdnOWc",[1340,1348,1353],{"title":1341,"description":1342,"heroImage":1343,"category":621,"date":1344,"authors":1345,"slug":1347,"externalUrl":625},"Le flow GitLab Duo Security Review détecte les failles logiques que les scanners n'identifient pas","Utilisez le raisonnement de sécurité piloté par l'IA pour détecter les failles d'autorisation, les erreurs de logique métier et les conditions de concurrence pendant la revue de code.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1783980535/t3gez0gpayfndrhncunf.png","2026-07-17",[1346],"Mark Settle","gitlab-duo-security-review-flow",{"title":1349,"description":1350,"heroImage":1343,"category":621,"date":1344,"authors":1351,"slug":1352,"externalUrl":625},"Une mise à jour de version fait échouer votre build ? GitLab le corrige !","Mettez à niveau vos dépendances automatiquement, adaptez le code en cas de changements cassants et transférez les modifications pour approbation : découvrez ces fonctionnalités natives uniquement proposées par GitLab, avec un contexte complet.",[1346],"dependency-scanning-auto-remediation",{"title":1354,"description":1355,"heroImage":1356,"category":621,"date":1357,"authors":1358,"slug":1360,"externalUrl":625},"GitLab : 5 façons de corriger les niveaux de gravité trompeurs des vulnérabilités","Les scores CVSS par défaut ne reflètent pas vos risques réels. Utilisez les politiques de remplacement de la gravité GitLab pour automatiser les ajustements en fonction des CVE, des CWE, du chemin de fichier et du répertoire.","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1772630163/akp8ly2mrsfrhsb0liyb.png","2026-07-07",[1359],"Grant Hickman","severity-override-vulnerability-management-policy",{"promotions":1362},[1363,1377,1389,1400],{"id":1364,"categories":1365,"header":1367,"text":1368,"button":1369,"image":1374},"ai-modernization",[1366],"ai","L'IA tient-elle ses promesses à grande échelle ?","Le questionnaire ne prendra pas plus de 5 minutes.",{"text":1370,"config":1371},"Obtenez votre score de maturité IA",{"href":1372,"dataGaName":1373,"dataGaLocation":857},"/fr-fr/assessments/ai-modernization-assessment/","modernization assessment",{"config":1375},{"src":1376},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1378,"categories":1379,"header":1381,"text":1368,"button":1382,"image":1386},"devops-modernization",[1380,1192],"product","Vous contentez-vous de gérer des outils ou de livrer des innovations ?",{"text":1383,"config":1384},"Obtenez votre score de maturité DevOps",{"href":1385,"dataGaName":1373,"dataGaLocation":857},"/fr-fr/assessments/devops-modernization-assessment/",{"config":1387},{"src":1388},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1390,"categories":1391,"header":1392,"text":1368,"button":1393,"image":1397},"security-modernization",[621],"Faut-il sacrifier la rapidité pour garantir la sécurité ?",{"text":1394,"config":1395},"Obtenez votre score de maturité en matière de sécurité",{"href":1396,"dataGaName":1373,"dataGaLocation":857},"/fr-fr/assessments/security-modernization-assessment/",{"config":1398},{"src":1399},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1401,"paths":1402,"header":1405,"text":1406,"button":1407,"image":1412},"github-azure-migration",[1403,1404],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Votre équipe est-elle prête pour la migration de GitHub vers Azure ?","GitHub a déjà commencé sa migration vers Azure. Découvrez ce que cela signifie pour vous.",{"text":1408,"config":1409},"Découvrez les différences entre GitLab et GitHub",{"href":1410,"dataGaName":1411,"dataGaLocation":857},"/fr-fr/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1413},{"src":1388},{"header":1415,"blurb":1416,"button":1417,"secondaryButton":1421},"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":651,"config":1418},{"href":1419,"dataGaName":654,"dataGaLocation":1420},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":980,"config":1422},{"href":982,"dataGaName":659,"dataGaLocation":1420},1786803765314]