[{"data":1,"prerenderedAt":2354},["ShallowReactive",2],{"/fr-fr/blog/measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics":3,"navigation-fr-fr":1573,"banner-fr-fr":2007,"footer-fr-fr":2015,"blog-post-authors-fr-fr-Paul Meresanu":2253,"blog-related-posts-fr-fr-measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics":2268,"blog-promotions-fr-fr":2293,"next-steps-fr-fr":2345},{"id":4,"title":5,"authors":6,"body":8,"category":1552,"date":1553,"description":1554,"extension":1555,"externalUrl":1556,"faq":1556,"featured":1557,"heroImage":1558,"meta":1559,"navigation":165,"path":1560,"seo":1561,"slug":1565,"stem":1566,"tags":1567,"template":1571,"updatedDate":1556,"__hash__":1572},"blogPosts/fr-fr/blog/measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics.md","Mesurez le ROI de l'IA à grande échelle avec GitLab Duo Analytics",[7],"Paul Meresanu",{"type":9,"value":10,"toc":1534},"minimark",[11,22,25,28,37,42,45,48,77,80,94,99,105,109,118,122,127,141,145,148,196,204,208,215,264,269,304,308,315,319,424,428,431,551,555,562,566,692,696,776,780,783,798,809,813,816,842,845,848,853,859,867,873,878,884,890,895,901,905,937,941,944,948,1088,1092,1188,1192,1282,1286,1315,1319,1322,1332,1335,1340,1343,1348,1357,1464,1473,1476,1479,1482,1486,1495,1498,1501,1504,1508,1511,1514,1517,1520,1530],[12,13,14,15,21],"p",{},"L'investissement dans l'IA commence par la mesure. Pour construire une plateforme de développement alimentée par l'IA, il faut tout d'abord comprendre l'utilisation réelle, les modèles d'adoption et la valeur métier quantifiable, notamment le retour sur investissement (ROI) de ",[16,17,20],"a",{"href":18,"rel":19},"https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/",[],"GitLab Duo\nEnterprise",".",[12,23,24],{},"Pour aider nos clients à maximiser leurs investissements dans l'IA, nous avons développé la solution GitLab Duo Analytics dans le cadre de notre programme d'accélération GitLab Duo. GitLab Duo Analytics est une solution complète et orientée client qui transforme les données d'utilisation brutes en données métiers exploitables et mesure le ROI. Il s’agit d’un outil d'accompagnement spécialisé que nous avons créé pour répondre aux besoins d'analyse immédiats des entreprises, qui calculent de plus en plus la productivité de l'IA dans son ensemble.",[12,26,27],{},"Ces données de base aident à transformer l'IA en profondeur. Par exemple, les entreprises peuvent les utiliser pour optimiser l’attribution des licences, identifier les cas d’utilisation à forte valeur ajoutée et élaborer des business cases convaincants pour renforcer l'adoption de l'IA au sein des équipes de développement.",[12,29,30,31,36],{},"Une grande entreprise du secteur financier a collaboré avec l’un de nos Customer Success Architect dans le cadre du programme d'accélération GitLab Duo afin d’obtenir une visibilité sur son investissement ",[16,32,35],{"href":33,"rel":34},"https://about.gitlab.com/fr-fr/blog/gitlab-duo-enterprise-is-now-available/",[],"GitLab Duo Enterprise",". Ensemble, ils ont mis en œuvre une solution d'analyse hybride qui combine la collecte mensuelle de données avec une intégration API en temps réel, afin de créer une base évolutive pour mesurer les gains de productivité de l'IA et optimiser l'utilisation des licences à l'échelle de l'entreprise.",[38,39,41],"h2",{"id":40},"mesurer-le-roi-de-lia-dans-le-développement-dentreprise","Mesurer le ROI de l'IA dans le développement d'entreprise",[12,43,44],{},"Avant de mettre en œuvre une solution d'analyse, il est essentiel de comprendre comment vous évaluez votre utilisation de l'IA.",[12,46,47],{},"Posez-vous les questions suivantes :",[49,50,51,59,65,71],"ul",{},[52,53,54,58],"li",{},[55,56,57],"strong",{},"Quelles fonctionnalités de GitLab Duo doivent être évaluées ?"," (Suggestions de code, assistance par chat, scanning de sécurité) ?",[52,60,61,64],{},[55,62,63],{},"Qui utilise l'IA au sein de votre entreprise ?"," (Développeurs, équipes de sécurité, ingénieurs DevOps) ?",[52,66,67,70],{},[55,68,69],{},"Quels indicateurs métiers sont importants pour votre entreprise ?"," (Gain de temps, gains de productivité, optimisation des coûts) ?",[52,72,73,76],{},[55,74,75],{},"Comment fonctionne votre collecte de données actuelle"," (Exports manuels, intégration API, outils existants) ?",[12,78,79],{},"Utilisez cette étape pour définir les éléments suivants :",[49,81,82,85,88,91],{},[52,83,84],{},"Votre framework de calcul du ROI",[52,86,87],{},"Vos indicateurs clés de performance (KPI)",[52,89,90],{},"Votre stratégie de collecte de données",[52,92,93],{},"Vos exigences de reporting des parties prenantes",[95,96,98],"h3",{"id":97},"exemple-de-framework-de-calcul-du-roi","Exemple de framework de calcul du ROI",[12,100,101],{},[102,103],"img",{"alt":98,"src":104},"https://gitlab.com/-/project/54775568/uploads/06da2f5c3a75197cd272aedb3d67a347/image.png",[38,106,108],{"id":107},"guide-de-mise-en-œuvre-étape-par-étape","Guide de mise en œuvre étape par étape",[12,110,111,112,117],{},"Veuillez noter que la solution ci-dessous décrit une approche ",[16,113,116],{"href":114,"rel":115},"https://about.gitlab.com/fr-fr/blog/what-is-open-source/",[],"open source"," que vous pouvez déployer gratuitement dans votre propre environnement. Téléchargez, personnalisez et exécutez cette solution dès maintenant !",[95,119,121],{"id":120},"prérequis","Prérequis",[12,123,124],{},[55,125,126],{},"Avant de commencer, assurez-vous de disposer des éléments suivants :",[49,128,129,132,135,138],{},[52,130,131],{},"Instance GitLab avec GitLab Duo activé",[52,133,134],{},"Token API GitLab avec autorisations de lecture",[52,136,137],{},"Accès pour configurer les variables CI/CD de GitLab",[52,139,140],{},"Connaissances de base des pipelines CI/CD de GitLab",[95,142,144],{"id":143},"_1-configurer-et-paramétrer-lenvironnement-initial","1. Configurer et paramétrer l'environnement initial",[12,146,147],{},"Configurez l'environnement du projet en clonant d'abord le dépôt.",[149,150,155],"pre",{"className":151,"code":152,"language":153,"meta":154,"style":154},"language-bash shiki shiki-themes github-light","\ngit clone https://gitlab.com/gitlab-org/professional-services-automation/tools/utilities/gitlab-graphql-api.git\n\ncd gitlab-graphql-api\n\n","bash","",[156,157,158,167,181,186],"code",{"__ignoreMap":154},[159,160,163],"span",{"class":161,"line":162},"line",1,[159,164,166],{"emptyLinePlaceholder":165},true,"\n",[159,168,170,174,178],{"class":161,"line":169},2,[159,171,173],{"class":172},"s7eDp","git",[159,175,177],{"class":176},"sYBdl"," clone",[159,179,180],{"class":176}," https://gitlab.com/gitlab-org/professional-services-automation/tools/utilities/gitlab-graphql-api.git\n",[159,182,184],{"class":161,"line":183},3,[159,185,166],{"emptyLinePlaceholder":165},[159,187,189,193],{"class":161,"line":188},4,[159,190,192],{"class":191},"sYu0t","cd",[159,194,195],{"class":176}," gitlab-graphql-api\n",[12,197,198,199,21],{},"Effectuez un push vers votre propre instance GitLab ou votre espace de nommage, puis accédez à votre projet dans GitLab pour configurer les ",[16,200,203],{"href":201,"rel":202},"https://about.gitlab.com/fr-fr/blog/demystifying-ci-cd-variables/",[],"variables CI/CD",[95,205,207],{"id":206},"_2-configurer-les-variables-de-contrôle-du-pipeline","2. Configurer les variables de contrôle du pipeline",[12,209,210,211,214],{},"Contrôlez quels pipelines d’analyse s'exécutent en définissant les variables CI/CD du projet. Allez dans ",[55,212,213],{},"Paramètres du projet → CI/CD → Variables"," et ajoutez :",[216,217,218,234],"table",{},[219,220,221],"thead",{},[222,223,224,228,231],"tr",{},[225,226,227],"th",{},"Variable",[225,229,230],{},"Défaut",[225,232,233],{},"Description",[235,236,237,251],"tbody",{},[222,238,239,245,248],{},[240,241,242],"td",{},[156,243,244],{},"ENABLE_DUO_METRICS",[240,246,247],{},"\"true\"",[240,249,250],{},"Activer/désactiver le pipeline de métriques GitLab Duo AI",[222,252,253,258,261],{},[240,254,255],{},[156,256,257],{},"ENABLE_PROJECT_METRICS",[240,259,260],{},"\"false\"",[240,262,263],{},"Activer/désactiver le pipeline de métriques de projet traditionnel",[265,266,268],"h4",{"id":267},"exemples-de-configurations","Exemples de configurations :",[49,270,271,284,294],{},[52,272,273,276,277,280,281],{},[55,274,275],{},"Configurer GitLab Duo uniquement"," : ",[156,278,279],{},"ENABLE_DUO_METRICS=\"true\"",", ",[156,282,283],{},"ENABLE_PROJECT_METRICS=\"false\"",[52,285,286,276,289,280,291],{},[55,287,288],{},"Configurer les deux tableaux de bord",[156,290,279],{},[156,292,293],{},"ENABLE_PROJECT_METRICS=\"true\"",[52,295,296,276,299,280,302],{},[55,297,298],{},"Tout désactiver",[156,300,301],{},"ENABLE_DUO_METRICS=\"false\"",[156,303,283],{},[95,305,307],{"id":306},"_3-configurer-lingestion-des-données","3. Configurer l’ingestion des données",[12,309,310,311,314],{},"Configurez l'ingestion des données dans votre fichier ",[156,312,313],{},".gitlab-ci.yml",". Cette action crée des métadonnées de projet brutes partagées entre les métriques.",[265,316,318],{"id":317},"variables-de-configuration-de-base","Variables de configuration de base :",[149,320,324],{"className":321,"code":322,"language":323,"meta":154,"style":154},"language-yaml shiki shiki-themes github-light","\nvariables:\n  GROUP_PATH: \"gitlab-org/professional-services-automation\"  # Your group path\n  INCLUDE_SIMPLE_FIELDS: \"fullPath,name,description\"  # Fields to fetch\n  ARGUMENT_FIELDS: \"mergeRequests\"  # Argument fields requiring additional config\n  LIMIT: \"100\"  # Projects per API call\n  MAX_ITERATIONS: \"2\"  # Maximum API calls (for testing)\n  GITLAB_GRAPHQL_API_VERSION: \"0.1.0\"  # API version from Package Registry\n","yaml",[156,325,326,330,340,355,368,382,396,410],{"__ignoreMap":154},[159,327,328],{"class":161,"line":162},[159,329,166],{"emptyLinePlaceholder":165},[159,331,332,336],{"class":161,"line":169},[159,333,335],{"class":334},"shJU0","variables",[159,337,339],{"class":338},"sgsFI",":\n",[159,341,342,345,348,351],{"class":161,"line":183},[159,343,344],{"class":334},"  GROUP_PATH",[159,346,347],{"class":338},": ",[159,349,350],{"class":176},"\"gitlab-org/professional-services-automation\"",[159,352,354],{"class":353},"sAwPA","  # Your group path\n",[159,356,357,360,362,365],{"class":161,"line":188},[159,358,359],{"class":334},"  INCLUDE_SIMPLE_FIELDS",[159,361,347],{"class":338},[159,363,364],{"class":176},"\"fullPath,name,description\"",[159,366,367],{"class":353},"  # Fields to fetch\n",[159,369,371,374,376,379],{"class":161,"line":370},5,[159,372,373],{"class":334},"  ARGUMENT_FIELDS",[159,375,347],{"class":338},[159,377,378],{"class":176},"\"mergeRequests\"",[159,380,381],{"class":353},"  # Argument fields requiring additional config\n",[159,383,385,388,390,393],{"class":161,"line":384},6,[159,386,387],{"class":334},"  LIMIT",[159,389,347],{"class":338},[159,391,392],{"class":176},"\"100\"",[159,394,395],{"class":353},"  # Projects per API call\n",[159,397,399,402,404,407],{"class":161,"line":398},7,[159,400,401],{"class":334},"  MAX_ITERATIONS",[159,403,347],{"class":338},[159,405,406],{"class":176},"\"2\"",[159,408,409],{"class":353},"  # Maximum API calls (for testing)\n",[159,411,413,416,418,421],{"class":161,"line":412},8,[159,414,415],{"class":334},"  GITLAB_GRAPHQL_API_VERSION",[159,417,347],{"class":338},[159,419,420],{"class":176},"\"0.1.0\"",[159,422,423],{"class":353},"  # API version from Package Registry\n",[265,425,427],{"id":426},"configurer-les-champs-dargument-pour-des-métriques-spécifiques","Configurer les champs d'argument pour des métriques spécifiques :",[12,429,430],{},"Pour chaque métrique que vous souhaitez collecter, définissez des variables de champ d'argument :",[149,432,434],{"className":321,"code":433,"language":323,"meta":154,"style":154},"\n# Example: Merged Merge Requests\n\nARGUMENT_FIELD_1_NAME: \"mergeRequests\"\n\nARGUMENT_FIELD_1_FILTER_NAME: \"state\"\n\nARGUMENT_FIELD_1_FILTER_VALUE: \"merged\"\n\nARGUMENT_FIELD_1_RETURN_VALUES: \"count totalTimeToMerge\"\n\n\n# Example: Packages Count\n\nARGUMENT_FIELD_2_NAME: \"packages\"\n\nARGUMENT_FIELD_2_RETURN_VALUES: \"count\"\n\n",[156,435,436,440,445,449,459,463,473,477,487,492,503,508,513,519,524,535,540],{"__ignoreMap":154},[159,437,438],{"class":161,"line":162},[159,439,166],{"emptyLinePlaceholder":165},[159,441,442],{"class":161,"line":169},[159,443,444],{"class":353},"# Example: Merged Merge Requests\n",[159,446,447],{"class":161,"line":183},[159,448,166],{"emptyLinePlaceholder":165},[159,450,451,454,456],{"class":161,"line":188},[159,452,453],{"class":334},"ARGUMENT_FIELD_1_NAME",[159,455,347],{"class":338},[159,457,458],{"class":176},"\"mergeRequests\"\n",[159,460,461],{"class":161,"line":370},[159,462,166],{"emptyLinePlaceholder":165},[159,464,465,468,470],{"class":161,"line":384},[159,466,467],{"class":334},"ARGUMENT_FIELD_1_FILTER_NAME",[159,469,347],{"class":338},[159,471,472],{"class":176},"\"state\"\n",[159,474,475],{"class":161,"line":398},[159,476,166],{"emptyLinePlaceholder":165},[159,478,479,482,484],{"class":161,"line":412},[159,480,481],{"class":334},"ARGUMENT_FIELD_1_FILTER_VALUE",[159,483,347],{"class":338},[159,485,486],{"class":176},"\"merged\"\n",[159,488,490],{"class":161,"line":489},9,[159,491,166],{"emptyLinePlaceholder":165},[159,493,495,498,500],{"class":161,"line":494},10,[159,496,497],{"class":334},"ARGUMENT_FIELD_1_RETURN_VALUES",[159,499,347],{"class":338},[159,501,502],{"class":176},"\"count totalTimeToMerge\"\n",[159,504,506],{"class":161,"line":505},11,[159,507,166],{"emptyLinePlaceholder":165},[159,509,511],{"class":161,"line":510},12,[159,512,166],{"emptyLinePlaceholder":165},[159,514,516],{"class":161,"line":515},13,[159,517,518],{"class":353},"# Example: Packages Count\n",[159,520,522],{"class":161,"line":521},14,[159,523,166],{"emptyLinePlaceholder":165},[159,525,527,530,532],{"class":161,"line":526},15,[159,528,529],{"class":334},"ARGUMENT_FIELD_2_NAME",[159,531,347],{"class":338},[159,533,534],{"class":176},"\"packages\"\n",[159,536,538],{"class":161,"line":537},16,[159,539,166],{"emptyLinePlaceholder":165},[159,541,543,546,548],{"class":161,"line":542},17,[159,544,545],{"class":334},"ARGUMENT_FIELD_2_RETURN_VALUES",[159,547,347],{"class":338},[159,549,550],{"class":176},"\"count\"\n",[95,552,554],{"id":553},"_4-configurer-lagrégation-des-métriques","4. Configurer l'agrégation des métriques",[12,556,557,558,561],{},"Après l'ingestion des données, configurez les règles d'agrégation dans ",[156,559,560],{},".gitlab/Schedule.gitlab-ci.yml"," pour chaque métrique que vous souhaitez générer.",[265,563,565],{"id":564},"exemple-de-configuration-de-job-de-métrique","Exemple de configuration de job de métrique :",[149,567,569],{"className":321,"code":568,"language":323,"meta":154,"style":154},"\nprocess_average_time_to_merge:\n  \u003C\u003C: *process_data_template\n  stage: process_data\n  variables:\n    METRIC_NAME: \"9_Average_Time_To_Merge\"\n    BUSINESS_LEVEL_START: 2\n    BUSINESS_LEVEL_END: 4\n    AGGREGATE_COLUMNS: \"mergeRequests_state_merged_totalTimeToMerge:sum mergeRequests_state_merged_count:sum\"\n    NEW_COLUMN_NAME: \"average_time_to_merge_days\"\n    NEW_COLUMN_FORMULA: \"mergeRequests_state_merged_totalTimeToMerge / mergeRequests_state_merged_count / (24 * 60 * 60)\"\n    SORT_BY: \"average_time_to_merge_days\"\n    FILTER_CONDITION: \"mergeRequests_state_merged_count >= 5\"\n",[156,570,571,575,582,596,606,613,623,633,643,653,663,673,682],{"__ignoreMap":154},[159,572,573],{"class":161,"line":162},[159,574,166],{"emptyLinePlaceholder":165},[159,576,577,580],{"class":161,"line":169},[159,578,579],{"class":334},"process_average_time_to_merge",[159,581,339],{"class":338},[159,583,584,587,589,593],{"class":161,"line":183},[159,585,586],{"class":191},"  \u003C\u003C",[159,588,347],{"class":338},[159,590,592],{"class":591},"sD7c4","*",[159,594,595],{"class":338},"process_data_template\n",[159,597,598,601,603],{"class":161,"line":188},[159,599,600],{"class":334},"  stage",[159,602,347],{"class":338},[159,604,605],{"class":176},"process_data\n",[159,607,608,611],{"class":161,"line":370},[159,609,610],{"class":334},"  variables",[159,612,339],{"class":338},[159,614,615,618,620],{"class":161,"line":384},[159,616,617],{"class":334},"    METRIC_NAME",[159,619,347],{"class":338},[159,621,622],{"class":176},"\"9_Average_Time_To_Merge\"\n",[159,624,625,628,630],{"class":161,"line":398},[159,626,627],{"class":334},"    BUSINESS_LEVEL_START",[159,629,347],{"class":338},[159,631,632],{"class":191},"2\n",[159,634,635,638,640],{"class":161,"line":412},[159,636,637],{"class":334},"    BUSINESS_LEVEL_END",[159,639,347],{"class":338},[159,641,642],{"class":191},"4\n",[159,644,645,648,650],{"class":161,"line":489},[159,646,647],{"class":334},"    AGGREGATE_COLUMNS",[159,649,347],{"class":338},[159,651,652],{"class":176},"\"mergeRequests_state_merged_totalTimeToMerge:sum mergeRequests_state_merged_count:sum\"\n",[159,654,655,658,660],{"class":161,"line":494},[159,656,657],{"class":334},"    NEW_COLUMN_NAME",[159,659,347],{"class":338},[159,661,662],{"class":176},"\"average_time_to_merge_days\"\n",[159,664,665,668,670],{"class":161,"line":505},[159,666,667],{"class":334},"    NEW_COLUMN_FORMULA",[159,669,347],{"class":338},[159,671,672],{"class":176},"\"mergeRequests_state_merged_totalTimeToMerge / mergeRequests_state_merged_count / (24 * 60 * 60)\"\n",[159,674,675,678,680],{"class":161,"line":510},[159,676,677],{"class":334},"    SORT_BY",[159,679,347],{"class":338},[159,681,662],{"class":176},[159,683,684,687,689],{"class":161,"line":515},[159,685,686],{"class":334},"    FILTER_CONDITION",[159,688,347],{"class":338},[159,690,691],{"class":176},"\"mergeRequests_state_merged_count >= 5\"\n",[265,693,695],{"id":694},"variables-requises-pour-chaque-métrique","Variables requises pour chaque métrique :",[216,697,698,709],{},[219,699,700],{},[222,701,702,704,706],{},[225,703,227],{},[225,705,233],{},[225,707,708],{},"Exemple",[235,710,711,724,737,750,763],{},[222,712,713,718,721],{},[240,714,715],{},[156,716,717],{},"METRIC_NAME",[240,719,720],{},"Nom de la métrique (utilisé dans le nommage des fichiers)",[240,722,723],{},"\"9_Average_Time_To_Merge\"",[222,725,726,731,734],{},[240,727,728],{},[156,729,730],{},"BUSINESS_LEVEL_START",[240,732,733],{},"Niveau de départ pour la hiérarchie métier",[240,735,736],{},"1",[222,738,739,744,747],{},[240,740,741],{},[156,742,743],{},"BUSINESS_LEVEL_END",[240,745,746],{},"Niveau final pour la hiérarchie métier",[240,748,749],{},"3",[222,751,752,757,760],{},[240,753,754],{},[156,755,756],{},"AGGREGATE_COLUMNS",[240,758,759],{},"Colonnes à agréger avec fonction",[240,761,762],{},"\"mergeRequests_state_merged_count:sum\"",[222,764,765,770,773],{},[240,766,767],{},[156,768,769],{},"SORT_BY",[240,771,772],{},"Colonne pour trier les résultats",[240,774,775],{},"\"average_time_to_merge_days\"",[95,777,779],{"id":778},"_5-exécuter-le-pipeline-planifié-pour-configurer-lanalyse","5. Exécuter le pipeline planifié pour configurer l’analyse",[12,781,782],{},"Une fois configuré, exécutez un pipeline planifié pour générer votre analyse :",[784,785,786,792,795],"ol",{},[52,787,788,789],{},"Allez dans ",[55,790,791],{},"CI/CD → Planifications",[52,793,794],{},"Créez une nouvelle planification ou exécutez-en une existante",[52,796,797],{},"Le pipeline va automatiquement :",[49,799,800,803,806],{},[52,801,802],{},"Ingérer les données selon votre configuration",[52,804,805],{},"Agréger les métriques selon vos règles",[52,807,808],{},"Déployer les tableaux de bord sur GitLab Pages",[95,810,812],{"id":811},"_6-accéder-à-vos-tableaux-de-bord-danalyse","6. Accéder à vos tableaux de bord d’analyse",[12,814,815],{},"Après l'exécution réussie du pipeline planifié, GitLab Pages déploie automatiquement vos tableaux de bord :",[49,817,818,826,834],{},[52,819,820,347,823],{},[55,821,822],{},"Tableau de bord des métriques de projet",[156,824,825],{},"https://your-username.gitlab.io/project-name/existing-metrics/",[52,827,828,347,831],{},[55,829,830],{},"Tableau de bord des métriques GitLab Duo",[156,832,833],{},"https://your-username.gitlab.io/project-name/duo-metrics/",[52,835,836,347,839],{},[55,837,838],{},"Page d'accueil principale",[156,840,841],{},"https://your-username.gitlab.io/project-name/",[12,843,844],{},"La page d'accueil principale détecte automatiquement quels tableaux de bord sont disponibles et affiche les liens appropriés.",[12,846,847],{},"Vous verrez les éléments suivants :",[49,849,850],{},[52,851,852],{},"Utilisation des licences : nombre total d’utilisateurs sous licence par rapport au nombre d’utilisateurs actifs (avec analyse des suggestions de code)",[12,854,855],{},[102,856],{"alt":857,"src":858},"Tableau de bord de GitLab Duo Analytics","https://res.cloudinary.com/about-gitlab-com/image/upload/v1754478265/nhbukcflhmghs5jatrip.png",[49,860,861,864],{},[52,862,863],{},"Analyse de GitLab Duo Chat : utilisateurs uniques de GitLab Duo Chat, moyenne des événements du chat sur 90 jours et taux d'adoption du chat",[52,865,866],{},"Analyse d'engagement de GitLab Duo : catégorisation de l'utilisation de GitLab Duo pour un groupe d'utilisateurs comme Fort (10+ suggestions), Moyen (5-9) ou Faible (1-4) selon les modèles d'utilisation",[12,868,869],{},[102,870],{"alt":871,"src":872},"Analyse de GitLab Duo Chat sur les 90 derniers jours","https://res.cloudinary.com/about-gitlab-com/image/upload/v1754478265/xgq05hh2ybzb8ugsxqza.png",[49,874,875],{},[52,876,877],{},"Analyse de l'utilisation : suggestions de code par langage de programmation (répartition par langage), analyse des performances des langages de suggestions de code (taux d'acceptation et de rejet)",[12,879,880],{},[102,881],{"alt":882,"src":883},"Vue d'adoption de l'analyse de l'utilisation de GitLab Duo","https://res.cloudinary.com/about-gitlab-com/image/upload/v1754478265/mu3dx5g2l2lki2ehlr2g.png",[12,885,886],{},[102,887],{"alt":888,"src":889},"Analyse des performances par langage","https://res.cloudinary.com/about-gitlab-com/image/upload/v1754478267/xf0thn8sm4dlhoyyqg9i.png",[49,891,892],{},[52,893,894],{},"Tendances hebdomadaires de GitLab Duo Chat : modèles d'utilisation de GitLab Duo Chat",[12,896,897],{},[102,898],{"alt":899,"src":900},"Tendances d'utilisation quotidienne de GitLab Duo Chat","https://res.cloudinary.com/about-gitlab-com/image/upload/v1754478265/plhycnmewye3vp6vitqj.png",[265,902,904],{"id":903},"les-fonctionnalités-du-tableau-de-bord-incluent","Les fonctionnalités du tableau de bord incluent :",[49,906,907,913,919,925,931],{},[52,908,909,912],{},[55,910,911],{},"L’analyse de l'utilisation des licences"," - Suivi des utilisateurs sous licence par rapport aux utilisateurs actifs",[52,914,915,918],{},[55,916,917],{},"Analyse des suggestions de code"," - Suivi des taux d'acceptation et de la répartition des langages",[52,920,921,924],{},[55,922,923],{},"Analyse de GitLab Duo Chat"," - Affichage des interactions par chat et des taux d'adoption",[52,926,927,930],{},[55,928,929],{},"Analyse de l’engagement des utilisateurs"," - Catégorisation des utilisateurs par niveau d'activité",[52,932,933,936],{},[55,934,935],{},"Analyse des performance par langage"," - Analyse des taux d'acceptation par langage de programmation",[95,938,940],{"id":939},"_7-comprendre-les-api-utilisées","7. Comprendre les API utilisées",[12,942,943],{},"La solution exploite plusieurs API GitLab pour collecter des données d'utilisation complètes :",[265,945,947],{"id":946},"api-pour-collecter-les-données-dutilisation-de-lia-aiusagedata","API pour collecter les données d'utilisation de l'IA (aiUsageData)",[149,949,953],{"className":950,"code":951,"language":952,"meta":154,"style":154},"language-graphql shiki shiki-themes github-light","\n# Fetches individual code suggestion events\n\nquery: |\n  {\n    group(fullPath: \"your-group\") {\n      aiUsageData {\n        codeSuggestionEvents {\n          event         # ACCEPTED or SHOWN\n          timestamp     # When it happened\n          language      # Programming language\n          suggestionSize # SINGLE_LINE or MULTI_LINE\n          user { username }\n        }\n      }\n    }\n  }\n# Purpose: Tracks every code suggestion shown or accepted by developers\n\n","graphql",[156,954,955,959,964,968,976,981,1001,1009,1016,1024,1032,1040,1048,1062,1067,1072,1077,1082],{"__ignoreMap":154},[159,956,957],{"class":161,"line":162},[159,958,166],{"emptyLinePlaceholder":165},[159,960,961],{"class":161,"line":169},[159,962,963],{"class":353},"# Fetches individual code suggestion events\n",[159,965,966],{"class":161,"line":183},[159,967,166],{"emptyLinePlaceholder":165},[159,969,970,973],{"class":161,"line":188},[159,971,972],{"class":591},"query",[159,974,975],{"class":338},": |\n",[159,977,978],{"class":161,"line":370},[159,979,980],{"class":338},"  {\n",[159,982,983,987,990,993,995,998],{"class":161,"line":384},[159,984,986],{"class":985},"sqxcx","    group",[159,988,989],{"class":338},"(",[159,991,992],{"class":985},"fullPath",[159,994,347],{"class":338},[159,996,997],{"class":176},"\"your-group\"",[159,999,1000],{"class":338},") {\n",[159,1002,1003,1006],{"class":161,"line":398},[159,1004,1005],{"class":985},"      aiUsageData",[159,1007,1008],{"class":338}," {\n",[159,1010,1011,1014],{"class":161,"line":412},[159,1012,1013],{"class":985},"        codeSuggestionEvents",[159,1015,1008],{"class":338},[159,1017,1018,1021],{"class":161,"line":489},[159,1019,1020],{"class":985},"          event",[159,1022,1023],{"class":353},"         # ACCEPTED or SHOWN\n",[159,1025,1026,1029],{"class":161,"line":494},[159,1027,1028],{"class":985},"          timestamp",[159,1030,1031],{"class":353},"     # When it happened\n",[159,1033,1034,1037],{"class":161,"line":505},[159,1035,1036],{"class":985},"          language",[159,1038,1039],{"class":353},"      # Programming language\n",[159,1041,1042,1045],{"class":161,"line":510},[159,1043,1044],{"class":985},"          suggestionSize",[159,1046,1047],{"class":353}," # SINGLE_LINE or MULTI_LINE\n",[159,1049,1050,1053,1056,1059],{"class":161,"line":515},[159,1051,1052],{"class":985},"          user",[159,1054,1055],{"class":338}," { ",[159,1057,1058],{"class":985},"username",[159,1060,1061],{"class":338}," }\n",[159,1063,1064],{"class":161,"line":521},[159,1065,1066],{"class":338},"        }\n",[159,1068,1069],{"class":161,"line":526},[159,1070,1071],{"class":338},"      }\n",[159,1073,1074],{"class":161,"line":537},[159,1075,1076],{"class":338},"    }\n",[159,1078,1079],{"class":161,"line":542},[159,1080,1081],{"class":338},"  }\n",[159,1083,1085],{"class":161,"line":1084},18,[159,1086,1087],{"class":353},"# Purpose: Tracks every code suggestion shown or accepted by developers\n",[265,1089,1091],{"id":1090},"api-pour-collecter-les-utilisateurs-du-module-dextension-gitlab-self-managed","API pour collecter les utilisateurs du module d'extension GitLab Self-Managed",[149,1093,1095],{"className":950,"code":1094,"language":952,"meta":154,"style":154},"\n# Gets licensed user information\n\nquery: |\n  {\n    selfManagedAddOnEligibleUsers(\n      addOnType: DUO_ENTERPRISE\n      filterByAssignedSeat: \"Yes\"\n    ) {\n      user {\n        username\n        lastDuoActivityOn\n      }\n    }\n  }\n# Purpose: Identifies who has licenses and when they last used Duo\n\n",[156,1096,1097,1101,1106,1110,1116,1120,1128,1139,1149,1154,1161,1166,1171,1175,1179,1183],{"__ignoreMap":154},[159,1098,1099],{"class":161,"line":162},[159,1100,166],{"emptyLinePlaceholder":165},[159,1102,1103],{"class":161,"line":169},[159,1104,1105],{"class":353},"# Gets licensed user information\n",[159,1107,1108],{"class":161,"line":183},[159,1109,166],{"emptyLinePlaceholder":165},[159,1111,1112,1114],{"class":161,"line":188},[159,1113,972],{"class":591},[159,1115,975],{"class":338},[159,1117,1118],{"class":161,"line":370},[159,1119,980],{"class":338},[159,1121,1122,1125],{"class":161,"line":384},[159,1123,1124],{"class":985},"    selfManagedAddOnEligibleUsers",[159,1126,1127],{"class":338},"(\n",[159,1129,1130,1133,1136],{"class":161,"line":398},[159,1131,1132],{"class":985},"      addOnType",[159,1134,1135],{"class":338},":",[159,1137,1138],{"class":191}," DUO_ENTERPRISE\n",[159,1140,1141,1144,1146],{"class":161,"line":412},[159,1142,1143],{"class":985},"      filterByAssignedSeat",[159,1145,347],{"class":338},[159,1147,1148],{"class":176},"\"Yes\"\n",[159,1150,1151],{"class":161,"line":489},[159,1152,1153],{"class":338},"    ) {\n",[159,1155,1156,1159],{"class":161,"line":494},[159,1157,1158],{"class":985},"      user",[159,1160,1008],{"class":338},[159,1162,1163],{"class":161,"line":505},[159,1164,1165],{"class":985},"        username\n",[159,1167,1168],{"class":161,"line":510},[159,1169,1170],{"class":985},"        lastDuoActivityOn\n",[159,1172,1173],{"class":161,"line":515},[159,1174,1071],{"class":338},[159,1176,1177],{"class":161,"line":521},[159,1178,1076],{"class":338},[159,1180,1181],{"class":161,"line":526},[159,1182,1081],{"class":338},[159,1184,1185],{"class":161,"line":537},[159,1186,1187],{"class":353},"# Purpose: Identifies who has licenses and when they last used Duo\n",[265,1189,1191],{"id":1190},"api-pour-collecter-les-métriques-dia","API pour collecter les métriques d'IA",[149,1193,1195],{"className":950,"code":1194,"language":952,"meta":154,"style":154},"\nquery: |\n  {\n    aiMetrics(from: \"2024-01-01\", to: \"2024-06-30\") {\n      codeSuggestions {\n        shownCount\n        acceptedCount\n      }\n      duoChatContributorsCount\n      duoAssignedUsersCount\n    }\n  }\n# Purpose: Gets pre-calculated metrics for trend analysis\n\n",[156,1196,1197,1201,1207,1211,1238,1245,1250,1255,1259,1264,1269,1273,1277],{"__ignoreMap":154},[159,1198,1199],{"class":161,"line":162},[159,1200,166],{"emptyLinePlaceholder":165},[159,1202,1203,1205],{"class":161,"line":169},[159,1204,972],{"class":591},[159,1206,975],{"class":338},[159,1208,1209],{"class":161,"line":183},[159,1210,980],{"class":338},[159,1212,1213,1216,1218,1221,1223,1226,1228,1231,1233,1236],{"class":161,"line":188},[159,1214,1215],{"class":985},"    aiMetrics",[159,1217,989],{"class":338},[159,1219,1220],{"class":985},"from",[159,1222,347],{"class":338},[159,1224,1225],{"class":176},"\"2024-01-01\"",[159,1227,280],{"class":338},[159,1229,1230],{"class":985},"to",[159,1232,347],{"class":338},[159,1234,1235],{"class":176},"\"2024-06-30\"",[159,1237,1000],{"class":338},[159,1239,1240,1243],{"class":161,"line":370},[159,1241,1242],{"class":985},"      codeSuggestions",[159,1244,1008],{"class":338},[159,1246,1247],{"class":161,"line":384},[159,1248,1249],{"class":985},"        shownCount\n",[159,1251,1252],{"class":161,"line":398},[159,1253,1254],{"class":985},"        acceptedCount\n",[159,1256,1257],{"class":161,"line":412},[159,1258,1071],{"class":338},[159,1260,1261],{"class":161,"line":489},[159,1262,1263],{"class":985},"      duoChatContributorsCount\n",[159,1265,1266],{"class":161,"line":494},[159,1267,1268],{"class":985},"      duoAssignedUsersCount\n",[159,1270,1271],{"class":161,"line":505},[159,1272,1076],{"class":338},[159,1274,1275],{"class":161,"line":510},[159,1276,1081],{"class":338},[159,1278,1279],{"class":161,"line":515},[159,1280,1281],{"class":353},"# Purpose: Gets pre-calculated metrics for trend analysis\n",[265,1283,1285],{"id":1284},"api-pour-collecter-le-ping-de-service-rest","API pour collecter le Ping de Service (REST)",[149,1287,1289],{"className":151,"code":1288,"language":153,"meta":154,"style":154},"\nurl: \"{GITLAB_URL}/api/v4/usage_data/service_ping\" \n\n# Purpose: Collects instance-wide usage statistics \n\n",[156,1290,1291,1295,1306,1310],{"__ignoreMap":154},[159,1292,1293],{"class":161,"line":162},[159,1294,166],{"emptyLinePlaceholder":165},[159,1296,1297,1300,1303],{"class":161,"line":169},[159,1298,1299],{"class":172},"url:",[159,1301,1302],{"class":176}," \"{GITLAB_URL}/api/v4/usage_data/service_ping\"",[159,1304,1305],{"class":338}," \n",[159,1307,1308],{"class":161,"line":183},[159,1309,166],{"emptyLinePlaceholder":165},[159,1311,1312],{"class":161,"line":188},[159,1313,1314],{"class":353},"# Purpose: Collects instance-wide usage statistics\n",[38,1316,1318],{"id":1317},"mise-en-pratique-complète","Mise en pratique complète",[12,1320,1321],{},"Pour démontrer la puissance de cette solution d'analyse intégrée, parcourons ensemble toutes les étapes d'une implémentation complète, du déploiement initial au calcul automatisé du ROI.",[12,1323,1324,1325,1331],{},"Commencez par déployer la solution conteneurisée dans votre environnement avec la configuration ",[16,1326,1330],{"href":1327,"rel":1328,"title":1329},"https://about.gitlab.com/fr-fr/blog/what-is-docker-comprehensive-guide/",[],"Qu'est-ce que Docker ?","Docker"," fournie. En quelques minutes, l'API d'analyse et le tableau de bord React seront opérationnels localement.",[12,1333,1334],{},"L'architecture de données hybride commence immédiatement à collecter des métriques à partir de vos exports CSV mensuels existants et établit des connexions GraphQL en temps réel vers votre instance GitLab.",[12,1336,1337],{},[55,1338,1339],{},"Automatisation via les scripts Python",[12,1341,1342],{},"Cette approche déploie toute sa puissance lorsque vous exploitez les scripts Python pour automatiser l'ensemble du workflow de collecte et de traitement des données. La solution comprend des scripts Python complets qui peuvent être facilement personnalisés et planifiés.",[12,1344,1345],{},[55,1346,1347],{},"Intégration GitLab CI/CD",[12,1349,1350,1351,1356],{},"Pour une automatisation à l'échelle de l'entreprise, intégrez ces scripts Python dans des ",[16,1352,1355],{"href":1353,"rel":1354},"https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/",[],"pipelines CI/CD"," planifiés. Cette approche exploite votre infrastructure GitLab existante et garantit une collecte de données cohérente et fiable :",[149,1358,1360],{"className":321,"code":1359,"language":323,"meta":154,"style":154},"\n\n# .gitlab-ci.yml example\n\n\nduo_analytics_collection:\n  stage: analytics\n  script:\n    - python scripts/enhanced_duo_data_collection.py\n    - python scripts/metric_aggregations.py\n    - ./deploy_dashboard_updates.sh\n  schedule:\n    - cron: \"0 2 1 * *\"  # Monthly on 1st at 2 AM\n  only:\n    - schedules\n",[156,1361,1362,1366,1370,1375,1379,1383,1390,1399,1406,1414,1421,1428,1435,1450,1457],{"__ignoreMap":154},[159,1363,1364],{"class":161,"line":162},[159,1365,166],{"emptyLinePlaceholder":165},[159,1367,1368],{"class":161,"line":169},[159,1369,166],{"emptyLinePlaceholder":165},[159,1371,1372],{"class":161,"line":183},[159,1373,1374],{"class":353},"# .gitlab-ci.yml example\n",[159,1376,1377],{"class":161,"line":188},[159,1378,166],{"emptyLinePlaceholder":165},[159,1380,1381],{"class":161,"line":370},[159,1382,166],{"emptyLinePlaceholder":165},[159,1384,1385,1388],{"class":161,"line":384},[159,1386,1387],{"class":334},"duo_analytics_collection",[159,1389,339],{"class":338},[159,1391,1392,1394,1396],{"class":161,"line":398},[159,1393,600],{"class":334},[159,1395,347],{"class":338},[159,1397,1398],{"class":176},"analytics\n",[159,1400,1401,1404],{"class":161,"line":412},[159,1402,1403],{"class":334},"  script",[159,1405,339],{"class":338},[159,1407,1408,1411],{"class":161,"line":489},[159,1409,1410],{"class":338},"    - ",[159,1412,1413],{"class":176},"python scripts/enhanced_duo_data_collection.py\n",[159,1415,1416,1418],{"class":161,"line":494},[159,1417,1410],{"class":338},[159,1419,1420],{"class":176},"python scripts/metric_aggregations.py\n",[159,1422,1423,1425],{"class":161,"line":505},[159,1424,1410],{"class":338},[159,1426,1427],{"class":176},"./deploy_dashboard_updates.sh\n",[159,1429,1430,1433],{"class":161,"line":510},[159,1431,1432],{"class":334},"  schedule",[159,1434,339],{"class":338},[159,1436,1437,1439,1442,1444,1447],{"class":161,"line":515},[159,1438,1410],{"class":338},[159,1440,1441],{"class":334},"cron",[159,1443,347],{"class":338},[159,1445,1446],{"class":176},"\"0 2 1 * *\"",[159,1448,1449],{"class":353},"  # Monthly on 1st at 2 AM\n",[159,1451,1452,1455],{"class":161,"line":521},[159,1453,1454],{"class":334},"  only",[159,1456,339],{"class":338},[159,1458,1459,1461],{"class":161,"line":526},[159,1460,1410],{"class":338},[159,1462,1463],{"class":176},"schedules\n",[12,1465,1466,1467,1472],{},"Cette stratégie d'automatisation transforme la collecte manuelle de données en un moteur d'analyse autonome. Vos scripts Python s'exécutent mensuellement via les pipelines ",[16,1468,1471],{"href":1469,"rel":1470},"https://about.gitlab.com/fr-fr/topics/ci-cd/",[],"CI/CD"," de GitLab, collectent automatiquement les données d'utilisation, calculent les métriques de ROI et mettent à jour les tableaux de bord, le tout sans intervention manuelle.",[12,1474,1475],{},"Une fois automatisée, la solution fonctionne de manière fluide : les pipelines planifiés exécutent les scripts de collecte de données Python, traitent les réponses GraphQL en indicateurs commerciaux et mettent à jour les données du tableau de bord. Vous découvrirez ainsi de véritables modèles d'utilisation dans le tableau de bord comme les volumes de suggestions de code par langage de programmation, les tendances d'adoption des utilisateurs entre les équipes et le taux d'utilisation des licences.",[12,1477,1478],{},"Dans le tableau de bord, la vue d'ensemble du ROI est ici le véritable atout. Vous y trouverez des métriques d'engagement concrètes qui peuvent être converties en impact commercial pour votre entreprise : vous découvrirez peut-être que vos utilisateurs actifs de GitLab Duo génèrent un ROI mensuel de 127 % grâce à des gains de temps et de productivité, tandis que 23 % de vos licences restent sous-utilisées.",[12,1480,1481],{},"Ces informations se traduisent immédiatement en recommandations concrètes : vous pouvez ainsi fournir des licences aux équipes les plus performantes, mettre en place une formation ciblée pour les utilisateurs avec des licences sous-utilisées et élaborer des arguments commerciaux basés sur les données pour une adoption plus large de l'IA.",[38,1483,1485],{"id":1484},"pourquoi-choisir-gitlab","Pourquoi choisir GitLab ?",[12,1487,1488,1489,1494],{},"La plateforme ",[16,1490,1493],{"href":1491,"rel":1492},"https://about.gitlab.com/fr-fr/topics/devsecops/",[],"DevSecOps"," complète de GitLab fournit la base idéale pour l'analyse et l'évaluation de l'IA en entreprise. Avec des API GraphQL natives, un accès flexible aux données et des capacités d’IA intégrées via GitLab Duo, les entreprises peuvent centraliser l'évaluation de l'IA tout au long du cycle de développement logiciel sans perturber les workflows existants.",[12,1496,1497],{},"L'architecture ouverte de la solution permet des solutions d'analyse personnalisées comme celle développée dans le cadre de notre programme d'accélération GitLab Duo. L'engagement de GitLab en faveur d’une conception API-first signifie que vous pouvez extraire des données d'utilisation détaillées, intégrer avec les systèmes d'entreprise existants et élaborer des calculs de ROI sophistiqués qui s'alignent sur des métriques spécifiques et les exigences de création de rapports de votre organisation.",[12,1499,1500],{},"Au-delà des capacités techniques, notre approche garantit que vous ne faites pas que mettre en œuvre des outils, vous élaborez également des stratégies d'adoption de l'IA durables. Cette solution conçue spécialement dans le cadre du programme d'accélération GitLab Duo illustre parfaitement cette approche avec des conseils pratiques, des frameworks éprouvés et des solutions personnalisées qui répondent à de véritables défis comme le calcul du ROI et l'optimisation des licences.",[12,1502,1503],{},"À mesure que GitLab continue d'améliorer ses capacités d'analyse avec l'IA native, cette approche n'en est que plus précieuse. Les frameworks de calcul, les indicateurs clés de performance et les processus de collecte de données établis via des solutions d'analyse personnalisées s'intègrent de manière transparente aux fonctionnalités natives améliorées et garantissent que votre investissement dans l'évaluation de l'IA évolue au même rythme que GitLab.",[38,1505,1507],{"id":1506},"essayez-gitlab-duo-dès-aujourdhui","Essayez GitLab Duo dès aujourd'hui",[12,1509,1510],{},"Le calcul du ROI de l'IA n'est qu’un début. Avec les fonctionnalités de GitLab Duo, vous pouvez obtenir une analyse complète qui suit non seulement l'utilisation de l'IA, mais sert aussi de base pour une optimisation basée sur les données. Cette base peut ensuite évoluer avec la croissance de votre entreprise et avec les capacités d'IA en pleine expansion de GitLab.",[12,1512,1513],{},"La solution d'analyse développée dans le cadre du programme d'accélération de GitLab Duo démontre comment les partenariats axés sur la réussite client peuvent apporter une valeur immédiate et des avantages stratégiques à long terme. Du déploiement initial au calcul du ROI à l'échelle de l'entreprise, cette solution offre la visibilité et les données nécessaires pour maximiser les investissements dans l’IA et favoriser son adoption durable.",[12,1515,1516],{},"La combinaison de l'automatisation Python, de l'intégration GitLab CI/CD et de l'analyse sur mesure crée un avantage concurrentiel qui s'étend bien au-delà de la productivité individuelle des équipes de développement. Elle permet une prise de décision stratégique, optimise l'allocation des ressources et fournit des arguments commerciaux convaincants pour un investissement et une expansion continus de l'IA.",[12,1518,1519],{},"L'avenir du développement alimenté par l'IA est basé sur les données, et commence par une évaluation approfondie. Que vous commenciez votre parcours dans l’IA ou que vous optimisiez des investissements existants, GitLab fournit à la fois la plateforme et la base du partenariat nécessaires pour réussir.",[1521,1522,1523],"blockquote",{},[12,1524,1525,1526,21],{},"Lancez-vous dès aujourd'hui avec GitLab Duo et profitez d'un ",[16,1527,1529],{"href":18,"rel":1528},[],"essai gratuit de GitLab Ultimate avec GitLab Duo Enterprise",[1531,1532,1533],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}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 .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sqxcx, html code.shiki .sqxcx{--shiki-default:#E36209}",{"title":154,"searchDepth":169,"depth":169,"links":1535},[1536,1539,1549,1550,1551],{"id":40,"depth":169,"text":41,"children":1537},[1538],{"id":97,"depth":183,"text":98},{"id":107,"depth":169,"text":108,"children":1540},[1541,1542,1543,1544,1545,1546,1547,1548],{"id":120,"depth":183,"text":121},{"id":143,"depth":183,"text":144},{"id":206,"depth":183,"text":207},{"id":306,"depth":183,"text":307},{"id":553,"depth":183,"text":554},{"id":778,"depth":183,"text":779},{"id":811,"depth":183,"text":812},{"id":939,"depth":183,"text":940},{"id":1317,"depth":169,"text":1318},{"id":1484,"depth":169,"text":1485},{"id":1506,"depth":169,"text":1507},"ai","2025-09-15","Découvrez comment transformer des données d'utilisation brutes en informations exploitables et en calculs de ROI à l’aide de ce tutoriel.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1749662840/Blog/Hero%20Images/ai-experiment-stars.png",{},"/fr-fr/blog/measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics",{"config":1562,"title":1563,"ogTitle":1563,"description":1564,"ogDescription":1564,"ogImage":1558},{"noIndex":1557},"Guide pratique de GitLab Duo Analytics","Transformez les données d'utilisation brutes en informations exploitables et en calculs de ROI à l’aide de ce tutoriel.","measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics","fr-fr/blog/measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics",[1568,1569,1570],"AI","product","tutorial","BlogPost","UTwjevyZfhLv_3cyAt8JwYkoGTVwjSGebAMT6vUC5iQ",{"logo":1574,"freeTrial":1579,"sales":1584,"login":1589,"items":1594,"search":1922,"minimal":1958,"duo":1977,"switchNav":1986,"pricingDeployment":1997},{"config":1575},{"href":1576,"dataGaName":1577,"dataGaLocation":1578},"/fr-fr/","gitlab logo","header",{"text":1580,"config":1581},"Commencer un essai gratuit",{"href":1582,"dataGaName":1583,"dataGaLocation":1578},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":1585,"config":1586},"Demander une démo",{"href":1587,"dataGaName":1588,"dataGaLocation":1578},"/fr-fr/sales/?contact-topic=request-demo","sales",{"text":1590,"config":1591},"Connexion",{"href":1592,"dataGaName":1593,"dataGaLocation":1578},"https://gitlab.com/users/sign_in/","sign in",[1595,1624,1725,1730,1844,1900],{"text":1596,"config":1597,"menu":1599},"Plateforme",{"dataNavLevelOne":1598},"platform",{"type":1600,"columns":1601},"cards",[1602,1608,1616],{"title":1596,"description":1603,"link":1604},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":1605,"config":1606},"Explorer notre plateforme",{"href":1607,"dataGaName":1598,"dataGaLocation":1578},"/fr-fr/platform/",{"title":1609,"description":1610,"link":1611},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":1612,"config":1613},"Découvrir GitLab Duo",{"href":1614,"dataGaName":1615,"dataGaLocation":1578},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":1617,"description":1618,"link":1619},"Pourquoi GitLab ?","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":1620,"config":1621},"En savoir plus",{"href":1622,"dataGaName":1623,"dataGaLocation":1578},"/fr-fr/why-gitlab/","why gitlab",{"text":1625,"left":165,"config":1626,"menu":1628},"Produit",{"dataNavLevelOne":1627},"solutions",{"type":1629,"link":1630,"columns":1634,"feature":1704},"lists",{"text":1631,"config":1632},"Voir toutes les solutions",{"href":1633,"dataGaName":1627,"dataGaLocation":1578},"/fr-fr/solutions/",[1635,1659,1682],{"title":1636,"description":1637,"link":1638,"items":1643},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":1639},{"icon":1640,"href":1641,"dataGaName":1642,"dataGaLocation":1578},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[1644,1647,1650,1655],{"text":1471,"config":1645},{"href":1646,"dataGaLocation":1578,"dataGaName":1471},"/fr-fr/solutions/continuous-integration/",{"text":1609,"config":1648},{"href":1614,"dataGaLocation":1578,"dataGaName":1649},"gitlab duo agent platform - product menu",{"text":1651,"config":1652},"Gestion du code source",{"href":1653,"dataGaLocation":1578,"dataGaName":1654},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":1656,"config":1657},"Livraison de logiciels automatisée",{"href":1641,"dataGaLocation":1578,"dataGaName":1658},"Automated software delivery",{"title":1660,"description":1661,"link":1662,"items":1667},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":1663},{"href":1664,"dataGaName":1665,"dataGaLocation":1578,"icon":1666},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[1668,1672,1677],{"text":1669,"config":1670},"Tests de sécurité des applications",{"href":1664,"dataGaName":1671,"dataGaLocation":1578},"Application security testing",{"text":1673,"config":1674},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":1675,"dataGaLocation":1578,"dataGaName":1676},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":1678,"config":1679},"Conformité logicielle",{"href":1680,"dataGaName":1681,"dataGaLocation":1578},"/fr-fr/solutions/software-compliance/","software compliance",{"title":1683,"link":1684,"items":1689},"Mesures",{"config":1685},{"icon":1686,"href":1687,"dataGaName":1688,"dataGaLocation":1578},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[1690,1694,1699],{"text":1691,"config":1692},"Visibilité et mesures",{"href":1687,"dataGaLocation":1578,"dataGaName":1693},"Visibility and Measurement",{"text":1695,"config":1696},"Gestion de la chaîne de valeur",{"href":1697,"dataGaLocation":1578,"dataGaName":1698},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":1700,"config":1701},"Analyses et informations",{"href":1702,"dataGaLocation":1578,"dataGaName":1703},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":1705,"type":1629,"items":1706},"GitLab",[1707,1713,1719],{"text":1708,"config":1709},"Entreprises",{"icon":1710,"href":1711,"dataGaLocation":1578,"dataGaName":1712},"Building","/fr-fr/enterprise/","enterprise",{"text":1714,"config":1715},"Pour les PME",{"icon":1716,"href":1717,"dataGaLocation":1578,"dataGaName":1718},"Work","/fr-fr/small-business/","small business",{"text":1720,"config":1721},"Pour le secteur public",{"icon":1722,"href":1723,"dataGaLocation":1578,"dataGaName":1724},"Organization","/fr-fr/solutions/public-sector/","public sector",{"text":1726,"config":1727},"Tarifs",{"href":1728,"dataGaName":1729,"dataGaLocation":1578,"dataNavLevelOne":1729},"/fr-fr/pricing/","pricing",{"text":1731,"config":1732,"menu":1734},"Ressources",{"dataNavLevelOne":1733},"resources",{"type":1629,"link":1735,"columns":1739,"feature":1833},{"text":1736,"config":1737},"Afficher toutes les ressources",{"href":1738,"dataGaName":1733,"dataGaLocation":1578},"/fr-fr/resources/",[1740,1773,1800],{"title":1741,"items":1742},"Premiers pas",[1743,1748,1753,1758,1763,1768],{"text":1744,"config":1745},"Installation",{"href":1746,"dataGaName":1747,"dataGaLocation":1578},"/fr-fr/install/","install",{"text":1749,"config":1750},"Guides de démarrage",{"href":1751,"dataGaName":1752,"dataGaLocation":1578},"/fr-fr/get-started/","quick setup checklists",{"text":1754,"config":1755},"Apprentissage",{"href":1756,"dataGaLocation":1578,"dataGaName":1757},"https://university.gitlab.com/","learn",{"text":1759,"config":1760},"Documentation",{"href":1761,"dataGaName":1762,"dataGaLocation":1578},"https://docs.gitlab.com/","product documentation",{"text":1764,"config":1765},"Vidéos sur les bonnes pratiques",{"href":1766,"dataGaName":1767,"dataGaLocation":1578},"/fr-fr/getting-started-videos/","best practice videos",{"text":1769,"config":1770},"Intégrations",{"href":1771,"dataGaName":1772,"dataGaLocation":1578},"/fr-fr/integrations/","integrations",{"title":1774,"items":1775},"Découvrir",[1776,1781,1786,1791,1795],{"text":1777,"config":1778},"Témoignages clients",{"href":1779,"dataGaName":1780,"dataGaLocation":1578},"/fr-fr/customers/","customer success stories",{"text":1782,"config":1783},"Blog",{"href":1784,"dataGaName":1785,"dataGaLocation":1578},"/fr-fr/blog/","blog",{"text":1787,"config":1788},"Demo Hub",{"href":1789,"dataGaName":1790,"dataGaLocation":1578},"/fr-fr/demo-hub/","demo hub",{"text":1792,"config":1793},"The Source",{"href":1794,"dataGaName":1785,"dataGaLocation":1578},"/fr-fr/the-source/",{"text":1796,"config":1797},"Travail à distance",{"href":1798,"dataGaName":1799,"dataGaLocation":1578},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1801,"items":1802},"Connecter",[1803,1808,1813,1818,1823,1828],{"text":1804,"config":1805},"Services GitLab",{"href":1806,"dataGaName":1807,"dataGaLocation":1578},"/fr-fr/services/","services",{"text":1809,"config":1810},"Contribuer",{"href":1811,"dataGaName":1812,"dataGaLocation":1578},"https://contributors.gitlab.com","contribute",{"text":1814,"config":1815},"Communauté",{"href":1816,"dataGaName":1817,"dataGaLocation":1578},"/community/","community",{"text":1819,"config":1820},"Forum",{"href":1821,"dataGaName":1822,"dataGaLocation":1578},"https://forum.gitlab.com/","forum",{"text":1824,"config":1825},"Événements",{"href":1826,"dataGaName":1827,"dataGaLocation":1578},"/events/","events",{"text":1829,"config":1830},"Partenaires",{"href":1831,"dataGaName":1832,"dataGaLocation":1578},"/fr-fr/partners/","partners",{"config":1834,"title":1837,"text":1838,"link":1839},{"background":1835,"textColor":1836},"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":1840,"config":1841},"Lire les articles les plus récents",{"href":1842,"dataGaName":1843,"dataGaLocation":1578},"/fr-fr/whats-new/","whats new",{"text":1845,"config":1846,"menu":1848},"Société",{"dataNavLevelOne":1847},"company",{"type":1629,"columns":1849},[1850],{"items":1851},[1852,1857,1863,1865,1870,1875,1880,1885,1890,1895],{"text":1853,"config":1854},"À propos",{"href":1855,"dataGaName":1856,"dataGaLocation":1578},"/fr-fr/company/","about",{"text":1858,"config":1859,"footerGa":1862},"Carrières",{"href":1860,"dataGaName":1861,"dataGaLocation":1578},"/jobs/","jobs",{"dataGaName":1861},{"text":1824,"config":1864},{"href":1826,"dataGaName":1827,"dataGaLocation":1578},{"text":1866,"config":1867},"Leadership",{"href":1868,"dataGaName":1869,"dataGaLocation":1578},"/company/team/e-group/","leadership",{"text":1871,"config":1872},"Manuel",{"href":1873,"dataGaName":1874,"dataGaLocation":1578},"https://handbook.gitlab.com/","handbook",{"text":1876,"config":1877},"Relations avec les investisseurs",{"href":1878,"dataGaName":1879,"dataGaLocation":1578},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1881,"config":1882},"Trust Center",{"href":1883,"dataGaName":1884,"dataGaLocation":1578},"/fr-fr/security/","trust center",{"text":1886,"config":1887},"Centre pour la transparence de l'IA",{"href":1888,"dataGaName":1889,"dataGaLocation":1578},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":1891,"config":1892},"Newsletter",{"href":1893,"dataGaName":1894,"dataGaLocation":1578},"/company/contact/#contact-forms","newsletter",{"text":1896,"config":1897},"Presse",{"href":1898,"dataGaName":1899,"dataGaLocation":1578},"/press/","press",{"text":1901,"config":1902,"menu":1903},"Nous contacter",{"dataNavLevelOne":1847},{"type":1629,"columns":1904},[1905],{"items":1906},[1907,1912,1917],{"text":1908,"config":1909},"Contacter l'équipe commerciale",{"href":1910,"dataGaName":1911,"dataGaLocation":1578},"/fr-fr/sales/","talk to sales",{"text":1913,"config":1914},"Assistance GitLab",{"href":1915,"dataGaName":1916,"dataGaLocation":1578},"https://support.gitlab.com/hc/en-us","support portal",{"text":1918,"config":1919},"Portail clients GitLab",{"href":1920,"dataGaName":1921,"dataGaLocation":1578},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1923,"login":1924,"suggestions":1931},"Fermer",{"text":1925,"link":1926},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":1927,"config":1928},"GitLab.com",{"href":1592,"dataGaName":1929,"dataGaLocation":1930},"search login","search",{"text":1932,"default":1933},"Suggestions",[1934,1937,1942,1944,1949,1954],{"text":1609,"config":1935},{"href":1614,"dataGaName":1936,"dataGaLocation":1930},"GitLab Duo Agent Platform",{"text":1938,"config":1939},"Suggestions de code (IA)",{"href":1940,"dataGaName":1941,"dataGaLocation":1930},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":1471,"config":1943},{"href":1646,"dataGaName":1471,"dataGaLocation":1930},{"text":1945,"config":1946},"GitLab sur AWS",{"href":1947,"dataGaName":1948,"dataGaLocation":1930},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":1950,"config":1951},"GitLab sur Google Cloud",{"href":1952,"dataGaName":1953,"dataGaLocation":1930},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":1955,"config":1956},"Pourquoi utiliser GitLab ?",{"href":1622,"dataGaName":1957,"dataGaLocation":1930},"Why GitLab?",{"freeTrial":1959,"mobileIcon":1964,"desktopIcon":1969,"secondaryButton":1972},{"text":1960,"config":1961},"Commencer votre essai gratuit",{"href":1962,"dataGaName":1583,"dataGaLocation":1963},"https://gitlab.com/-/trials/new/","nav",{"altText":1965,"config":1966},"Icône GitLab",{"src":1967,"dataGaName":1968,"dataGaLocation":1963},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1965,"config":1970},{"src":1971,"dataGaName":1968,"dataGaLocation":1963},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1973,"config":1974},"Commencer",{"href":1975,"dataGaName":1976,"dataGaLocation":1963},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":1978,"mobileIcon":1982,"desktopIcon":1984},{"text":1979,"config":1980},"En savoir plus sur GitLab Duo",{"href":1614,"dataGaName":1981,"dataGaLocation":1963},"gitlab duo",{"altText":1965,"config":1983},{"src":1967,"dataGaName":1968,"dataGaLocation":1963},{"altText":1965,"config":1985},{"src":1971,"dataGaName":1968,"dataGaLocation":1963},{"button":1987,"mobileIcon":1992,"desktopIcon":1994},{"text":1988,"config":1989},"/switch",{"href":1990,"dataGaName":1991,"dataGaLocation":1963},"#contact","switch",{"altText":1965,"config":1993},{"src":1967,"dataGaName":1968,"dataGaLocation":1963},{"altText":1965,"config":1995},{"src":1996,"dataGaName":1968,"dataGaLocation":1963},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1998,"mobileIcon":2003,"desktopIcon":2005},{"text":1999,"config":2000},"Retour aux tarifs",{"href":1728,"dataGaName":2001,"dataGaLocation":1963,"icon":2002},"back to pricing","GoBack",{"altText":1965,"config":2004},{"src":1967,"dataGaName":1968,"dataGaLocation":1963},{"altText":1965,"config":2006},{"src":1971,"dataGaName":1968,"dataGaLocation":1963},{"title":2008,"button":2009,"config":2013},"GitLab Orbit est arrivé : la couche de contexte pour les agents d'IA.",{"text":1620,"config":2010},{"href":2011,"dataGaName":2012,"dataGaLocation":1578},"/fr-fr/gitlab-orbit/","orbit",{"layout":2014,"disabled":1557},"release",{"data":2016},{"text":2017,"source":2018,"edit":2024,"contribute":2029,"config":2033,"items":2038,"minimal":2245},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":2019,"config":2020},"Afficher le code source de la page",{"href":2021,"dataGaName":2022,"dataGaLocation":2023},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":2025,"config":2026},"Modifier cette page",{"href":2027,"dataGaName":2028,"dataGaLocation":2023},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1809,"config":2030},{"href":2031,"dataGaName":2032,"dataGaLocation":2023},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":2034,"facebook":2035,"youtube":2036,"linkedin":2037},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[2039,2085,2137,2180,2212],{"title":1726,"links":2040,"subMenu":2055},[2041,2045,2050],{"text":2042,"config":2043},"Voir les forfaits",{"href":1728,"dataGaName":2044,"dataGaLocation":2023},"view plans",{"text":2046,"config":2047},"GitLab Premium",{"href":2048,"dataGaName":2049,"dataGaLocation":2023},"/fr-fr/pricing/premium/","why premium",{"text":2051,"config":2052},"GitLab Ultimate",{"href":2053,"dataGaName":2054,"dataGaLocation":2023},"/fr-fr/pricing/ultimate/","why ultimate",[2056],{"title":1901,"links":2057},[2058,2060,2062,2065,2070,2075,2080],{"text":1908,"config":2059},{"href":1910,"dataGaName":1588,"dataGaLocation":2023},{"text":1913,"config":2061},{"href":1915,"dataGaName":1916,"dataGaLocation":2023},{"text":2063,"config":2064},"Portail clients",{"href":1920,"dataGaName":1921,"dataGaLocation":2023},{"text":2066,"config":2067},"Statut",{"href":2068,"dataGaName":2069,"dataGaLocation":2023},"https://status.gitlab.com/","status",{"text":2071,"config":2072},"Conditions d'utilisation",{"href":2073,"dataGaName":2074,"dataGaLocation":2023},"/terms/","terms of use",{"text":2076,"config":2077},"Politique de confidentialité",{"href":2078,"dataGaName":2079,"dataGaLocation":2023},"/fr-fr/privacy/","privacy statement",{"text":2081,"config":2082},"Gestion des cookies",{"dataGaName":2083,"dataGaLocation":2023,"id":2084,"isOneTrustButton":165},"cookie preferences","ot-sdk-btn",{"title":1625,"links":2086,"subMenu":2095},[2087,2091],{"text":2088,"config":2089},"Plateforme DevSecOps",{"href":1607,"dataGaName":2090,"dataGaLocation":2023},"devsecops platform",{"text":2092,"config":2093},"Développement assisté par l'IA",{"href":1614,"dataGaName":2094,"dataGaLocation":2023},"ai-assisted development",[2096],{"title":2097,"links":2098},"Thèmes",[2099,2103,2108,2113,2118,2122,2127,2132],{"text":1471,"config":2100},{"href":2101,"dataGaName":2102,"dataGaLocation":2023},"/fr-fr/topics/ci-cd/","cicd",{"text":2104,"config":2105},"GitOps",{"href":2106,"dataGaName":2107,"dataGaLocation":2023},"/fr-fr/topics/gitops/","gitops",{"text":2109,"config":2110},"DevOps",{"href":2111,"dataGaName":2112,"dataGaLocation":2023},"/fr-fr/topics/devops/","devops",{"text":2114,"config":2115},"Contrôle de version",{"href":2116,"dataGaName":2117,"dataGaLocation":2023},"/fr-fr/topics/version-control/","version control",{"text":1493,"config":2119},{"href":2120,"dataGaName":2121,"dataGaLocation":2023},"/fr-fr/topics/devsecops/","devsecops",{"text":2123,"config":2124},"Cloud-native",{"href":2125,"dataGaName":2126,"dataGaLocation":2023},"/fr-fr/topics/cloud-native/","cloud native",{"text":2128,"config":2129},"IA pour la programmation",{"href":2130,"dataGaName":2131,"dataGaLocation":2023},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":2133,"config":2134},"IA agentique",{"href":2135,"dataGaName":2136,"dataGaLocation":2023},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":2138,"links":2139},"Solutions",[2140,2143,2145,2150,2153,2156,2159,2162,2164,2167,2170,2175],{"text":1669,"config":2141},{"href":1664,"dataGaName":2142,"dataGaLocation":2023},"Application Security Testing",{"text":1656,"config":2144},{"href":1641,"dataGaName":1642,"dataGaLocation":2023},{"text":2146,"config":2147},"Développement Agile",{"href":2148,"dataGaName":2149,"dataGaLocation":2023},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":1651,"config":2151},{"href":1653,"dataGaName":2152,"dataGaLocation":2023},"source code management",{"text":1471,"config":2154},{"href":1646,"dataGaName":2155,"dataGaLocation":2023},"continuous integration & delivery",{"text":1695,"config":2157},{"href":1697,"dataGaName":2158,"dataGaLocation":2023},"value stream management",{"text":2104,"config":2160},{"href":2161,"dataGaName":2107,"dataGaLocation":2023},"/fr-fr/solutions/gitops/",{"text":1708,"config":2163},{"href":1711,"dataGaName":1712,"dataGaLocation":2023},{"text":2165,"config":2166},"PME",{"href":1717,"dataGaName":1718,"dataGaLocation":2023},{"text":2168,"config":2169},"Secteur public",{"href":1723,"dataGaName":1724,"dataGaLocation":2023},{"text":2171,"config":2172},"Éducation",{"href":2173,"dataGaName":2174,"dataGaLocation":2023},"/fr-fr/solutions/education/","education",{"text":2176,"config":2177},"Services financiers",{"href":2178,"dataGaName":2179,"dataGaLocation":2023},"/fr-fr/solutions/finance/","financial services",{"title":1731,"links":2181},[2182,2184,2186,2188,2191,2193,2196,2198,2200,2202,2204,2206,2208,2210],{"text":1744,"config":2183},{"href":1746,"dataGaName":1747,"dataGaLocation":2023},{"text":1749,"config":2185},{"href":1751,"dataGaName":1752,"dataGaLocation":2023},{"text":1754,"config":2187},{"href":1756,"dataGaName":1757,"dataGaLocation":2023},{"text":1759,"config":2189},{"href":1761,"dataGaName":2190,"dataGaLocation":2023},"docs",{"text":1782,"config":2192},{"href":1784,"dataGaName":1785,"dataGaLocation":2023},{"text":2194,"config":2195},"Nouveautés",{"href":1842,"dataGaName":1843,"dataGaLocation":2023},{"text":1777,"config":2197},{"href":1779,"dataGaName":1780,"dataGaLocation":2023},{"text":1796,"config":2199},{"href":1798,"dataGaName":1799,"dataGaLocation":2023},{"text":1804,"config":2201},{"href":1806,"dataGaName":1807,"dataGaLocation":2023},{"text":1809,"config":2203},{"href":1811,"dataGaName":1812,"dataGaLocation":2023},{"text":1814,"config":2205},{"href":1816,"dataGaName":1817,"dataGaLocation":2023},{"text":1819,"config":2207},{"href":1821,"dataGaName":1822,"dataGaLocation":2023},{"text":1824,"config":2209},{"href":1826,"dataGaName":1827,"dataGaLocation":2023},{"text":1829,"config":2211},{"href":1831,"dataGaName":1832,"dataGaLocation":2023},{"title":1845,"links":2213},[2214,2216,2218,2220,2222,2224,2229,2234,2236,2238,2240],{"text":1853,"config":2215},{"href":1855,"dataGaName":1847,"dataGaLocation":2023},{"text":1858,"config":2217},{"href":1860,"dataGaName":1861,"dataGaLocation":2023},{"text":1866,"config":2219},{"href":1868,"dataGaName":1869,"dataGaLocation":2023},{"text":1871,"config":2221},{"href":1873,"dataGaName":1874,"dataGaLocation":2023},{"text":1876,"config":2223},{"href":1878,"dataGaName":1879,"dataGaLocation":2023},{"text":2225,"config":2226},"Développement durable",{"href":2227,"dataGaName":2228,"dataGaLocation":2023},"/sustainability/","Sustainability",{"text":2230,"config":2231},"Diversité, inclusion et appartenance (DIB)",{"href":2232,"dataGaName":2233,"dataGaLocation":2023},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1881,"config":2235},{"href":1883,"dataGaName":1884,"dataGaLocation":2023},{"text":1891,"config":2237},{"href":1893,"dataGaName":1894,"dataGaLocation":2023},{"text":1896,"config":2239},{"href":1898,"dataGaName":1899,"dataGaLocation":2023},{"text":2241,"config":2242},"Déclaration de transparence sur l'esclavage moderne",{"href":2243,"dataGaName":2244,"dataGaLocation":2023},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":2246},[2247,2249,2251],{"text":2071,"config":2248},{"href":2073,"dataGaName":2074,"dataGaLocation":2023},{"text":2081,"config":2250},{"dataGaName":2083,"dataGaLocation":2023,"id":2084,"isOneTrustButton":165},{"text":2076,"config":2252},{"href":2078,"dataGaName":2079,"dataGaLocation":2023},[2254],{"id":2255,"title":7,"body":1556,"config":2256,"content":2259,"description":1556,"extension":2262,"meta":2263,"navigation":165,"path":2264,"seo":2265,"stem":2266,"__hash__":2267},"blogAuthors/en-us/blog/authors/paul-meresanu.yml",{"template":2257,"gitlabHandle":2258},"BlogAuthor","pmeresanu",{"name":7,"role":154,"config":2260},{"headshot":2261},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750267141/qpw5ayteg0sewyh7s8xi.png","yml",{},"/en-us/blog/authors/paul-meresanu",{},"en-us/blog/authors/paul-meresanu","S41feQ9U81y4EVDx5pEECPqpIEiKTCDLBOmNwjLyE1E",[2269,2277,2285],{"title":2270,"description":2271,"heroImage":2272,"category":1552,"date":2273,"authors":2274,"slug":2276,"externalUrl":1556},"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",[2275],"Michael Friedrich","modernize-java-with-cursor-and-gitlab",{"title":2278,"description":2279,"heroImage":2280,"category":1552,"date":2281,"authors":2282,"slug":2284,"externalUrl":1556},"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",[2283],"Sam Wiskow","ai-agents-for-migrating-rate-limiting-system",{"title":2286,"description":2287,"heroImage":2288,"category":1552,"date":2289,"authors":2290,"slug":2292,"externalUrl":1556},"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",[2291],"Jessica Taylor","agentic-coding-only-as-good-as-context",{"promotions":2294},[2295,2308,2319,2331],{"id":2296,"categories":2297,"header":2298,"text":2299,"button":2300,"image":2305},"ai-modernization",[1552],"L'IA tient-elle ses promesses à grande échelle ?","Le questionnaire ne prendra pas plus de 5 minutes.",{"text":2301,"config":2302},"Obtenez votre score de maturité IA",{"href":2303,"dataGaName":2304,"dataGaLocation":1785},"/fr-fr/assessments/ai-modernization-assessment/","modernization assessment",{"config":2306},{"src":2307},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":2309,"categories":2310,"header":2311,"text":2299,"button":2312,"image":2316},"devops-modernization",[1569,2121],"Vous contentez-vous de gérer des outils ou de livrer des innovations ?",{"text":2313,"config":2314},"Obtenez votre score de maturité DevOps",{"href":2315,"dataGaName":2304,"dataGaLocation":1785},"/fr-fr/assessments/devops-modernization-assessment/",{"config":2317},{"src":2318},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":2320,"categories":2321,"header":2323,"text":2299,"button":2324,"image":2328},"security-modernization",[2322],"security","Faut-il sacrifier la rapidité pour garantir la sécurité ?",{"text":2325,"config":2326},"Obtenez votre score de maturité en matière de sécurité",{"href":2327,"dataGaName":2304,"dataGaLocation":1785},"/fr-fr/assessments/security-modernization-assessment/",{"config":2329},{"src":2330},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":2332,"paths":2333,"header":2336,"text":2337,"button":2338,"image":2343},"github-azure-migration",[2334,2335],"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":2339,"config":2340},"Découvrez les différences entre GitLab et GitHub",{"href":2341,"dataGaName":2342,"dataGaLocation":1785},"/fr-fr/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":2344},{"src":2318},{"header":2346,"blurb":2347,"button":2348,"secondaryButton":2352},"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":1580,"config":2349},{"href":2350,"dataGaName":1583,"dataGaLocation":2351},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":1908,"config":2353},{"href":1910,"dataGaName":1588,"dataGaLocation":2351},1786803786059]