[{"data":1,"prerenderedAt":2305},["ShallowReactive",2],{"/fr-fr/blog/customizing-gitlab-duo-chat-rules-prompts-workflows":3,"navigation-fr-fr":1525,"banner-fr-fr":1958,"footer-fr-fr":1966,"blog-post-authors-fr-fr-Itzik Gan Baruch":2204,"blog-related-posts-fr-fr-customizing-gitlab-duo-chat-rules-prompts-workflows":2219,"blog-promotions-fr-fr":2244,"next-steps-fr-fr":2296},{"id":4,"title":5,"authors":6,"body":8,"category":1503,"date":1504,"description":1505,"extension":1506,"externalUrl":1507,"faq":1507,"featured":1508,"heroImage":1509,"meta":1510,"navigation":809,"path":1511,"seo":1512,"slug":1516,"stem":1517,"tags":1518,"template":1523,"updatedDate":1507,"__hash__":1524},"blogPosts/fr-fr/blog/customizing-gitlab-duo-chat-rules-prompts-workflows.md","Personnaliser GitLab Duo Agent Platform : règles, prompts et workflows",[7],"Itzik Gan Baruch",{"type":9,"value":10,"toc":1477},"minimark",[11,24,39,44,51,73,77,82,91,105,109,112,120,131,136,198,202,205,213,218,277,281,319,327,335,339,347,359,365,379,385,392,398,405,410,427,431,451,455,604,608,651,655,672,679,683,697,704,709,870,875,910,917,924,928,931,944,948,951,957,962,990,995,1005,1010,1045,1051,1055,1062,1091,1095,1098,1104,1109,1141,1145,1175,1180,1184,1187,1192,1204,1209,1220,1225,1235,1239,1370,1374,1377,1401,1409,1413,1454,1457,1465,1473],[12,13,14],"p",{},[15,16,17,18,23],"em",{},"Bienvenue dans la partie 8 de notre guide en huit parties, ",[19,20,22],"a",{"href":21},"/fr-fr/blog/gitlab-duo-agent-platform-complete-getting-started-guide/","Démarrer avec GitLab Duo Agent Platform",", dans laquelle vous apprendrez à maîtriser la construction et le déploiement d'agents d'IA et de workflows au sein de votre cycle de développement. Suivez des tutoriels qui vous mèneront de votre première interaction à des workflows d'automatisation entièrement personnalisés et prêts pour la mise en production.",[25,26,27],"blockquote",{},[12,28,29,30,38],{},"🎯 Essayez ",[31,32,33],"strong",{},[19,34,37],{"href":35,"rel":36},"https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/?utm_medium=blog&utm_source=blog&utm_campaign=eg_emea_x_trial_x_fr_blog_fr",[],"GitLab Duo Agent Platform"," dès aujourd'hui !",[40,41,43],"h2",{"id":42},"introduction-à-la-personnalisation","Introduction à la personnalisation",[12,45,46,50],{},[19,47,37],{"href":48,"rel":49},"https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/",[]," offre des fonctionnalités puissantes, et vous pouvez l'exploiter encore davantage en l'adaptant aux besoins spécifiques de votre équipe. GitLab propose des options de personnalisation flexibles à plusieurs niveaux :",[52,53,54,61,67],"ul",{},[55,56,57,60],"li",{},[31,58,59],{},"Au niveau de l'utilisateur"," : préférences personnelles qui s'appliquent à tous les projets (règles personnalisées, AGENTS.md, configuration MCP)",[55,62,63,66],{},[31,64,65],{},"Au niveau du workspace"," : configurations spécifiques au projet (règles personnalisées, AGENTS.md, configuration MCP)",[55,68,69,72],{},[31,70,71],{},"Au niveau du projet"," : agents et flows personnalisés que vous créez et gérez au sein d'un projet spécifique",[40,74,76],{"id":75},"partie-1-personnaliser-le-comportement-des-agents","Partie 1 : personnaliser le comportement des agents",[78,79,81],"h3",{"id":80},"règles-personnalisées","Règles personnalisées",[12,83,84,85,90],{},"Les ",[19,86,89],{"href":87,"rel":88},"https://docs.gitlab.com/user/duo_agent_platform/customize/custom_rules/",[],"règles personnalisées"," fournissent des instructions aux agents et flows afin de garantir un comportement cohérent au sein de votre équipe sans nécessiter de répétitions (exemples : guides de style relatifs au développement ou manière d'exécuter les tests).",[12,92,93,94,104],{},"Accédez au ",[31,95,96,97,103],{},"répertoire de configuration de votre workspace ",[19,98,102],{"href":99,"rel":100,"title":101},"https://about.gitlab.com/fr-fr/blog/what-is-an-ide/",[],"Qu'est-ce qu'un IDE ?","IDE"," ou utilisateur",".",[78,106,108],{"id":107},"règles-personnalisées-au-niveau-de-lutilisateur","Règles personnalisées au niveau de l'utilisateur",[12,110,111],{},"Les règles au niveau de l'utilisateur s'appliquent à tous vos projets et workspaces.",[12,113,114,115,104],{},"Pour des instructions détaillées sur la création de règles personnalisées au niveau de l'utilisateur, consultez la ",[19,116,119],{"href":117,"rel":118},"https://docs.gitlab.com/user/duo_agent_platform/customize/custom_rules/#create-user-level-custom-rules",[],"documentation de GitLab",[12,121,122,125,126,130],{},[31,123,124],{},"Créez le fichier"," ",[127,128,129],"code",{},"~/.gitlab/duo/chat-rules.md"," dans votre répertoire personnel.",[12,132,133],{},[31,134,135],{},"Exemples de règles :",[137,138,143],"pre",{"className":139,"code":140,"language":141,"meta":142,"style":142},"language-markdown shiki shiki-themes github-light","- Include JSDoc comments for all functions\n- Use single quotes for strings\n- Follow the existing code style in the repository\n- Write concise explanations, avoid lengthy descriptions\n- Suggest tests for any code changes\n- Use async/await instead of promises\n","markdown","",[127,144,145,158,166,174,182,190],{"__ignoreMap":142},[146,147,150,154],"span",{"class":148,"line":149},"line",1,[146,151,153],{"class":152},"sqxcx","-",[146,155,157],{"class":156},"sgsFI"," Include JSDoc comments for all functions\n",[146,159,161,163],{"class":148,"line":160},2,[146,162,153],{"class":152},[146,164,165],{"class":156}," Use single quotes for strings\n",[146,167,169,171],{"class":148,"line":168},3,[146,170,153],{"class":152},[146,172,173],{"class":156}," Follow the existing code style in the repository\n",[146,175,177,179],{"class":148,"line":176},4,[146,178,153],{"class":152},[146,180,181],{"class":156}," Write concise explanations, avoid lengthy descriptions\n",[146,183,185,187],{"class":148,"line":184},5,[146,186,153],{"class":152},[146,188,189],{"class":156}," Suggest tests for any code changes\n",[146,191,193,195],{"class":148,"line":192},6,[146,194,153],{"class":152},[146,196,197],{"class":156}," Use async/await instead of promises\n",[78,199,201],{"id":200},"règles-personnalisées-au-niveau-du-workspace","Règles personnalisées au niveau du workspace",[12,203,204],{},"Les règles du workspace s'appliquent uniquement à un projet spécifique. Elles remplacent les règles au niveau de l'utilisateur pour ce projet.",[12,206,207,125,209,212],{},[31,208,124],{},[127,210,211],{},".gitlab/duo/chat-rules.md"," à la racine de votre projet.",[12,214,215],{},[31,216,217],{},"Exemples de règles pour un projet Vue.js :",[137,219,221],{"className":139,"code":220,"language":141,"meta":142,"style":142},"- Use Vue 3 Composition API with `\u003Cscript setup>`\n- Always include TypeScript types for props\n- Use scoped styles with SCSS\n- Follow the Slippers UI design system\n- Keep components under 300 lines\n- Use kebab-case for component names\n- Include accessibility attributes (aria-*, role)\n",[127,222,223,234,241,248,255,262,269],{"__ignoreMap":142},[146,224,225,227,230],{"class":148,"line":149},[146,226,153],{"class":152},[146,228,229],{"class":156}," Use Vue 3 Composition API with ",[146,231,233],{"class":232},"sYu0t","`\u003Cscript setup>`\n",[146,235,236,238],{"class":148,"line":160},[146,237,153],{"class":152},[146,239,240],{"class":156}," Always include TypeScript types for props\n",[146,242,243,245],{"class":148,"line":168},[146,244,153],{"class":152},[146,246,247],{"class":156}," Use scoped styles with SCSS\n",[146,249,250,252],{"class":148,"line":176},[146,251,153],{"class":152},[146,253,254],{"class":156}," Follow the Slippers UI design system\n",[146,256,257,259],{"class":148,"line":184},[146,258,153],{"class":152},[146,260,261],{"class":156}," Keep components under 300 lines\n",[146,263,264,266],{"class":148,"line":192},[146,265,153],{"class":152},[146,267,268],{"class":156}," Use kebab-case for component names\n",[146,270,272,274],{"class":148,"line":271},7,[146,273,153],{"class":152},[146,275,276],{"class":156}," Include accessibility attributes (aria-*, role)\n",[78,278,280],{"id":279},"bonnes-pratiques-pour-les-règles-personnalisées","Bonnes pratiques pour les règles personnalisées",[52,282,283,289,295,301,307,313],{},[55,284,285,288],{},[31,286,287],{},"Soyez précis"," : « utilise des guillemets simples » est mieux que « suis le guide de style ».",[55,290,291,294],{},[31,292,293],{},"Priorisez"," : indiquez les règles les plus importantes en premier.",[55,296,297,300],{},[31,298,299],{},"Concentrez-vous sur votre équipe"," : les règles doivent refléter les standards de votre équipe, pas vos préférences personnelles.",[55,302,303,306],{},[31,304,305],{},"Misez sur des règles exploitables"," : les règles doivent être suffisamment claires pour qu'un agent d’IA puisse les suivre.",[55,308,309,312],{},[31,310,311],{},"Maintenez vos règles"," : mettez à jour les règles lorsque vos standards évoluent.",[55,314,315,318],{},[31,316,317],{},"Évitez les conflits"," : ne contredisez pas le style de votre code source.",[12,320,321,324,325,104],{},[31,322,323],{},"Astuce :"," utilisez la fonctionnalité Code Owners pour gérer qui approuve les modifications de ",[127,326,211],{},[12,328,329,330,104],{},"Pour un tutoriel détaillé d'un cas d'utilisation des règles personnalisées, consultez l'",[19,331,334],{"href":332,"rel":333},"https://about.gitlab.com/blog/custom-rules-duo-agentic-chat-deep-dive/",[],"article sur les règles personnalisées dans GitLab Duo Agentic Chat pour renforcer l'efficacité des équipes de développement",[40,336,338],{"id":337},"agentsmd-personnaliser-le-comportement-des-agents","AGENTS.md : personnaliser le comportement des agents",[12,340,341,346],{},[19,342,345],{"href":343,"rel":344},"https://agents.md/",[],"AGENTS.md"," est un fichier standard qui permet de personnaliser le comportement des agents. Il vous aide à définir comment les agents doivent se comporter dans vos conversations de chat, vos flows de base et vos flows personnalisés sans modifier les agents eux-mêmes.",[12,348,349,352,353,358],{},[31,350,351],{},"Différence avec les règles personnalisées :"," le fichier AGENTS.md est utilisé par tous les agents et flows (de base et personnalisables). Il suit également une norme que d'autres outils d'IA peuvent utiliser, par exemple Claude Code en tant qu'",[19,354,357],{"href":355,"rel":356},"https://docs.gitlab.com/user/duo_agent_platform/agents/external/",[],"agent externe",". Utilisez AGENTS.md lorsque vous souhaitez que vos instructions s'appliquent à plusieurs contextes.",[12,360,361,364],{},[31,362,363],{},"Niveau de l'utilisateur"," (s'applique à tous vos projets et workspaces) :",[52,366,367,373],{},[55,368,369,370],{},"macOS/Linux : ",[127,371,372],{},"~/.gitlab/duo/AGENTS.md",[55,374,375,376],{},"Windows : ",[127,377,378],{},"%APPDATA%\\GitLab\\duo\\AGENTS.md",[12,380,381,384],{},[31,382,383],{},"Niveau du workspace"," (s'applique à un projet spécifique) :",[52,386,387],{},[55,388,389,390,212],{},"Créez le fichier ",[127,391,345],{},[12,393,394,397],{},[31,395,396],{},"Niveau du sous-répertoire"," (s'applique à des répertoires spécifiques dans les monorepos) :",[52,399,400],{},[55,401,389,402,404],{},[127,403,345],{}," dans les sous-répertoires pour des instructions contextuelles spécifiques.",[12,406,407],{},[31,408,409],{},"Fonctionnement :",[52,411,412,415,418,421,424],{},[55,413,414],{},"Le fichier AGENTS.md au niveau de l'utilisateur s'applique à tous les projets.",[55,416,417],{},"Le fichier AGENTS.md au niveau du workspace s'applique à un projet spécifique.",[55,419,420],{},"Les fichiers AGENTS.md au niveau du sous-répertoire fournissent un contexte pour des parties spécifiques de votre code source.",[55,422,423],{},"Les agents et flows combinent les instructions de tous les niveaux applicables.",[55,425,426],{},"Les instructions AGENTS.md (nouvelles ou mises à jour) nécessitent de déclencher de nouveaux flows ou de démarrer un nouveau chat avec un agent (personnalisé).",[78,428,430],{"id":429},"contrôles-du-fichier-agentsmd","Contrôles du fichier AGENTS.md",[52,432,433,436,439,442,445,448],{},[55,434,435],{},"La personnalité et le ton de l'agent",[55,437,438],{},"Les instructions spécifiques au projet",[55,440,441],{},"Les normes et conventions de codage",[55,443,444],{},"Les préférences d'utilisation des outils",[55,446,447],{},"Les exigences de formatage des données de sortie",[55,449,450],{},"La structure et l'organisation du dépôt",[78,452,454],{"id":453},"exemple-dun-fichier-agentsmd","Exemple d'un fichier AGENTS.md",[137,456,458],{"className":139,"code":457,"language":141,"meta":142,"style":142},"# Agent Customization for Our Project\n## General Guidelines\n- Always prioritize code quality over speed\n- Follow our project's architecture patterns\n- Reference existing code examples when suggesting changes\n- Ask for clarification if requirements are ambiguous\n## Code Style\n- Use TypeScript for all new code\n- Follow ESLint configuration in the project\n- Include unit tests for all new functions\n- Use descriptive variable names (no single letters except loops)\n## Documentation\n- Add JSDoc comments to all public functions\n- Update README.md if adding new features\n- Include examples in code comments\n## Security\n- Never suggest hardcoding secrets or API keys\n- Always validate user input\n- Use parameterized queries for database operations\n- Flag potential security issues immediately\n",[127,459,460,466,471,478,485,492,499,504,512,520,528,536,542,550,558,566,572,580,588,596],{"__ignoreMap":142},[146,461,462],{"class":148,"line":149},[146,463,465],{"class":464},"surfw","# Agent Customization for Our Project\n",[146,467,468],{"class":148,"line":160},[146,469,470],{"class":464},"## General Guidelines\n",[146,472,473,475],{"class":148,"line":168},[146,474,153],{"class":152},[146,476,477],{"class":156}," Always prioritize code quality over speed\n",[146,479,480,482],{"class":148,"line":176},[146,481,153],{"class":152},[146,483,484],{"class":156}," Follow our project's architecture patterns\n",[146,486,487,489],{"class":148,"line":184},[146,488,153],{"class":152},[146,490,491],{"class":156}," Reference existing code examples when suggesting changes\n",[146,493,494,496],{"class":148,"line":192},[146,495,153],{"class":152},[146,497,498],{"class":156}," Ask for clarification if requirements are ambiguous\n",[146,500,501],{"class":148,"line":271},[146,502,503],{"class":464},"## Code Style\n",[146,505,507,509],{"class":148,"line":506},8,[146,508,153],{"class":152},[146,510,511],{"class":156}," Use TypeScript for all new code\n",[146,513,515,517],{"class":148,"line":514},9,[146,516,153],{"class":152},[146,518,519],{"class":156}," Follow ESLint configuration in the project\n",[146,521,523,525],{"class":148,"line":522},10,[146,524,153],{"class":152},[146,526,527],{"class":156}," Include unit tests for all new functions\n",[146,529,531,533],{"class":148,"line":530},11,[146,532,153],{"class":152},[146,534,535],{"class":156}," Use descriptive variable names (no single letters except loops)\n",[146,537,539],{"class":148,"line":538},12,[146,540,541],{"class":464},"## Documentation\n",[146,543,545,547],{"class":148,"line":544},13,[146,546,153],{"class":152},[146,548,549],{"class":156}," Add JSDoc comments to all public functions\n",[146,551,553,555],{"class":148,"line":552},14,[146,554,153],{"class":152},[146,556,557],{"class":156}," Update README.md if adding new features\n",[146,559,561,563],{"class":148,"line":560},15,[146,562,153],{"class":152},[146,564,565],{"class":156}," Include examples in code comments\n",[146,567,569],{"class":148,"line":568},16,[146,570,571],{"class":464},"## Security\n",[146,573,575,577],{"class":148,"line":574},17,[146,576,153],{"class":152},[146,578,579],{"class":156}," Never suggest hardcoding secrets or API keys\n",[146,581,583,585],{"class":148,"line":582},18,[146,584,153],{"class":152},[146,586,587],{"class":156}," Always validate user input\n",[146,589,591,593],{"class":148,"line":590},19,[146,592,153],{"class":152},[146,594,595],{"class":156}," Use parameterized queries for database operations\n",[146,597,599,601],{"class":148,"line":598},20,[146,600,153],{"class":152},[146,602,603],{"class":156}," Flag potential security issues immediately\n",[78,605,607],{"id":606},"bonnes-pratiques-pour-le-fichier-agentsmd","Bonnes pratiques pour le fichier AGENTS.md",[52,609,610,615,621,633,639,645],{},[55,611,612,614],{},[31,613,287],{}," : incluez des exemples concrets de votre projet.",[55,616,617,620],{},[31,618,619],{},"Restez concis"," : concentrez-vous sur ce qui est unique à votre projet.",[55,622,623,632],{},[31,624,625,626],{},"Utilisez le ",[19,627,631],{"href":628,"rel":629,"title":630},"https://about.gitlab.com/fr-fr/topics/version-control/",[],"Qu'est-ce que le contrôle de version ?","contrôle de version"," : effectuez un commit dans votre dépôt et utilisez le suivi des modifications.",[55,634,635,638],{},[31,636,637],{},"Soyez aligné avec votre équipe"," : discutez avec votre équipe avant de finaliser votre fichier.",[55,640,641,644],{},[31,642,643],{},"Mettez à jour votre fichier régulièrement"," : affinez à mesure que votre projet évolue.",[55,646,647,650],{},[31,648,649],{},"Documentez la structure du dépôt"," : aidez les agents à comprendre l'organisation de votre code source.",[78,652,654],{"id":653},"prérequis","Prérequis",[52,656,657,660,663,666],{},[55,658,659],{},"GitLab 18.8 ou version ultérieure",[55,661,662],{},"Pour VS Code : extension GitLab Workflow 6.60 ou version ultérieure",[55,664,665],{},"Pour JetBrains : plugin GitLab 3.26.0 ou version ultérieur",[55,667,668,669],{},"Pour les flows : mettez à jour la configuration du flow pour accéder au contexte ",[127,670,671],{},"user_rule",[12,673,674,104],{},[19,675,678],{"href":676,"rel":677},"https://docs.gitlab.com/user/duo_agent_platform/customize/agents_md/",[],"En savoir plus sur AGENTS.md",[78,680,682],{"id":681},"instructions-de-revue-personnalisées","Instructions de revue personnalisées",[12,684,84,685,690,691,696],{},[19,686,689],{"href":687,"rel":688},"https://docs.gitlab.com/user/gitlab_duo/customize_duo/review_instructions/",[],"instructions de revue personnalisées"," fournissent des directives spécifiques pour le ",[19,692,695],{"href":693,"rel":694},"https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/code_review/",[],"flow de base Code Review",". Ces instructions garantissent des standards de revue de code cohérents et peuvent être adaptées à des types de fichiers spécifiques dans votre projet.",[12,698,699,125,701,212],{},[31,700,124],{},[127,702,703],{},".gitlab/duo/mr-review-instructions.yaml",[12,705,706],{},[31,707,708],{},"Exemples d'instructions de revue :",[137,710,714],{"className":711,"code":712,"language":713,"meta":142,"style":142},"language-yaml shiki shiki-themes github-light","instructions:\n  - name: Ruby Style Guide\n    fileFilters:\n      - \"*.rb\"           # Ruby files in the root directory\n      - \"lib/**/*.rb\"    # Ruby files in lib and its subdirectories\n      - \"!spec/**/*.rb\"  # Exclude test files\n    instructions: |\n      1. Ensure all methods have proper documentation\n      2. Follow Ruby style guide conventions\n      3. Prefer symbols over strings for hash keys\n\n  - name: TypeScript Source Files\n    fileFilters:\n      - \"**/*.ts\"        # TypeScript files in any directory\n      - \"!**/*.test.ts\"  # Exclude test files\n    instructions: |\n      1. Ensure proper TypeScript types (avoid 'any')\n      2. Follow naming conventions\n      3. Document complex functions\n","yaml",[127,715,716,725,740,747,759,769,779,790,795,800,805,811,822,828,838,847,855,860,865],{"__ignoreMap":142},[146,717,718,722],{"class":148,"line":149},[146,719,721],{"class":720},"shJU0","instructions",[146,723,724],{"class":156},":\n",[146,726,727,730,733,736],{"class":148,"line":160},[146,728,729],{"class":156},"  - ",[146,731,732],{"class":720},"name",[146,734,735],{"class":156},": ",[146,737,739],{"class":738},"sYBdl","Ruby Style Guide\n",[146,741,742,745],{"class":148,"line":168},[146,743,744],{"class":720},"    fileFilters",[146,746,724],{"class":156},[146,748,749,752,755],{"class":148,"line":176},[146,750,751],{"class":156},"      - ",[146,753,754],{"class":738},"\"*.rb\"",[146,756,758],{"class":757},"sAwPA","           # Ruby files in the root directory\n",[146,760,761,763,766],{"class":148,"line":184},[146,762,751],{"class":156},[146,764,765],{"class":738},"\"lib/**/*.rb\"",[146,767,768],{"class":757},"    # Ruby files in lib and its subdirectories\n",[146,770,771,773,776],{"class":148,"line":192},[146,772,751],{"class":156},[146,774,775],{"class":738},"\"!spec/**/*.rb\"",[146,777,778],{"class":757},"  # Exclude test files\n",[146,780,781,784,786],{"class":148,"line":271},[146,782,783],{"class":720},"    instructions",[146,785,735],{"class":156},[146,787,789],{"class":788},"sD7c4","|\n",[146,791,792],{"class":148,"line":506},[146,793,794],{"class":738},"      1. Ensure all methods have proper documentation\n",[146,796,797],{"class":148,"line":514},[146,798,799],{"class":738},"      2. Follow Ruby style guide conventions\n",[146,801,802],{"class":148,"line":522},[146,803,804],{"class":738},"      3. Prefer symbols over strings for hash keys\n",[146,806,807],{"class":148,"line":530},[146,808,810],{"emptyLinePlaceholder":809},true,"\n",[146,812,813,815,817,819],{"class":148,"line":538},[146,814,729],{"class":156},[146,816,732],{"class":720},[146,818,735],{"class":156},[146,820,821],{"class":738},"TypeScript Source Files\n",[146,823,824,826],{"class":148,"line":544},[146,825,744],{"class":720},[146,827,724],{"class":156},[146,829,830,832,835],{"class":148,"line":552},[146,831,751],{"class":156},[146,833,834],{"class":738},"\"**/*.ts\"",[146,836,837],{"class":757},"        # TypeScript files in any directory\n",[146,839,840,842,845],{"class":148,"line":560},[146,841,751],{"class":156},[146,843,844],{"class":738},"\"!**/*.test.ts\"",[146,846,778],{"class":757},[146,848,849,851,853],{"class":148,"line":568},[146,850,783],{"class":720},[146,852,735],{"class":156},[146,854,789],{"class":788},[146,856,857],{"class":148,"line":574},[146,858,859],{"class":738},"      1. Ensure proper TypeScript types (avoid 'any')\n",[146,861,862],{"class":148,"line":582},[146,863,864],{"class":738},"      2. Follow naming conventions\n",[146,866,867],{"class":148,"line":590},[146,868,869],{"class":738},"      3. Document complex functions\n",[12,871,872],{},[31,873,874],{},"Bonnes pratiques pour les instructions de revue personnalisées :",[52,876,877,883,892,898,904],{},[55,878,879,882],{},[31,880,881],{},"Soyez précis et concret","  : des instructions claires et numérotées fonctionnent mieux.",[55,884,885,888,889,104],{},[31,886,887],{},"Utilisez des modèles glob"," : ciblez des types de fichiers spécifiques avec ",[127,890,891],{},"fileFilters",[55,893,894,897],{},[31,895,896],{},"Concentrez-vous sur les normes importantes"," : priorisez les points de revue les plus critiques.",[55,899,900,903],{},[31,901,902],{},"Expliquez le « pourquoi »"," : aidez les relecteurs à comprendre le raisonnement.",[55,905,906,909],{},[31,907,908],{},"Testez les modèles"," : assurez-vous que les modèles glob correspondent aux fichiers visés.",[12,911,912,914,915,104],{},[31,913,323],{}," utilisez la fonctionnalité Code Owners pour protéger les modifications apportées à ",[127,916,703],{},[12,918,919,920,104],{},"Pour obtenir des instructions de configuration détaillées et des exemples, consultez la ",[19,921,923],{"href":687,"rel":922},[],"documentation relative aux instructions de revue personnalisées",[40,925,927],{"id":926},"partie-2-étendre-les-fonctionnalités-avec-le-mcp","Partie 2 : étendre les fonctionnalités avec le MCP",[12,929,930],{},"Le Model Context Protocol (MCP) permet aux agents d'accéder à des systèmes externes comme Jira, Slack, AWS et plus encore. Cette section couvre la configuration du MCP pour étendre les capacités des agents.",[25,932,933],{},[12,934,935,125,938,943],{},[31,936,937],{},"🎯 Découvrez maintenant",[19,939,942],{"href":940,"rel":941},"https://gitlab.navattic.com/mcp",[],"une démo interactive du MCP"," pour apprendre à l'utiliser.",[78,945,947],{"id":946},"configuration-du-mcp-pour-les-intégrations-externes","Configuration du MCP pour les intégrations externes",[12,949,950],{},"Le Model Context Protocol (MCP) permet aux agents d'accéder à des systèmes externes comme Jira, Slack, AWS et plus encore.",[12,952,953,956],{},[31,954,955],{},"Portée :"," niveau de l'utilisateur (s'applique à tous les workspaces) ou niveau du workspace (spécifique au projet, remplace la configuration utilisateur)",[12,958,959],{},[31,960,961],{},"Créer une configuration utilisateur :",[52,963,964,973,981],{},[55,965,966,969,970],{},[31,967,968],{},"macOS/Linux"," : ",[127,971,972],{},"~/.gitlab/duo/mcp.json",[55,974,975,969,978],{},[31,976,977],{},"Windows",[127,979,980],{},"C:\\Users\\\u003Cusername>\\AppData\\Roaming\\GitLab\\duo\\mcp.json",[55,982,983,986,987],{},[31,984,985],{},"VS Code"," : exécutez la commande ",[127,988,989],{},"GitLab MCP: Open User Settings (JSON)",[12,991,992],{},[31,993,994],{},"Créer une configuration workspace :",[52,996,997],{},[55,998,999,969,1001,1004],{},[31,1000,124],{},[127,1002,1003],{},".gitlab/duo/mcp.json"," à la racine de votre projet",[12,1006,1007],{},[31,1008,1009],{},"Bonnes pratiques :",[52,1011,1012,1018,1024,1030,1036],{},[55,1013,1014,1017],{},[31,1015,1016],{},"Sécurité avant tout"," : utilisez des serveurs MCP qui nécessitent OAuth et non des tokens en texte brut.",[55,1019,1020,1023],{},[31,1021,1022],{},"Portée minimale"," : activez uniquement les serveurs MCP que vous utilisez réellement et en qui vous avez confiance.",[55,1025,1026,1029],{},[31,1027,1028],{},"Tests locaux"," : vérifiez que les connexions et l'autorisation au MCP fonctionnent avant de les partager avec les équipes.",[55,1031,1032,1035],{},[31,1033,1034],{},"Documentation des intégrations"," : expliquez ce que fournit chaque serveur MCP.",[55,1037,1038,1041,1042,1044],{},[31,1039,1040],{},"Contrôle de version"," : stockez la configuration dans ",[127,1043,1003],{}," avec l'approbation de la fonctionnalité Code Owners.",[12,1046,919,1047,104],{},[19,1048,1050],{"href":1049},"/fr-fr/blog/duo-agent-platform-with-mcp/","partie 7 : intégrer le Model Context Protocol (MCP)",[40,1052,1054],{"id":1053},"partie-3-créer-des-agents-et-flows-personnalisés","Partie 3 : créer des agents et flows personnalisés",[12,1056,1057,1058,1061],{},"Les agents et flows personnalisés vous permettent d'automatiser les workflows spécifiques de votre équipe. Avant de vous lancer dans la personnalisation, il est utile de comprendre leurs caractéristiques et leur fonctionnement : consultez le ",[19,1059,1060],{"href":21},"guide Démarrer avec GitLab Duo Agent Platform"," pour en savoir plus.",[52,1063,1064,1073,1082],{},[55,1065,1066,1072],{},[31,1067,1068],{},[19,1069,1071],{"href":1070},"/fr-fr/blog/understanding-agents-foundational-custom-external/","Partie 3 : comprendre les agents",". Découvrez les agents de base, personnalisés et externes, et quand les utiliser.",[55,1074,1075,1081],{},[31,1076,1077],{},[19,1078,1080],{"href":1079},"/fr-fr/blog/understanding-flows-multi-agent-workflows/","Partie 4 : comprendre les flows",". Découvrez comment les flows orchestrent plusieurs agents pour résoudre des problèmes complexes.",[55,1083,1084,1090],{},[31,1085,1086],{},[19,1087,1089],{"href":1088},"/fr-fr/blog/ai-catalog-discover-and-share-agents/","Partie 5 : découvrir le catalogue d'IA",". Apprenez à créer et partager des agents et flows au sein de votre organisation. Une fois que vous comprenez les bases, cette section fournit un aperçu des options de personnalisation avec des liens vers des guides détaillés.",[78,1092,1094],{"id":1093},"prompts-système-pour-les-agents-personnalisés","Prompts système pour les agents personnalisés",[12,1096,1097],{},"Les prompts système définissent la personnalité, les compétences et le comportement d'un agent. Un prompt bien conçu renforce l'efficacité des agents et les aligne avec les besoins de votre équipe.",[12,1099,1100,1103],{},[31,1101,1102],{},"Qu'est-ce qu'un prompt système ?"," Les prompts système sont des instructions qui indiquent à un agent comment se comporter, quelles compétences il possède et comment répondre aux demandes. Ils constituent la base du comportement des agents personnalisés.",[12,1105,1106],{},[31,1107,1108],{},"Éléments clés d'un prompt système efficace :",[52,1110,1111,1117,1123,1129,1135],{},[55,1112,1113,1116],{},[31,1114,1115],{},"Définition du rôle"," : rôle et fonction de l'agent",[55,1118,1119,1122],{},[31,1120,1121],{},"Domaines d'expertise"," : domaines ou technologies spécifiques",[55,1124,1125,1128],{},[31,1126,1127],{},"Directives de comportement"," : comment il doit interagir et répondre",[55,1130,1131,1134],{},[31,1132,1133],{},"Format des données de sortie"," : structure des réponses",[55,1136,1137,1140],{},[31,1138,1139],{},"Contraintes"," : ce qu'il doit éviter",[12,1142,1143],{},[31,1144,1009],{},[52,1146,1147,1152,1158,1164,1170],{},[55,1148,1149,1151],{},[31,1150,287],{}," : des prompts plus spécifiques produisent de meilleurs résultats.",[55,1153,1154,1157],{},[31,1155,1156],{},"Utilisez des exemples"," : montrez à l'agent à quoi ressemble un bon résultat.",[55,1159,1160,1163],{},[31,1161,1162],{},"Définissez la portée"," : indiquez clairement ce que l'agent doit et ne doit pas faire.",[55,1165,1166,1169],{},[31,1167,1168],{},"Testez de manière itérative"," : affinez les prompts en fonction du comportement de l'agent.",[55,1171,1172,1174],{},[31,1173,1040],{}," : suivez les modifications des prompts dans votre dépôt.",[12,1176,1177,1178,104],{},"Pour des conseils détaillés sur la création de prompts système et d'agents personnalisés, consultez la ",[19,1179,1071],{"href":1070},[78,1181,1183],{"id":1182},"agents-et-flows-personnalisables","Agents et flows personnalisables",[12,1185,1186],{},"Étant donné que les informations sont nombreuses, nous avons divisé les tutoriels pour faciliter la lecture :",[12,1188,1189],{},[31,1190,1191],{},"Agents personnalisables :",[52,1193,1194,1197],{},[55,1195,1196],{},"Apprenez à créer des agents avec des prompts système personnalisés, à configurer les outils et à gérer les autorisations.",[55,1198,1199,1200,104],{},"Consultez la ",[19,1201,1203],{"href":1202},"/fr-fr/blog/understanding-agents-foundational-custom-external/#custom-agents","Partie 3 : comprendre les agents – section Agents personnalisables",[12,1205,1206],{},[31,1207,1208],{},"Flows personnalisables :",[52,1210,1211,1214],{},[55,1212,1213],{},"Apprenez à créer des workflows en plusieurs étapes, à configurer des composants et à mettre en place une automatisation basée sur des événements.",[55,1215,1199,1216,104],{},[19,1217,1219],{"href":1218},"/fr-fr/blog/understanding-flows-multi-agent-workflows/#custom-flows","Partie 4 : comprendre les flows – section Flows personnalisables",[12,1221,1222],{},[31,1223,1224],{},"Outils d'agent :",[52,1226,1227,1230],{},[55,1228,1229],{},"Les outils déterminent les actions que les agents peuvent effectuer. Configurez les outils en fonction de l'objectif de votre agent et des exigences de sécurité.",[55,1231,1199,1232,1234],{},[19,1233,1071],{"href":1070}," pour les détails de configuration des outils.",[40,1236,1238],{"id":1237},"résumé-quand-utiliser-les-personnalisations","Résumé : quand utiliser les personnalisations",[1240,1241,1242,1258],"table",{},[1243,1244,1245],"thead",{},[1246,1247,1248,1252,1255],"tr",{},[1249,1250,1251],"th",{},"Outil",[1249,1253,1254],{},"Utilisation idéale",[1249,1256,1257],{},"Emplacement",[1259,1260,1261,1285,1301,1315,1328,1344,1357],"tbody",{},[1246,1262,1263,1268,1277],{},[1264,1265,1266],"td",{},[31,1267,81],{},[1264,1269,1270,1271,1276],{},"Guider les réponses de ",[19,1272,1275],{"href":1273,"rel":1274},"https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-duo-agentic-chat/",[],"GitLab Duo Agentic Chat"," dans l'IDE (ton, style, comportement)",[1264,1278,1279,1281,1282,1284],{},[127,1280,129],{}," (utilisateur) ou ",[127,1283,211],{}," (workspace)",[1246,1286,1287,1291,1294],{},[1264,1288,1289],{},[31,1290,345],{},[1264,1292,1293],{},"Imposer des normes dans l'Agentic Chat, les flows et autres outils d'IA",[1264,1295,1296,1281,1298,1300],{},[127,1297,372],{},[127,1299,345],{}," (racine du workspace)",[1246,1302,1303,1307,1310],{},[1264,1304,1305],{},[31,1306,682],{},[1264,1308,1309],{},"Guider les normes de revue de code pour des types de fichiers spécifiques",[1264,1311,1312,1314],{},[127,1313,703],{}," (workspace uniquement)",[1246,1316,1317,1322,1325],{},[1264,1318,1319],{},[31,1320,1321],{},"Prompts système",[1264,1323,1324],{},"Personnaliser le comportement d'agents individuels",[1264,1326,1327],{},"Catalogue d'IA lors de la création d'un agent",[1246,1329,1330,1335,1338],{},[1264,1331,1332],{},[31,1333,1334],{},"Configuration du MCP",[1264,1336,1337],{},"Connecter les agents à des outils externes",[1264,1339,1340,1281,1342,1284],{},[127,1341,972],{},[127,1343,1003],{},[1246,1345,1346,1351,1354],{},[1264,1347,1348],{},[31,1349,1350],{},"Agents personnalisables",[1264,1352,1353],{},"Créer des agents spécialisés pour des tâches spécifiques à l'équipe",[1264,1355,1356],{},"Automatisation → Agents ou Catalogue d'IA",[1246,1358,1359,1364,1367],{},[1264,1360,1361],{},[31,1362,1363],{},"Flows personnalisables",[1264,1365,1366],{},"Orchestrer plusieurs agents dans des workflows",[1264,1368,1369],{},"Automatisation → Flows ou Catalogue d'IA",[40,1371,1373],{"id":1372},"perspectives","Perspectives",[12,1375,1376],{},"Félicitations ! Vous avez terminé toute la série concernant GitLab Duo Agent Platform. Vous savez maintenant :",[52,1378,1379,1389,1392,1395,1398],{},[55,1380,1381,1382,1388],{},"Comment utiliser les agents et flows tout au long du ",[19,1383,1387],{"href":1384,"rel":1385,"title":1386},"https://about.gitlab.com/fr-fr/blog/what-is-sdlc/",[],"Qu'est-ce que le SDLC ?","SDLC"," en fonction de vos cas d'utilisation",[55,1390,1391],{},"Comment découvrir et partager des solutions dans le catalogue d'IA",[55,1393,1394],{},"Comment surveiller et gérer vos workflows d'IA",[55,1396,1397],{},"Comment étendre les capacités avec les intégrations MCP",[55,1399,1400],{},"Comment personnaliser chaque aspect de GitLab Duo Agent Platform pour votre équipe",[12,1402,1403,1408],{},[31,1404,1405],{},[19,1406,1407],{"href":21},"Consultez l'aperçu complet de la série"," pour revoir toutes les parties et explorer des sujets spécifiques en profondeur.",[40,1410,1412],{"id":1411},"ressources","Ressources",[52,1414,1415,1421,1427,1433,1440,1447],{},[55,1416,1417],{},[19,1418,1420],{"href":87,"rel":1419},[],"Documentation relative aux règles personnalisées",[55,1422,1423],{},[19,1424,1426],{"href":676,"rel":1425},[],"Documentation relative au fichier AGENTS.md",[55,1428,1429],{},[19,1430,1432],{"href":687,"rel":1431},[],"Documentation relative aux instructions de revue personnalisées",[55,1434,1435],{},[19,1436,1439],{"href":1437,"rel":1438},"https://docs.gitlab.com/user/duo_agent_platform/agents/custom/",[],"Documentation relative aux agents personnalisables",[55,1441,1442],{},[19,1443,1446],{"href":1444,"rel":1445},"https://docs.gitlab.com/user/duo_agent_platform/flows/custom/",[],"Documentation relative aux flows personnalisables",[55,1448,1449],{},[19,1450,1453],{"href":1451,"rel":1452},"https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_clients/",[],"Documentation relative au client MCP",[1455,1456],"hr",{},[12,1458,1459,125,1462],{},[31,1460,1461],{},"Article précédent :",[19,1463,1464],{"href":1049},"Partie 7 : intégrer le Model Context Protocol",[12,1466,1467,125,1470],{},[31,1468,1469],{},"Retour au début :",[19,1471,1472],{"href":21},"Aperçu complet de la série",[1474,1475,1476],"style",{},"html pre.shiki code .sqxcx, html code.shiki .sqxcx{--shiki-default:#E36209}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .surfw, html code.shiki .surfw{--shiki-default:#005CC5;--shiki-default-font-weight:bold}html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}",{"title":142,"searchDepth":160,"depth":160,"links":1478},[1479,1480,1486,1493,1496,1500,1501,1502],{"id":42,"depth":160,"text":43},{"id":75,"depth":160,"text":76,"children":1481},[1482,1483,1484,1485],{"id":80,"depth":168,"text":81},{"id":107,"depth":168,"text":108},{"id":200,"depth":168,"text":201},{"id":279,"depth":168,"text":280},{"id":337,"depth":160,"text":338,"children":1487},[1488,1489,1490,1491,1492],{"id":429,"depth":168,"text":430},{"id":453,"depth":168,"text":454},{"id":606,"depth":168,"text":607},{"id":653,"depth":168,"text":654},{"id":681,"depth":168,"text":682},{"id":926,"depth":160,"text":927,"children":1494},[1495],{"id":946,"depth":168,"text":947},{"id":1053,"depth":160,"text":1054,"children":1497},[1498,1499],{"id":1093,"depth":168,"text":1094},{"id":1182,"depth":168,"text":1183},{"id":1237,"depth":160,"text":1238},{"id":1372,"depth":160,"text":1373},{"id":1411,"depth":160,"text":1412},"ai","2026-01-28","Découvrez comment personnaliser GitLab Duo Agent Platform pour votre équipe. Configurez des règles de chat, créez des prompts système, paramétrez les outils d'agents et adaptez les workflows à vos besoins.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png",{},"/fr-fr/blog/customizing-gitlab-duo-chat-rules-prompts-workflows",{"config":1513,"title":1514,"description":1515},{"noIndex":1508},"Personnaliser GitLab Duo Agent Platform","Configurez GitLab Duo Agent Platform en fonction de votre équipe : règles de chat, prompts système, intégrations MCP et workflows personnalisés.","customizing-gitlab-duo-chat-rules-prompts-workflows","fr-fr/blog/customizing-gitlab-duo-chat-rules-prompts-workflows",[1519,1520,1521,1522],"AI","product","features","tutorial","BlogPost","yR9oUZRIyYvHGtz3gyvnlmeJi38DGyTzyZJuTGMJhVc",{"logo":1526,"freeTrial":1531,"sales":1536,"login":1541,"items":1546,"search":1874,"minimal":1909,"duo":1928,"switchNav":1937,"pricingDeployment":1948},{"config":1527},{"href":1528,"dataGaName":1529,"dataGaLocation":1530},"/fr-fr/","gitlab logo","header",{"text":1532,"config":1533},"Commencer un essai gratuit",{"href":1534,"dataGaName":1535,"dataGaLocation":1530},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":1537,"config":1538},"Demander une démo",{"href":1539,"dataGaName":1540,"dataGaLocation":1530},"/fr-fr/sales/?contact-topic=request-demo","sales",{"text":1542,"config":1543},"Connexion",{"href":1544,"dataGaName":1545,"dataGaLocation":1530},"https://gitlab.com/users/sign_in/","sign in",[1547,1576,1678,1683,1796,1852],{"text":1548,"config":1549,"menu":1551},"Plateforme",{"dataNavLevelOne":1550},"platform",{"type":1552,"columns":1553},"cards",[1554,1560,1568],{"title":1548,"description":1555,"link":1556},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":1557,"config":1558},"Explorer notre plateforme",{"href":1559,"dataGaName":1550,"dataGaLocation":1530},"/fr-fr/platform/",{"title":1561,"description":1562,"link":1563},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":1564,"config":1565},"Découvrir GitLab Duo",{"href":1566,"dataGaName":1567,"dataGaLocation":1530},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":1569,"description":1570,"link":1571},"Pourquoi GitLab ?","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":1572,"config":1573},"En savoir plus",{"href":1574,"dataGaName":1575,"dataGaLocation":1530},"/fr-fr/why-gitlab/","why gitlab",{"text":1577,"left":809,"config":1578,"menu":1580},"Produit",{"dataNavLevelOne":1579},"solutions",{"type":1581,"link":1582,"columns":1586,"feature":1657},"lists",{"text":1583,"config":1584},"Voir toutes les solutions",{"href":1585,"dataGaName":1579,"dataGaLocation":1530},"/fr-fr/solutions/",[1587,1612,1635],{"title":1588,"description":1589,"link":1590,"items":1595},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":1591},{"icon":1592,"href":1593,"dataGaName":1594,"dataGaLocation":1530},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[1596,1600,1603,1608],{"text":1597,"config":1598},"CI/CD",{"href":1599,"dataGaLocation":1530,"dataGaName":1597},"/fr-fr/solutions/continuous-integration/",{"text":1561,"config":1601},{"href":1566,"dataGaLocation":1530,"dataGaName":1602},"gitlab duo agent platform - product menu",{"text":1604,"config":1605},"Gestion du code source",{"href":1606,"dataGaLocation":1530,"dataGaName":1607},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":1609,"config":1610},"Livraison de logiciels automatisée",{"href":1593,"dataGaLocation":1530,"dataGaName":1611},"Automated software delivery",{"title":1613,"description":1614,"link":1615,"items":1620},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":1616},{"href":1617,"dataGaName":1618,"dataGaLocation":1530,"icon":1619},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[1621,1625,1630],{"text":1622,"config":1623},"Tests de sécurité des applications",{"href":1617,"dataGaName":1624,"dataGaLocation":1530},"Application security testing",{"text":1626,"config":1627},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":1628,"dataGaLocation":1530,"dataGaName":1629},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":1631,"config":1632},"Conformité logicielle",{"href":1633,"dataGaName":1634,"dataGaLocation":1530},"/fr-fr/solutions/software-compliance/","software compliance",{"title":1636,"link":1637,"items":1642},"Mesures",{"config":1638},{"icon":1639,"href":1640,"dataGaName":1641,"dataGaLocation":1530},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[1643,1647,1652],{"text":1644,"config":1645},"Visibilité et mesures",{"href":1640,"dataGaLocation":1530,"dataGaName":1646},"Visibility and Measurement",{"text":1648,"config":1649},"Gestion de la chaîne de valeur",{"href":1650,"dataGaLocation":1530,"dataGaName":1651},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":1653,"config":1654},"Analyses et informations",{"href":1655,"dataGaLocation":1530,"dataGaName":1656},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":1658,"type":1581,"items":1659},"GitLab",[1660,1666,1672],{"text":1661,"config":1662},"Entreprises",{"icon":1663,"href":1664,"dataGaLocation":1530,"dataGaName":1665},"Building","/fr-fr/enterprise/","enterprise",{"text":1667,"config":1668},"Pour les PME",{"icon":1669,"href":1670,"dataGaLocation":1530,"dataGaName":1671},"Work","/fr-fr/small-business/","small business",{"text":1673,"config":1674},"Pour le secteur public",{"icon":1675,"href":1676,"dataGaLocation":1530,"dataGaName":1677},"Organization","/fr-fr/solutions/public-sector/","public sector",{"text":1679,"config":1680},"Tarifs",{"href":1681,"dataGaName":1682,"dataGaLocation":1530,"dataNavLevelOne":1682},"/fr-fr/pricing/","pricing",{"text":1412,"config":1684,"menu":1686},{"dataNavLevelOne":1685},"resources",{"type":1581,"link":1687,"columns":1691,"feature":1785},{"text":1688,"config":1689},"Afficher toutes les ressources",{"href":1690,"dataGaName":1685,"dataGaLocation":1530},"/fr-fr/resources/",[1692,1725,1752],{"title":1693,"items":1694},"Premiers pas",[1695,1700,1705,1710,1715,1720],{"text":1696,"config":1697},"Installation",{"href":1698,"dataGaName":1699,"dataGaLocation":1530},"/fr-fr/install/","install",{"text":1701,"config":1702},"Guides de démarrage",{"href":1703,"dataGaName":1704,"dataGaLocation":1530},"/fr-fr/get-started/","quick setup checklists",{"text":1706,"config":1707},"Apprentissage",{"href":1708,"dataGaLocation":1530,"dataGaName":1709},"https://university.gitlab.com/","learn",{"text":1711,"config":1712},"Documentation",{"href":1713,"dataGaName":1714,"dataGaLocation":1530},"https://docs.gitlab.com/","product documentation",{"text":1716,"config":1717},"Vidéos sur les bonnes pratiques",{"href":1718,"dataGaName":1719,"dataGaLocation":1530},"/fr-fr/getting-started-videos/","best practice videos",{"text":1721,"config":1722},"Intégrations",{"href":1723,"dataGaName":1724,"dataGaLocation":1530},"/fr-fr/integrations/","integrations",{"title":1726,"items":1727},"Découvrir",[1728,1733,1738,1743,1747],{"text":1729,"config":1730},"Témoignages clients",{"href":1731,"dataGaName":1732,"dataGaLocation":1530},"/fr-fr/customers/","customer success stories",{"text":1734,"config":1735},"Blog",{"href":1736,"dataGaName":1737,"dataGaLocation":1530},"/fr-fr/blog/","blog",{"text":1739,"config":1740},"Demo Hub",{"href":1741,"dataGaName":1742,"dataGaLocation":1530},"/fr-fr/demo-hub/","demo hub",{"text":1744,"config":1745},"The Source",{"href":1746,"dataGaName":1737,"dataGaLocation":1530},"/fr-fr/the-source/",{"text":1748,"config":1749},"Travail à distance",{"href":1750,"dataGaName":1751,"dataGaLocation":1530},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1753,"items":1754},"Connecter",[1755,1760,1765,1770,1775,1780],{"text":1756,"config":1757},"Services GitLab",{"href":1758,"dataGaName":1759,"dataGaLocation":1530},"/fr-fr/services/","services",{"text":1761,"config":1762},"Contribuer",{"href":1763,"dataGaName":1764,"dataGaLocation":1530},"https://contributors.gitlab.com","contribute",{"text":1766,"config":1767},"Communauté",{"href":1768,"dataGaName":1769,"dataGaLocation":1530},"/community/","community",{"text":1771,"config":1772},"Forum",{"href":1773,"dataGaName":1774,"dataGaLocation":1530},"https://forum.gitlab.com/","forum",{"text":1776,"config":1777},"Événements",{"href":1778,"dataGaName":1779,"dataGaLocation":1530},"/events/","events",{"text":1781,"config":1782},"Partenaires",{"href":1783,"dataGaName":1784,"dataGaLocation":1530},"/fr-fr/partners/","partners",{"config":1786,"title":1789,"text":1790,"link":1791},{"background":1787,"textColor":1788},"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":1792,"config":1793},"Lire les articles les plus récents",{"href":1794,"dataGaName":1795,"dataGaLocation":1530},"/fr-fr/whats-new/","whats new",{"text":1797,"config":1798,"menu":1800},"Société",{"dataNavLevelOne":1799},"company",{"type":1581,"columns":1801},[1802],{"items":1803},[1804,1809,1815,1817,1822,1827,1832,1837,1842,1847],{"text":1805,"config":1806},"À propos",{"href":1807,"dataGaName":1808,"dataGaLocation":1530},"/fr-fr/company/","about",{"text":1810,"config":1811,"footerGa":1814},"Carrières",{"href":1812,"dataGaName":1813,"dataGaLocation":1530},"/jobs/","jobs",{"dataGaName":1813},{"text":1776,"config":1816},{"href":1778,"dataGaName":1779,"dataGaLocation":1530},{"text":1818,"config":1819},"Leadership",{"href":1820,"dataGaName":1821,"dataGaLocation":1530},"/company/team/e-group/","leadership",{"text":1823,"config":1824},"Manuel",{"href":1825,"dataGaName":1826,"dataGaLocation":1530},"https://handbook.gitlab.com/","handbook",{"text":1828,"config":1829},"Relations avec les investisseurs",{"href":1830,"dataGaName":1831,"dataGaLocation":1530},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1833,"config":1834},"Trust Center",{"href":1835,"dataGaName":1836,"dataGaLocation":1530},"/fr-fr/security/","trust center",{"text":1838,"config":1839},"Centre pour la transparence de l'IA",{"href":1840,"dataGaName":1841,"dataGaLocation":1530},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":1843,"config":1844},"Newsletter",{"href":1845,"dataGaName":1846,"dataGaLocation":1530},"/company/contact/#contact-forms","newsletter",{"text":1848,"config":1849},"Presse",{"href":1850,"dataGaName":1851,"dataGaLocation":1530},"/press/","press",{"text":1853,"config":1854,"menu":1855},"Nous contacter",{"dataNavLevelOne":1799},{"type":1581,"columns":1856},[1857],{"items":1858},[1859,1864,1869],{"text":1860,"config":1861},"Contacter l'équipe commerciale",{"href":1862,"dataGaName":1863,"dataGaLocation":1530},"/fr-fr/sales/","talk to sales",{"text":1865,"config":1866},"Assistance GitLab",{"href":1867,"dataGaName":1868,"dataGaLocation":1530},"https://support.gitlab.com/hc/en-us","support portal",{"text":1870,"config":1871},"Portail clients GitLab",{"href":1872,"dataGaName":1873,"dataGaLocation":1530},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1875,"login":1876,"suggestions":1883},"Fermer",{"text":1877,"link":1878},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":1879,"config":1880},"GitLab.com",{"href":1544,"dataGaName":1881,"dataGaLocation":1882},"search login","search",{"text":1884,"default":1885},"Suggestions",[1886,1888,1893,1895,1900,1905],{"text":1561,"config":1887},{"href":1566,"dataGaName":37,"dataGaLocation":1882},{"text":1889,"config":1890},"Suggestions de code (IA)",{"href":1891,"dataGaName":1892,"dataGaLocation":1882},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":1597,"config":1894},{"href":1599,"dataGaName":1597,"dataGaLocation":1882},{"text":1896,"config":1897},"GitLab sur AWS",{"href":1898,"dataGaName":1899,"dataGaLocation":1882},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":1901,"config":1902},"GitLab sur Google Cloud",{"href":1903,"dataGaName":1904,"dataGaLocation":1882},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":1906,"config":1907},"Pourquoi utiliser GitLab ?",{"href":1574,"dataGaName":1908,"dataGaLocation":1882},"Why GitLab?",{"freeTrial":1910,"mobileIcon":1915,"desktopIcon":1920,"secondaryButton":1923},{"text":1911,"config":1912},"Commencer votre essai gratuit",{"href":1913,"dataGaName":1535,"dataGaLocation":1914},"https://gitlab.com/-/trials/new/","nav",{"altText":1916,"config":1917},"Icône GitLab",{"src":1918,"dataGaName":1919,"dataGaLocation":1914},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1916,"config":1921},{"src":1922,"dataGaName":1919,"dataGaLocation":1914},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1924,"config":1925},"Commencer",{"href":1926,"dataGaName":1927,"dataGaLocation":1914},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":1929,"mobileIcon":1933,"desktopIcon":1935},{"text":1930,"config":1931},"En savoir plus sur GitLab Duo",{"href":1566,"dataGaName":1932,"dataGaLocation":1914},"gitlab duo",{"altText":1916,"config":1934},{"src":1918,"dataGaName":1919,"dataGaLocation":1914},{"altText":1916,"config":1936},{"src":1922,"dataGaName":1919,"dataGaLocation":1914},{"button":1938,"mobileIcon":1943,"desktopIcon":1945},{"text":1939,"config":1940},"/switch",{"href":1941,"dataGaName":1942,"dataGaLocation":1914},"#contact","switch",{"altText":1916,"config":1944},{"src":1918,"dataGaName":1919,"dataGaLocation":1914},{"altText":1916,"config":1946},{"src":1947,"dataGaName":1919,"dataGaLocation":1914},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1949,"mobileIcon":1954,"desktopIcon":1956},{"text":1950,"config":1951},"Retour aux tarifs",{"href":1681,"dataGaName":1952,"dataGaLocation":1914,"icon":1953},"back to pricing","GoBack",{"altText":1916,"config":1955},{"src":1918,"dataGaName":1919,"dataGaLocation":1914},{"altText":1916,"config":1957},{"src":1922,"dataGaName":1919,"dataGaLocation":1914},{"title":1959,"button":1960,"config":1964},"GitLab Orbit est arrivé : la couche de contexte pour les agents d'IA.",{"text":1572,"config":1961},{"href":1962,"dataGaName":1963,"dataGaLocation":1530},"/fr-fr/gitlab-orbit/","orbit",{"layout":1965,"disabled":1508},"release",{"data":1967},{"text":1968,"source":1969,"edit":1975,"contribute":1980,"config":1984,"items":1989,"minimal":2196},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":1970,"config":1971},"Afficher le code source de la page",{"href":1972,"dataGaName":1973,"dataGaLocation":1974},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1976,"config":1977},"Modifier cette page",{"href":1978,"dataGaName":1979,"dataGaLocation":1974},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1761,"config":1981},{"href":1982,"dataGaName":1983,"dataGaLocation":1974},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1985,"facebook":1986,"youtube":1987,"linkedin":1988},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1990,2036,2088,2131,2163],{"title":1679,"links":1991,"subMenu":2006},[1992,1996,2001],{"text":1993,"config":1994},"Voir les forfaits",{"href":1681,"dataGaName":1995,"dataGaLocation":1974},"view plans",{"text":1997,"config":1998},"GitLab Premium",{"href":1999,"dataGaName":2000,"dataGaLocation":1974},"/fr-fr/pricing/premium/","why premium",{"text":2002,"config":2003},"GitLab Ultimate",{"href":2004,"dataGaName":2005,"dataGaLocation":1974},"/fr-fr/pricing/ultimate/","why ultimate",[2007],{"title":1853,"links":2008},[2009,2011,2013,2016,2021,2026,2031],{"text":1860,"config":2010},{"href":1862,"dataGaName":1540,"dataGaLocation":1974},{"text":1865,"config":2012},{"href":1867,"dataGaName":1868,"dataGaLocation":1974},{"text":2014,"config":2015},"Portail clients",{"href":1872,"dataGaName":1873,"dataGaLocation":1974},{"text":2017,"config":2018},"Statut",{"href":2019,"dataGaName":2020,"dataGaLocation":1974},"https://status.gitlab.com/","status",{"text":2022,"config":2023},"Conditions d'utilisation",{"href":2024,"dataGaName":2025,"dataGaLocation":1974},"/terms/","terms of use",{"text":2027,"config":2028},"Politique de confidentialité",{"href":2029,"dataGaName":2030,"dataGaLocation":1974},"/fr-fr/privacy/","privacy statement",{"text":2032,"config":2033},"Gestion des cookies",{"dataGaName":2034,"dataGaLocation":1974,"id":2035,"isOneTrustButton":809},"cookie preferences","ot-sdk-btn",{"title":1577,"links":2037,"subMenu":2046},[2038,2042],{"text":2039,"config":2040},"Plateforme DevSecOps",{"href":1559,"dataGaName":2041,"dataGaLocation":1974},"devsecops platform",{"text":2043,"config":2044},"Développement assisté par l'IA",{"href":1566,"dataGaName":2045,"dataGaLocation":1974},"ai-assisted development",[2047],{"title":2048,"links":2049},"Thèmes",[2050,2054,2059,2064,2068,2073,2078,2083],{"text":1597,"config":2051},{"href":2052,"dataGaName":2053,"dataGaLocation":1974},"/fr-fr/topics/ci-cd/","cicd",{"text":2055,"config":2056},"GitOps",{"href":2057,"dataGaName":2058,"dataGaLocation":1974},"/fr-fr/topics/gitops/","gitops",{"text":2060,"config":2061},"DevOps",{"href":2062,"dataGaName":2063,"dataGaLocation":1974},"/fr-fr/topics/devops/","devops",{"text":1040,"config":2065},{"href":2066,"dataGaName":2067,"dataGaLocation":1974},"/fr-fr/topics/version-control/","version control",{"text":2069,"config":2070},"DevSecOps",{"href":2071,"dataGaName":2072,"dataGaLocation":1974},"/fr-fr/topics/devsecops/","devsecops",{"text":2074,"config":2075},"Cloud-native",{"href":2076,"dataGaName":2077,"dataGaLocation":1974},"/fr-fr/topics/cloud-native/","cloud native",{"text":2079,"config":2080},"IA pour la programmation",{"href":2081,"dataGaName":2082,"dataGaLocation":1974},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":2084,"config":2085},"IA agentique",{"href":2086,"dataGaName":2087,"dataGaLocation":1974},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":2089,"links":2090},"Solutions",[2091,2094,2096,2101,2104,2107,2110,2113,2115,2118,2121,2126],{"text":1622,"config":2092},{"href":1617,"dataGaName":2093,"dataGaLocation":1974},"Application Security Testing",{"text":1609,"config":2095},{"href":1593,"dataGaName":1594,"dataGaLocation":1974},{"text":2097,"config":2098},"Développement Agile",{"href":2099,"dataGaName":2100,"dataGaLocation":1974},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":1604,"config":2102},{"href":1606,"dataGaName":2103,"dataGaLocation":1974},"source code management",{"text":1597,"config":2105},{"href":1599,"dataGaName":2106,"dataGaLocation":1974},"continuous integration & delivery",{"text":1648,"config":2108},{"href":1650,"dataGaName":2109,"dataGaLocation":1974},"value stream management",{"text":2055,"config":2111},{"href":2112,"dataGaName":2058,"dataGaLocation":1974},"/fr-fr/solutions/gitops/",{"text":1661,"config":2114},{"href":1664,"dataGaName":1665,"dataGaLocation":1974},{"text":2116,"config":2117},"PME",{"href":1670,"dataGaName":1671,"dataGaLocation":1974},{"text":2119,"config":2120},"Secteur public",{"href":1676,"dataGaName":1677,"dataGaLocation":1974},{"text":2122,"config":2123},"Éducation",{"href":2124,"dataGaName":2125,"dataGaLocation":1974},"/fr-fr/solutions/education/","education",{"text":2127,"config":2128},"Services financiers",{"href":2129,"dataGaName":2130,"dataGaLocation":1974},"/fr-fr/solutions/finance/","financial services",{"title":1412,"links":2132},[2133,2135,2137,2139,2142,2144,2147,2149,2151,2153,2155,2157,2159,2161],{"text":1696,"config":2134},{"href":1698,"dataGaName":1699,"dataGaLocation":1974},{"text":1701,"config":2136},{"href":1703,"dataGaName":1704,"dataGaLocation":1974},{"text":1706,"config":2138},{"href":1708,"dataGaName":1709,"dataGaLocation":1974},{"text":1711,"config":2140},{"href":1713,"dataGaName":2141,"dataGaLocation":1974},"docs",{"text":1734,"config":2143},{"href":1736,"dataGaName":1737,"dataGaLocation":1974},{"text":2145,"config":2146},"Nouveautés",{"href":1794,"dataGaName":1795,"dataGaLocation":1974},{"text":1729,"config":2148},{"href":1731,"dataGaName":1732,"dataGaLocation":1974},{"text":1748,"config":2150},{"href":1750,"dataGaName":1751,"dataGaLocation":1974},{"text":1756,"config":2152},{"href":1758,"dataGaName":1759,"dataGaLocation":1974},{"text":1761,"config":2154},{"href":1763,"dataGaName":1764,"dataGaLocation":1974},{"text":1766,"config":2156},{"href":1768,"dataGaName":1769,"dataGaLocation":1974},{"text":1771,"config":2158},{"href":1773,"dataGaName":1774,"dataGaLocation":1974},{"text":1776,"config":2160},{"href":1778,"dataGaName":1779,"dataGaLocation":1974},{"text":1781,"config":2162},{"href":1783,"dataGaName":1784,"dataGaLocation":1974},{"title":1797,"links":2164},[2165,2167,2169,2171,2173,2175,2180,2185,2187,2189,2191],{"text":1805,"config":2166},{"href":1807,"dataGaName":1799,"dataGaLocation":1974},{"text":1810,"config":2168},{"href":1812,"dataGaName":1813,"dataGaLocation":1974},{"text":1818,"config":2170},{"href":1820,"dataGaName":1821,"dataGaLocation":1974},{"text":1823,"config":2172},{"href":1825,"dataGaName":1826,"dataGaLocation":1974},{"text":1828,"config":2174},{"href":1830,"dataGaName":1831,"dataGaLocation":1974},{"text":2176,"config":2177},"Développement durable",{"href":2178,"dataGaName":2179,"dataGaLocation":1974},"/sustainability/","Sustainability",{"text":2181,"config":2182},"Diversité, inclusion et appartenance (DIB)",{"href":2183,"dataGaName":2184,"dataGaLocation":1974},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1833,"config":2186},{"href":1835,"dataGaName":1836,"dataGaLocation":1974},{"text":1843,"config":2188},{"href":1845,"dataGaName":1846,"dataGaLocation":1974},{"text":1848,"config":2190},{"href":1850,"dataGaName":1851,"dataGaLocation":1974},{"text":2192,"config":2193},"Déclaration de transparence sur l'esclavage moderne",{"href":2194,"dataGaName":2195,"dataGaLocation":1974},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":2197},[2198,2200,2202],{"text":2022,"config":2199},{"href":2024,"dataGaName":2025,"dataGaLocation":1974},{"text":2032,"config":2201},{"dataGaName":2034,"dataGaLocation":1974,"id":2035,"isOneTrustButton":809},{"text":2027,"config":2203},{"href":2029,"dataGaName":2030,"dataGaLocation":1974},[2205],{"id":2206,"title":7,"body":1507,"config":2207,"content":2209,"description":1507,"extension":2213,"meta":2214,"navigation":809,"path":2215,"seo":2216,"stem":2217,"__hash__":2218},"blogAuthors/en-us/blog/authors/itzik-gan-baruch.yml",{"template":2208},"BlogAuthor",{"name":7,"config":2210},{"headshot":2211,"ctfId":2212},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658921/Blog/Author%20Headshots/iganbaruch-headshot.jpg","iganbaruch","yml",{},"/en-us/blog/authors/itzik-gan-baruch",{},"en-us/blog/authors/itzik-gan-baruch","bz9VMiTQ1ixvnoxUFk0jiUcnLG3oQsymgXNCqyRqfsk",[2220,2228,2236],{"title":2221,"description":2222,"heroImage":2223,"category":1503,"date":2224,"authors":2225,"slug":2227,"externalUrl":1507},"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",[2226],"Michael Friedrich","modernize-java-with-cursor-and-gitlab",{"title":2229,"description":2230,"heroImage":2231,"category":1503,"date":2232,"authors":2233,"slug":2235,"externalUrl":1507},"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",[2234],"Sam Wiskow","ai-agents-for-migrating-rate-limiting-system",{"title":2237,"description":2238,"heroImage":2239,"category":1503,"date":2240,"authors":2241,"slug":2243,"externalUrl":1507},"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",[2242],"Jessica Taylor","agentic-coding-only-as-good-as-context",{"promotions":2245},[2246,2259,2270,2282],{"id":2247,"categories":2248,"header":2249,"text":2250,"button":2251,"image":2256},"ai-modernization",[1503],"L'IA tient-elle ses promesses à grande échelle ?","Le questionnaire ne prendra pas plus de 5 minutes.",{"text":2252,"config":2253},"Obtenez votre score de maturité IA",{"href":2254,"dataGaName":2255,"dataGaLocation":1737},"/fr-fr/assessments/ai-modernization-assessment/","modernization assessment",{"config":2257},{"src":2258},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":2260,"categories":2261,"header":2262,"text":2250,"button":2263,"image":2267},"devops-modernization",[1520,2072],"Vous contentez-vous de gérer des outils ou de livrer des innovations ?",{"text":2264,"config":2265},"Obtenez votre score de maturité DevOps",{"href":2266,"dataGaName":2255,"dataGaLocation":1737},"/fr-fr/assessments/devops-modernization-assessment/",{"config":2268},{"src":2269},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":2271,"categories":2272,"header":2274,"text":2250,"button":2275,"image":2279},"security-modernization",[2273],"security","Faut-il sacrifier la rapidité pour garantir la sécurité ?",{"text":2276,"config":2277},"Obtenez votre score de maturité en matière de sécurité",{"href":2278,"dataGaName":2255,"dataGaLocation":1737},"/fr-fr/assessments/security-modernization-assessment/",{"config":2280},{"src":2281},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":2283,"paths":2284,"header":2287,"text":2288,"button":2289,"image":2294},"github-azure-migration",[2285,2286],"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":2290,"config":2291},"Découvrez les différences entre GitLab et GitHub",{"href":2292,"dataGaName":2293,"dataGaLocation":1737},"/fr-fr/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":2295},{"src":2269},{"header":2297,"blurb":2298,"button":2299,"secondaryButton":2303},"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":1532,"config":2300},{"href":2301,"dataGaName":1535,"dataGaLocation":2302},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":1860,"config":2304},{"href":1862,"dataGaName":1540,"dataGaLocation":2302},1786803764174]