[{"data":1,"prerenderedAt":1004},["ShallowReactive",2],{"/fr-fr/blog/automating-with-gitlab-duo-part-1-generating-tests":3,"navigation-fr-fr":220,"banner-fr-fr":655,"footer-fr-fr":663,"blog-post-authors-fr-fr-Byron Boots":902,"blog-related-posts-fr-fr-automating-with-gitlab-duo-part-1-generating-tests":917,"blog-promotions-fr-fr":942,"next-steps-fr-fr":995},{"id":4,"title":5,"authors":6,"body":8,"category":195,"date":196,"description":197,"extension":198,"externalUrl":199,"faq":199,"featured":200,"heroImage":201,"meta":202,"navigation":203,"path":204,"seo":205,"slug":209,"stem":210,"tags":211,"template":217,"updatedDate":218,"__hash__":219},"blogPosts/fr-fr/blog/automating-with-gitlab-duo-part-1-generating-tests.md","Automatisation avec GitLab Duo : comment générer des tests (Partie 1)",[7],"Byron Boots",{"type":9,"value":10,"toc":185},"minimark",[11,15,18,28,31,41,46,55,60,69,78,85,89,92,112,118,121,139,142,151,155,158],[12,13,14],"p",{},"Très chronophages, les tests automatisés donnent parfois l'impression de ne pas faire avancer le projet. Cependant, comme de nombreux développeurs et développeuses en ont probablement fait l'expérience, les tests automatisés offrent un retour sur investissement globalement positif. Nous l'avons particulièrement constaté lors de la construction d'un module personnalisé que nous appellerons assistant GitLab dans cet article.",[12,16,17],{},"Notre développement initial s'est concentré sur la migration de fonctionnalités éprouvées et utilisées à partir de scripts existants vers un nouveau module dont le seul but était de servir de base pour les fonctionnalités futures. Bien que les scripts existants n'aient pas fait l'objet de tests automatisés, leur utilisation systématique a constitué une preuve concrète que la fonctionnalité fonctionnait comme prévu.",[12,19,20,21,27],{},"Notre objectif était de fournir une solution plus mature à ce problème, et les tests automatisés sont donc devenus une nécessité. La difficulté consistait à construire efficacement tout en équilibrant le temps nécessaire pour tester et garantir la robustesse du produit, et ce, avec un total de trois membres d'équipe. Le goulot d'étranglement n'était donc pas des moindres. C'est pourquoi nous avons décidé de tirer parti de ",[22,23,26],"a",{"href":24,"rel":25},"https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/",[],"GitLab Duo",", notre suite de fonctionnalités alimentées par l'IA, pour la génération de tests afin d'améliorer la rapidité et la qualité du produit livré.",[12,29,30],{},"Cette série de trois articles sur l'automatisation avec GitLab Duo couvre les points suivants :",[32,33,34,38],"ol",{},[35,36,37],"li",{},"L'utilisation de GitLab Duo pour générer des tests pour le code 2. La gestion de situations plus complexes avec GitLab Duo par une approche interactive",[35,39,40],{},"Les résultats que nous avons pu obtenir (Spoiler : 1 développeur + GitLab Duo = 84 % de couverture en 2 jours)",[42,43,45],"h2",{"id":44},"générer-des-tests-pour-le-code-avec-gitlab-duo","Générer des tests pour le code avec GitLab Duo",[12,47,48,49,54],{},"Bien que les fonctionnalités soient disponibles dans tous les outils, cet article couvrira l'utilisation de GitLab Duo dans VS Code, avec l'",[22,50,53],{"href":51,"rel":52},"https://marketplace.visualstudio.com/items?itemName=GitLab.gitlab-workflow",[],"extension GitLab Workflow pour VS Code"," pour générer des tests. Des liens vers d'autres options de GitLab Duo sont disponibles dans les références mentionnées ci-dessous.",[56,57,59],"h3",{"id":58},"installez-et-activez-gitlabduo","Installez et activez GitLab Duo",[12,61,62,63,68],{},"Comme prérequis à l'utilisation de GitLab Duo, nous nous sommes assurés de disposer d'un accès aux fonctionnalités de GitLab Duo. Si vous ne disposez pas encore de GitLab Duo, vous pouvez ",[22,64,67],{"href":65,"rel":66},"https://about.gitlab.com/fr-fr/sales/?type=free-trial",[],"bénéficier d'un essai gratuit",".",[12,70,71,72,77],{},"Pour utiliser GitLab Duo Chat dans VS Code, nous avons suivi les ",[22,73,76],{"href":74,"rel":75},"https://docs.gitlab.com/user/gitlab_duo_chat/#use-gitlab-duo-chat-in-vs-code",[],"instructions d'installation",". L'extension GitLab Duo Chat s'est ensuite affichée dans la barre latérale et nous avons pu ouvrir la fenêtre de Chat.",[12,79,80],{},[81,82],"img",{"alt":83,"src":84},"Fenêtre « Poser une question »","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097489/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097488918.png",[56,86,88],{"id":87},"générez-de-tests-avec-chat","Générez de tests avec Chat",[12,90,91],{},"L'assistant GitLab est un module personnalisé construit pour standardiser l'interaction avec l'API GitLab à toutes les étapes du travail et étend d'autres fonctionnalités de la bibliothèque pour simplifier le développement et le travail de script. Une fois qu'une méthode ou une fonctionnalité a été migrée vers l'assistant GitLab et semble avoir été implémentée de manière appropriée, le processus de génération de tests était simple. Nous avons :",[93,94,95,98,101],"ul",{},[35,96,97],{},"Sélectionné la méthode, la classe ou le fichier entier dans l'IDE.",[35,99,100],{},"Effectué un clic droit sur le code sélectionné.",[35,102,103,104,108,109,68],{},"Sélectionné ",[105,106,107],"strong",{},"« Générer des tests »"," sous ",[105,110,111],{},"GitLab Duo Chat",[12,113,114],{},[81,115],{"alt":116,"src":117},"Séquence de génération de tests, y compris le menu déroulant pour générer des tests","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097489/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097488919.png",[12,119,120],{},"En quelques secondes, les tests ont été générés et présentés dans la fenêtre de GitLab Duo Chat. Ces tests peuvent être revus et/ou ajoutés au code base, par copier/coller, dans des fichiers de test existants ou nouveaux. Comme c'est le cas avec la plupart des générations actuelles de traitement du langage naturel, en particulier en ce qui concerne le contexte, certains des tests initiaux créés par GitLab Duo ont échoué et ont donc nécessité une mise au point (par exemple, en ce qui concerne les dépendances imbriquées).",[122,123,124],"blockquote",{},[12,125,126,129,130,134,135,138],{},[105,127,128],{},"Conseil :"," GitLab Duo ne crée pas automatiquement les fichiers dans lesquels ajouter les tests générés. Nous avons trouvé utile de créer de nouveaux fichiers de tests et d'ajouter un commentaire ",[131,132,133],"code",{},"# Tests générés par GitLab Duo"," en haut et d'y ajouter le suffixe ",[131,136,137],{},"_duo.py"," pour indiquer d'où venaient les tests.",[12,140,141],{},"GitLab Duo a fourni un excellent point de départ pour développer les tests automatisés de l'assistant GitLab et a considérablement amélioré la productivité en matière d'écriture de tests et de couverture du code, accélérant ainsi le processus de développement de manière conséquente. Parallèlement à GitLab Duo, de nombreuses itérations de tests utiles ont été introduites dans le module de l'assistant GitLab avec une supervision humaine.",[12,143,144,145,150],{},"Dans le prochain article de cette série, nous partagerons ",[22,146,149],{"href":147,"rel":148},"https://about.gitlab.com/blog/automating-with-gitlab-duo-part-2-complex-testing/",[],"les enseignements tirés de l'utilisation de GitLab Duo pour la génération de tests automatisés"," et comment aborder des situations plus complexes en travaillant de manière interactive avec l'IA.",[42,152,154],{"id":153},"en-savoir-plus-sur-la-génération-de-tests-avec-gitlab-duo","En savoir plus sur la génération de tests avec GitLab Duo",[12,156,157],{},"GitLab Duo peut être utilisé de plusieurs façons pour générer des tests, consultez les autres options ci-dessous :",[93,159,160],{},[35,161,162,163,168,169,173,174,179,180],{},"L'interface utilisateur de GitLab * ",[22,164,167],{"href":165,"rel":166},"https://docs.gitlab.com/user/project/web_ide/",[],"Le Web IDE GitLab (VS Code dans le cloud)"," * VS Code, avec l'",[22,170,172],{"href":51,"rel":171},[],"extension GitLab Workflow pour VS Code"," * IDE JetBrains, avec le ",[22,175,178],{"href":176,"rel":177},"https://plugins.jetbrains.com/plugin/22325-gitlab-duo",[],"plug-in GitLab Duo pour JetBrains"," * Visual Studio pour Windows, avec l'",[22,181,184],{"href":182,"rel":183},"https://marketplace.visualstudio.com/items?itemName=GitLab.GitLabExtensionForVisualStudio",[],"extension GitLab pour Visual Studio",{"title":186,"searchDepth":187,"depth":187,"links":188},"",2,[189,194],{"id":44,"depth":187,"text":45,"children":190},[191,193],{"id":58,"depth":192,"text":59},3,{"id":87,"depth":192,"text":88},{"id":153,"depth":187,"text":154},"ai","2024-12-02","Découvrez comment nous utilisons GitLab Duo pour générer des tests automatisés et améliorer la rapidité et la qualité de notre développement.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097480/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%284%29_3LZkiDjHLjhqEkvOvBsVKp_1750097480784.png",{},true,"/fr-fr/blog/automating-with-gitlab-duo-part-1-generating-tests",{"title":5,"description":197,"ogTitle":5,"ogDescription":197,"noIndex":200,"ogImage":201,"ogUrl":206,"ogSiteName":207,"ogType":208,"canonicalUrls":206},"https://about.gitlab.com/blog/automating-with-gitlab-duo-part-1-generating-tests","https://about.gitlab.com","article","automating-with-gitlab-duo-part-1-generating-tests","fr-fr/blog/automating-with-gitlab-duo-part-1-generating-tests",[212,213,214,215,216],"AI","tutorial","testing","DevSecOps platform","features","BlogPost","2025-01-03","RNnC6c-xaFwlS1DFizQvqwk8q67Vx0GQ2f1thQwnOCc",{"logo":221,"freeTrial":226,"sales":231,"login":236,"items":241,"search":570,"minimal":606,"duo":625,"switchNav":634,"pricingDeployment":645},{"config":222},{"href":223,"dataGaName":224,"dataGaLocation":225},"/fr-fr/","gitlab logo","header",{"text":227,"config":228},"Commencer un essai gratuit",{"href":229,"dataGaName":230,"dataGaLocation":225},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":232,"config":233},"Demander une démo",{"href":234,"dataGaName":235,"dataGaLocation":225},"/fr-fr/sales/?contact-topic=request-demo","sales",{"text":237,"config":238},"Connexion",{"href":239,"dataGaName":240,"dataGaLocation":225},"https://gitlab.com/users/sign_in/","sign in",[242,271,373,378,492,548],{"text":243,"config":244,"menu":246},"Plateforme",{"dataNavLevelOne":245},"platform",{"type":247,"columns":248},"cards",[249,255,263],{"title":243,"description":250,"link":251},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":252,"config":253},"Explorer notre plateforme",{"href":254,"dataGaName":245,"dataGaLocation":225},"/fr-fr/platform/",{"title":256,"description":257,"link":258},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":259,"config":260},"Découvrir GitLab Duo",{"href":261,"dataGaName":262,"dataGaLocation":225},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":264,"description":265,"link":266},"Pourquoi GitLab ?","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":267,"config":268},"En savoir plus",{"href":269,"dataGaName":270,"dataGaLocation":225},"/fr-fr/why-gitlab/","why gitlab",{"text":272,"left":203,"config":273,"menu":275},"Produit",{"dataNavLevelOne":274},"solutions",{"type":276,"link":277,"columns":281,"feature":352},"lists",{"text":278,"config":279},"Voir toutes les solutions",{"href":280,"dataGaName":274,"dataGaLocation":225},"/fr-fr/solutions/",[282,307,330],{"title":283,"description":284,"link":285,"items":290},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":286},{"icon":287,"href":288,"dataGaName":289,"dataGaLocation":225},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[291,295,298,303],{"text":292,"config":293},"CI/CD",{"href":294,"dataGaLocation":225,"dataGaName":292},"/fr-fr/solutions/continuous-integration/",{"text":256,"config":296},{"href":261,"dataGaLocation":225,"dataGaName":297},"gitlab duo agent platform - product menu",{"text":299,"config":300},"Gestion du code source",{"href":301,"dataGaLocation":225,"dataGaName":302},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":304,"config":305},"Livraison de logiciels automatisée",{"href":288,"dataGaLocation":225,"dataGaName":306},"Automated software delivery",{"title":308,"description":309,"link":310,"items":315},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":311},{"href":312,"dataGaName":313,"dataGaLocation":225,"icon":314},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[316,320,325],{"text":317,"config":318},"Tests de sécurité des applications",{"href":312,"dataGaName":319,"dataGaLocation":225},"Application security testing",{"text":321,"config":322},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":323,"dataGaLocation":225,"dataGaName":324},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":326,"config":327},"Conformité logicielle",{"href":328,"dataGaName":329,"dataGaLocation":225},"/fr-fr/solutions/software-compliance/","software compliance",{"title":331,"link":332,"items":337},"Mesures",{"config":333},{"icon":334,"href":335,"dataGaName":336,"dataGaLocation":225},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[338,342,347],{"text":339,"config":340},"Visibilité et mesures",{"href":335,"dataGaLocation":225,"dataGaName":341},"Visibility and Measurement",{"text":343,"config":344},"Gestion de la chaîne de valeur",{"href":345,"dataGaLocation":225,"dataGaName":346},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":348,"config":349},"Analyses et informations",{"href":350,"dataGaLocation":225,"dataGaName":351},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":353,"type":276,"items":354},"GitLab",[355,361,367],{"text":356,"config":357},"Entreprises",{"icon":358,"href":359,"dataGaLocation":225,"dataGaName":360},"Building","/fr-fr/enterprise/","enterprise",{"text":362,"config":363},"Pour les PME",{"icon":364,"href":365,"dataGaLocation":225,"dataGaName":366},"Work","/fr-fr/small-business/","small business",{"text":368,"config":369},"Pour le secteur public",{"icon":370,"href":371,"dataGaLocation":225,"dataGaName":372},"Organization","/fr-fr/solutions/public-sector/","public sector",{"text":374,"config":375},"Tarifs",{"href":376,"dataGaName":377,"dataGaLocation":225,"dataNavLevelOne":377},"/fr-fr/pricing/","pricing",{"text":379,"config":380,"menu":382},"Ressources",{"dataNavLevelOne":381},"resources",{"type":276,"link":383,"columns":387,"feature":481},{"text":384,"config":385},"Afficher toutes les ressources",{"href":386,"dataGaName":381,"dataGaLocation":225},"/fr-fr/resources/",[388,421,448],{"title":389,"items":390},"Premiers pas",[391,396,401,406,411,416],{"text":392,"config":393},"Installation",{"href":394,"dataGaName":395,"dataGaLocation":225},"/fr-fr/install/","install",{"text":397,"config":398},"Guides de démarrage",{"href":399,"dataGaName":400,"dataGaLocation":225},"/fr-fr/get-started/","quick setup checklists",{"text":402,"config":403},"Apprentissage",{"href":404,"dataGaLocation":225,"dataGaName":405},"https://university.gitlab.com/","learn",{"text":407,"config":408},"Documentation",{"href":409,"dataGaName":410,"dataGaLocation":225},"https://docs.gitlab.com/","product documentation",{"text":412,"config":413},"Vidéos sur les bonnes pratiques",{"href":414,"dataGaName":415,"dataGaLocation":225},"/fr-fr/getting-started-videos/","best practice videos",{"text":417,"config":418},"Intégrations",{"href":419,"dataGaName":420,"dataGaLocation":225},"/fr-fr/integrations/","integrations",{"title":422,"items":423},"Découvrir",[424,429,434,439,443],{"text":425,"config":426},"Témoignages clients",{"href":427,"dataGaName":428,"dataGaLocation":225},"/fr-fr/customers/","customer success stories",{"text":430,"config":431},"Blog",{"href":432,"dataGaName":433,"dataGaLocation":225},"/fr-fr/blog/","blog",{"text":435,"config":436},"Demo Hub",{"href":437,"dataGaName":438,"dataGaLocation":225},"/fr-fr/demo-hub/","demo hub",{"text":440,"config":441},"The Source",{"href":442,"dataGaName":433,"dataGaLocation":225},"/fr-fr/the-source/",{"text":444,"config":445},"Travail à distance",{"href":446,"dataGaName":447,"dataGaLocation":225},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":449,"items":450},"Connecter",[451,456,461,466,471,476],{"text":452,"config":453},"Services GitLab",{"href":454,"dataGaName":455,"dataGaLocation":225},"/fr-fr/services/","services",{"text":457,"config":458},"Contribuer",{"href":459,"dataGaName":460,"dataGaLocation":225},"https://contributors.gitlab.com","contribute",{"text":462,"config":463},"Communauté",{"href":464,"dataGaName":465,"dataGaLocation":225},"/community/","community",{"text":467,"config":468},"Forum",{"href":469,"dataGaName":470,"dataGaLocation":225},"https://forum.gitlab.com/","forum",{"text":472,"config":473},"Événements",{"href":474,"dataGaName":475,"dataGaLocation":225},"/events/","events",{"text":477,"config":478},"Partenaires",{"href":479,"dataGaName":480,"dataGaLocation":225},"/fr-fr/partners/","partners",{"config":482,"title":485,"text":486,"link":487},{"background":483,"textColor":484},"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":488,"config":489},"Lire les articles les plus récents",{"href":490,"dataGaName":491,"dataGaLocation":225},"/fr-fr/whats-new/","whats new",{"text":493,"config":494,"menu":496},"Société",{"dataNavLevelOne":495},"company",{"type":276,"columns":497},[498],{"items":499},[500,505,511,513,518,523,528,533,538,543],{"text":501,"config":502},"À propos",{"href":503,"dataGaName":504,"dataGaLocation":225},"/fr-fr/company/","about",{"text":506,"config":507,"footerGa":510},"Carrières",{"href":508,"dataGaName":509,"dataGaLocation":225},"/jobs/","jobs",{"dataGaName":509},{"text":472,"config":512},{"href":474,"dataGaName":475,"dataGaLocation":225},{"text":514,"config":515},"Leadership",{"href":516,"dataGaName":517,"dataGaLocation":225},"/company/team/e-group/","leadership",{"text":519,"config":520},"Manuel",{"href":521,"dataGaName":522,"dataGaLocation":225},"https://handbook.gitlab.com/","handbook",{"text":524,"config":525},"Relations avec les investisseurs",{"href":526,"dataGaName":527,"dataGaLocation":225},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":529,"config":530},"Trust Center",{"href":531,"dataGaName":532,"dataGaLocation":225},"/fr-fr/security/","trust center",{"text":534,"config":535},"Centre pour la transparence de l'IA",{"href":536,"dataGaName":537,"dataGaLocation":225},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":539,"config":540},"Newsletter",{"href":541,"dataGaName":542,"dataGaLocation":225},"/company/contact/#contact-forms","newsletter",{"text":544,"config":545},"Presse",{"href":546,"dataGaName":547,"dataGaLocation":225},"/press/","press",{"text":549,"config":550,"menu":551},"Nous contacter",{"dataNavLevelOne":495},{"type":276,"columns":552},[553],{"items":554},[555,560,565],{"text":556,"config":557},"Contacter l'équipe commerciale",{"href":558,"dataGaName":559,"dataGaLocation":225},"/fr-fr/sales/","talk to sales",{"text":561,"config":562},"Assistance GitLab",{"href":563,"dataGaName":564,"dataGaLocation":225},"https://support.gitlab.com/hc/en-us","support portal",{"text":566,"config":567},"Portail clients GitLab",{"href":568,"dataGaName":569,"dataGaLocation":225},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":571,"login":572,"suggestions":579},"Fermer",{"text":573,"link":574},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":575,"config":576},"GitLab.com",{"href":239,"dataGaName":577,"dataGaLocation":578},"search login","search",{"text":580,"default":581},"Suggestions",[582,585,590,592,597,602],{"text":256,"config":583},{"href":261,"dataGaName":584,"dataGaLocation":578},"GitLab Duo Agent Platform",{"text":586,"config":587},"Suggestions de code (IA)",{"href":588,"dataGaName":589,"dataGaLocation":578},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":292,"config":591},{"href":294,"dataGaName":292,"dataGaLocation":578},{"text":593,"config":594},"GitLab sur AWS",{"href":595,"dataGaName":596,"dataGaLocation":578},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":598,"config":599},"GitLab sur Google Cloud",{"href":600,"dataGaName":601,"dataGaLocation":578},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":603,"config":604},"Pourquoi utiliser GitLab ?",{"href":269,"dataGaName":605,"dataGaLocation":578},"Why GitLab?",{"freeTrial":607,"mobileIcon":612,"desktopIcon":617,"secondaryButton":620},{"text":608,"config":609},"Commencer votre essai gratuit",{"href":610,"dataGaName":230,"dataGaLocation":611},"https://gitlab.com/-/trials/new/","nav",{"altText":613,"config":614},"Icône GitLab",{"src":615,"dataGaName":616,"dataGaLocation":611},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":613,"config":618},{"src":619,"dataGaName":616,"dataGaLocation":611},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":621,"config":622},"Commencer",{"href":623,"dataGaName":624,"dataGaLocation":611},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":626,"mobileIcon":630,"desktopIcon":632},{"text":627,"config":628},"En savoir plus sur GitLab Duo",{"href":261,"dataGaName":629,"dataGaLocation":611},"gitlab duo",{"altText":613,"config":631},{"src":615,"dataGaName":616,"dataGaLocation":611},{"altText":613,"config":633},{"src":619,"dataGaName":616,"dataGaLocation":611},{"button":635,"mobileIcon":640,"desktopIcon":642},{"text":636,"config":637},"/switch",{"href":638,"dataGaName":639,"dataGaLocation":611},"#contact","switch",{"altText":613,"config":641},{"src":615,"dataGaName":616,"dataGaLocation":611},{"altText":613,"config":643},{"src":644,"dataGaName":616,"dataGaLocation":611},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":646,"mobileIcon":651,"desktopIcon":653},{"text":647,"config":648},"Retour aux tarifs",{"href":376,"dataGaName":649,"dataGaLocation":611,"icon":650},"back to pricing","GoBack",{"altText":613,"config":652},{"src":615,"dataGaName":616,"dataGaLocation":611},{"altText":613,"config":654},{"src":619,"dataGaName":616,"dataGaLocation":611},{"title":656,"button":657,"config":661},"GitLab Orbit est arrivé : la couche de contexte pour les agents d'IA.",{"text":267,"config":658},{"href":659,"dataGaName":660,"dataGaLocation":225},"/fr-fr/gitlab-orbit/","orbit",{"layout":662,"disabled":200},"release",{"data":664},{"text":665,"source":666,"edit":672,"contribute":677,"config":681,"items":686,"minimal":894},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":667,"config":668},"Afficher le code source de la page",{"href":669,"dataGaName":670,"dataGaLocation":671},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":673,"config":674},"Modifier cette page",{"href":675,"dataGaName":676,"dataGaLocation":671},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":457,"config":678},{"href":679,"dataGaName":680,"dataGaLocation":671},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":682,"facebook":683,"youtube":684,"linkedin":685},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[687,733,786,829,861],{"title":374,"links":688,"subMenu":703},[689,693,698],{"text":690,"config":691},"Voir les forfaits",{"href":376,"dataGaName":692,"dataGaLocation":671},"view plans",{"text":694,"config":695},"GitLab Premium",{"href":696,"dataGaName":697,"dataGaLocation":671},"/fr-fr/pricing/premium/","why premium",{"text":699,"config":700},"GitLab Ultimate",{"href":701,"dataGaName":702,"dataGaLocation":671},"/fr-fr/pricing/ultimate/","why ultimate",[704],{"title":549,"links":705},[706,708,710,713,718,723,728],{"text":556,"config":707},{"href":558,"dataGaName":235,"dataGaLocation":671},{"text":561,"config":709},{"href":563,"dataGaName":564,"dataGaLocation":671},{"text":711,"config":712},"Portail clients",{"href":568,"dataGaName":569,"dataGaLocation":671},{"text":714,"config":715},"Statut",{"href":716,"dataGaName":717,"dataGaLocation":671},"https://status.gitlab.com/","status",{"text":719,"config":720},"Conditions d'utilisation",{"href":721,"dataGaName":722,"dataGaLocation":671},"/terms/","terms of use",{"text":724,"config":725},"Politique de confidentialité",{"href":726,"dataGaName":727,"dataGaLocation":671},"/fr-fr/privacy/","privacy statement",{"text":729,"config":730},"Gestion des cookies",{"dataGaName":731,"dataGaLocation":671,"id":732,"isOneTrustButton":203},"cookie preferences","ot-sdk-btn",{"title":272,"links":734,"subMenu":743},[735,739],{"text":736,"config":737},"Plateforme DevSecOps",{"href":254,"dataGaName":738,"dataGaLocation":671},"devsecops platform",{"text":740,"config":741},"Développement assisté par l'IA",{"href":261,"dataGaName":742,"dataGaLocation":671},"ai-assisted development",[744],{"title":745,"links":746},"Thèmes",[747,751,756,761,766,771,776,781],{"text":292,"config":748},{"href":749,"dataGaName":750,"dataGaLocation":671},"/fr-fr/topics/ci-cd/","cicd",{"text":752,"config":753},"GitOps",{"href":754,"dataGaName":755,"dataGaLocation":671},"/fr-fr/topics/gitops/","gitops",{"text":757,"config":758},"DevOps",{"href":759,"dataGaName":760,"dataGaLocation":671},"/fr-fr/topics/devops/","devops",{"text":762,"config":763},"Contrôle de version",{"href":764,"dataGaName":765,"dataGaLocation":671},"/fr-fr/topics/version-control/","version control",{"text":767,"config":768},"DevSecOps",{"href":769,"dataGaName":770,"dataGaLocation":671},"/fr-fr/topics/devsecops/","devsecops",{"text":772,"config":773},"Cloud-native",{"href":774,"dataGaName":775,"dataGaLocation":671},"/fr-fr/topics/cloud-native/","cloud native",{"text":777,"config":778},"IA pour la programmation",{"href":779,"dataGaName":780,"dataGaLocation":671},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":782,"config":783},"IA agentique",{"href":784,"dataGaName":785,"dataGaLocation":671},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":787,"links":788},"Solutions",[789,792,794,799,802,805,808,811,813,816,819,824],{"text":317,"config":790},{"href":312,"dataGaName":791,"dataGaLocation":671},"Application Security Testing",{"text":304,"config":793},{"href":288,"dataGaName":289,"dataGaLocation":671},{"text":795,"config":796},"Développement Agile",{"href":797,"dataGaName":798,"dataGaLocation":671},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":299,"config":800},{"href":301,"dataGaName":801,"dataGaLocation":671},"source code management",{"text":292,"config":803},{"href":294,"dataGaName":804,"dataGaLocation":671},"continuous integration & delivery",{"text":343,"config":806},{"href":345,"dataGaName":807,"dataGaLocation":671},"value stream management",{"text":752,"config":809},{"href":810,"dataGaName":755,"dataGaLocation":671},"/fr-fr/solutions/gitops/",{"text":356,"config":812},{"href":359,"dataGaName":360,"dataGaLocation":671},{"text":814,"config":815},"PME",{"href":365,"dataGaName":366,"dataGaLocation":671},{"text":817,"config":818},"Secteur public",{"href":371,"dataGaName":372,"dataGaLocation":671},{"text":820,"config":821},"Éducation",{"href":822,"dataGaName":823,"dataGaLocation":671},"/fr-fr/solutions/education/","education",{"text":825,"config":826},"Services financiers",{"href":827,"dataGaName":828,"dataGaLocation":671},"/fr-fr/solutions/finance/","financial services",{"title":379,"links":830},[831,833,835,837,840,842,845,847,849,851,853,855,857,859],{"text":392,"config":832},{"href":394,"dataGaName":395,"dataGaLocation":671},{"text":397,"config":834},{"href":399,"dataGaName":400,"dataGaLocation":671},{"text":402,"config":836},{"href":404,"dataGaName":405,"dataGaLocation":671},{"text":407,"config":838},{"href":409,"dataGaName":839,"dataGaLocation":671},"docs",{"text":430,"config":841},{"href":432,"dataGaName":433,"dataGaLocation":671},{"text":843,"config":844},"Nouveautés",{"href":490,"dataGaName":491,"dataGaLocation":671},{"text":425,"config":846},{"href":427,"dataGaName":428,"dataGaLocation":671},{"text":444,"config":848},{"href":446,"dataGaName":447,"dataGaLocation":671},{"text":452,"config":850},{"href":454,"dataGaName":455,"dataGaLocation":671},{"text":457,"config":852},{"href":459,"dataGaName":460,"dataGaLocation":671},{"text":462,"config":854},{"href":464,"dataGaName":465,"dataGaLocation":671},{"text":467,"config":856},{"href":469,"dataGaName":470,"dataGaLocation":671},{"text":472,"config":858},{"href":474,"dataGaName":475,"dataGaLocation":671},{"text":477,"config":860},{"href":479,"dataGaName":480,"dataGaLocation":671},{"title":493,"links":862},[863,865,867,869,871,873,878,883,885,887,889],{"text":501,"config":864},{"href":503,"dataGaName":495,"dataGaLocation":671},{"text":506,"config":866},{"href":508,"dataGaName":509,"dataGaLocation":671},{"text":514,"config":868},{"href":516,"dataGaName":517,"dataGaLocation":671},{"text":519,"config":870},{"href":521,"dataGaName":522,"dataGaLocation":671},{"text":524,"config":872},{"href":526,"dataGaName":527,"dataGaLocation":671},{"text":874,"config":875},"Développement durable",{"href":876,"dataGaName":877,"dataGaLocation":671},"/sustainability/","Sustainability",{"text":879,"config":880},"Diversité, inclusion et appartenance (DIB)",{"href":881,"dataGaName":882,"dataGaLocation":671},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":529,"config":884},{"href":531,"dataGaName":532,"dataGaLocation":671},{"text":539,"config":886},{"href":541,"dataGaName":542,"dataGaLocation":671},{"text":544,"config":888},{"href":546,"dataGaName":547,"dataGaLocation":671},{"text":890,"config":891},"Déclaration de transparence sur l'esclavage moderne",{"href":892,"dataGaName":893,"dataGaLocation":671},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":895},[896,898,900],{"text":719,"config":897},{"href":721,"dataGaName":722,"dataGaLocation":671},{"text":729,"config":899},{"dataGaName":731,"dataGaLocation":671,"id":732,"isOneTrustButton":203},{"text":724,"config":901},{"href":726,"dataGaName":727,"dataGaLocation":671},[903],{"id":904,"title":7,"body":199,"config":905,"content":907,"description":199,"extension":911,"meta":912,"navigation":203,"path":913,"seo":914,"stem":915,"__hash__":916},"blogAuthors/en-us/blog/authors/byron-boots.yml",{"template":906},"BlogAuthor",{"name":7,"config":908},{"headshot":909,"ctfId":910},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662281/Blog/Author%20Headshots/byron_boots_headshot.png","7ezFbRYF2Cu5JTBQXRp7mw","yml",{},"/en-us/blog/authors/byron-boots",{},"en-us/blog/authors/byron-boots","Qu4h1SMW7Bb32A8HZlFYMusWH2fvwt-ZKOKFRiZfm5s",[918,926,934],{"title":919,"description":920,"heroImage":921,"category":195,"date":922,"authors":923,"slug":925,"externalUrl":199},"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",[924],"Michael Friedrich","modernize-java-with-cursor-and-gitlab",{"title":927,"description":928,"heroImage":929,"category":195,"date":930,"authors":931,"slug":933,"externalUrl":199},"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",[932],"Sam Wiskow","ai-agents-for-migrating-rate-limiting-system",{"title":935,"description":936,"heroImage":937,"category":195,"date":938,"authors":939,"slug":941,"externalUrl":199},"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.","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1773856365/gsx2c0vqlswox3ldmq88.jpg","2026-08-03",[940],"Jessica Taylor","agentic-coding-only-as-good-as-context",{"promotions":943},[944,957,969,981],{"id":945,"categories":946,"header":947,"text":948,"button":949,"image":954},"ai-modernization",[195],"L'IA tient-elle ses promesses à grande échelle ?","Le questionnaire ne prendra pas plus de 5 minutes.",{"text":950,"config":951},"Obtenez votre score de maturité IA",{"href":952,"dataGaName":953,"dataGaLocation":433},"/fr-fr/assessments/ai-modernization-assessment/","modernization assessment",{"config":955},{"src":956},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":958,"categories":959,"header":961,"text":948,"button":962,"image":966},"devops-modernization",[960,770],"product","Vous contentez-vous de gérer des outils ou de livrer des innovations ?",{"text":963,"config":964},"Obtenez votre score de maturité DevOps",{"href":965,"dataGaName":953,"dataGaLocation":433},"/fr-fr/assessments/devops-modernization-assessment/",{"config":967},{"src":968},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":970,"categories":971,"header":973,"text":948,"button":974,"image":978},"security-modernization",[972],"security","Faut-il sacrifier la rapidité pour garantir la sécurité ?",{"text":975,"config":976},"Obtenez votre score de maturité en matière de sécurité",{"href":977,"dataGaName":953,"dataGaLocation":433},"/fr-fr/assessments/security-modernization-assessment/",{"config":979},{"src":980},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":982,"paths":983,"header":986,"text":987,"button":988,"image":993},"github-azure-migration",[984,985],"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":989,"config":990},"Découvrez les différences entre GitLab et GitHub",{"href":991,"dataGaName":992,"dataGaLocation":433},"/fr-fr/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":994},{"src":968},{"header":996,"blurb":997,"button":998,"secondaryButton":1002},"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":227,"config":999},{"href":1000,"dataGaName":230,"dataGaLocation":1001},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":556,"config":1003},{"href":558,"dataGaName":235,"dataGaLocation":1001},1786803783911]