[{"data":1,"prerenderedAt":1144},["ShallowReactive",2],{"/fr-fr/blog/automate-deployment-with-duo-agent-platform":3,"navigation-fr-fr":366,"banner-fr-fr":798,"footer-fr-fr":806,"blog-post-authors-fr-fr-Cesar Saavedra":1044,"blog-related-posts-fr-fr-automate-deployment-with-duo-agent-platform":1059,"blog-promotions-fr-fr":1083,"next-steps-fr-fr":1135},{"id":4,"title":5,"authors":6,"body":8,"category":343,"date":344,"description":345,"extension":346,"externalUrl":347,"faq":347,"featured":348,"heroImage":349,"meta":350,"navigation":351,"path":352,"seo":353,"slug":357,"stem":358,"tags":359,"template":364,"updatedDate":347,"__hash__":365},"blogPosts/fr-fr/blog/automate-deployment-with-duo-agent-platform.md","GitLab Duo Agent Platform : automatisez vos processus de déploiement avec un agent personnalisé",[7],"Cesar Saavedra",{"type":9,"value":10,"toc":328},"minimark",[11,23,31,41,52,55,60,70,75,96,105,108,112,123,126,129,133,140,174,185,189,203,214,233,237,249,252,261,265,278,292,296,299,309,313,316],[12,13,14,15,22],"p",{},"Chaque équipe d'ingénierie est confrontée à ce genre de tâches : complexes, répétitives et chronophages, mais absolument essentielles. L'intégration d'un nouveau ",[16,17,21],"a",{"href":18,"rel":19,"title":20},"https://about.gitlab.com/topics/microservices/",[],"Qu'est-ce qu'un microservice ?","microservice"," dans un workflow GitOps établi en est un parfait exemple. Elle implique la génération de manifestes sur mesure, la mise à jour des pipelines de livraison, la configuration de l'automatisation des images et la vérification que chaque élément référence les bons espaces de nommage, ports et noms d'hôte. Si vous oubliez une étape, le déploiement échoue. Réaliser cette opération manuellement peut vous coûter des heures, voire une journée entière, pour une configuration qui suit pourtant le même schéma à chaque fois.",[12,24,25,26,30],{},"C'est exactement le type de tâches pour lesquelles les agents d'IA ont été conçus. Avec ",[16,27,29],{"href":28},"/fr-fr/gitlab-duo-agent-platform/","GitLab Duo Agent Platform",", vous pouvez créer un agent personnalisé qui comprend votre application, votre workflow GitOps et vos conventions, puis effectue cette intégration complexe à votre place. Mieux encore : l'agent lui-même, ainsi que tous les artefacts qu'il génère, sont versionnés, gérés et gouvernés par GitLab. Vous bénéficiez ainsi de la rapidité de l'automatisation sans renoncer au contrôle de niveau entreprise.",[12,32,33,34,40],{},"Dans ce tutoriel, vous apprendrez à créer l'un de ces agents personnalisés de A à Z, de la génération du prompt système jusqu'au déploiement du nouveau microservice sur un cluster ",[16,35,39],{"href":36,"rel":37,"title":38},"https://about.gitlab.com/fr-fr/blog/kubernetes-the-container-orchestration-solution/",[],"Qu'est-ce que Kubernetes ?","Kubernetes",". Vous pouvez suivre les étapes décrites ci-dessous.",[42,43,46],"figure",{"className":44},[45],"video_container",[47,48],"iframe",{"src":49,"frameBorder":50,"allowFullScreen":51},"https://www.youtube.com/embed/PpfT40mqr4A?si=CcgUwQr090FYCT3-","0","true",[53,54],"br",{},[56,57,59],"h2",{"id":58},"cas-dutilisation-intégration-dun-microservice-pour-tanukibank","Cas d'utilisation : intégration d'un microservice pour TanukiBank",[12,61,62,63,69],{},"Pour rendre cet exemple concret, nous travaillerons avec une banque fictive appelée TanukiBank. L'application Web de cette banque propose des comptes courants, des comptes d'épargne, des prêts immobiliers, des simulateurs de prêt immobilier et automobile, ainsi qu'une page Paiements et virements. La page Paiements et virements comporte un panneau Virement rapide, dont l'objectif est de permettre aux utilisateurs de transférer de l'argent d'un compte à un autre. Ce panneau n'est actuellement pas implémenté. Par conséquent, rien ne se passe lorsque vous cliquez sur le bouton Virement, car le microservice sous-jacent n'existe pas encore. Notre mission consiste à construire ce microservice et à l'intégrer au workflow ",[16,64,68],{"href":65,"rel":66,"title":67},"https://about.gitlab.com/fr-fr/topics/gitops/",[],"Qu'est-ce que GitOps ?","GitOps"," existant de TanukiBank à l'aide d'un agent personnalisé.",[71,72,74],"h3",{"id":73},"lapplication-et-le-processus-gitops","L'application et le processus GitOps",[12,76,77,82,83,87,88,91,92,95],{},[16,78,81],{"href":79,"rel":80},"https://gitlab.com/gitlab-da/projects/tanukibank",[],"Le code de TanukiBank est hébergé dans un groupe GitLab"," comprenant un sous-groupe ",[84,85,86],"code",{},"services"," qui regroupe chaque microservice (simulateur de prêt immobilier, simulateur de prêt automobile, etc.), ainsi que deux projets de premier niveau, ",[84,89,90],{},"Tanuki Bank - Delivery"," et ",[84,93,94],{},"Flux Config",", qui gèrent le déploiement vers un cluster Kubernetes.",[12,97,98,99,101,102,104],{},"Le workflow GitOps fonctionne de la manière suivante : chaque microservice dispose d'un pipeline qui construit une image de conteneur et effectue un push vers son registre de conteneurs intégré. Le Flux Image Automation Controller, qui s'exécute sur le cluster Kubernetes, surveille ces registres et, lorsqu'il détecte un changement, met à jour le manifeste correspondant dans le projet ",[84,100,90],{},". Cela déclenche un pipeline de livraison qui construit et signe une nouvelle image de conteneur, puis la stocke dans le registre du projet de livraison. Enfin, le Flux CD Controller maintient la synchronisation des pods en cours d'exécution dans le cluster Kubernetes avec le registre de conteneurs du projet de livraison, pour chaque environnement. Tous les manifestes Flux se trouvent dans le projet ",[84,103,94],{},".",[12,106,107],{},"Ce workflow est efficace, mais l'intégration d'un nouveau microservice implique d'intervenir sur chacun de ces éléments de manière parfaitement coordonnée. La création d'un agent personnalisé pour réaliser cette intégration à notre place simplifierait donc considérablement notre travail.",[71,109,111],{"id":110},"génération-du-prompt-système","Génération du prompt système",[12,113,114,115,122],{},"Un agent personnalisé n'est performant que si son prompt système l'est aussi. Plutôt que de le rédiger de zéro, nous laissons GitLab Duo s'en charger en partie. Depuis le ",[16,116,118,119],{"href":79,"rel":117},[],"groupe ",[84,120,121],{},"tanukibank",", nous ouvrons GitLab Agentic Chat et lui demandons d'étudier le groupe, ses sous-groupes et leur contenu, puis de rédiger un prompt système pour un agent capable d'intégrer de nouveaux microservices. Nous demandons essentiellement à GitLab Duo de comprendre et d'assimiler en profondeur le workflow GitOps bien établi de cette application. Ainsi, GitLab Duo peut créer un prompt système suffisamment détaillé pour automatiser l'intégration d'un nouveau microservice dans le workflow GitOps de cette application.",[12,124,125],{},"GitLab Duo assimile les fichiers, lit les manifestes et les fichiers de configuration, examine les Dockerfiles, cartographie les dépendances, puis produit un prompt système complet incluant des instructions de création de rapports, des règles à suivre et des outils recommandés à activer. Nous enregistrons ces données de sortie pour l'étape suivante.",[12,127,128],{},"Un point important à noter : le prompt système généré par GitLab Duo est spécifique au workflow GitOps de cette application à cet instant précis. Si, à l'avenir, le workflow GitOps de cette application venait à changer, il faudrait alors régénérer ce prompt système en exécutant à nouveau cette étape.",[71,130,132],{"id":131},"création-de-lagent-personnalisé","Création de l'agent personnalisé",[12,134,135,136,139],{},"Ensuite, nous créons un nouveau projet vierge appelé ",[84,137,138],{},"application-agents",". Ce projet gérera nos agents personnalisés, y compris les droits d'administration et les environnements d'exécution. Suivez les étapes ci-dessous :",[141,142,143,154,165,168,171],"ol",{},[144,145,146,147,150,151,104],"li",{},"Dans la section ",[84,148,149],{},"IA > Agents",", sélectionnez l'onglet ",[84,152,153],{},"Gérés",[144,155,156,157,160,161,164],{},"Cliquez sur le bouton ",[84,158,159],{},"Nouvel agent"," pour créer un agent nommé ",[84,162,163],{},"TanukiBank Microservice Onboarder",", ajoutez une brève description et rendez-le public.",[144,166,167],{},"Sélectionnez les outils recommandés par GitLab Duo.",[144,169,170],{},"Collez le prompt système généré.",[144,172,173],{},"Créez l'agent.",[12,175,176,177,91,179,181,182,184],{},"Une fois l'agent créé, nous l'activons dans les deux projets qui pilotent le workflow GitOps : ",[84,178,90],{},[84,180,94],{},". L'ouverture du panneau Agentic Chat dans chacun d'eux et la vérification que ",[84,183,163],{}," apparaît dans le menu déroulant des agents confirment la bonne configuration.",[71,186,188],{"id":187},"création-dun-nouveau-microservice-avec-le-flow-developer","Création d'un nouveau microservice avec le flow Developer",[12,190,191,192,194,195,198,199,202],{},"Avant de tester l'agent, nous avons besoin d'un microservice à intégrer. Pour le créer, nous nous rendons dans le groupe ",[84,193,86],{},", puis créons un nouveau projet appelé ",[84,196,197],{},"intra-account-transfers"," et utilisons le flow ",[84,200,201],{},"Developer"," par défaut de GitLab Duo Agent Platform.",[12,204,205,206,209,210,213],{},"Nous ouvrons un nouveau ticket dans le projet et, dans sa description, nous indiquons une série de spécifications pour le microservice. Nous cliquons ensuite sur le bouton ",[84,207,208],{},"Générer une MR avec Duo",", ce qui lance le flow Developer. L'agent lit les spécifications, implémente le microservice, crée une branche et une merge request, puis lie la merge request au ticket. Après avoir vérifié que l'implémentation fonctionne localement à l’aide d’une commande ",[84,211,212],{},"curl"," rapide, nous fusionnons la merge request. Le pipeline s'exécute et effectue un push des nouvelles images de conteneurs vers le registre du projet.",[12,215,216,217,220,221,223,224,226,227,220,230,232],{},"À ce stade, le nouveau microservice existe, mais le workflow GitOps global n'en a pas encore connaissance. Le répertoire ",[84,218,219],{},"manifests/dev"," du projet ",[84,222,90],{}," ne contient rien pour ",[84,225,197],{},", le pipeline de livraison ne le référence pas et le fichier ",[84,228,229],{},"image-update-automation.yaml",[84,231,94],{}," ne comporte aucune entrée pour le nouveau microservice.",[71,234,236],{"id":235},"utilisation-de-lagent-personnalisé","Utilisation de l'agent personnalisé",[12,238,239,240,242,243,245,246,248],{},"Après avoir activé notre agent ",[84,241,163],{}," dans le projet ",[84,244,197],{}," que nous venons de créer, nous nous rendons dans ",[84,247,90],{},", ouvrons le panneau Agentic Chat, sélectionnons notre agent personnalisé dans le menu déroulant et lui demandons d'intégrer le nouveau service en fournissant le nom du service et le nom d'hôte.",[12,250,251],{},"L'agent se met au travail. Il localise et lit le Dockerfile du nouveau microservice pour déterminer son port, génère les manifestes appropriés et met à jour les pipelines concernés. Au cours du processus, il demande une autorisation avant de créer des commits et des merge requests, que nous accordons.",[12,253,254,255,257,258,260],{},"L'agent ouvre ensuite deux merge requests, l'une dans ",[84,256,90],{}," et l'autre dans ",[84,259,94],{},", puis termine par un résumé de tout ce qu'il a accompli, incluant les liens vers les merge requests, les détails du service, les fichiers créés et modifiés, ainsi que les prochaines étapes recommandées.",[71,262,264],{"id":263},"résultats","Résultats",[12,266,267,268,270,271,273,274,277],{},"Nous examinons les modifications dans les deux merge requests, fusionnons d'abord la merge request ",[84,269,94],{}," pour mettre à jour les composants Flux, puis fusionnons la merge request ",[84,272,90],{},". Pour vérifier le déploiement, nous créons un nouvel environnement dans GitLab nommé ",[84,275,276],{},"intra-account-transfers-dev",", connecté au cluster Kubernetes, sélectionnons l'espace de nommage et la ressource Flux appropriés, puis enregistrons le tout.",[12,279,280,281,284,285,287,288,291],{},"La vue de l'environnement affiche les pods qui viennent de démarrer, et une commande ",[84,282,283],{},"kubectl"," dans un terminal confirme que trois nouveaux pods sont en cours d'exécution. Un dernier appel ",[84,286,212],{}," vers le nom d'hôte public ",[84,289,290],{},"itransfers2.ocpgitlab.com"," renvoie la réponse attendue. Le microservice est opérationnel, et l'intégration qui aurait pu prendre des heures de travail manuel minutieux n'a pris que quelques minutes.",[56,293,295],{"id":294},"avantages","Avantages",[12,297,298],{},"La création d'un agent personnalisé sur GitLab Duo Agent Platform apporte une valeur à plusieurs égards. Elle réduit à quelques minutes un travail de configuration complexe impliquant plusieurs projets, permettant ainsi aux ingénieurs de se concentrer sur des problèmes à plus forte valeur ajoutée. L'agent saisit les connaissances et le contexte organisationnels (vos conventions GitOps, vos schémas de nommage et vos structures de pipeline) dans une ressource réutilisable que tout membre autorisé de l'équipe peut invoquer.",[12,300,301,302,308],{},"Étant donné que l'agent est défini dans un projet géré, son accès, sa visibilité et sa portée sont contrôlés de la même manière que toute autre ressource GitLab, ce qui rassure les équipes plateforme. Et chaque artefact que l'agent crée, chaque manifeste, chaque commit, chaque merge request, est hébergé dans GitLab, avec un ",[16,303,307],{"href":304,"rel":305,"title":306},"https://about.gitlab.com/fr-fr/topics/version-control/",[],"Qu'est-ce que le contrôle de version ?","contrôle de version"," complet et une traçabilité totale. Vous bénéficiez de la rapidité de l'automatisation par l'IA sans sacrifier la gouvernance et la traçabilité qu'exige votre entreprise.",[56,310,312],{"id":311},"créez-votre-agent-personnalisé-dès-aujourdhui","Créez votre agent personnalisé dès aujourd'hui",[12,314,315],{},"L'intégration de nouveaux services dans un workflow GitOps mature est un bon exemple de tâche suffisamment complexe pour exiger une attention minutieuse, mais suffisamment répétitive pour mobiliser inutilement le temps des équipes d'ingénierie. Un agent personnalisé développé sur GitLab Duo Agent Platform change la donne : il comprend le contexte de votre application et de votre organisation, respecte vos conventions et génère des modifications cohérentes et vérifiables, tout en restant versionné, gouverné et sécurisé au sein de GitLab.",[12,317,318,319,323,324,104],{},"Vous pouvez ",[16,320,322],{"href":321},"/fr-fr/gitlab-duo-agent-platform/?utm_medium=blog&utm_source=blog&utm_campaign=eg_emea_x_trial_x_fr_blog_fr","essayer GitLab Duo Agent Platform"," dans le cadre d'un essai gratuit de GitLab Ultimate dès aujourd'hui ! Si vous avez déjà accès à GitLab Duo Agent Platform, obtenez plus d'informations grâce à notre ",[16,325,327],{"href":326},"/fr-fr/blog/gitlab-duo-agent-platform-complete-getting-started-guide/","guide de démarrage",{"title":329,"searchDepth":330,"depth":330,"links":331},"",2,[332,341,342],{"id":58,"depth":330,"text":59,"children":333},[334,336,337,338,339,340],{"id":73,"depth":335,"text":74},3,{"id":110,"depth":335,"text":111},{"id":131,"depth":335,"text":132},{"id":187,"depth":335,"text":188},{"id":235,"depth":335,"text":236},{"id":263,"depth":335,"text":264},{"id":294,"depth":330,"text":295},{"id":311,"depth":330,"text":312},"ai","2026-06-25","Les agents d'IA personnalisés automatisent les tâches GitOps complexes et répétitives en quelques minutes, tout en restant versionnés, gouvernés et sécurisés dans le respect des contraintes de l'entreprise.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1773856365/gsx2c0vqlswox3ldmq88.jpg",{},true,"/fr-fr/blog/automate-deployment-with-duo-agent-platform",{"config":354,"title":355,"description":356},{"noIndex":348},"Automatiser vos déploiements avec GitLab Duo Agent Platform","Créez un agent personnalisé pour automatiser l'intégration de microservices dans un workflow GitOps, avec gestion des versions et gouvernance intégrés.","automate-deployment-with-duo-agent-platform","fr-fr/blog/automate-deployment-with-duo-agent-platform",[360,361,362,363],"AI","product","features","tutorial","BlogPost","z8LjkBYfaIzpbHOo1ex2NRVY_t9Vvnud3_l4KnrBkmg",{"logo":367,"freeTrial":372,"sales":377,"login":382,"items":387,"search":714,"minimal":749,"duo":768,"switchNav":777,"pricingDeployment":788},{"config":368},{"href":369,"dataGaName":370,"dataGaLocation":371},"/fr-fr/","gitlab logo","header",{"text":373,"config":374},"Commencer un essai gratuit",{"href":375,"dataGaName":376,"dataGaLocation":371},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":378,"config":379},"Demander une démo",{"href":380,"dataGaName":381,"dataGaLocation":371},"/fr-fr/sales/?contact-topic=request-demo","sales",{"text":383,"config":384},"Connexion",{"href":385,"dataGaName":386,"dataGaLocation":371},"https://gitlab.com/users/sign_in/","sign in",[388,416,518,523,636,692],{"text":389,"config":390,"menu":392},"Plateforme",{"dataNavLevelOne":391},"platform",{"type":393,"columns":394},"cards",[395,401,408],{"title":389,"description":396,"link":397},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":398,"config":399},"Explorer notre plateforme",{"href":400,"dataGaName":391,"dataGaLocation":371},"/fr-fr/platform/",{"title":402,"description":403,"link":404},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":405,"config":406},"Découvrir GitLab Duo",{"href":28,"dataGaName":407,"dataGaLocation":371},"gitlab duo agent platform",{"title":409,"description":410,"link":411},"Pourquoi GitLab ?","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":412,"config":413},"En savoir plus",{"href":414,"dataGaName":415,"dataGaLocation":371},"/fr-fr/why-gitlab/","why gitlab",{"text":417,"left":351,"config":418,"menu":420},"Produit",{"dataNavLevelOne":419},"solutions",{"type":421,"link":422,"columns":426,"feature":497},"lists",{"text":423,"config":424},"Voir toutes les solutions",{"href":425,"dataGaName":419,"dataGaLocation":371},"/fr-fr/solutions/",[427,452,475],{"title":428,"description":429,"link":430,"items":435},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":431},{"icon":432,"href":433,"dataGaName":434,"dataGaLocation":371},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[436,440,443,448],{"text":437,"config":438},"CI/CD",{"href":439,"dataGaLocation":371,"dataGaName":437},"/fr-fr/solutions/continuous-integration/",{"text":402,"config":441},{"href":28,"dataGaLocation":371,"dataGaName":442},"gitlab duo agent platform - product menu",{"text":444,"config":445},"Gestion du code source",{"href":446,"dataGaLocation":371,"dataGaName":447},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":449,"config":450},"Livraison de logiciels automatisée",{"href":433,"dataGaLocation":371,"dataGaName":451},"Automated software delivery",{"title":453,"description":454,"link":455,"items":460},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":456},{"href":457,"dataGaName":458,"dataGaLocation":371,"icon":459},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[461,465,470],{"text":462,"config":463},"Tests de sécurité des applications",{"href":457,"dataGaName":464,"dataGaLocation":371},"Application security testing",{"text":466,"config":467},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":468,"dataGaLocation":371,"dataGaName":469},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":471,"config":472},"Conformité logicielle",{"href":473,"dataGaName":474,"dataGaLocation":371},"/fr-fr/solutions/software-compliance/","software compliance",{"title":476,"link":477,"items":482},"Mesures",{"config":478},{"icon":479,"href":480,"dataGaName":481,"dataGaLocation":371},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[483,487,492],{"text":484,"config":485},"Visibilité et mesures",{"href":480,"dataGaLocation":371,"dataGaName":486},"Visibility and Measurement",{"text":488,"config":489},"Gestion de la chaîne de valeur",{"href":490,"dataGaLocation":371,"dataGaName":491},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":493,"config":494},"Analyses et informations",{"href":495,"dataGaLocation":371,"dataGaName":496},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":498,"type":421,"items":499},"GitLab",[500,506,512],{"text":501,"config":502},"Entreprises",{"icon":503,"href":504,"dataGaLocation":371,"dataGaName":505},"Building","/fr-fr/enterprise/","enterprise",{"text":507,"config":508},"Pour les PME",{"icon":509,"href":510,"dataGaLocation":371,"dataGaName":511},"Work","/fr-fr/small-business/","small business",{"text":513,"config":514},"Pour le secteur public",{"icon":515,"href":516,"dataGaLocation":371,"dataGaName":517},"Organization","/fr-fr/solutions/public-sector/","public sector",{"text":519,"config":520},"Tarifs",{"href":521,"dataGaName":522,"dataGaLocation":371,"dataNavLevelOne":522},"/fr-fr/pricing/","pricing",{"text":524,"config":525,"menu":527},"Ressources",{"dataNavLevelOne":526},"resources",{"type":421,"link":528,"columns":532,"feature":625},{"text":529,"config":530},"Afficher toutes les ressources",{"href":531,"dataGaName":526,"dataGaLocation":371},"/fr-fr/resources/",[533,566,593],{"title":534,"items":535},"Premiers pas",[536,541,546,551,556,561],{"text":537,"config":538},"Installation",{"href":539,"dataGaName":540,"dataGaLocation":371},"/fr-fr/install/","install",{"text":542,"config":543},"Guides de démarrage",{"href":544,"dataGaName":545,"dataGaLocation":371},"/fr-fr/get-started/","quick setup checklists",{"text":547,"config":548},"Apprentissage",{"href":549,"dataGaLocation":371,"dataGaName":550},"https://university.gitlab.com/","learn",{"text":552,"config":553},"Documentation",{"href":554,"dataGaName":555,"dataGaLocation":371},"https://docs.gitlab.com/","product documentation",{"text":557,"config":558},"Vidéos sur les bonnes pratiques",{"href":559,"dataGaName":560,"dataGaLocation":371},"/fr-fr/getting-started-videos/","best practice videos",{"text":562,"config":563},"Intégrations",{"href":564,"dataGaName":565,"dataGaLocation":371},"/fr-fr/integrations/","integrations",{"title":567,"items":568},"Découvrir",[569,574,579,584,588],{"text":570,"config":571},"Témoignages clients",{"href":572,"dataGaName":573,"dataGaLocation":371},"/fr-fr/customers/","customer success stories",{"text":575,"config":576},"Blog",{"href":577,"dataGaName":578,"dataGaLocation":371},"/fr-fr/blog/","blog",{"text":580,"config":581},"Demo Hub",{"href":582,"dataGaName":583,"dataGaLocation":371},"/fr-fr/demo-hub/","demo hub",{"text":585,"config":586},"The Source",{"href":587,"dataGaName":578,"dataGaLocation":371},"/fr-fr/the-source/",{"text":589,"config":590},"Travail à distance",{"href":591,"dataGaName":592,"dataGaLocation":371},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":594,"items":595},"Connecter",[596,600,605,610,615,620],{"text":597,"config":598},"Services GitLab",{"href":599,"dataGaName":86,"dataGaLocation":371},"/fr-fr/services/",{"text":601,"config":602},"Contribuer",{"href":603,"dataGaName":604,"dataGaLocation":371},"https://contributors.gitlab.com","contribute",{"text":606,"config":607},"Communauté",{"href":608,"dataGaName":609,"dataGaLocation":371},"/community/","community",{"text":611,"config":612},"Forum",{"href":613,"dataGaName":614,"dataGaLocation":371},"https://forum.gitlab.com/","forum",{"text":616,"config":617},"Événements",{"href":618,"dataGaName":619,"dataGaLocation":371},"/events/","events",{"text":621,"config":622},"Partenaires",{"href":623,"dataGaName":624,"dataGaLocation":371},"/fr-fr/partners/","partners",{"config":626,"title":629,"text":630,"link":631},{"background":627,"textColor":628},"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":632,"config":633},"Lire les articles les plus récents",{"href":634,"dataGaName":635,"dataGaLocation":371},"/fr-fr/whats-new/","whats new",{"text":637,"config":638,"menu":640},"Société",{"dataNavLevelOne":639},"company",{"type":421,"columns":641},[642],{"items":643},[644,649,655,657,662,667,672,677,682,687],{"text":645,"config":646},"À propos",{"href":647,"dataGaName":648,"dataGaLocation":371},"/fr-fr/company/","about",{"text":650,"config":651,"footerGa":654},"Carrières",{"href":652,"dataGaName":653,"dataGaLocation":371},"/jobs/","jobs",{"dataGaName":653},{"text":616,"config":656},{"href":618,"dataGaName":619,"dataGaLocation":371},{"text":658,"config":659},"Leadership",{"href":660,"dataGaName":661,"dataGaLocation":371},"/company/team/e-group/","leadership",{"text":663,"config":664},"Manuel",{"href":665,"dataGaName":666,"dataGaLocation":371},"https://handbook.gitlab.com/","handbook",{"text":668,"config":669},"Relations avec les investisseurs",{"href":670,"dataGaName":671,"dataGaLocation":371},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":673,"config":674},"Trust Center",{"href":675,"dataGaName":676,"dataGaLocation":371},"/fr-fr/security/","trust center",{"text":678,"config":679},"Centre pour la transparence de l'IA",{"href":680,"dataGaName":681,"dataGaLocation":371},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":683,"config":684},"Newsletter",{"href":685,"dataGaName":686,"dataGaLocation":371},"/company/contact/#contact-forms","newsletter",{"text":688,"config":689},"Presse",{"href":690,"dataGaName":691,"dataGaLocation":371},"/press/","press",{"text":693,"config":694,"menu":695},"Nous contacter",{"dataNavLevelOne":639},{"type":421,"columns":696},[697],{"items":698},[699,704,709],{"text":700,"config":701},"Contacter l'équipe commerciale",{"href":702,"dataGaName":703,"dataGaLocation":371},"/fr-fr/sales/","talk to sales",{"text":705,"config":706},"Assistance GitLab",{"href":707,"dataGaName":708,"dataGaLocation":371},"https://support.gitlab.com/hc/en-us","support portal",{"text":710,"config":711},"Portail clients GitLab",{"href":712,"dataGaName":713,"dataGaLocation":371},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":715,"login":716,"suggestions":723},"Fermer",{"text":717,"link":718},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":719,"config":720},"GitLab.com",{"href":385,"dataGaName":721,"dataGaLocation":722},"search login","search",{"text":724,"default":725},"Suggestions",[726,728,733,735,740,745],{"text":402,"config":727},{"href":28,"dataGaName":29,"dataGaLocation":722},{"text":729,"config":730},"Suggestions de code (IA)",{"href":731,"dataGaName":732,"dataGaLocation":722},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":437,"config":734},{"href":439,"dataGaName":437,"dataGaLocation":722},{"text":736,"config":737},"GitLab sur AWS",{"href":738,"dataGaName":739,"dataGaLocation":722},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":741,"config":742},"GitLab sur Google Cloud",{"href":743,"dataGaName":744,"dataGaLocation":722},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":746,"config":747},"Pourquoi utiliser GitLab ?",{"href":414,"dataGaName":748,"dataGaLocation":722},"Why GitLab?",{"freeTrial":750,"mobileIcon":755,"desktopIcon":760,"secondaryButton":763},{"text":751,"config":752},"Commencer votre essai gratuit",{"href":753,"dataGaName":376,"dataGaLocation":754},"https://gitlab.com/-/trials/new/","nav",{"altText":756,"config":757},"Icône GitLab",{"src":758,"dataGaName":759,"dataGaLocation":754},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":756,"config":761},{"src":762,"dataGaName":759,"dataGaLocation":754},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":764,"config":765},"Commencer",{"href":766,"dataGaName":767,"dataGaLocation":754},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":769,"mobileIcon":773,"desktopIcon":775},{"text":770,"config":771},"En savoir plus sur GitLab Duo",{"href":28,"dataGaName":772,"dataGaLocation":754},"gitlab duo",{"altText":756,"config":774},{"src":758,"dataGaName":759,"dataGaLocation":754},{"altText":756,"config":776},{"src":762,"dataGaName":759,"dataGaLocation":754},{"button":778,"mobileIcon":783,"desktopIcon":785},{"text":779,"config":780},"/switch",{"href":781,"dataGaName":782,"dataGaLocation":754},"#contact","switch",{"altText":756,"config":784},{"src":758,"dataGaName":759,"dataGaLocation":754},{"altText":756,"config":786},{"src":787,"dataGaName":759,"dataGaLocation":754},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":789,"mobileIcon":794,"desktopIcon":796},{"text":790,"config":791},"Retour aux tarifs",{"href":521,"dataGaName":792,"dataGaLocation":754,"icon":793},"back to pricing","GoBack",{"altText":756,"config":795},{"src":758,"dataGaName":759,"dataGaLocation":754},{"altText":756,"config":797},{"src":762,"dataGaName":759,"dataGaLocation":754},{"title":799,"button":800,"config":804},"GitLab Orbit est arrivé : la couche de contexte pour les agents d'IA.",{"text":412,"config":801},{"href":802,"dataGaName":803,"dataGaLocation":371},"/fr-fr/gitlab-orbit/","orbit",{"layout":805,"disabled":348},"release",{"data":807},{"text":808,"source":809,"edit":815,"contribute":820,"config":824,"items":829,"minimal":1036},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":810,"config":811},"Afficher le code source de la page",{"href":812,"dataGaName":813,"dataGaLocation":814},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":816,"config":817},"Modifier cette page",{"href":818,"dataGaName":819,"dataGaLocation":814},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":601,"config":821},{"href":822,"dataGaName":823,"dataGaLocation":814},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":825,"facebook":826,"youtube":827,"linkedin":828},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[830,876,928,971,1003],{"title":519,"links":831,"subMenu":846},[832,836,841],{"text":833,"config":834},"Voir les forfaits",{"href":521,"dataGaName":835,"dataGaLocation":814},"view plans",{"text":837,"config":838},"GitLab Premium",{"href":839,"dataGaName":840,"dataGaLocation":814},"/fr-fr/pricing/premium/","why premium",{"text":842,"config":843},"GitLab Ultimate",{"href":844,"dataGaName":845,"dataGaLocation":814},"/fr-fr/pricing/ultimate/","why ultimate",[847],{"title":693,"links":848},[849,851,853,856,861,866,871],{"text":700,"config":850},{"href":702,"dataGaName":381,"dataGaLocation":814},{"text":705,"config":852},{"href":707,"dataGaName":708,"dataGaLocation":814},{"text":854,"config":855},"Portail clients",{"href":712,"dataGaName":713,"dataGaLocation":814},{"text":857,"config":858},"Statut",{"href":859,"dataGaName":860,"dataGaLocation":814},"https://status.gitlab.com/","status",{"text":862,"config":863},"Conditions d'utilisation",{"href":864,"dataGaName":865,"dataGaLocation":814},"/terms/","terms of use",{"text":867,"config":868},"Politique de confidentialité",{"href":869,"dataGaName":870,"dataGaLocation":814},"/fr-fr/privacy/","privacy statement",{"text":872,"config":873},"Gestion des cookies",{"dataGaName":874,"dataGaLocation":814,"id":875,"isOneTrustButton":351},"cookie preferences","ot-sdk-btn",{"title":417,"links":877,"subMenu":886},[878,882],{"text":879,"config":880},"Plateforme DevSecOps",{"href":400,"dataGaName":881,"dataGaLocation":814},"devsecops platform",{"text":883,"config":884},"Développement assisté par l'IA",{"href":28,"dataGaName":885,"dataGaLocation":814},"ai-assisted development",[887],{"title":888,"links":889},"Thèmes",[890,894,898,903,908,913,918,923],{"text":437,"config":891},{"href":892,"dataGaName":893,"dataGaLocation":814},"/fr-fr/topics/ci-cd/","cicd",{"text":68,"config":895},{"href":896,"dataGaName":897,"dataGaLocation":814},"/fr-fr/topics/gitops/","gitops",{"text":899,"config":900},"DevOps",{"href":901,"dataGaName":902,"dataGaLocation":814},"/fr-fr/topics/devops/","devops",{"text":904,"config":905},"Contrôle de version",{"href":906,"dataGaName":907,"dataGaLocation":814},"/fr-fr/topics/version-control/","version control",{"text":909,"config":910},"DevSecOps",{"href":911,"dataGaName":912,"dataGaLocation":814},"/fr-fr/topics/devsecops/","devsecops",{"text":914,"config":915},"Cloud-native",{"href":916,"dataGaName":917,"dataGaLocation":814},"/fr-fr/topics/cloud-native/","cloud native",{"text":919,"config":920},"IA pour la programmation",{"href":921,"dataGaName":922,"dataGaLocation":814},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":924,"config":925},"IA agentique",{"href":926,"dataGaName":927,"dataGaLocation":814},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":929,"links":930},"Solutions",[931,934,936,941,944,947,950,953,955,958,961,966],{"text":462,"config":932},{"href":457,"dataGaName":933,"dataGaLocation":814},"Application Security Testing",{"text":449,"config":935},{"href":433,"dataGaName":434,"dataGaLocation":814},{"text":937,"config":938},"Développement Agile",{"href":939,"dataGaName":940,"dataGaLocation":814},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":444,"config":942},{"href":446,"dataGaName":943,"dataGaLocation":814},"source code management",{"text":437,"config":945},{"href":439,"dataGaName":946,"dataGaLocation":814},"continuous integration & delivery",{"text":488,"config":948},{"href":490,"dataGaName":949,"dataGaLocation":814},"value stream management",{"text":68,"config":951},{"href":952,"dataGaName":897,"dataGaLocation":814},"/fr-fr/solutions/gitops/",{"text":501,"config":954},{"href":504,"dataGaName":505,"dataGaLocation":814},{"text":956,"config":957},"PME",{"href":510,"dataGaName":511,"dataGaLocation":814},{"text":959,"config":960},"Secteur public",{"href":516,"dataGaName":517,"dataGaLocation":814},{"text":962,"config":963},"Éducation",{"href":964,"dataGaName":965,"dataGaLocation":814},"/fr-fr/solutions/education/","education",{"text":967,"config":968},"Services financiers",{"href":969,"dataGaName":970,"dataGaLocation":814},"/fr-fr/solutions/finance/","financial services",{"title":524,"links":972},[973,975,977,979,982,984,987,989,991,993,995,997,999,1001],{"text":537,"config":974},{"href":539,"dataGaName":540,"dataGaLocation":814},{"text":542,"config":976},{"href":544,"dataGaName":545,"dataGaLocation":814},{"text":547,"config":978},{"href":549,"dataGaName":550,"dataGaLocation":814},{"text":552,"config":980},{"href":554,"dataGaName":981,"dataGaLocation":814},"docs",{"text":575,"config":983},{"href":577,"dataGaName":578,"dataGaLocation":814},{"text":985,"config":986},"Nouveautés",{"href":634,"dataGaName":635,"dataGaLocation":814},{"text":570,"config":988},{"href":572,"dataGaName":573,"dataGaLocation":814},{"text":589,"config":990},{"href":591,"dataGaName":592,"dataGaLocation":814},{"text":597,"config":992},{"href":599,"dataGaName":86,"dataGaLocation":814},{"text":601,"config":994},{"href":603,"dataGaName":604,"dataGaLocation":814},{"text":606,"config":996},{"href":608,"dataGaName":609,"dataGaLocation":814},{"text":611,"config":998},{"href":613,"dataGaName":614,"dataGaLocation":814},{"text":616,"config":1000},{"href":618,"dataGaName":619,"dataGaLocation":814},{"text":621,"config":1002},{"href":623,"dataGaName":624,"dataGaLocation":814},{"title":637,"links":1004},[1005,1007,1009,1011,1013,1015,1020,1025,1027,1029,1031],{"text":645,"config":1006},{"href":647,"dataGaName":639,"dataGaLocation":814},{"text":650,"config":1008},{"href":652,"dataGaName":653,"dataGaLocation":814},{"text":658,"config":1010},{"href":660,"dataGaName":661,"dataGaLocation":814},{"text":663,"config":1012},{"href":665,"dataGaName":666,"dataGaLocation":814},{"text":668,"config":1014},{"href":670,"dataGaName":671,"dataGaLocation":814},{"text":1016,"config":1017},"Développement durable",{"href":1018,"dataGaName":1019,"dataGaLocation":814},"/sustainability/","Sustainability",{"text":1021,"config":1022},"Diversité, inclusion et appartenance (DIB)",{"href":1023,"dataGaName":1024,"dataGaLocation":814},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":673,"config":1026},{"href":675,"dataGaName":676,"dataGaLocation":814},{"text":683,"config":1028},{"href":685,"dataGaName":686,"dataGaLocation":814},{"text":688,"config":1030},{"href":690,"dataGaName":691,"dataGaLocation":814},{"text":1032,"config":1033},"Déclaration de transparence sur l'esclavage moderne",{"href":1034,"dataGaName":1035,"dataGaLocation":814},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1037},[1038,1040,1042],{"text":862,"config":1039},{"href":864,"dataGaName":865,"dataGaLocation":814},{"text":872,"config":1041},{"dataGaName":874,"dataGaLocation":814,"id":875,"isOneTrustButton":351},{"text":867,"config":1043},{"href":869,"dataGaName":870,"dataGaLocation":814},[1045],{"id":1046,"title":7,"body":347,"config":1047,"content":1049,"description":347,"extension":1053,"meta":1054,"navigation":351,"path":1055,"seo":1056,"stem":1057,"__hash__":1058},"blogAuthors/en-us/blog/authors/cesar-saavedra.yml",{"template":1048},"BlogAuthor",{"name":7,"config":1050},{"headshot":1051,"ctfId":1052},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659600/Blog/Author%20Headshots/csaavedra1-headshot.jpg","csaavedra1","yml",{},"/en-us/blog/authors/cesar-saavedra",{},"en-us/blog/authors/cesar-saavedra","SMqRf-z0W5m5GROz_dXGjmuIb3YaOwm_n_RfeK16GcA",[1060,1068,1076],{"title":1061,"description":1062,"heroImage":1063,"category":343,"date":1064,"authors":1065,"slug":1067,"externalUrl":347},"Moderniser Java avec Cursor et GitLab","Ce tutoriel commence par la correction ciblée de tests, introduit des murs qualité et met en œuvre des modifications de code en tenant compte du contexte du cycle de développement, des tests et des preuves de revue.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776457632/llddiylsgwuze0u1rjks.png","2026-08-12",[1066],"Michael Friedrich","modernize-java-with-cursor-and-gitlab",{"title":1069,"description":1070,"heroImage":1071,"category":343,"date":1072,"authors":1073,"slug":1075,"externalUrl":347},"Comment utiliser des agents d'IA pour migrer la limitation de débit de GitLab","Découvrez comment notre équipe composée de trois personnes a utilisé GitLab Duo Agent Platform, ainsi que d'autres outils d'IA, pour migrer avec succès le système de limitation de débit et les leçons que nous en avons tirées.","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1773075582/yiosxfhwk8rfkulrtchv.png","2026-08-10",[1074],"Sam Wiskow","ai-agents-for-migrating-rate-limiting-system",{"title":1077,"description":1078,"heroImage":349,"category":343,"date":1079,"authors":1080,"slug":1082,"externalUrl":347},"Codage agentique : le contexte fait la différence","Les agents de codage accélèrent le développement. Grâce au contexte dans GitLab, les entreprises évitent les correctifs superficiels et raccourcissent les cycles de revue.","2026-08-03",[1081],"Jessica Taylor","agentic-coding-only-as-good-as-context",{"promotions":1084},[1085,1098,1109,1121],{"id":1086,"categories":1087,"header":1088,"text":1089,"button":1090,"image":1095},"ai-modernization",[343],"L'IA tient-elle ses promesses à grande échelle ?","Le questionnaire ne prendra pas plus de 5 minutes.",{"text":1091,"config":1092},"Obtenez votre score de maturité IA",{"href":1093,"dataGaName":1094,"dataGaLocation":578},"/fr-fr/assessments/ai-modernization-assessment/","modernization assessment",{"config":1096},{"src":1097},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1099,"categories":1100,"header":1101,"text":1089,"button":1102,"image":1106},"devops-modernization",[361,912],"Vous contentez-vous de gérer des outils ou de livrer des innovations ?",{"text":1103,"config":1104},"Obtenez votre score de maturité DevOps",{"href":1105,"dataGaName":1094,"dataGaLocation":578},"/fr-fr/assessments/devops-modernization-assessment/",{"config":1107},{"src":1108},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1110,"categories":1111,"header":1113,"text":1089,"button":1114,"image":1118},"security-modernization",[1112],"security","Faut-il sacrifier la rapidité pour garantir la sécurité ?",{"text":1115,"config":1116},"Obtenez votre score de maturité en matière de sécurité",{"href":1117,"dataGaName":1094,"dataGaLocation":578},"/fr-fr/assessments/security-modernization-assessment/",{"config":1119},{"src":1120},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1122,"paths":1123,"header":1126,"text":1127,"button":1128,"image":1133},"github-azure-migration",[1124,1125],"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":1129,"config":1130},"Découvrez les différences entre GitLab et GitHub",{"href":1131,"dataGaName":1132,"dataGaLocation":578},"/fr-fr/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1134},{"src":1108},{"header":1136,"blurb":1137,"button":1138,"secondaryButton":1142},"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":373,"config":1139},{"href":1140,"dataGaName":376,"dataGaLocation":1141},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":700,"config":1143},{"href":702,"dataGaName":381,"dataGaLocation":1141},1786803783880]