[{"data":1,"prerenderedAt":761},["ShallowReactive",2],{"/fr-fr/blog/exact-code-search-find-code-faster-across-repositories":3,"navigation-fr-fr":34,"banner-fr-fr":439,"footer-fr-fr":449,"blog-post-authors-fr-fr-Dmitry Gruzd":659,"blog-related-posts-fr-fr-exact-code-search-find-code-faster-across-repositories":673,"assessment-promotions-fr-fr":712,"next-steps-fr-fr":752},{"id":4,"title":5,"authorSlugs":6,"body":8,"categorySlug":9,"config":10,"content":14,"description":8,"extension":24,"isFeatured":11,"meta":25,"navigation":26,"path":27,"publishedDate":20,"seo":28,"stem":30,"tagSlugs":31,"__hash__":33},"blogPosts/fr-fr/blog/exact-code-search-find-code-faster-across-repositories.yml","Exact Code Search Find Code Faster Across Repositories",[7],"dmitry-gruzd",null,"product",{"featured":11,"template":12,"slug":13},false,"BlogPost","exact-code-search-find-code-faster-across-repositories",{"title":15,"description":16,"authors":17,"heroImage":19,"date":20,"body":21,"category":9,"tags":22},"Recherche exacte de code : trouvez rapidement du code dans vos dépôts","Découvrez comment trouver des correspondances exactes, utiliser des motifs regex et afficher des résultats contextuels dans des codes sources de plusieurs téraoctets. ",[18],"Dmitry Gruzd","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675154/Blog/Hero%20Images/blog-image-template-1800x945__8_.png","2025-07-23","Imaginez pouvoir cibler n'importe quelle ligne de code parmi 48 To de dépôts en quelques millisecondes. Ceci est désormais possible avec la fonctionnalité de [recherche exacte de code](https://docs.gitlab.com/ee/user/search/exact_code_search.html) de\nGitLab qui fournit une précision extrême, une prise en charge avancée des expressions régulières (regex) et des résultats contextuels sur plusieurs lignes. En présence de dépôts de code volumineux, cette fonctionnalité facilite considérablement le travail des équipes.\n\n## Pourquoi la recherche de code traditionnelle est-elle problématique ?\n\nToute personne travaillant avec du code connaît la frustration de devoir chercher du code dans plusieurs dépôts. Qu'il s'agisse de déboguer un problème, d'examiner des fichiers de configuration, de rechercher des vulnérabilités, de mettre à jour une documentation ou de vérifier la mise en œuvre d'un projet, vous savez exactement ce que vous cherchez, mais les outils de recherche traditionnels vous font régulièrement défaut.\n\nCes outils renvoient trop souvent des dizaines de faux positifs, manquent cruellement de contexte pour comprendre les résultats obtenus et sont de plus en plus lents à mesure que le code source s’étoffe. Par conséquent, vous perdez un temps précieux à chercher une aiguille dans une botte de foin au lieu de compiler, de sécuriser ou d'améliorer votre logiciel.\n\nLa fonctionnalité de recherche de code de GitLab était jusqu'ici prise en charge par Elasticsearch ou OpenSearch. Bien qu'excellents pour rechercher des tickets, des merge requests, des commentaires et d'autres données contenant du langage naturel, ces outils n'ont tout simplement pas été spécifiquement conçus pour le code. Après [avoir évalué de nombreuses options](https://gitlab.com/groups/gitlab-org/-/epics/7404), nous avons développé une meilleure solution.\n\n## Qu'est-ce que la recherche exacte de code ?\n\nLa **[recherche exacte de code](https://docs.gitlab.com/ee/user/search/exact_code_search.html)** de GitLab est actuellement en phase de test bêta et optimisée par [Zoekt](https://github.com/sourcegraph/zoekt) (prononcé « zookt », qui signifie « recherche » en néerlandais). Zoekt est un moteur de recherche de code open source initialement développé par Google et aujourd'hui maintenu par Sourcegraph. Conçu spécifiquement pour une recherche de code à la fois rapide et précise à grande échelle, nous l'avons enrichi avec des intégrations propres à GitLab, des améliorations avancées et une intégration facilitée du système d'autorisations.\n\nCette fonctionnalité révolutionne la manière dont vous recherchez et comprenez le code grâce aux trois éléments clés :\n\n**1. Un mode de recherche par correspondance exacte**\n\nLorsque vous basculez en **mode de recherche par correspondance exacte**, le moteur de recherche ne renvoie que les résultats qui correspondent exactement à votre requête, éliminant ainsi les faux positifs. Cette précision est inestimable dans les cas de figure suivants :\n\n* Vous recherchez des messages d'erreur spécifiques.\n\n* Vous recherchez des signatures de fonctions précises.\n\n* Vous recherchez des instances de noms de variables spécifiques.\n\n**2. Un mode de recherche par expression régulière**\n\nPour les recherches complexes, ce mode vous permet de créer des motifs de recherche sophistiqués :\n\n* Trouvez des fonctions selon des motifs de nommage spécifiques.\n\n* Déterminez l’emplacement des variables qui correspondent à certains critères précis.\n\n* Identifiez les failles de sécurité potentielles à l'aide de la correspondance de motifs.\n\n**3. Des correspondances sur plusieurs lignes**\n\n![Recherche exacte de code](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750704179/ttjuilkt3v7gtyywnchx.png)\n\nEn plus de la ligne contenant le code recherché, vous avez accès au contexte environnant qui est indispensable pour bien comprendre le code. Vous n'avez donc plus besoin d'accéder aux fichiers dans le seul but d'obtenir un contexte plus clair, ce qui accélère considérablement votre workflow.\n\n## Des fonctionnalités aux workflows : cas d'utilisation et impact associé \n\nExaminons maintenant comment ces nouvelles capacités se traduisent dans le quotidien des équipes de développement  :\n\n### Débogage en quelques secondes\n\nVoici un exemple de workflow tel qu'il pouvait être envisagé avant que la recherche exacte de code ne soit disponible : vous deviez copier un message d'erreur, lancer une recherche, parcourir une longue liste de correspondances partielles dans les commentaires, la documentation et les fragments de code, cliquer sur plusieurs fichiers... avant de trouver enfin la ligne de code que vous recherchiez.\n\nAvec la recherche exacte de code, le processus est le suivant : \n\n1. Vous copiez le message d'erreur exact. \n\n2. Vous le collez dans la fonctionnalité de recherche exacte de code en activant le mode de recherche par correspondance exacte.\n\n3. Vous trouvez instantanément l'emplacement précis où l'erreur est présente, avec le contexte environnant nécessaire à sa compréhension.\n\n**Impact :** vous réduisez ainsi le temps de débogage de plusieurs minutes à quelques secondes, sans frustration ni faux positifs.\n\n### Exploration rapide de codes sources inconnus\n\nVoici un exemple de workflow tel qu'il pouvait être envisagé avant que la recherche exacte de code ne soit disponible : vous deviez parcourir les répertoires, deviner l'emplacement probable des fichiers, ouvrir des dizaines de fichiers et élaborer peu à peu une compréhension globale du code source.\n\nAvec la recherche exacte de code, le processus est le suivant : \n\n* Vous recherchez directement les méthodes ou classes principales avec le mode de recherche par correspondance exacte.\n\n* Vous examinez plusieurs correspondances de lignes pour comprendre les détails de leur mise en œuvre.\n\n* Vous utilisez le mode de recherche par expression régulière pour identifier des motifs similaires dans l'ensemble du code source.\n\n**Impact :** vous bénéficiez d'une vision claire de l'architecture du code en quelques minutes plutôt qu'en quelques heures, ce qui accélère considérablement l'intégration de nouveaux membres au sein de l'équipe ainsi que la collaboration transversale.\n\n### Refactorisation sécurisée\n\nVoici un exemple de workflow tel qu'il pouvait être envisagé avant que la recherche exacte de code ne soit disponible : vous deviez localiser toutes les occurrences d'une méthode, mais certaines passaient inaperçues, et vous introduisiez des bogues en raison d'une refactorisation incomplète.\n\nAvec la recherche exacte de code, le processus est le suivant : \n\n* Vous utilisez le mode de recherche par correspondance exacte pour identifier toutes les occurrences de méthodes ou de variables.\n\n* Vous examinez le contexte pour comprendre les motifs d'utilisation.\n\n* Vous planifiez votre refactorisation avec des informations complètes sur son impact.\n\n  **Impact :** vous éliminez les bogues liés aux « occurrences manquées » qui entravent souvent les efforts de refactorisation, vous améliorez la qualité du code et vous réduisez les ajustements nécessaires.\n\n### Audit de sécurité optimisé\n\nLes équipes de sécurité peuvent :\n\n* Créer des motifs regex ciblant les portions de code présentant des vulnérabilités connues\n\n* Effectuer une recherche dans tous les dépôts d'un espace de nommage\n\n* Identifier rapidement les failles de sécurité potentielles avec un contexte facilitant l'évaluation des risques\n\n**Impact :** vous transformez vos audits de sécurité, souvent manuels et sujets aux erreurs, en revues systématiques et exhaustives.\n\n### Informations recoupées entre plusieurs dépôts\n\nVos équipes peuvent effectuer une recherche dans l'ensemble de votre espace de nommage ou de votre instance pour :\n\n* Identifier des implémentations similaires dans différents projets\n\n* Identifier des opportunités de création de bibliothèques partagées ou de standardisation du code\n\n**Impact :** vous éliminez les silos entre les projets et identifiez les opportunités de réutilisation et de standardisation du code.\n\n## Zoekt : rapidité et précision au service du code\n\nAvant de détailler nos réalisations à grande échelle, explorons ce qui distingue Zoekt des moteurs de recherche traditionnels, et pourquoi il peut trouver des correspondances exactes aussi rapidement.\n\n### Trigrammes positionnels : le secret d'une correspondance exacte ultra-rapide\n\nLa rapidité de Zoekt provient de son utilisation de **trigrammes positionnels**, une technique qui indexe chaque séquence de trois caractères en conservant leur position exacte dans les fichiers. Cette approche résout l'un des plus grands défis que les équipes de développement rencontrent avec la recherche de code basée sur Elasticsearch : les faux positifs.\n\nVoici le principe :\n\nLes **moteurs de recherche plein texte traditionnels** comme Elasticsearch segmentent le code en mots isolés et perdent ainsi les informations de position. Par exemple, lorsque vous recherchez `getUserId()`, ils peuvent renvoyer des résultats contenant les fragments **user**, **get** et **Id** dispersés dans un même fichier, ce qui génère des faux positifs, source de frustration pour les utilisateurs de GitLab.\n\nLes **trigrammes positionnels de Zoekt**, quant à eux, conservent les séquences de caractères exactes ainsi que leurs positions dans le code. Ainsi, lorsque vous recherchez `getUserId()`, Zoekt cible précisément les trigrammes exacts, comme **get**, **etU**, **tUs**, **Use**, **ser**, **erI**, **rId**, **Id(\", \"d()**, dans cette séquence précise et à ces positions exactes. Cette approche garantit que seules les correspondances exactes sont renvoyées.\n\nAinsi, des recherches qui renvoyaient auparavant des centaines de faux positifs ne renvoient désormais plus que les correspondances exactes souhaitées. Cette fonctionnalité était [l'une des plus demandées](https://gitlab.com/gitlab-org/gitlab/-/issues/325234) pour une bonne raison : les équipes de développement perdaient beaucoup trop de temps à passer au crible les faux positifs.\n\n### Performances des expressions régulières à grande échelle\n\nZoekt excelle dans la recherche de correspondances exactes, mais est également optimisé pour les recherches d'expressions régulières. Grâce à des algorithmes sophistiqués, il convertit les motifs regex en requêtes trigrammes efficaces lorsque cela est possible, garantissant ainsi une rapidité constante, même pour les recherches de motifs complexes portant sur plusieurs téraoctets de code.\n\n## Une fonctionnalité adaptée aux entreprises\n\nLa recherche exacte de code est puissante et conçue pour gérer de très grands volumes de code tout en offrant des temps de réponse remarquables. Il ne s'agit pas du simple ajout d'une nouvelle fonctionnalité à l'interface utilisateur, mais d'une architecture backend entièrement repensée.\n\n### Gestion de plusieurs téraoctets de code en toute simplicité\n\nRien que sur GitLab.com, notre infrastructure de recherche exacte de code indexe et interroge plus de **48 To** de données de code, tout en offrant des temps de réponse ultra-rapides. Cette volumétrie couvre des millions de dépôts répartis dans des milliers d'espaces de nommage, tous consultables en seulement quelques millisecondes, soit plus de code que l'ensemble des projets du noyau Linux, d'Android et de Chromium combinés. Et pourtant, la recherche exacte de code peut trouver une ligne spécifique dans l'ensemble du code source en quelques millisecondes seulement.\n\n### Architecture de nœuds à enregistrement automatique\n\nParmi nos améliorations techniques, voici quelques innovations clés : \n\n* **Enregistrement automatique des nœuds :** les nœuds Zoekt s'enregistrent automatiquement auprès de GitLab.\n\n* **Attribution dynamique des partitions :** le système attribue automatiquement les espaces de nommage entre les nœuds.\n\n* **Surveillance de l'état :** les nœuds qui ne s'enregistrent pas sont automatiquement signalés comme hors ligne.\n\nCette architecture à configuration automatique simplifie considérablement la montée en charge. Lorsque la capacité doit être augmentée, les administrateurs peuvent tout simplement ajouter de nouveaux nœuds, sans aucune reconfiguration complexe.\n\n### Système distribué avec répartition de charge intelligente\n\nEn arrière-plan, la recherche exacte de code repose sur un système distribué comprenant les composants clés suivants :\n\n* **Nœuds de recherche spécialisés :** serveurs dédiés pour gérer l'indexation et la recherche\n\n* **Partitionnement intelligent :** le code est réparti entre les nœuds en fonction des espaces de nommage\n\n* **Équilibrage automatique de la charge :** le système répartit intelligemment le travail en fonction des capacités disponibles\n\n* **Haute disponibilité :** plusieurs réplicas assurent la continuité du service même en cas de défaillance d'un nœud\n\n*Remarque : la haute disponibilité fait partie intégrante de l'architecture, mais n'est pas encore entièrement déployée. Consultez le [ticket 514736](https://gitlab.com/gitlab-org/gitlab/-/issues/514736) pour vous tenir au courant des futures mises à jour.*\n\n### Intégration sans accroc de la sécurité\n\nLa recherche exacte de code s'intègre automatiquement au système d'autorisation de GitLab :\n\n* Les résultats de recherche sont filtrés en fonction des droits d'accès de chaque utilisateur.\n\n* Seul le code des projets auxquels l'utilisateur a accès est affiché.\n\n* La sécurité est intégrée à l'architecture de base, et non ajoutée ultérieurement.\n\n### Performances optimisées\n\n* **Indexation performante :** les dépôts volumineux sont indexés en quelques dizaines de secondes.\n\n* **Exécution rapide des requêtes :** la plupart des recherches renvoient des résultats en moins d'une seconde.\n\n* **Résultats en streaming :** la nouvelle recherche fédérée basée sur gRPC diffuse les résultats au fur et à mesure de leur découverte.\n\n* **Arrêt anticipé :** dès qu'un nombre suffisant de résultats a été collecté, le système interrompt la recherche.\n\n## De la bibliothèque au système distribué : notre réponse aux défis d'ingénierie\n\nBien que Zoekt soit très performant pour indexer et rechercher du code localement, son architecture de base était conçue à l'origine comme une bibliothèque minimale, destinée à la gestion des fichiers d'index `.zoekt`, et non comme une base de données distribuée ou un service capable de fonctionner à l'échelle d'une entreprise. \n\nVoici les principaux défis techniques que nous avons dû surmonter pour l'adapter pleinement à l'écosystème GitLab.\n\n### Défi 1 : création d'une couche d'orchestration\n\n**Le problème :** Zoekt a été conçu pour fonctionner avec des fichiers d'index locaux, et non pour être distribué sur plusieurs nœuds desservant de nombreux utilisateurs simultanés.\n\n**Notre solution :** nous avons développé une couche d'orchestration complète qui :\n\n* crée et gère des modèles de base de données pour suivre les nœuds, les index, les dépôts et les tâches.\n\n* met en œuvre une architecture de nœuds à enregistrement automatique (inspirée du fonctionnement de GitLab Runner).\n\n* gère l'attribution automatique des partitions et l'équilibrage de la charge entre les nœuds.\n\n* fournit une communication bidirectionnelle de l'API entre les nœuds GitLab Rails et Zoekt.\n\n### Défi 2 : mise à l'échelle du stockage et de l'indexation\n\n**Le problème :** comment gérer efficacement des téraoctets de données d'indexation répartis sur plusieurs nœuds tout en garantissant des mises à jour rapides ?\n\n**Notre solution :** nous avons déployé les fonctionnalités suivantes  :\n\n* Partitionnement intelligent : les espaces de nommage sont répartis entre les nœuds en tenant compte de leur capacité et de leur charge.\n\n* Réplication indépendante : chaque nœud est indexé indépendamment à partir de [Gitaly](https://gitlab.com/gitlab-org/gitaly) (notre service de stockage Git), évitant ainsi toute synchronisation complexe.\n\n* Gestion avancée des filigranes : un système sophistiqué d'allocation de stockage empêche les nœuds de manquer d'espace.\n\n* Architecture binaire unifiée : un seul binaire `gitlab-zoekt` peut fonctionner à la fois en mode indexeur et en mode serveur web.\n\n### Défi 3 : intégration des autorisations\n\n**Le problème :** Zoekt n'avait aucune notion du système d'autorisation complexe de GitLab. Les utilisateurs ne doivent voir que les résultats des projets auxquels ils ont accès.\n\n**Notre solution :** nous avons intégré un filtrage des autorisations natif directement dans le flux de recherche :\n\n* Les requêtes de recherche incluent le contexte des autorisations de l'utilisateur.\n\n* Les résultats sont filtrés pour n’inclure que les éléments auxquels l'utilisateur peut accéder, même dans le cas où les autorisations évoluent avant la fin de l'indexation.\n\n### Défi 4 : simplification opérationnelle\n\n**Le problème :** gérer un système de recherche distribué ne devrait pas nécessiter une équipe dédiée.\n\n**Notre solution :**\n\n* Mise à l'échelle automatique : l'ajout de capacité est aussi simple que le déploiement de nœuds supplémentaires. Ces derniers s'enregistrent automatiquement et gèrent immédiatement la charge de travail.\n\n* Auto-réparation : les nœuds qui ne s'enregistrent pas sont automatiquement signalés comme hors ligne, avec redistribution automatique de leurs tâches.\n\n* Partitionnement sans configuration : le système détermine automatiquement les affectations de partitions optimales.\n\n## Déploiement progressif : réduire les risques à grande échelle\n\nLe déploiement d'un tout nouveau backend de recherche auprès de millions d'utilisateurs a nécessité une planification minutieuse. Voici comment nous avons limité l'impact sur les clients tout en garantissant la fiabilité :\n\n### Phase 1 : tests contrôlés (groupe gitlab-org)\n\nNous avons commencé par activer la recherche exacte de code uniquement pour le groupe `gitlab-org`, constitué de nos propres dépôts internes. \n\nCette étape nous a permis de :\n\n* Tester le système avec des charges de travail réelles en production\n\n* Identifier et corriger les goulots d'étranglement liés aux performances\n\n* Rationaliser le processus de déploiement\n\n* Tirer des enseignements concrets sur les workflows grâce aux retours d'utilisateurs\n\n### Phase 2 : validation et optimisation des performances\n\nAvant d'étendre la fonctionnalité, nous nous sommes assurés que le système pouvait gérer la charge à l'échelle de GitLab.com. Pour cela, nous avons dû :\n\n* Mettre en œuvre une surveillance et une gestion des alertes complètes\n\n* Valider la gestion du stockage basée sur la croissance réelle des données en production\n\n### Phase 3 : expansion progressive auprès des clients\n\nNous avons progressivement ouvert l'accès à la recherche exacte de code aux clients désireux de l'essayer, afin de :\n\n* Collecter leurs retours sur les performances et l'expérience utilisateur\n\n* Affiner l'interface utilisateur de recherche en fonction des workflows réels des utilisateurs\n\n* Optimiser les performances d'indexation (par exemple, les grands dépôts comme `gitlab-org/gitlab` sont désormais indexés en environ 10 secondes)\n\n* Ajuster l'architecture en fonction des leçons tirées des premiers essais\n\n* Augmenter massivement le débit d'indexation et améliorer le cycle de vie des transitions d'état\n\n### Phase 4 : déploiement à grande échelle\n\nAujourd'hui, plus de 99 % des groupes disposant des licences Premium et Ultimate sur GitLab.com ont accès à la recherche exacte de code. \n\nLes utilisateurs peuvent :\n\n* Basculer facilement entre les modes de recherche par expression régulière et par correspondance exacte\n\n* Tirer parti des avantages sans modifier la configuration\n\n* Revenir à l'ancienne méthode de recherche si nécessaire (bien que peu d'entre eux optent pour cette possibilité)\n\nCe déploiement progressif a permis d'éviter toute interruption de service, baisse de performances ou perte de fonctionnalités pendant la transition. Les premiers retours sont très positifs, car les utilisateurs constatent que leurs résultats de recherche sont plus pertinents et qu'ils les obtiennent beaucoup plus rapidement.\n\n> Vous souhaitez en savoir plus sur l'architecture et la mise en œuvre de la recherche exacte de code ? Consultez notre [document de conception](https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/code_search_with_zoekt/) complet, qui offre une description technique détaillée de ce système de recherche distribué.\n\n## Premiers pas : comment lancer une recherche exacte de code ? \n\nLa prise en main de la recherche exacte de code est simple, car cette fonctionnalité est déjà activée par défaut pour les groupes Premium et Ultimate sur GitLab.com (accessibles aujourd'hui à plus de 99 % des groupes éligibles).\n\n### Guide de démarrage rapide\n\n1. Accédez à la recherche avancée depuis votre projet ou groupe GitLab.\n\n2. Saisissez votre terme de recherche dans l'onglet Code.\n\n3. Basculez entre les modes de recherche par correspondance exacte et par expression régulière.\n\n4. Utilisez des filtres pour affiner votre recherche.\n\n### Syntaxe de recherche de base\n\nQue vous utilisiez le mode de recherche par correspondance exacte ou par expression régulière, vous pouvez affiner votre recherche avec divers modificateurs :\n\n| Exemple de requête | Fonction                                                               |\n| ------------------ | ---------------------------------------------------------------------- |\n| `file:js`          | Recherche uniquement dans les fichiers dont le nom contient « js »     |\n| `foo -bar`         | Recherche « foo », mais exclut les résultats contenant « bar »         |\n| `lang:ruby`        | Recherche uniquement dans les fichiers Ruby                            |\n| `sym:process`      | Recherche « process » dans les symboles (méthodes, classes, variables) |\n\n> **Conseil :** pour optimiser votre recherche, commencez par une requête précise, puis élargissez-la si besoin. L'utilisation des filtres `file:` et `lang:` augmente considérablement la pertinence des résultats.\n\n### Techniques de recherche avancées\n\nCombinez plusieurs filtres pour gagner en précision :\n\n```text\n\nis_expected file:rb -file:spec\n\n```\n\nCette requête recherche « is_expected » dans les fichiers Ruby dont le nom ne contient pas « spec ».\n\nTirez parti des expressions régulières pour obtenir des motifs puissants :\n\n```text\n\ntoken.*=.*[\\\"']\n\n```\n\n[Consultez cette recherche effectuée dans le dépôt GitLab Zoekt.](https://gitlab.com/search?search=token.*%3D.*%5B%5C%22'%5D&nav_source=navbar&project_id=46649240&group_id=9970&search_code=true&repository_ref=main&regex=true)\n\nElle permet de trouver des mots de passe codés en dur qui, s'ils ne sont pas détectés, peuvent constituer un risque de sécurité.\n\nPour approfondir la syntaxe, consultez la [documentation dédiée à la recherche exacte de code](https://docs.gitlab.com/user/search/exact_code_search/#syntax).\n\n## Disponibilité et déploiement\n\n### Disponibilité actuelle\n\nLa recherche exacte de code est actuellement disponible en version bêta pour les utilisateurs de GitLab.com disposant de licences Premium et Ultimate :\n\n* Elle est accessible à plus de 99 % des groupes éligibles sous licence.\n\n* La recherche dans l'interface utilisateur utilise automatiquement Zoekt lorsqu'il est disponible ; la recherche exacte de code via l'API de recherche est activée par le biais d'un feature flag.\n\n### Options de déploiement pour les instances Self-Managed\n\nPour les instances Self-Managed, nous proposons plusieurs méthodes de déploiement :\n\n* Kubernetes/Helm : notre méthode la mieux prise en charge, basée sur notre [Helm Chart `gitlab-zoekt`](https://gitlab.com/gitlab-org/cloud-native/charts/gitlab-zoekt).\n\n* Autres méthodes : nous travaillons actuellement sur la simplification du déploiement via Omnibus et d'autres options d'installation.\n\nLes exigences en configuration système varient selon la taille de votre code source, mais l'architecture est conçue pour s'adapter horizontalement et/ou verticalement à mesure que vos besoins évoluent.\n\n## Prochaines étapes\n\nBien que la recherche exacte de code soit déjà performante, nous l'améliorons continuellement avec :\n\n* **Des optimisations à grande échelle** pour gérer des instances comptant des centaines de milliers de dépôts\n\n* **Des options de déploiement renforcées pour les instances Self-Managed**, y compris la prise en charge simplifiée d'Omnibus\n\n* **Une prise en charge complète de la haute disponibilité** avec basculement automatique et équilibrage de la charge\n\nRestez à l'écoute pour suivre les prochaines mises à jour lorsque nous passerons de la version bêta à la disponibilité générale.\n\n## Transformez votre façon de rechercher des lignes de code\n\nAvec la recherche exacte de code, GitLab repense en profondeur la manière dont le code est exploré, en fournissant des correspondances exactes, une prise en charge avancée des expressions régulières et des résultats contextuels. \n\nCette nouvelle fonctionnalité résout les aspects les plus frustrants de la recherche de code :\n\n* Ne perdez plus votre temps avec des résultats non pertinents.\n\n* Ne ratez plus aucune correspondance importante.\n\n* N'ouvrez plus plusieurs fichiers juste pour comprendre le contexte de base.\n\n* Ne subissez plus de problèmes de performances à mesure que la taille de vos dépôts de code augmente.\n\nL'impact s'étend même bien au-delà, à la productivité globale des équipes :\n\n* **Vos équipes collaborent plus efficacement** avec un référencement clair du code.\n\n* **Le partage des connaissances s'accélère** avec la détection facile des motifs.\n\n* **L'intégration des nouveaux membres d'équipe s'accélère** avec une compréhension rapide du code source.\n\n* **La sécurité est renforcée** avec un audit efficace des motifs.\n\n* **Une réduction de la dette technique** devient réellement envisageable.\n\nLa recherche exacte de code est plus qu'une simple fonctionnalité : elle vous permet de mieux comprendre et de gérer le code. Alors, arrêtez de chercher et commencez à trouver ! \n\n**Nous serions ravis de connaître votre avis.** Partagez vos expériences, vos questions ou vos commentaires sur la recherche exacte de code dans notre [ticket dédié aux retours d'expérience](https://gitlab.com/gitlab-org/gitlab/-/issues/420920). Vos retours nous aident à hiérarchiser nos priorités d'améliorations et à enrichir nos futures fonctionnalités.\n\n**Vous souhaitez tirer parti d'une recherche de code plus intelligente ? Pour en savoir plus, consultez notre [documentation](https://docs.gitlab.com/ee/user/search/exact_code_search.html) et essayez dès aujourd'hui notre nouvelle fonctionnalité en effectuant une recherche dans vos espaces de nommage ou vos projets disposant d'une licence Premium ou Ultimate. Vous n'utilisez pas encore GitLab ? Inscrivez-vous pour un [essai gratuit de GitLab Ultimate enrichi des capacités de GitLab Duo](https://about.gitlab.com/fr-fr/free-trial/?hosted=saas) !**",[23],"open source","yml",{},true,"/fr-fr/blog/exact-code-search-find-code-faster-across-repositories",{"noIndex":11,"title":29,"description":16},"Trouvez rapidement du code dans vos dépôts GitLab","fr-fr/blog/exact-code-search-find-code-faster-across-repositories",[32],"open-source","Dx96cXVsttvZh55GXl9cJkH47FiDXrlkjN4T2lqzmWg",{"data":35},{"logo":36,"freeTrial":41,"sales":46,"login":51,"items":56,"search":366,"minimal":401,"duo":420,"pricingDeployment":429},{"config":37},{"href":38,"dataGaName":39,"dataGaLocation":40},"/fr-fr/","gitlab logo","header",{"text":42,"config":43},"Commencer un essai gratuit",{"href":44,"dataGaName":45,"dataGaLocation":40},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":47,"config":48},"Contacter l'équipe commerciale",{"href":49,"dataGaName":50,"dataGaLocation":40},"/fr-fr/sales/","sales",{"text":52,"config":53},"Connexion",{"href":54,"dataGaName":55,"dataGaLocation":40},"https://gitlab.com/users/sign_in/","sign in",[57,84,181,186,287,347],{"text":58,"config":59,"cards":61},"Plateforme",{"dataNavLevelOne":60},"platform",[62,68,76],{"title":58,"description":63,"link":64},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":65,"config":66},"Découvrir notre plateforme",{"href":67,"dataGaName":60,"dataGaLocation":40},"/fr-fr/platform/",{"title":69,"description":70,"link":71},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":72,"config":73},"Découvrir GitLab Duo",{"href":74,"dataGaName":75,"dataGaLocation":40},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":77,"description":78,"link":79},"Choisir GitLab","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":80,"config":81},"En savoir plus",{"href":82,"dataGaName":83,"dataGaLocation":40},"/fr-fr/why-gitlab/","why gitlab",{"text":85,"left":26,"config":86,"link":88,"lists":92,"footer":163},"Produit",{"dataNavLevelOne":87},"solutions",{"text":89,"config":90},"Voir toutes les solutions",{"href":91,"dataGaName":87,"dataGaLocation":40},"/fr-fr/solutions/",[93,118,141],{"title":94,"description":95,"link":96,"items":101},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":97},{"icon":98,"href":99,"dataGaName":100,"dataGaLocation":40},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[102,106,109,114],{"text":103,"config":104},"CI/CD",{"href":105,"dataGaLocation":40,"dataGaName":103},"/fr-fr/solutions/continuous-integration/",{"text":69,"config":107},{"href":74,"dataGaLocation":40,"dataGaName":108},"gitlab duo agent platform - product menu",{"text":110,"config":111},"Gestion du code source",{"href":112,"dataGaLocation":40,"dataGaName":113},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":115,"config":116},"Livraison de logiciels automatisée",{"href":99,"dataGaLocation":40,"dataGaName":117},"Automated software delivery",{"title":119,"description":120,"link":121,"items":126},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":122},{"href":123,"dataGaName":124,"dataGaLocation":40,"icon":125},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[127,131,136],{"text":128,"config":129},"Tests de sécurité des applications",{"href":123,"dataGaName":130,"dataGaLocation":40},"Application security testing",{"text":132,"config":133},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":134,"dataGaLocation":40,"dataGaName":135},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":137,"config":138},"Conformité logicielle",{"href":139,"dataGaName":140,"dataGaLocation":40},"/fr-fr/solutions/software-compliance/","Software Compliance",{"title":142,"link":143,"items":148},"Mesures",{"config":144},{"icon":145,"href":146,"dataGaName":147,"dataGaLocation":40},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[149,153,158],{"text":150,"config":151},"Visibilité et mesures",{"href":146,"dataGaLocation":40,"dataGaName":152},"Visibility and Measurement",{"text":154,"config":155},"Gestion de la chaîne de valeur",{"href":156,"dataGaLocation":40,"dataGaName":157},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":159,"config":160},"Données d'analyse et informations clés",{"href":161,"dataGaLocation":40,"dataGaName":162},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":164,"items":165},"GitLab pour",[166,171,176],{"text":167,"config":168},"Entreprises",{"href":169,"dataGaLocation":40,"dataGaName":170},"/fr-fr/enterprise/","enterprise",{"text":172,"config":173},"PME",{"href":174,"dataGaLocation":40,"dataGaName":175},"/fr-fr/small-business/","small business",{"text":177,"config":178},"Secteur public",{"href":179,"dataGaLocation":40,"dataGaName":180},"/fr-fr/solutions/public-sector/","public sector",{"text":182,"config":183},"Tarifs",{"href":184,"dataGaName":185,"dataGaLocation":40,"dataNavLevelOne":185},"/fr-fr/pricing/","pricing",{"text":187,"config":188,"link":190,"lists":194,"feature":274},"Ressources",{"dataNavLevelOne":189},"resources",{"text":191,"config":192},"Afficher toutes les ressources",{"href":193,"dataGaName":189,"dataGaLocation":40},"/fr-fr/resources/",[195,228,246],{"title":196,"items":197},"Premiers pas",[198,203,208,213,218,223],{"text":199,"config":200},"Installation",{"href":201,"dataGaName":202,"dataGaLocation":40},"/fr-fr/install/","install",{"text":204,"config":205},"Guides de démarrage",{"href":206,"dataGaName":207,"dataGaLocation":40},"/fr-fr/get-started/","quick setup checklists",{"text":209,"config":210},"Apprentissage",{"href":211,"dataGaLocation":40,"dataGaName":212},"https://university.gitlab.com/","learn",{"text":214,"config":215},"Documentation sur le produit",{"href":216,"dataGaName":217,"dataGaLocation":40},"https://docs.gitlab.com/","product documentation",{"text":219,"config":220},"Vidéos sur les bonnes pratiques",{"href":221,"dataGaName":222,"dataGaLocation":40},"/fr-fr/getting-started-videos/","best practice videos",{"text":224,"config":225},"Intégrations",{"href":226,"dataGaName":227,"dataGaLocation":40},"/fr-fr/integrations/","integrations",{"title":229,"items":230},"Découvrir",[231,236,241],{"text":232,"config":233},"Témoignages clients",{"href":234,"dataGaName":235,"dataGaLocation":40},"/fr-fr/customers/","customer success stories",{"text":237,"config":238},"Blog",{"href":239,"dataGaName":240,"dataGaLocation":40},"/fr-fr/blog/","blog",{"text":242,"config":243},"Travail à distance",{"href":244,"dataGaName":245,"dataGaLocation":40},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":247,"items":248},"Connecter",[249,254,259,264,269],{"text":250,"config":251},"Services GitLab",{"href":252,"dataGaName":253,"dataGaLocation":40},"/fr-fr/services/","services",{"text":255,"config":256},"Communauté",{"href":257,"dataGaName":258,"dataGaLocation":40},"/community/","community",{"text":260,"config":261},"Forum",{"href":262,"dataGaName":263,"dataGaLocation":40},"https://forum.gitlab.com/","forum",{"text":265,"config":266},"Événements",{"href":267,"dataGaName":268,"dataGaLocation":40},"/events/","events",{"text":270,"config":271},"Partenaires",{"href":272,"dataGaName":273,"dataGaLocation":40},"/fr-fr/partners/","partners",{"backgroundColor":275,"textColor":276,"text":277,"image":278,"link":282},"#2f2a6b","#fff","L'avenir du développement logiciel. Tendances et perspectives.",{"altText":279,"config":280},"carte promo The Source",{"src":281},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":283,"config":284},"Lire les articles les plus récents",{"href":285,"dataGaName":286,"dataGaLocation":40},"/fr-fr/the-source/","the source",{"text":288,"config":289,"lists":291},"Société",{"dataNavLevelOne":290},"company",[292],{"items":293},[294,299,305,307,312,317,322,327,332,337,342],{"text":295,"config":296},"À propos",{"href":297,"dataGaName":298,"dataGaLocation":40},"/fr-fr/company/","about",{"text":300,"config":301,"footerGa":304},"Carrières",{"href":302,"dataGaName":303,"dataGaLocation":40},"/jobs/","jobs",{"dataGaName":303},{"text":265,"config":306},{"href":267,"dataGaName":268,"dataGaLocation":40},{"text":308,"config":309},"Leadership",{"href":310,"dataGaName":311,"dataGaLocation":40},"/company/team/e-group/","leadership",{"text":313,"config":314},"Équipe",{"href":315,"dataGaName":316,"dataGaLocation":40},"/company/team/","team",{"text":318,"config":319},"Manuel",{"href":320,"dataGaName":321,"dataGaLocation":40},"https://handbook.gitlab.com/","handbook",{"text":323,"config":324},"Relations avec les investisseurs",{"href":325,"dataGaName":326,"dataGaLocation":40},"https://ir.gitlab.com/","investor relations",{"text":328,"config":329},"Centre de confiance",{"href":330,"dataGaName":331,"dataGaLocation":40},"/fr-fr/security/","trust center",{"text":333,"config":334},"Centre pour la transparence de l'IA",{"href":335,"dataGaName":336,"dataGaLocation":40},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":338,"config":339},"Newsletter",{"href":340,"dataGaName":341,"dataGaLocation":40},"/company/contact/#contact-forms","newsletter",{"text":343,"config":344},"Presse",{"href":345,"dataGaName":346,"dataGaLocation":40},"/press/","press",{"text":348,"config":349,"lists":350},"Nous contacter",{"dataNavLevelOne":290},[351],{"items":352},[353,356,361],{"text":47,"config":354},{"href":49,"dataGaName":355,"dataGaLocation":40},"talk to sales",{"text":357,"config":358},"Portail d’assistance",{"href":359,"dataGaName":360,"dataGaLocation":40},"https://support.gitlab.com","support portal",{"text":362,"config":363},"Portail clients GitLab",{"href":364,"dataGaName":365,"dataGaLocation":40},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":367,"login":368,"suggestions":375},"Fermer",{"text":369,"link":370},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":371,"config":372},"gitlab.com",{"href":54,"dataGaName":373,"dataGaLocation":374},"search login","search",{"text":376,"default":377},"Suggestions",[378,380,385,387,392,397],{"text":69,"config":379},{"href":74,"dataGaName":69,"dataGaLocation":374},{"text":381,"config":382},"Suggestions de code (IA)",{"href":383,"dataGaName":384,"dataGaLocation":374},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":103,"config":386},{"href":105,"dataGaName":103,"dataGaLocation":374},{"text":388,"config":389},"GitLab sur AWS",{"href":390,"dataGaName":391,"dataGaLocation":374},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":393,"config":394},"GitLab sur Google Cloud ",{"href":395,"dataGaName":396,"dataGaLocation":374},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":398,"config":399},"Pourquoi utiliser GitLab ?",{"href":82,"dataGaName":400,"dataGaLocation":374},"Why GitLab?",{"freeTrial":402,"mobileIcon":407,"desktopIcon":412,"secondaryButton":415},{"text":403,"config":404},"Commencer votre essai gratuit",{"href":405,"dataGaName":45,"dataGaLocation":406},"https://gitlab.com/-/trials/new/","nav",{"altText":408,"config":409},"Icône GitLab",{"src":410,"dataGaName":411,"dataGaLocation":406},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":408,"config":413},{"src":414,"dataGaName":411,"dataGaLocation":406},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":416,"config":417},"Commencer",{"href":418,"dataGaName":419,"dataGaLocation":406},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":421,"mobileIcon":425,"desktopIcon":427},{"text":422,"config":423},"En savoir plus sur GitLab Duo",{"href":74,"dataGaName":424,"dataGaLocation":406},"gitlab duo",{"altText":408,"config":426},{"src":410,"dataGaName":411,"dataGaLocation":406},{"altText":408,"config":428},{"src":414,"dataGaName":411,"dataGaLocation":406},{"freeTrial":430,"mobileIcon":435,"desktopIcon":437},{"text":431,"config":432},"Retour aux tarifs",{"href":184,"dataGaName":433,"dataGaLocation":406,"icon":434},"back to pricing","GoBack",{"altText":408,"config":436},{"src":410,"dataGaName":411,"dataGaLocation":406},{"altText":408,"config":438},{"src":414,"dataGaName":411,"dataGaLocation":406},{"title":440,"button":441,"config":446},"Découvrez comment l'IA agentique transforme la livraison logicielle",{"text":442,"config":443},"Regarder GitLab Transcend maintenant",{"href":444,"dataGaName":445,"dataGaLocation":40},"/fr-fr/events/transcend/virtual/","transcend event",{"layout":447,"icon":448,"disabled":26},"release","AiStar",{"data":450},{"text":451,"source":452,"edit":458,"contribute":463,"config":468,"items":473,"minimal":650},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence",{"text":453,"config":454},"Afficher le code source de la page",{"href":455,"dataGaName":456,"dataGaLocation":457},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":459,"config":460},"Modifier cette page",{"href":461,"dataGaName":462,"dataGaLocation":457},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":464,"config":465},"Veuillez contribuer",{"href":466,"dataGaName":467,"dataGaLocation":457},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":469,"facebook":470,"youtube":471,"linkedin":472},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[474,497,551,583,618],{"title":58,"links":475,"subMenu":480},[476],{"text":477,"config":478},"Plateforme DevSecOps",{"href":67,"dataGaName":479,"dataGaLocation":457},"devsecops platform",[481],{"title":182,"links":482},[483,487,492],{"text":484,"config":485},"Voir les forfaits",{"href":184,"dataGaName":486,"dataGaLocation":457},"view plans",{"text":488,"config":489},"Pourquoi choisir GitLab Premium ?",{"href":490,"dataGaName":491,"dataGaLocation":457},"/fr-fr/pricing/premium/","why premium",{"text":493,"config":494},"Pourquoi choisir GitLab Ultimate ?",{"href":495,"dataGaName":496,"dataGaLocation":457},"/fr-fr/pricing/ultimate/","why ultimate",{"title":498,"links":499},"Solutions",[500,505,508,510,515,520,524,527,530,535,537,539,541,546],{"text":501,"config":502},"Transformation digitale",{"href":503,"dataGaName":504,"dataGaLocation":457},"/fr-fr/topics/digital-transformation/","digital transformation",{"text":506,"config":507},"Sécurité et conformité",{"href":123,"dataGaName":130,"dataGaLocation":457},{"text":115,"config":509},{"href":99,"dataGaName":100,"dataGaLocation":457},{"text":511,"config":512},"Développement agile",{"href":513,"dataGaName":514,"dataGaLocation":457},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":516,"config":517},"Transformation cloud",{"href":518,"dataGaName":519,"dataGaLocation":457},"/fr-fr/topics/cloud-native/","cloud transformation",{"text":521,"config":522},"SCM",{"href":112,"dataGaName":523,"dataGaLocation":457},"source code management",{"text":103,"config":525},{"href":105,"dataGaName":526,"dataGaLocation":457},"continuous integration & delivery",{"text":154,"config":528},{"href":156,"dataGaName":529,"dataGaLocation":457},"value stream management",{"text":531,"config":532},"GitOps",{"href":533,"dataGaName":534,"dataGaLocation":457},"/fr-fr/solutions/gitops/","gitops",{"text":167,"config":536},{"href":169,"dataGaName":170,"dataGaLocation":457},{"text":172,"config":538},{"href":174,"dataGaName":175,"dataGaLocation":457},{"text":177,"config":540},{"href":179,"dataGaName":180,"dataGaLocation":457},{"text":542,"config":543},"Formation",{"href":544,"dataGaName":545,"dataGaLocation":457},"/fr-fr/solutions/education/","education",{"text":547,"config":548},"Services financiers",{"href":549,"dataGaName":550,"dataGaLocation":457},"/fr-fr/solutions/finance/","financial services",{"title":187,"links":552},[553,555,558,560,563,565,568,571,573,575,577,579,581],{"text":199,"config":554},{"href":201,"dataGaName":202,"dataGaLocation":457},{"text":556,"config":557},"Guides de démarrage rapide",{"href":206,"dataGaName":207,"dataGaLocation":457},{"text":209,"config":559},{"href":211,"dataGaName":212,"dataGaLocation":457},{"text":214,"config":561},{"href":216,"dataGaName":562,"dataGaLocation":457},"docs",{"text":237,"config":564},{"href":239,"dataGaName":240},{"text":566,"config":567},"Histoires de réussite client",{"href":234,"dataGaLocation":457},{"text":569,"config":570},"Histoires de succès client",{"href":234,"dataGaName":235,"dataGaLocation":457},{"text":242,"config":572},{"href":244,"dataGaName":245,"dataGaLocation":457},{"text":250,"config":574},{"href":252,"dataGaName":253,"dataGaLocation":457},{"text":255,"config":576},{"href":257,"dataGaName":258,"dataGaLocation":457},{"text":260,"config":578},{"href":262,"dataGaName":263,"dataGaLocation":457},{"text":265,"config":580},{"href":267,"dataGaName":268,"dataGaLocation":457},{"text":270,"config":582},{"href":272,"dataGaName":273,"dataGaLocation":457},{"title":288,"links":584},[585,587,590,592,594,596,598,602,607,609,611,613],{"text":295,"config":586},{"href":297,"dataGaName":290,"dataGaLocation":457},{"text":588,"config":589},"Emplois",{"href":302,"dataGaName":303,"dataGaLocation":457},{"text":308,"config":591},{"href":310,"dataGaName":311,"dataGaLocation":457},{"text":313,"config":593},{"href":315,"dataGaName":316,"dataGaLocation":457},{"text":318,"config":595},{"href":320,"dataGaName":321,"dataGaLocation":457},{"text":323,"config":597},{"href":325,"dataGaName":326,"dataGaLocation":457},{"text":599,"config":600},"Sustainability",{"href":601,"dataGaName":599,"dataGaLocation":457},"/sustainability/",{"text":603,"config":604},"Diversité, inclusion et appartenance (DIB)",{"href":605,"dataGaName":606,"dataGaLocation":457},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":328,"config":608},{"href":330,"dataGaName":331,"dataGaLocation":457},{"text":338,"config":610},{"href":340,"dataGaName":341,"dataGaLocation":457},{"text":343,"config":612},{"href":345,"dataGaName":346,"dataGaLocation":457},{"text":614,"config":615},"Déclaration de transparence sur l'esclavage moderne",{"href":616,"dataGaName":617,"dataGaLocation":457},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":348,"links":619},[620,623,628,630,635,640,645],{"text":621,"config":622},"Échanger avec un expert",{"href":49,"dataGaName":50,"dataGaLocation":457},{"text":624,"config":625},"Aide",{"href":626,"dataGaName":627,"dataGaLocation":457},"https://support.gitlab.com/hc/en-us/articles/11626483177756-GitLab-Support","get help",{"text":362,"config":629},{"href":364,"dataGaName":365,"dataGaLocation":457},{"text":631,"config":632},"Statut",{"href":633,"dataGaName":634,"dataGaLocation":457},"https://status.gitlab.com/","status",{"text":636,"config":637},"Conditions d'utilisation",{"href":638,"dataGaName":639},"/terms/","terms of use",{"text":641,"config":642},"Déclaration de confidentialité",{"href":643,"dataGaName":644,"dataGaLocation":457},"/fr-fr/privacy/","privacy statement",{"text":646,"config":647},"Préférences en matière de cookies",{"dataGaName":648,"dataGaLocation":457,"id":649,"isOneTrustButton":26},"cookie preferences","ot-sdk-btn",{"items":651},[652,654,657],{"text":636,"config":653},{"href":638,"dataGaName":639,"dataGaLocation":457},{"text":655,"config":656},"Politique de confidentialité",{"href":643,"dataGaName":644,"dataGaLocation":457},{"text":646,"config":658},{"dataGaName":648,"dataGaLocation":457,"id":649,"isOneTrustButton":26},[660],{"id":661,"title":18,"body":8,"config":662,"content":664,"description":8,"extension":24,"meta":668,"navigation":26,"path":669,"seo":670,"stem":671,"__hash__":672},"blogAuthors/en-us/blog/authors/dmitry-gruzd.yml",{"template":663},"BlogAuthor",{"name":18,"config":665},{"headshot":666,"ctfId":667},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682014/Blog/Author%20Headshots/dgruzd-headshot.jpg","dgruzd",{},"/en-us/blog/authors/dmitry-gruzd",{},"en-us/blog/authors/dmitry-gruzd","sn1aawfqITI3w1Wr5m9KVxBsh6Ibzoq3aexMyVsy9_c",[674,688,701],{"content":675,"config":686},{"title":676,"description":677,"authors":678,"heroImage":680,"date":681,"body":682,"category":9,"tags":683},"GitLab Duo CLI : l'IA agentique au service du développement, désormais dans le terminal","Les équipes de développement qui travaillent en dehors de l'IDE et de l'interface utilisateur de GitLab peuvent désormais accéder à GitLab Duo Agent Platform directement depuis le terminal, avec des contrôles de sécurité intégrés et la prise en charge du mode headless.",[679],"John Coghlan","https://res.cloudinary.com/about-gitlab-com/image/upload/v1775561395/bhe1as7ttjvzltxwgo5m.png","2026-04-07","Déboguer un pipeline en échec en fin de sprint ou intégrer l'IA dans un workflow [CI/CD](https://about.gitlab.com/fr-fr/topics/ci-cd/ \"Qu'est-ce que le CI/CD ?\") qui s'exécute sans intervention humaine : voilà exactement les situations où les assistants d'IA actuels montrent leurs limites, car ils se concentrent sur le code, qui ne représente qu'une partie du cycle de vie logiciel. Ces assistants sont conçus pour des sessions de codage interactives, et non pour l'automatisation des différentes étapes du développement logiciel. GitLab Duo CLI, désormais disponible en version bêta publique, a été pensé pour répondre à ces deux cas d'usages.\n\nGitLab Duo CLI intègre l'IA agentique propulsée par [GitLab Duo Agent Platform](https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/) directement dans le terminal, avec une prise en charge complète des workflows automatisés et un mode de chat interactif lorsqu'un contrôle humain est nécessaire. Découvrez les fonctionnalités de GitLab Duo CLI, le fonctionnement de ses deux modes d'utilisation et le modèle de sécurité sur lequel il s'appuie.\n\n## Comment installer GitLab Duo CLI\n\nSi vous avez déjà installé Glab (GitLab CLI), saisissez :\n\n```\nglab duo cli\n```\n\nSuivez ensuite les instructions.\n\nSi Glab n'est pas encore installé, vous pouvez l'installer en accédant à [cette page](https://gitlab.com/gitlab-org/cli/#installation) ou [utiliser GitLab Duo CLI en tant qu'outil autonome](https://docs.gitlab.com/user/gitlab_duo_cli/#without-the-gitlab-cli).\n\n## Pourquoi le terminal, et pourquoi maintenant\n\nLa première génération d'assistants d'IA pour le développement logiciel était intégrée à l'[IDE](https://about.gitlab.com/fr-fr/blog/what-is-an-ide/ \"Qu'est-ce qu'un IDE ?\") et se concentrait exclusivement sur le code. Cette approche était logique lorsque l'objectif se limitait à l'autocomplétion. Mais à mesure que les agents d'IA commencent à *agir* à chaque étape du cycle de vie logiciel (exécution de tests, déclenchement de pipelines, surveillance des scans de sécurité, etc.), l'IDE n'est plus nécessairement la seule interface adaptée.\n\nLes meilleurs outils de développement sont ceux qui fonctionnent aussi bien pour les équipes que pour les machines. Les CLI bénéficient de plusieurs décennies d'itérations de conception dans cette optique. Elles sont composables : vous pouvez rediriger les données de sortie, enchaîner les commandes et les intégrer dans des scripts. Elles facilitent le débogage : en cas de problème, il suffit d'exécuter la même commande pour voir exactement ce que l'agent a vu. Elles sont aussi transparentes : aucun processus en arrière-plan, aucune procédure d'initialisation complexe, aucun protocole à décoder en cas de dysfonctionnement.\n\nLes interfaces de terminal sont mieux adaptées à l'automatisation, aux scripts et à la portabilité entre environnements. Les interfaces des IDE sont plus adaptées au développement interactif et riche en contexte. GitLab Duo CLI est conçu pour le premier cas de figure, tandis que GitLab Duo Agentic Chat dans l'IDE et l'interface couvre le second.\n\n## Ce que GitLab Duo CLI permet de faire\n\nAvec GitLab Duo CLI, les équipes de développement peuvent créer, modifier, refactoriser et moderniser du code, à l'instar d'autres assistants de codage basés sur l'IA et conçus pour le terminal. Mais les possibilités ne s'arrêtent pas là. Tout agent et tout flow défini dans GitLab Duo Agent Platform est accessible via GitLab Duo CLI, qu'il s'agisse d'automatiser la configuration CI/CD et d'optimiser les pipelines ou d'effectuer des tâches de développement en plusieurs étapes de manière autonome sur l'ensemble du cycle de développement logiciel ([SDLC](https://about.gitlab.com/fr-fr/blog/what-is-sdlc/ \"Qu'est-ce que le SDLC ?\")).\n\nGitLab Duo CLI fonctionne selon deux modes :\n\n* **Mode interactif :** une expérience de chat dans le terminal, indépendante d'un éditeur, avec supervision humaine avant toute action. Utilisez-le pour comprendre la structure d'un code source, créer du code, corriger des erreurs ou résoudre des problèmes de pipelines.  \n* **Mode headless :** non interactif, conçu pour les runners, les scripts et les workflows automatisés. Intégrez-le dans vos [pipelines CI/CD](https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/ \"Qu'est-ce qu'un pipeline CI/CD ?\") et laissez-le opérer en toute autonomie.\n\n## L'IA avec des garde-fous\n\nL'[IA agentique](https://about.gitlab.com/fr-fr/topics/agentic-ai/ \"Qu'est-ce que l'IA agentique ?\") capable d'exécuter des actions crée une exposition réelle en matière de sécurité. GitLab Duo CLI traite cette problématique au niveau de la plateforme, et non comme un ajout après coup :\n\n* **Supervision humaine par défaut** en mode interactif : aucune action n'est exécutée sans approbation préalable.  \n* **Détection d'injections de prompts** intégrée nativement à GitLab Duo Agent Platform.  \n* **Identité composite** qui limite les accès de l'agent et rend chaque action pilotée par l'IA auditable.\n\nGitLab Duo CLI prend également en charge les [fichiers d'instructions personnalisées](https://docs.gitlab.com/user/duo_agent_platform/customize/), tels que `chat-rules.md`, `AGENTS.md` et `SKILL.md`, qui définissent les tâches, ressources, contextes, connaissances et actions autorisés pour vos agents. **Il s'agit du principe du moindre privilège appliqué à l'IA : votre agent fait exactement ce que vous avez autorisé, et rien de plus.**\n\nDécouvrez GitLab Duo CLI en action :\n\u003Ciframe src=\"https://player.vimeo.com/video/1179964611?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"GitLab Duo CLI Beta Demo V1\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## Utilisez GitLab Duo CLI dès aujourd'hui\n\nDécouvrez les avantages de GitLab Duo CLI en [démarrant un essai gratuit de GitLab Duo Agent Platform](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). \n\nSi vous utilisez déjà GitLab dans l'offre gratuite, vous pouvez vous inscrire à GitLab Duo Agent Platform en [suivant quelques étapes simples](https://docs.gitlab.com/subscriptions/gitlab_credits/#for-the-free-tier-on-gitlabcom). \n\nEt si vous utilisez déjà GitLab Premium ou GitLab Ultimate, vous pouvez profiter de GitLab Duo CLI en [activant simplement GitLab Duo Agent Platform](https://docs.gitlab.com/user/duo_agent_platform/turn_on_off/) et en commençant à utiliser les crédits GitLab [inclus](https://docs.gitlab.com/subscriptions/gitlab_credits/#included-credits) dans votre abonnement.",[684,9,685],"AI/ML","features",{"featured":11,"template":12,"slug":687},"gitlab-duo-cli",{"content":689,"config":699},{"title":690,"description":691,"authors":692,"category":9,"tags":694,"body":696,"heroImage":697,"date":698},"Arborescence des fichiers : naviguez plus rapidement dans les dépôts","Découvrez cette nouvelle fonctionnalité qui améliore la visibilité et simplifie la navigation sur GitLab.com, GitLab Self-Managed et GitLab Dedicated.",[693],"Talia Armato-Helle",[685,9,695],"DevSecOps","Imaginez le scénario suivant : vous repérez un fichier dans le navigateur de dépôt. Vous cliquez dessus, parcourez le code, puis vous vérifiez un élément dans une autre partie de l'arborescence. Vous cliquez donc sur le bouton retour. Vous redescendez dans l'arborescence, et accédez peut-être à niveau inférieur. Vous trouvez le fichier suivant, vous cliquez dessus et recommencez.\n\nCette approche fonctionne, mais devient vite fastidieuse. Si vous avez déjà souhaité que le navigateur de dépôt ressemble davantage à votre [IDE](https://about.gitlab.com/fr-fr/blog/what-is-an-ide/ \"Qu'est-ce qu'un IDE ?\") qu'à une série de fils d'Ariane, l'arborescence de fichiers de GitLab 18.9 est faite pour vous.\n\n## Fonctionnement de l'arborescence de fichiers\n\nL'arborescence de fichiers ajoute un panneau repliable et redimensionnable à côté de vos vues de fichiers et de répertoires, de sorte que la structure de votre projet reste visible pendant que vous lisez et naviguez dans le code. Ainsi, vous n'avez plus besoin de cliquer sur retour pour savoir où vous vous trouvez.\n\nCette fonctionnalité affiche les fichiers et répertoires de votre projet dans une arborescence à côté de la liste des fichiers et du contenu des fichiers, ce qui vous permet de voir la structure et le code en même temps.\n\nSi vous avez déjà utilisé une arborescence de fichiers dans un IDE ou une plateforme [Git](https://about.gitlab.com/fr-fr/blog/what-is-git/ \"Qu'est-ce que Git ?\"), elle devrait vous sembler familière :\n\n**Navigation avec une vue structurée**\n\nDéveloppez et repliez les répertoires et basculez entre les fichiers tout en gardant une vue claire de votre position dans la hiérarchie du dépôt. Lorsque vous accédez directement à un fichier imbriqué, l'arborescence développe les répertoires parents et met en surbrillance le fichier actuel afin que vous ne perdiez pas le contexte. L'arborescence se synchronise également avec votre position actuelle : lorsque vous sélectionnez un fichier dans la zone de contenu principale, l'arborescence se met à jour en conséquence.\n\n**Filtrage par nom de fichier**\n\nAprès avoir ouvert l'arborescence, appuyez sur `F` pour ouvrir la boîte de dialogue de recherche globale. Saisissez une partie d'un nom de fichier pour y accéder directement depuis la liste de résultats, chaque résultat affichant ses répertoires parents afin que vous sachiez où vous vous trouvez.\n\n\n**Navigation axée sur le clavier**\n\nL'arborescence implémente le modèle de vue arborescente ARIA du W3C, ce qui vous permet de naviguer parmi les fichiers et répertoires à l'aide du clavier et des touches fléchées, ainsi que des touches Entrée, Espace, Début, Fin et des touches de caractères. Ce type de navigation est plus accessible pour les utilisateurs de lecteurs d'écran et pour toute personne qui préfère utiliser un clavier.\n\n\n**Réactivité sur tous les écrans**\n\nSur un ordinateur, l'arborescence s'affiche côte à côte avec votre liste de fichiers et votre code. Sur les écrans plus petits, elle se transforme en panneau latéral gauche que vous pouvez ouvrir lorsque vous en avez besoin. Sur mobile, l'arborescence est masquée afin que la vue du code puisse occuper tout l'écran.\n\n\n**Conception pour les dépôts volumineux**\n\nPour les dépôts avec de nombreuses entrées, l'arborescence utilise la pagination afin que vous puissiez charger davantage d'éléments selon vos besoins sans surcharger la page. L'expérience reste fluide à mesure que votre projet se développe.\n\n## Découvrez l'arborescence de fichiers en action\n\nMichael Friedrich, Principal Developer Advocate chez GitLab, présente la nouvelle arborescence de fichiers dans GitLab. Découvrez comment cette fonctionnalité facilite la navigation dans les dépôts volumineux, comme si vous travailliez dans votre IDE. La démonstration utilise le projet GitLab [Tanuki IoT Platform](https://gitlab.com/gitlab-da/use-cases/ai/gitlab-duo-agent-platform/demo-environments/tanuki-iot-platform), que vous pouvez explorer vous-même pour tester l'arborescence de fichiers dans un véritable dépôt. \n\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1171188581?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"File Tree in Repo Demo\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n\n## Essayez l'arborescence de fichiers dès aujourd'hui\n\nL'arborescence de fichiers est disponible dès maintenant sur GitLab.com et a été publiée dans la [version 18.9](https://about.gitlab.com/releases/2026/02/19/gitlab-18-9-released/) pour GitLab Self-Managed et GitLab Dedicated.\n\nVoici comment y accéder :\n\n1. Ouvrez n'importe quelle vue de fichier ou de répertoire de dépôt dans votre projet (`/\u003Cproject>/-/tree/\u003Cbranch>`).\n2. Dans le coin supérieur gauche, sélectionnez l'icône d'arborescence de fichiers ou appuyez sur `Shift+F` pour activer/désactiver l'arborescence de fichiers.\n3. Appuyez sur `F` pour filtrer les fichiers par nom ou extension, commencez à saisir du texte, puis utilisez les touches fléchées et `Entrée` pour accéder directement au fichier souhaité.\n\n## Perspectives\n\nL'équipe Source Code de GitLab a conçu l'arborescence de fichiers en plaçant l'accessibilité, les performances à grande échelle et la cohérence entre les différents écrans au cœur de ses exigences. Ces principes continueront de guider nos prochains développements, et vos retours nous aideront à façonner les futures itérations.\n\n## Aidez-nous à améliorer l'arborescence de fichiers\n\nPartagez vos retours sur l'arborescence de fichiers dans notre [ticket](https://gitlab.com/gitlab-org/gitlab/-/issues/581271).\n\n\n> Vous souhaitez en savoir plus sur l'arborescence de fichiers ? Consultez la [documentation](https://docs.gitlab.com/user/project/repository/files/file_tree_browser/).\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773075582/yiosxfhwk8rfkulrtchv.png","2026-03-31",{"featured":26,"template":12,"slug":700},"navigate-repositories-faster-with-the-file-tree-browser",{"content":702,"config":710},{"title":703,"description":704,"authors":705,"heroImage":706,"date":707,"body":708,"category":9,"tags":709},"GitLab 18.10 : l'IA agentique accessible à encore plus d'utilisateurs","Les utilisateurs de la version gratuite de GitLab.com peuvent acheter des crédits GitLab pour utiliser les agents et workflows d'IA, et profitent d'une revue de code automatisée à un tarif forfaitaire.",[693],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773843921/rm35fx4gylrsu9alf2fx.png","2026-03-19","L'IA agentique transforme la façon dont les logiciels sont développés. Mais pour de nombreuses équipes, en particulier dans les petites et moyennes structures, le chemin vers son adoption s'apparente à un choix binaire : souscrire un abonnement complet à une plateforme ou renoncer entièrement à l'IA.\n\nUn tournant s'amorce avec GitLab 18.10. Dès aujourd'hui, les équipes qui utilisent la version gratuite de GitLab.com peuvent acheter un abonnement mensuel de [GitLab Credits](https://docs.gitlab.com/subscriptions/gitlab_credits/) et commencer à utiliser [GitLab Duo Agent Platform](https://docs.gitlab.com/user/duo_agent_platform/) immédiatement, sans mise à niveau de leur abonnement. Il s'agit d'un véritable point d'entrée vers l'IA agentique pour les équipes qui ne sont pas encore prêtes à souscrire un abonnement GitLab, mais qui souhaitent commencer à développer avec l'IA.\n\nLe fonctionnement est simple : vous payez pour ce que l'IA accomplit, et non pour le nombre de personnes qui l'utilisent. Le propriétaire de votre groupe achète un engagement mensuel de GitLab Credits via les paramètres de facturation du groupe. L'ensemble de votre équipe accède alors aux mêmes agents et workflows d'IA que les clients GitLab Premium et GitLab Ultimate pour la planification, la génération de code, la revue de code automatisée et le diagnostic de pipelines, le tout à partir d'un pool de crédits partagé.\n\nLe [tableau de bord GitLab Credits](https://docs.gitlab.com/subscriptions/gitlab_credits/#gitlab-credits-dashboard) offre aux propriétaires de groupe une visibilité sur les agents et workflows qui consomment des crédits, afin de relier directement les dépenses de l'IA au travail produit.\n\n![Tableau de bord GitLab Credits qui affiche un pool mensuel engagé de 50 crédits avec suivi de l'utilisation, consommation de crédits à la demande et allocation de crédits par utilisateur pour GitLab Duo Agent Platform.](https://res.cloudinary.com/about-gitlab-com/image/upload/v1773867549/jdrzquwptvjnbr7eqd56.png)\n\n## Zero-day avec GitLab Duo Agent Platform\n\nDès que le propriétaire de votre groupe a acheté des crédits, chaque membre de l'équipe peut commencer à utiliser GitLab Duo Agent Platform.\n\nVoici le fonctionnement d'un workflow type :\n\nVous commencez avec une demande de fonctionnalité pour votre logiciel. Ouvrez [l'agent GitLab Duo Planner](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/) dans l'Agentic Chat et décrivez vos besoins. L'agent les décompose en éléments de travail structurés : tickets avec descriptions, labels et relations, tous créés directement dans votre projet. Ce qui prenait auparavant un après-midi entier de gestion manuelle des tickets ne prend plus que quelques minutes.\n\nSélectionnez l'un de ces tickets et assignez [le flow Developer](https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/developer/) pour démarrer le travail. L'agent lit le contexte du ticket, génère du code conforme aux exigences, exécute les tests et ouvre une merge request pour revue. Vous pouvez également utiliser [l'Agentic Chat](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/) pour un travail plus itératif, qu'il s'agisse de refactorisation, d'extension ou d'explication de code dans le contexte de votre projet.\n\nLorsque la merge request est prête, [le flow Code Review](https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/code_review/) exécute une revue automatisée en plusieurs étapes : analyse des modifications, prise en compte du contexte du dépôt et publication de commentaires inline structurés, directement liés au diff. Vos réviseurs humains peuvent ainsi se concentrer sur l'architecture et la logique métier, sans avoir à gérer les premières étapes manuelles.\n\nEt si le pipeline échoue, le [flow Fix CI/CD Pipeline](https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/fix_pipeline/) lit les logs d'erreurs, identifie la cause profonde et propose un correctif. Au lieu de parcourir manuellement les job logs, votre équipe dispose d'un point de départ pour la correction.\n\nGitLab Duo Agent Platform accompagne le développement logiciel de l'itération au déploiement, à partir d'un seul pool de crédits.\n\nLa prise en main des agents et workflows est simple. Découvrez comment passer de la planification au déploiement en moins de 3 minutes dans cette vidéo :\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1175244743?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"18.10 Main Demo V2\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## Revue de code à un tarif forfaitaire : des coûts prévisibles à grande échelle\n\nParmi tous les workflows disponibles via GitLab Duo Agent Platform, la revue de code automatisée est celui qui livre des résultats le plus rapidement, et celui pour lequel la prévisibilité des coûts est la plus importante.\n\nLe flow Code Review coûte désormais un tarif forfaitaire de 0,25 crédit GitLab par revue, indépendamment de la taille de la merge request, de la complexité du dépôt ou du nombre d'étapes exécutées en interne. Quatre revues correspondent à un crédit. Que votre équipe fusionne 500 ou 50 000 merge requests par mois, vous pouvez prévoir les coûts directement en fonction du nombre de revues.\n\nLes chiffres parlent d'eux-mêmes. Les revues de code manuelles ne coûtent pas seulement de l'argent : elles prennent du temps et perturbent le développement en raison de changements de contexte constants. Le temps économisé grâce au flow Code Review peut se traduire par des économies substantielles à mesure que le volume des revues augmente. Vous avez désormais la possibilité d'exécuter des centaines de revues simultanément au lieu de les laisser en file d'attente, ce qui signifie que les gains de temps se combinent rapidement aux économies financières.\n\nLes équipes qui utilisent la version gratuite de GitLab savent désormais exactement quelle part de leur pool mensuel de crédits est consacrée à la revue de code afin de pouvoir planifier en conséquence.\n\n> Découvrez [le fonctionnement du flow Code Review](https://about.gitlab.com/fr-fr/blog/code-review-without-the-bottlenecks-or-the-bill/) et comment faire évoluer votre organisation.\n\n## Pourquoi GitLab Premium multiplie la valeur ajoutée\n\nLes crédits GitLab de la version gratuite offrent à votre équipe un accès direct à l'[IA agentique](https://about.gitlab.com/fr-fr/topics/agentic-ai/ \"Qu'est-ce que l'IA agentique ?\"). Si votre équipe s'appuie davantage sur GitLab, GitLab Premium est l'abonnement qui allie avantages économiques et fonctionnalités avancées.\n\nDisponible pour 29 $ par utilisateur et par mois, [GitLab Premium](https://about.gitlab.com/fr-fr/pricing/) inclut 12 GitLab Credits par utilisateur dans le cadre d'une offre promotionnelle. Pour une équipe de 20 personnes, cela représente 240 crédits par mois avant toute dépense supplémentaire, soit suffisamment pour couvrir environ 960 revues de code automatisées, ou une combinaison de revues de code, de planification, de workflows de développement et de corrections de pipelines.\n\nGitLab Duo Agent Platform ne représente qu'une partie de GitLab Premium. Vous bénéficiez également d'un [CI/CD](https://about.gitlab.com/fr-fr/topics/ci-cd/ \"Qu'est-ce que le CI/CD ?\") avancé pour les pipelines à fort volume, d'approbations de merge requests et de propriétaires du code pour la gouvernance, ainsi que d'une IA qui fonctionne au sein d'une couche de données unifiée avec un contexte partagé entre vos projets.\n\nSi votre équipe utilise des crédits dans le cadre de la version gratuite et constate que l'IA devient centrale dans son workflow, GitLab Premium constitue l'étape suivante naturelle grâce aux crédits promotionnels inclus. Cette formule offre davantage de fonctionnalités et offre une structure de base qui évolue avec vous.\n\n## Commencez dès aujourd'hui\n\nGitLab 18.10 est disponible dès maintenant. Que votre équipe ait besoin de l'IA agentique pour accélérer ses tâches ou de la plateforme complète pour accompagner ses méthodes de travail actuelles, vous disposez désormais d'une solution claire pour accélérer votre processus de développement logiciel.\n\n* **Équipes qui utilisent la version gratuite de GitLab.com :** [achetez un engagement mensuel de GitLab Credits](https://docs.gitlab.com/subscriptions/gitlab_credits/#for-the-free-tier-on-gitlabcom) via les paramètres de facturation de votre groupe et commencez à utiliser GitLab Duo Agent Platform dès aujourd'hui.\n\n* **Équipes prêtes pour la plateforme complète :** [trouvez l'abonnement GitLab adapté à votre équipe](https://docs.gitlab.com/subscriptions/choosing_subscription/) ou [démarrez un essai gratuit de GitLab Ultimate](https://about.gitlab.com/fr-fr/free-trial/).\n\nLa configuration des crédits pour votre équipe est rapide et simple. Regardez cette démo pour en savoir plus :\n\u003Ciframe src=\"https://player.vimeo.com/video/1175238100?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"GitLab Credits Purchase Flow\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n---\n\n## FAQ\n\n**Qu'est-ce qu'un engagement mensuel de GitLab Credits ?**\n\nUn engagement mensuel est une option d'achat basée sur l'utilisation, dans laquelle le propriétaire de votre groupe sélectionne un nombre défini de crédits qui s'appliquent en tant que pool partagé pour l'ensemble du groupe. Les crédits sont consommés lorsque votre équipe utilise les fonctionnalités de GitLab Duo Agent Platform. Consultez la [documentation GitLab Credits](https://docs.gitlab.com/subscriptions/gitlab_credits/) pour en savoir plus.\n\n**Qui peut acheter des GitLab Credits aujourd'hui ?**\n\nLes clients GitLab Premium et GitLab Ultimate profitent déjà de crédits promotionnels inclus dans leur abonnement. À partir de la version 18.10, les espaces de nommage de groupe principal de la version gratuite de GitLab.com peuvent également acheter un engagement mensuel de crédits via la facturation en libre-service du groupe. Consultez la [documentation GitLab Credits](https://docs.gitlab.com/subscriptions/gitlab_credits/) pour connaître les dernières conditions d'éligibilité.\n\n**Quelles fonctionnalités d'IA les crédits débloquent-ils dans la version gratuite ?**\n\nLes équipes disposant de crédits accèdent aux mêmes fonctionnalités et modèles d'IA agentique que les clients GitLab Premium et GitLab Ultimate, notamment l'agent Planner, le flow Developer, le flow Code Review, le flow Fix CI/CD Pipeline, l'Agentic Chat, les suggestions de code, les agents et workflows personnalisés, et bien plus encore. Consultez la [documentation relative à GitLab Duo Agent Platform](https://docs.gitlab.com/user/duo_agent_platform/) pour obtenir la liste complète.\n\n**Combien coûte la revue de code automatisée ?**\n\nLe flow Code Review applique un tarif forfaitaire de 0,25 crédit GitLab par revue, indépendamment de la taille ou de la complexité de la merge request. Consultez la [documentation relative au flow Code Review](https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/code_review/) pour connaître les détails actuels des tarifs.\n\n**Puis-je passer de la version gratuite avec crédits à GitLab Premium ?**\n\nDans GitLab 18.10, la mise à niveau d'un espace de nommage de la version gratuite avec un engagement mensuel de crédits vers GitLab Premium est disponible via un processus accompagné par l'équipe commerciale. Contactez l'[équipe commerciale GitLab](https://about.gitlab.com/fr-fr/contact-sales/) pour connaître vos options.\n\n\n",[685,9],{"featured":26,"template":12,"slug":711},"gitlab-18-10-agentic-ai-now-open-to-even-more-teams-on-gitlab",{"promotions":713},[714,728,740],{"id":715,"categories":716,"header":718,"text":719,"button":720,"image":725},"ai-modernization",[717],"ai-ml","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":721,"config":722},"Get your AI maturity score",{"href":723,"dataGaName":724,"dataGaLocation":240},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":726},{"src":727},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":729,"categories":730,"header":732,"text":719,"button":733,"image":737},"devops-modernization",[9,731],"devsecops","Are you just managing tools or shipping innovation?",{"text":734,"config":735},"Get your DevOps maturity score",{"href":736,"dataGaName":724,"dataGaLocation":240},"/assessments/devops-modernization-assessment/",{"config":738},{"src":739},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":741,"categories":742,"header":744,"text":719,"button":745,"image":749},"security-modernization",[743],"security","Are you trading speed for security?",{"text":746,"config":747},"Get your security maturity score",{"href":748,"dataGaName":724,"dataGaLocation":240},"/assessments/security-modernization-assessment/",{"config":750},{"src":751},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"header":753,"blurb":754,"button":755,"secondaryButton":759},"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":42,"config":756},{"href":757,"dataGaName":45,"dataGaLocation":758},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":47,"config":760},{"href":49,"dataGaName":50,"dataGaLocation":758},1777310053087]