<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://about.gitlab.com/blog</id>
    <title>GitLab</title>
    <updated>2026-03-04T19:21:56.308Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <author>
        <name>The GitLab Team</name>
    </author>
    <link rel="alternate" href="https://about.gitlab.com/blog"/>
    <link rel="self" href="https://about.gitlab.com/fr-fr/atom.xml"/>
    <subtitle>GitLab Blog RSS feed</subtitle>
    <icon>https://about.gitlab.com/favicon.ico</icon>
    <rights>All rights reserved 2026</rights>
    <entry>
        <title type="html"><![CDATA[Conteneurs et machines virtuelles : quelle différence ?]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/containers-vs-virtual-machines/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/containers-vs-virtual-machines/"/>
        <updated>2026-03-03T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Les conteneurs et les machines virtuelles sont deux technologies de virtualisation des ressources, essentielles pour le développement logiciel moderne. La machine virtuelle propose une copie numérique complète d&#39;une machine physique, tandis que le conteneur partage le noyau du système d&#39;exploitation hôte et n&#39;embarque que les dépendances applicatives nécessaires à l&#39;exécution de l&#39;application.</p><p>Dans cet article, découvrez les différences architecturales entre ces deux approches et leurs champs d&#39;application respectifs.</p><blockquote><p>Essayez <a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr" rel="">GitLab Ultimate</a> gratuitement dès aujourd&#39;hui !</p></blockquote><h2 id="quest-ce-quune-machine-virtuelle">Qu’est-ce qu’une machine virtuelle ?</h2><h3 id="définition-et-fonctionnement">Définition et fonctionnement</h3><p>La machine virtuelle, ou virtual machine (VM) est un environnement informatique entièrement virtualisé qui reproduit virtuellement ses propres composants (CPU, GPU, mémoire RAM, disque dur et carte réseau) et exécute son propre système d’exploitation (OS).</p><p>Plusieurs machines virtuelles peuvent coexister sur une même machine physique, chacune isolée des autres.</p><p>La création d&#39;une machine virtuelle est rendue possible grâce à l&#39;installation d&#39;un hyperviseur sur un OS hôte. Cet outil de virtualisation effectue la partition des ressources matérielles et affecte des quotas système dédiés (processeur, mémoire, stockage, réseau) à chaque machine virtuelle.</p><p>Il existe deux types d&#39;hyperviseurs : les hyperviseurs de Type 1 (installés directement sur le matériel physique) et de Type 2 (installés sur un système d&#39;exploitation hôte).</p><h3 id="avantages-et-limites-de-la-machine-virtuelle">Avantages et limites de la machine virtuelle</h3><p>La technologie de machine virtuelle offre une isolation forte sur machine physique. Résultat, le déploiement des machines virtuelles s&#39;effectue dans un environnement étanche et sécurisé. Même si une machine virtuelle est piratée, elle ne pourra pas contaminer les autres machines.</p><p>Le principe de fonctionnement via hyperviseur assure également une compatibilité optimale avec de multiples environnements. Une machine virtuelle peut ainsi être déployée sur différents systèmes d’exploitation hôtes comme Windows, Linux, macOS ou un serveur physique.</p><p>Toutefois, la machine virtuelle classique présente un inconvénient majeur : sa consommation de ressources. Elle est plus lourde qu’un conteneur, car chaque machine virtuelle embarque un système d’exploitation complet. Ce système a également tendance à offrir des démarrages plus longs que la <a href="https://about.gitlab.com/fr-fr/blog/what-is-containerization/" rel="" title="Qu&#39;est-ce que la conteneurisation ?">conteneurisation</a>, plus légère et rapide.</p><h2 id="quest-ce-quun-conteneur">Qu’est-ce qu’un conteneur ?</h2><h3 id="définition-et-fonctionnement-1">Définition et fonctionnement</h3><p>Le conteneur est une approche alternative de virtualisation, un paquet qui contient toutes les dépendances nécessaires à l&#39;exécution d&#39;une application logicielle (bibliothèques, codes tiers, fichiers, etc.). Il reproduit la couche applicative d&#39;un système d&#39;exploitation, mais sans ses composants externes. Il est donc beaucoup plus léger qu&#39;une machine virtuelle.</p><p>Un conteneur peut être exécuté isolément sur n&#39;importe quel système d&#39;exploitation en parallèle d&#39;autres conteneurs, tous partageant le kernel (noyau) de l&#39;OS hôte. Si <a href="https://about.gitlab.com/fr-fr/blog/what-is-docker-comprehensive-guide/" rel="" title="Qu&#39;est-ce que Docker ?">Docker</a> est l’outil de référence des équipes de développement pour la gestion des conteneurs, la plateforme <a href="https://about.gitlab.com/fr-fr/blog/kubernetes-the-container-orchestration-solution/" rel="" title="Qu&#39;est-ce que Kubernetes ?">Kubernetes</a> intervient quant à elle à un niveau supérieur en orchestrant ces conteneurs à grande échelle, en s&#39;appuyant sur des moteurs d&#39;exécution tels que containerd ou CRI-O.</p><h3 id="avantages-et-limites-des-conteneurs">Avantages et limites des conteneurs</h3><p>L&#39;avantage premier du conteneur est sa légèreté et sa rapidité de déploiement. Vous déployez l’image du conteneur sur n’importe quel environnement compatible et l&#39;application est déjà fonctionnelle, avec des démarrages quasi instantanés.</p><p>Au contraire de la machine virtuelle, la virtualisation par conteneur est fortement dépendante de l&#39;environnement hôte, car elle ne reproduit pas un nouvel OS complet. De plus, la compartimentation est moins optimale qu&#39;avec la machine virtuelle, en raison du partage du kernel. Cela signifie qu&#39;une vulnérabilité du kernel pourrait potentiellement affecter tous les conteneurs exécutés sur cet hôte.</p><h2 id="conteneurs-vs-machines-virtuelles-les-principales-différences">Conteneurs vs machines virtuelles : les principales différences</h2><table><thead><tr><th><strong>Critères</strong></th><th><strong>Conteneur</strong></th><th><strong>Machine virtuelle</strong></th></tr></thead><tbody><tr><td><strong>Architecture</strong></td><td>Virtualisation au niveau du système d’exploitation</td><td>Virtualisation au niveau matériel via un hyperviseur</td></tr><tr><td><strong>Performances</strong></td><td>Démarrage rapide en quelques secondes et utilisation des ressources plus faible</td><td>Démarrage plus lent que les conteneurs et consommation élevée en mémoire et CPU</td></tr><tr><td><strong>Sécurité</strong></td><td>Isolation au niveau du kernel via espaces de nommage et cgroups</td><td>Isolation au niveau matériel (plus forte)</td></tr><tr><td><strong>Usages</strong></td><td>Pour les <a href="https://about.gitlab.com/fr-fr/topics/microservices/" rel="" title="Qu&#39;est-ce qu&#39;un microservice ?">microservices</a>, applications <a href="https://about.gitlab.com/fr-fr/topics/cloud-native/" rel="" title="Qu&#39;est-ce que l&#39;approche cloud-native ?">cloud-native</a>, orchestration, <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" rel="" title="Qu&#39;est-ce qu&#39;un pipeline CI/CD ?">pipelines CI/CD</a>, déploiements rapides et continus</td><td>Pour les applications héritées qui nécessitent une isolation complète et différents systèmes d’exploitation</td></tr><tr><td><strong>Coûts et gestion</strong></td><td>Moins coûteux en ressources et en maintenance</td><td>Plus coûteux à exploiter (licences, ressources matérielles)</td></tr></tbody></table><h3 id="architecture">Architecture</h3><p>Les conteneurs et les machines virtuelles ne présentent pas la même architecture. Les machines virtuelles embarquent leur propre OS complet, alors que les conteneurs ne font que partager le noyau du système d&#39;exploitation hôte. Ils n&#39;exécutent que les applications qu&#39;ils contiennent, nécessitent moins de ressources matérielles, mais offrent une isolation moins stricte que les machines virtuelles.</p><h3 id="performance-et-consommation">Performance et consommation</h3><p>Sur ce point, les conteneurs ont clairement l&#39;avantage. Ils démarrent quasi instantanément quand les machines virtuelles peuvent mettre plusieurs minutes pour s&#39;exécuter. Cette différence s&#39;explique par les ressources plus importantes consommées par les machines virtuelles. De leur côté, les conteneurs, étant beaucoup plus légers, sont également beaucoup moins gourmands en ressources.</p><h3 id="sécurité">Sécurité</h3><p>La machine virtuelle offre une isolation plus stricte. Chaque machine virtuelle invitée est indépendante du système et des autres machines. Cela assure aux utilisateurs une protection complète. Les conteneurs partagent le noyau de l&#39;OS hôte, leur étanchéité est donc moindre. Cependant, ils utilisent des mécanismes de sécurité du kernel (espaces de nommage, cgroups, sandboxing) pour atteindre un niveau d&#39;isolation robuste, à condition que l&#39;OS hôte soit correctement configuré et maintenu à jour.</p><h3 id="scalabilité-et-devops">Scalabilité et DevOps</h3><p>Les conteneurs sont spécialement conçus pour les environnements DevOps et les architectures cloud-native.</p><p>Ils offrent une excellente scalabilité, ce qui représente un atout majeur pour les pipelines CI/CD et le développement agile.</p><p>Concrètement, vous disposez d&#39;une solution qui se met automatiquement à l&#39;échelle selon vos besoins, grâce à des orchestrateurs comme Kubernetes. Cette flexibilité est devenue indispensable, notamment dans les secteurs à forte variabilité de charge.</p><p>Les machines virtuelles sont davantage adaptées à des applications monolithiques où l&#39;ensemble du code et des fonctionnalités sont implémentés dans un programme unique. Avec ce modèle, vous devez modifier le code source, créer et déployer une version mise à jour de l’application complète sur la machine virtuelle. Elles peuvent aussi évoluer, mais nécessitent davantage de ressources matérielles et de temps de déploiement.</p><p>Pour tirer pleinement parti des conteneurs en production, deux outils se distinguent : Kubernetes pour l&#39;orchestration, et GitLab pour l&#39;automatisation des pipelines CI/CD. Voici comment ils s&#39;articulent.</p><h2 id="kubernetes-et-gitlab">Kubernetes et GitLab</h2><p>Kubernetes est un système d’orchestration <a href="https://about.gitlab.com/fr-fr/blog/what-is-open-source/" rel="" title="Qu&#39;est-ce que l&#39;open source ?">open source</a> initié par Google et aujourd’hui gouverné par la Cloud Native Computing Foundation. Il permet la création et la gestion d&#39;applications conteneurisées avec une infrastructure flexible et évolutive. Kubernetes représente une solution très efficace pour développer des applications de type microservices plus rapidement, sans être limité à une infrastructure fixe.
Kubernetes est une solution cloud-native. Vous pouvez ainsi le déployer dans n&#39;importe quel environnement de ce type (cloud public, privé ou hybride). Une caractéristique utile, notamment pour les entreprises qui utilisent plusieurs fournisseurs de services cloud. Vous gagnez en flexibilité et réduisez votre dépendance à un fournisseur cloud unique.</p><p>L&#39;autre grande force de Kubernetes est sa capacité d&#39;évolutivité. Les applications développées évoluent automatiquement selon vos besoins. Vos infrastructures disposent d&#39;une disponibilité optimale, même en cas de hausse du trafic ou de pic de charge.</p><p>Kubernetes intègre enfin tous les outils nécessaires pour assurer une surveillance efficace : tableaux de bord intuitifs, outils de supervision (Prometheus, Grafana), alertes, etc.</p><h3 id="gitlab-cicd-et-kubernetes">GitLab CI/CD et Kubernetes</h3><p>La plateforme DevSecOps de GitLab facilite grandement la mise en place de projets conteneurisés et le développement cloud-native.</p><p><a href="https://about.gitlab.com/fr-fr/solutions/kubernetes/" rel="" title="GitLab et Kubernetes">GitLab et Kubernetes</a> fonctionnent de trois manières distinctes :</p><ul><li><a href="https://docs.gitlab.com/ee/user/clusters/agent/" rel="">Connectez votre cluster Kubernetes à GitLab</a> pour déployer, gérer et surveiller vos solutions cloud natives.
Utilisez Kubernetes pour gérer vos <a href="https://about.gitlab.com/fr-fr/blog/what-is-gitlab-runner/" rel="" title="Qu&#39;est-ce qu&#39;un GitLab Runner ?">GitLab Runners</a> et adaptez la charge de travail selon vos besoins.
Exécutez GitLab sur un cluster Kubernetes.</li></ul><p>Chacune de ces approches peut être utilisée ensemble ou séparément. Par exemple, une instance Omnibus GitLab s&#39;exécutant sur une machine virtuelle peut déployer des logiciels stockés en son sein vers Kubernetes.</p><p>Avec GitLab et Kubernetes, vous adaptez ainsi vos workflows aux contraintes de votre infrastructure, tout en conservant une intégration et une automatisation complètes.</p><h2 id="quand-choisir-un-conteneur-ou-une-machine-virtuelle">Quand choisir un conteneur ou une machine virtuelle ?</h2><p>Dans la plupart des cas, les conteneurs constituent le choix le plus adapté aux environnements modernes, grâce à leur légèreté, leur rapidité de déploiement et leur scalabilité native. Certains contextes spécifiques justifient cependant de privilégier la machine virtuelle. C&#39;est ce que nous allons découvrir maintenant.</p><h3 id="quand-privilégier-la-machine-virtuelle">Quand privilégier la machine virtuelle ?</h3><p>La conteneurisation offre une sécurité suffisante pour la plupart des entreprises. Toutefois, si vous avez besoin d&#39;environnements entièrement cloisonnés, la machine virtuelle se révèle être une option intéressante.</p><p>Prenons un exemple. Votre entreprise de cybersécurité héberge plusieurs environnements de test pour analyser des malwares. Dans cette situation, la partition doit être optimale pour éviter une potentielle contamination entre les systèmes. Il est donc préférable d&#39;utiliser une machine virtuelle.</p><p>La machine virtuelle s&#39;impose également pour les tests en environnements multi OS. Si vous souhaitez tester des logiciels sur plusieurs systèmes d&#39;exploitation (Windows, Linux et macOS), vous pouvez le faire à partir d&#39;une seule machine physique. Vous faites ainsi des économies de matériel.</p><p>Plus globalement, les machines virtuelles sont surtout utilisées pour les applications monolithiques ou anciennes. Si votre entreprise est gérée via un ERP développé il y a plusieurs années sur un OS hôte obsolète, la transition conteneur risque d&#39;être complexe (migration progressive du code, refonte architecturale, etc.).</p><p>Il est donc préférable de la faire tourner sur une machine virtuelle, mieux adaptée à ce type de structure logicielle.</p><h3 id="quand-adopter-les-conteneurs">Quand adopter les conteneurs ?</h3><p>Aujourd&#39;hui, les développements applicatifs s&#39;appuient sur un modèle de microservices. Cette structure permet de tester, gérer, mettre à jour et déployer chaque module d&#39;un logiciel, indépendamment des autres.</p><p>Pour arriver à ce résultat, il faut pouvoir disposer d&#39;une distribution optimale des ressources entre les différents services. C&#39;est exactement ce que permet la conteneurisation, grâce à sa structure légère et modulaire.</p><p>Cet aspect facilite grandement le travail des équipes <a href="https://about.gitlab.com/fr-fr/topics/devops/" rel="" title="Qu&#39;est-ce que le DevOps ?">Devops</a> qui profitent de déploiements <a href="https://about.gitlab.com/fr-fr/blog/ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation/" rel="" title="Qu&#39;est-ce que l&#39;approche CI/CD ?">CI/CD</a> plus rapides et fréquents. Une méthode qui limite les erreurs liées aux importantes mises à jour grâce à une itération continue.
Là où les conteneurs sont particulièrement efficaces, c&#39;est lorsque l&#39;on aborde la question de la scalabilité et de la mise à niveau.</p><p>Avec la conteneurisation, l&#39;ajout, le retrait et l&#39;ajustement des microservices s&#39;effectuent automatiquement, sans intervention manuelle ni interruption du service. Vous optimisez ainsi les ressources consommées, quelles que soient la charge, la demande ou la taille de votre infrastructure.</p><h2 id="coexistence-machine-virtuelle-et-conteneurs-la-solution-hybride-à-adopter">Coexistence machine virtuelle et conteneurs : la solution hybride à adopter</h2><p>Il est tout à fait possible de faire coexister au sein d&#39;une même structure ces deux architectures. Par exemple, une banque peut utiliser des machines virtuelles pour ses systèmes de paiement critiques et des conteneurs pour ses applications mobiles et services cloud-native.</p><p>La machine virtuelle s&#39;impose pour les applications complexes ou critiques qui ne peuvent pas être divisées en modules ou qui nécessitent une isolation totale.
Pour toutes les applications structurées en microservices (ou susceptibles de l&#39;être), la conteneurisation est le modèle le mieux adapté.</p><p>Cependant, ce n&#39;est pas toujours la meilleure solution. Si vous devez maintenir ou exécuter des logiciels anciens, analysez bien le rapport coût/bénéfice d&#39;une transition en conteneurs. S&#39;il est trop élevé ou techniquement risqué, la machine virtuelle reste plus pertinente.</p><h2 id="bonnes-pratiques-pour-passer-de-la-machine-virtuelle-au-conteneur">Bonnes pratiques pour passer de la machine virtuelle au conteneur</h2><p>Vous souhaitez passer de la virtualisation par machine virtuelle à la conteneurisation ? Voici comment procéder pour effectuer une transition optimale et sans rupture :</p><ul><li><strong>Audit de votre structure :</strong> identifiez les systèmes d’exploitation utilisés, les dépendances logicielles, les services en cours d’exécution pour repérer les composants critiques. L&#39;objectif ? Vérifier la compatibilité de ces éléments avec la structure modulaire en conteneurs.</li><li><strong>Refactorisation et découplage :</strong> la refactorisation consiste à adapter le code et les processus à une structure de logiciel en microservices. Ensuite, le découplage va isoler les services et bases de données pour les rendre indépendants les uns des autres.</li><li><strong>Empaquetage :</strong> une étape charnière pour créer l’image du conteneur via un Dockerfile, un fichier de configuration texte qui décrit l&#39;environnement de l&#39;application : dépendances, variables d&#39;environnement, commandes d&#39;exécution, etc.</li><li><strong>Test et sécurité :</strong> l’image conteneurisée doit être soumise à une série de tests rigoureux avant le déploiement en production. Des tests automatisés unitaires, d’intégration, de charge et de sécurité pour assurer une stabilité totale.</li><li><strong>Déploiement :</strong> c&#39;est ici qu&#39;entre en jeu <a href="https://docs.gitlab.com/ci/" rel="">GitLab CI/CD</a>. Avec GitLab CI/CD, vous déployez automatiquement vos conteneurs via l&#39;intégration native Kubernetes. Avec les outils de monitoring intégrés à GitLab et d&#39;autres solutions (Prometheus, Grafana), vous suivez en temps réel l’état de vos déploiements.</li></ul><p>Que vous optiez pour les conteneurs, les machines virtuelles ou une architecture hybride, l&#39;essentiel est d&#39;aligner votre choix technologique sur les besoins réels de votre infrastructure.</p><blockquote><p>Essayez <a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr" rel="">GitLab Ultimate</a> gratuitement dès aujourd&#39;hui !</p></blockquote>]]></content>
        <author>
            <name>GitLab France Team</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/gitlab-france-team/</uri>
        </author>
        <published>2026-03-03T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Réduction des goulots d'étranglement CI/CD avec GitLab]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/new-gitlab-metrics-and-registry-features-help-reduce-ci-cd-bottlenecks/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/new-gitlab-metrics-and-registry-features-help-reduce-ci-cd-bottlenecks/"/>
        <updated>2026-03-02T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Les ingénieurs plateforme et <a href="https://about.gitlab.com/fr-fr/topics/devops/" rel="" title="Qu&#39;est-ce que le DevOps ?">DevOps</a> passent trop de temps à rassembler les informations dispersées entre différents outils fragmentés et à gérer une infrastructure qui devrait simplement fonctionner.</p><p>Deux nouvelles fonctionnalités GitLab, disponibles actuellement en version bêta, abordent ce problème sous différents angles mais partagent le même objectif : donner aux praticiens un contrôle direct sur l&#39;infrastructure <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" rel="" title="Qu&#39;est-ce que le CI/CD ?">CI/CD</a> dont ils dépendent, sans ajouter un nouvel outil tiers. L&#39;une affiche les données de performance au niveau des jobs directement à l&#39;endroit où vous surveillez les pipelines. L&#39;autre simplifie la façon dont vous extrayez les images de conteneurs à partir de plusieurs registres avec une mise en cache intégrée.</p><p>Ces deux fonctionnalités sont désormais ouvertes aux retours. Vos commentaires nous aideront à façonner les prochaines versions.</p><h2 id="indicateurs-de-performance-des-jobs-cicd">Indicateurs de performance des jobs CI/CD</h2><ul><li><strong>Niveaux disponibles :</strong> GitLab Premium, GitLab Ultimate</li><li><strong>Statut :</strong> Version bêta à disponibilité limitée sur GitLab.com ; disponible sur GitLab Self-Managed et GitLab Dedicated lorsque ClickHouse est configuré</li></ul><p>À l&#39;heure actuelle, il n&#39;existe aucun moyen simple de savoir quand la durée d&#39;un job commence à augmenter ou quels jobs ralentissent l&#39;exécution de votre pipeline. La plupart des équipes construisent des tableaux de bord personnalisés ou examinent manuellement les logs pour répondre à des questions basiques telles que :</p><ul><li>Quels jobs sont les plus lents ?</li><li>Où les taux d&#39;échec augmentent-ils ?</li><li>Quelle étape constitue le véritable goulot d&#39;étranglement ?</li></ul><p>Les indicateurs de performance des jobs CI/CD changent cela en ajoutant un nouveau panneau axé sur les jobs à la page d&#39;analyse CI/CD au niveau du projet.</p><p>Pour chaque job, vous pouvez voir :</p><ul><li>La durée typique (P50, médiane) et la durée dans le pire des cas (P95) du job, pour que vous puissiez rapidement comparer les exécutions normales et les exécutions les plus lentes</li><li>Le taux d&#39;échec, pour que vous puissiez identifier les jobs fragiles ou instables</li><li>Le nom et l’étape du job, couvrant par défaut les 30 derniers jours</li></ul><p>Le tableau est triable, consultable par nom de job et paginé, ce qui permet aux équipes de plateforme d&#39;obtenir une vue unique pour répondre aux questions qui nécessitaient auparavant des outils distincts ou des rapports personnalisés.</p><p><strong>Essayez cette fonctionnalité</strong></p><ul><li>Accédez à votre projet et sélectionnez <strong>Analyse &gt; Données d&#39;analyse CI/CD</strong>.</li><li>Recherchez le panneau des indicateurs de performance des jobs CI/CD et triez-les par durée ou par taux d&#39;échec pour trouver vos jobs les plus lents ou les moins fiables.</li></ul><p><strong>Documentation</strong></p><ul><li><a href="https://docs.gitlab.com/user/analytics/ci_cd_analytics/#cicd-job-performance-metrics" rel="">Analyses CI/CD – Indicateurs de performance des jobs CI/CD</a></li></ul><p><strong>À venir</strong></p><p>Nous travaillons actuellement sur le regroupement par étape pour que vous puissiez consulter les indicateurs agrégés dans vos étapes de build, de test et de déploiement, et comprendre rapidement où concentrer vos efforts d&#39;optimisation.</p><p><strong>Partagez vos retours :</strong></p><ul><li><a href="https://gitlab.com/groups/gitlab-org/-/work_items/18548" rel="">Epic des indicateurs de performance des jobs CI/CD</a></li></ul><h2 id="registre-virtuel-de-conteneurs">Registre virtuel de conteneurs</h2><p><strong>Niveau :</strong> GitLab Premium, GitLab Ultimate
<strong>Statut :</strong> Version bêta, compatible API dans la version 18.9</p><p>La plupart des organisations qui intègrent des images de conteneurs dans les <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" rel="" title="Qu&#39;est-ce qu&#39;un pipeline CI/CD ?">pipelines CI/CD</a> s&#39;appuient sur plusieurs registres : Docker Hub, Harbor, Quay et les registres internes, pour n&#39;en citer que quelques-uns. Gérer l&#39;authentification, la disponibilité et la mise en cache sur l&#39;ensemble de ces registres représente une charge opérationnelle qui ralentit les pipelines et introduit une certaine fragilité.</p><p>Le registre virtuel de conteneurs vous permet de créer un point de terminaison GitLab unique qui extrait des données de plusieurs sources de conteneurs en amont avec une mise en cache intégrée.</p><p>Au lieu de configurer les identifiants et la disponibilité pour chaque registre dans votre configuration de pipeline, vous pouvez :</p><ul><li>Diriger vos pipelines vers un point de terminaison de registre virtuel GitLab</li><li>Configurer plusieurs registres en amont (Docker Hub, Harbor, Quay et autres utilisant l&#39;authentification par jeton à longue durée de vie)</li><li>Laisser GitLab résoudre automatiquement les extractions d&#39;images, avec une mise en cache pull-through pour réduire les coûts de bande passante et améliorer la fiabilité</li></ul><p>Pour les équipes qui évaluent GitLab comme remplacement de registre de conteneurs, cela comble une lacune critique en matière de capacités. Pour les équipes qui gèrent déjà des worflows de conteneurs multi-registres, cela centralise la gestion des images dans GitLab et réduit les extractions répétées.</p><p><strong>Ce que la version bêta prend en charge aujourd&#39;hui</strong></p><ul><li>Registres en amont qui utilisent l&#39;authentification par jeton à longue durée de vie : Docker Hub, Harbor, Quay et autres registres compatibles</li><li>Mise en cache pull-through pour que les images couramment utilisées soient fournies par GitLab après le premier pull</li><li>Configuration API-first, avec gestion de l&#39;interface utilisateur en cours++</li></ul><p>Les registres de fournisseurs cloud qui nécessitent une authentification IAM (tels que Amazon Elastic Container Registry, Google Artifact Registry et Azure Container Registry) sont à l&#39;étude pour de futures itérations.</p><p><strong>Essayez cette fonctionnalité</strong></p><ul><li>Le registre virtuel de conteneurs est compatible API dans la version 18.9.</li><li>SaaS (GitLab.com) : demandez l&#39;accès via votre CSM ou en commentant le ticket ci-dessous pour que le feature flag soit activé pour votre groupe.</li><li>GitLab Self-managed : activez le feature flag et configurez le registre virtuel à l&#39;aide de l&#39;API.</li></ul><p><strong>Documentation</strong></p><ul><li><a href="https://docs.gitlab.com/api/container_virtual_registries/" rel="">API du registre virtuel de conteneurs</a></li><li><a href="https://docs.gitlab.com/user/packages/virtual_registry/container/#pull-container-images-from-the-virtual-registry" rel="">Extraire des images de conteneurs à partir du registre virtuel</a></li></ul><p>Regardez cette démonstration du registre virtuel de conteneurs disponible en version bêta :</p><iframe src="https://player.vimeo.com/video/1167512082?title=0&amp;byline=0&amp;portrait=0&amp;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="20260223_Container Virtual Registry Beta_V1"></iframe><script src="https://player.vimeo.com/api/player.js"></script><p><br /><br /></p><p><strong>Partagez vos retours :</strong></p><ul><li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/589630" rel="">Ticket lié aux retours sur le registre virtuel de conteneurs</a></li></ul><h2 id="aidez-nous-à-construire-gitlab">Aidez-nous à construire GitLab</h2><p>Tous les membres de la communauté GitLab sont des contributeurs. Nous avons développé ces versions bêta en fonction des demandes de la communauté.</p><ul><li><strong>Les indicateurs de performance des jobs CI/CD</strong> ont été proposés par des équipes qui n&#39;avaient aucun moyen facile de voir quand les temps de build commençaient à évoluer dans la mauvaise direction, ou quels jobs nuisaient à la fiabilité du pipeline.</li><li><strong>Le registre virtuel de conteneurs</strong> a été proposé par des entreprises clientes qui géraient plusieurs registres et cherchaient à réduire la prolifération d&#39;outils et les coûts de bande passante tout en évaluant GitLab comme registre central.</li></ul><p>Vos retours façonnent ce que nous créons. Essayez ces versions bêta et partagez votre expérience dans les tickets mentionnés dans cet article.</p><p>Cet article le premier d&#39;une série de versions bêta Core DevOps que nous prévoyons de mettre en avant. D&#39;autres suivront tout au long de l&#39;année, et nous espérons que vous nous aiderez à les rendre aussi utiles que possible.</p>]]></content>
        <author>
            <name>Talia Armato-Helle</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/talia-armato-helle/</uri>
        </author>
        <published>2026-03-02T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Présentation du programme Managed Service Provider (MSP) de GitLab]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/introducing-the-gitlab-managed-service-provider-msp-partner-program/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/introducing-the-gitlab-managed-service-provider-msp-partner-program/"/>
        <updated>2026-02-26T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><em>Cet article s&#39;adresse aux partenaires MSP qui souhaitent développer une pratique GitLab. Si vous êtes développeur ou responsable technique, ce programme peut aider les partenaires qui accompagnent des équipes comme la vôtre à évoluer plus rapidement.</em></p><p>De nombreuses organisations savent qu&#39;elles ont besoin d&#39;une plateforme DevSecOps moderne, mais elles ne disposent pas toujours des ressources nécessaires pour déployer, gérer et optimiser continuellement une plateforme tout en livrant des logiciels au rythme exigé par leur activité. Il s&#39;agit là d&#39;une véritable opportunité pour les fournisseurs MSP, et GitLab propose désormais un programme dédié pour les soutenir.</p><p>Nous sommes ravis de présenter le <strong>programme partenaire MSP de GitLab</strong>, un nouveau programme mondial qui permet aux MSP qualifiés de proposer GitLab à leurs clients sous forme de service entièrement géré.</p><h2 id="pourquoi-ce-programme-est-il-important-pour-les-partenaires-et-les-clients">Pourquoi ce programme est-il important pour les partenaires et les clients ?</h2><p>Pour la première fois, GitLab dispose d&#39;un programme officiellement défini et disponible à l’échelle mondiale, spécialement conçu pour les MSP. Ce programme comprend des exigences claires, une mise en œuvre structurée, une assistance dédiée et de réels avantages financiers, afin que les partenaires puissent investir en toute confiance dans la mise en place d&#39;une pratique de services gérés GitLab.</p><p>Ce programme arrive à point nommé. Les organisations accélèrent leur transition vers le <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" rel="" title="DevSecOps">DevSecOps</a>, mais nombre d&#39;entre elles doivent gérer des migrations complexes, des chaînes d&#39;outils disparates et des exigences de sécurité croissantes en plus de leur travail de création et de livraison de logiciels.</p><p>Les partenaires MSP de GitLab gèrent l&#39;aspect opérationnel de la plateforme, y compris le déploiement, la migration, l&#39;administration et l&#39;assistance continue, afin que les équipes de développement puissent se concentrer sur leur cœur de métier.</p><h2 id="avantages-pour-les-partenaires-msp">Avantages pour les partenaires MSP</h2><p><strong>Avantages financiers :</strong> les partenaires MSP bénéficient des marges partenaires de GitLab ainsi que d&#39;une prime MSP supplémentaire sur toutes les transactions, les nouveaux contrats et les renouvellements. Ils conservent également 100 % des frais de service facturés aux clients pour le déploiement, la migration, la formation, l&#39;activation et le conseil stratégique.</p><p><strong>Formation :</strong> les partenaires ont accès à des bootcamps techniques trimestriels qui couvrent les mises à jour de version, les nouvelles fonctionnalités, les meilleures pratiques, les mises à jour continues de la roadmap et le partage entre pairs. Les certifications cloud recommandées (AWS Solutions Architect Associate, GCP Associate Cloud Engineer) complètent la base technique.</p><p><strong>Assistance à la commercialisation :</strong> les MSP reçoivent un badge GitLab Certified MSP Partner, des ressources co-brandées, la possibilité de participer à des études de cas clients conjointes, une inscription au répertoire Partner Locator et l&#39;accès à des fonds de développement marketing (MDF) pour les activités de génération de demande qualifiées.</p><h2 id="avantages-pour-les-clients">Avantages pour les clients</h2><p>Les clients qui travaillent avec un partenaire MSP GitLab bénéficient d&#39;une expérience DevSecOps structurée et gérée, de méthodologies de mise en œuvre documentées et reproductibles, d&#39;examens réguliers de leurs activités et d&#39;une assistance avec des procédures de réponse et d&#39;escalade clairement définis.</p><p>Résultat : les équipes de développement peuvent se concentrer sur la création de logiciels performants tandis que leur partenaire MSP gère l&#39;exécution et l&#39;optimisation de la plateforme.</p><h2 id="lia-une-nouvelle-opportunité">L&#39;IA, une nouvelle opportunité</h2><p>Les organisations cherchent de plus en plus à intégrer l&#39;IA de manière sécurisée dans leurs workflows de développement logiciel, et même les équipes expérimentées peuvent bénéficier d&#39;une approche structurée pour la déployer à grande échelle. Les partenaires MSP de GitLab sont bien placés pour guider les clients dans l&#39;utilisation de GitLab Duo Agent Platform dans le cadre d&#39;une offre plus large de services gérés.</p><p>En combinant la plateforme DevSecOps de GitLab avec l&#39;expertise opérationnelle fournie par les MSP, les clients peuvent tester des workflows assistés par l&#39;IA dans un environnement contrôlé, répondre aux exigences en matière de résidence des données et de conformité, et étendre l&#39;adoption de l&#39;IA à toutes les équipes sans surcharger les ressources internes.</p><h2 id="ce-programme-est-il-adapté-à-mon-entreprise">Ce programme est-il adapté à mon entreprise ?</h2><p>Le programme partenaire MSP de GitLab est le choix idéal si vous :</p><ul><li>Fournissez déjà des services gérés dans le cloud, des infrastructures ou des opérations applicatives.</li><li>Souhaitez ajouter une approche DevSecOps à forte valeur ajoutée à votre portefeuille.</li><li>Disposez ou souhaitez développer des talents techniques intéressés par les plateformes de développement modernes.</li><li>Préférez les relations clients à long terme aux transactions ponctuelles.</li></ul><p>Si vous êtes déjà un partenaire GitLab Select et Professional Services, le programme MSP vous offre un moyen structuré de transformer votre expertise en une offre gérée reproductible.</p><h2 id="commencez-dès-maintenant">Commencez dès maintenant</h2><p>Le programme est lancé avec la désignation <strong>Partenaire MSP certifié</strong>. Il n&#39;y a pas de minimum requis en matière de revenu annuel récurrent (ARR) ou de nombre de clients pour rejoindre le programme.</p><p>Voici comment rejoindre le programme :</p><ol><li><strong>Confirmez les prérequis :</strong> vérifiez que vous répondez aux exigences commerciales et techniques décrites dans notre <a href="https://handbook.gitlab.com/handbook/resellers/channel-program-guide/#the-gitlab-managed-service-provider-msp-partner-program" rel="">manuel</a>.</li><li><strong>Postulez via le portail partenaire de GitLab :</strong> envoyez les documents commerciaux et techniques requis.</li><li><strong>Suivez la formation de 90 jours :</strong> un parcours d&#39;intégration structuré couvre les contrats, les compétences techniques, la formation commerciale et votre premier engagement client.</li><li><strong>Lancez votre offre :</strong> créez vos offres de services, définissez vos accords de niveau de service (SLA) et commencez à échanger avec les clients.</li></ol><p>Les candidatures complètes sont examinées dans un délai d&#39;environ trois jours ouvrés.</p><blockquote><p>Vous souhaitez développer une activité de services gérés GitLab ? Les nouveaux partenaires peuvent demander à <a href="https://about.gitlab.com/fr-fr/partners/" rel="">devenir partenaire GitLab</a>. Les partenaires existants peuvent contacter leur représentant GitLab pour en savoir plus sur le programme et nous faire part des solutions qu&#39;ils proposent actuellement à leurs clients dans le cadre de leur activité MSP.</p></blockquote>]]></content>
        <author>
            <name>Karishma Kumar</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/karishma-kumar/</uri>
        </author>
        <published>2026-02-26T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Signature des métadonnées des dépôts de paquets GitLab : prolongation de la clé GPG]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gpg-key-used-to-sign-gitlab-package-repositories-metadata-has-been-extended/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gpg-key-used-to-sign-gitlab-package-repositories-metadata-has-been-extended/"/>
        <updated>2026-02-24T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>GitLab utilise une clé GPG pour signer les métadonnées des différents dépôts apt et yum utilisés pour distribuer les paquets omnibus-gitlab et gitlab-runner officiels afin de garantir l&#39;intégrité des paquets, en plus des paquets eux-mêmes qui sont signés par une clé distincte.</p><p>La clé actuelle utilisée pour la signature des métadonnées, avec l&#39;empreinte <code className="">F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F</code>, devait expirer le 27 février 2026 et a été prolongée jusqu&#39;au 6 février 2028.</p><h2 id="pourquoi-prolongeons-nous-cette-date-dexpiration">Pourquoi prolongeons-nous cette date d&#39;expiration ?</h2><p>La date d&#39;expiration de la clé de signature des métadonnées du dépôt est prolongée périodiquement pour satisfaire aux politiques de sécurité de GitLab et pour limiter l&#39;exposition en cas de compromission de la clé. Au lieu de remplacer la clé, la date d&#39;expiration de cette dernière est prolongée afin de limiter les perturbations pour les utilisateurs, car un remplacement obligerait tous les utilisateurs à mettre à jour leur clé.</p><h2 id="que-dois-je-faire">Que dois-je faire ?</h2><p>Si vous avez configuré les dépôts GitLab sur votre machine avant le 17 février 2026, veuillez consulter la documentation officielle : <a href="https://docs.gitlab.com/omnibus/update/package_signatures/#package-repository-metadata-signing-keys" rel="">Comment récupérer et ajouter la nouvelle clé</a>.</p><p>Si vous êtes un nouvel utilisateur, vous n&#39;avez rien à faire, si ce n&#39;est de consulter la <a href="https://about.gitlab.com/fr-fr/install/" rel="">page d&#39;installation de GitLab</a> ou la <a href="https://docs.gitlab.com/runner/install/linux-repository.html" rel="">documentation d&#39;installation de gitlab-runner</a>.</p><p>Des informations supplémentaires concernant la <a href="https://docs.gitlab.com/omnibus/update/package_signatures/#package-repository-metadata-signing-keys" rel="">vérification des signatures des métadonnées du dépôt</a> sont disponibles dans la documentation Omnibus. Si vous avez simplement besoin d&#39;actualiser une copie de la clé publique, vous pouvez la trouver sur l&#39;un des serveurs de clés GPG en recherchant <a href="mailto:support@gitlab.com">support@gitlab.com</a> ou en utilisant l&#39;ID de clé <code className="">F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F</code>.</p><p>Vous pouvez également la télécharger directement depuis packages.gitlab.com en accédant à l&#39;URL <code className="">https://packages.gitlab.com/gpg.key</code>.</p><h2 id="que-faire-si-jai-besoin-daide-supplémentaire">Que faire si j&#39;ai besoin d&#39;aide supplémentaire ?</h2><p>Veuillez ouvrir un ticket dans le <a href="https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/new?issue&amp;issuable_template=Bug" rel="">suivi des tickets omnibus-gitlab</a>.</p>]]></content>
        <author>
            <name>Denis Afonso</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/denis-afonso/</uri>
        </author>
        <published>2026-02-24T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Duo Agent Platform : comment réinventer le développement logiciel avec l’IA agentique]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-duo-agent-platform-software-development-agentic-ai/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-agent-platform-software-development-agentic-ai/"/>
        <updated>2026-02-24T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<blockquote><p><em>Cet article de blog est un résumé de notre webinaire sur la Collaboration entre agents d’IA et développeurs animé par Lucas Rangeard (Solutions Architect) et Chloé Cartron (Senior Solutions Architect). Pour visionner le replay, <a href="https://learn.gitlab.com/fr-oct-agentic-ai/duo-ai-fr" rel="">cliquez ici</a>.</em></p></blockquote><p>Structurer un besoin client en ticket, diviser un ticket en sous-tâches assignables, et implémenter la fonctionnalité : trois opérations qui, dans un cycle de développement traditionnel, s&#39;enchaînent de manière séquentielle entraînant un goulot d&#39;étranglement bien connu des <a href="https://about.gitlab.com/fr-fr/topics/devops/build-a-devops-team/" rel="" title="équipes DevOps">équipes DevOps</a>.</p><p>Grâce à GitLab Duo Agent Platform, ces trois tâches sont exécutées en parallèle, avec une merge request prête à être revue en quelques minutes.</p><p>Découvrez dans cet article les capacités de GitLab Duo Agent Platform conçue pour transformer la collaboration entre équipes de développement et agents intelligents et apprenez comment mettre en place des flows, de la création d’un ticket au développement d’une application à travers trois cas d’usage.</p><h2 id="gitlab-duo-agent-platform-une-orchestration-agentique-native">GitLab Duo Agent Platform : une orchestration agentique native</h2><p><a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/" rel="" title="GitLab Duo Agent Platform">GitLab Duo Agent Platform</a> représente une évolution majeure dans notre approche du DevSecOps. En disponibilité générale depuis janvier 2026 pour les clients GitLab Premium et GitLab Ultimate (GitLab.com et GitLab Self-Managed), GitLab Duo Agent Platform permet aux équipes de développement de collaborer avec des agents d’IA sur l&#39;ensemble du cycle de développement logiciel (<a href="https://about.gitlab.com/fr-fr/blog/what-is-sdlc/" rel="" title="Qu&#39;est-ce que le SDLC ?">SDLC</a>).</p><blockquote><p>🎯 Essayez <a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr" rel="">GitLab Duo Agent Platform</a> dès aujourd&#39;hui !</p></blockquote><h3 id="lorchestration-agentique-au-coeur-du-sdlc">L’orchestration agentique au coeur du SDLC</h3><p>Notre approche repose sur trois piliers interconnectés :</p><ul><li><strong>Nous conservons ce qui fait notre force</strong> : une plateforme unifiée avec un système de données centralisé et des APIs.</li><li><strong>Nous ajoutons une couche d&#39;intelligence agentique</strong> : des agents spécialisés travaillant ensemble et de manière autonome.</li><li><strong>Nous créons un graphe de connaissances reliant l&#39;ensemble des données entre elles</strong> : votre code, vos tickets, vos déploiements, vos scans de sécurité. Cette interconnexion permet aux agents de comprendre votre contexte complet et de prendre des décisions éclairées rapidement.</li></ul><h3 id="des-agents-spécialisés-tout-au-long-du-sdlc">Des agents spécialisés tout au long du SDLC</h3><p>GitLab Duo Agent Platform ne vise pas à remplacer les équipes de développement, mais à leur fournir des partenaires capables d&#39;exécuter des tâches en parallèle.</p><p>Les utilisateurs ont accès à trois types d’agents différents : les <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/" rel="">agents par défaut</a> comme <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/" rel="">Planner</a>, <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/security_analyst_agent/" rel="">Security Analyst</a> et <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/data_analyst/" rel="">Data Analyst</a> pour les tâches courantes de développement, les <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/custom/" rel="">agents personnalisables</a> pour les workflows spécifiques à votre équipe, ainsi que les <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/external/" rel="">agents externes</a> comme Claude Code ou OpenAI Codex. Pour en savoir plus sur les agents, consultez notre article de blog <a href="https://about.gitlab.com/fr-fr/blog/understanding-agents-foundational-custom-external/" rel="">GitLab Duo Agent Platform : comprendre les agents</a>.</p><p>Ces agents partagent un contexte unifié. Ils peuvent accéder aux tickets, au code source, aux <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" rel="" title="Qu&#39;est-ce qu&#39;un pipeline CI/CD ?">pipelines CI/CD</a>, aux merge requests et à l&#39;historique de déploiement, selon les permissions données.</p><blockquote><p>Chez NatWest, l&#39;intégration des agents d’IA dans le cycle de développement logiciel a permis d&#39;améliorer « la productivité, la vélocité et l&#39;efficacité » des équipes, selon Bal Kang, Engineering Platform Lead.</p></blockquote><h2 id="comment-lia-agentique-réduit-les-temps-dattente-entre-chaque-étape">Comment l&#39;IA agentique réduit les temps d&#39;attente entre chaque étape ?</h2><p>Dans un cycle de développement traditionnel, les étapes s&#39;enchaînent les unes après les autres. Rédaction des spécifications, découpage en tâches, implémentation, tests, revue de code : chaque phase attend la précédente. Ce modèle séquentiel génère des temps morts et limite la capacité des équipes à traiter plusieurs demandes simultanément.</p><p>L&#39;approche agentique change cette dynamique. En déléguant des tâches à des agents autonomes, les équipes de développement peuvent avancer sur plusieurs fronts en parallèle. Pendant qu&#39;un agent implémente une fonctionnalité, un autre structure une nouvelle demande, et un troisième prépare une analyse de sécurité. Le cycle de développement global est raccourci.</p><p>L&#39;objectif : permettre aux équipes de développement de déléguer certaines tâches à des agents pendant qu&#39;ils se concentrent sur d&#39;autres tâches à plus forte valeur ajoutée, tout en gardant le contrôle sur les résultats.</p><h2 id="_3-exemples-de-flows-à-tester">3 exemples de flows à tester</h2><p>Découvrez comment GitLab Duo Agent Platform transforme le quotidien des équipes grâce à ces trois cas d&#39;usage qui peuvent être exécutés simultanément.</p><h3 id="transformer-une-idée-en-ticket-structuré">Transformer une idée en ticket structuré</h3><p>Avec GitLab Duo Agentic Chat, les utilisateurs peuvent générer un ticket complet et personnalisable à partir d&#39;une idée en formulant leur demande en langage naturel à l’aide du modèle IA de leur choix.</p><p>Ce ticket comprend le titre correspondant au besoin, la user story, les critères d&#39;acceptance, les contraintes techniques, la « definition of done », ainsi que tout autre élément de gestion de projet propre aux équipes : personnes assignées, labels, date de début et date de fin de la tâche, confidentialité du ticket, etc.</p><p>L&#39;action proposée est soumise à validation. Une fois approuvé, le ticket apparaît dans le backlog en quelques secondes.</p><h3 id="diviser-un-ticket-en-sous-tâches">Diviser un ticket en sous-tâches</h3><p>Un ticket couvrant plusieurs fonctionnalités peut être divisé automatiquement en sous-tickets distincts. L&#39;agent crée les sous tickets, maintient les références avec le ticket parent, et préserve la cohérence des critères d&#39;acceptance. Ce mécanisme transforme un besoin business global en un ensemble de tâches assignables aux équipes.</p><h3 id="générer-une-merge-request-depuis-un-ticket">Générer une merge request depuis un ticket</h3><p>À partir d’un ticket décrivant une fonctionnalité à implémenter, l&#39;agent analyse le contexte du projet, comprend l&#39;architecture existante, et génère le code correspondant. Il modifie les fichiers nécessaires, crée une merge request et le pipeline CI/CD se lance automatiquement.</p><p>Il est également possible d&#39;assigner GitLab Duo comme relecteur sur une merge request. L&#39;agent analyse les changements, identifie les points d&#39;attention et laisse des commentaires dans la merge request, offrant un premier niveau de revue avant la sollicitation des pairs.</p><h2 id="une-collaboration-entre-humains-et-ia">Une collaboration entre humains et IA</h2><p>Un aspect distingue GitLab Duo Agent Platform des approches purement automatisées : chaque action proposée par un agent nécessite une validation explicite. L&#39;utilisateur visualise ce que l&#39;agent souhaite exécuter et approuve ou ajuste le travail effectué par l’agent avant d’effectuer une action.
Cette approche répond aux exigences des équipes en matière de gouvernance. L&#39;agent accélère l&#39;exécution, mais les décisions restent sous contrôle humain. Une approche indispensable dans un contexte où la qualité du code et la sécurité ne peuvent être compromises.</p><h2 id="le-catalogue-dia-un-écosystème-agentique">Le catalogue d’IA : un écosystème agentique</h2><p>Au-delà des agents natifs, GitLab développe un écosystème ouvert : le catalogue d’IA. Ce dernier permet de découvrir, utiliser et partager des agents et des flows développés par GitLab, ainsi que par toute la communauté.</p><p>Les options de partage sont flexibles : ouverture à la communauté ou restriction à des usages internes selon les besoins de gouvernance.</p><p>Cette approche permet d&#39;imaginer un agent expert en migration de bases de données, ou encore un flow d’optimisation de performance tous intégrés nativement dans GitLab.</p><p>Ces agents et flows s&#39;intègrent à votre interface GitLab et identifient rapidement votre contexte et vos projets.</p><h2 id="prérequis">Prérequis</h2><p>Pour utiliser GitLab Duo Agent Platform, plusieurs conditions sont requises :</p><ul><li>Disposer de la version 18.8 ou ultérieure de GitLab ou d’un compte GitLab.com.</li><li>Être abonné à <a href="https://about.gitlab.com/fr-fr/pricing/premium/" rel="">GitLab Premium</a> ou <a href="https://about.gitlab.com/fr-fr/pricing/ultimate/" rel="">GitLab Ultimate</a></li></ul><p>GitLab Duo Agent Platform utilise par défaut les modèles d&#39;IA fournis par GitLab. Une configuration alternative utilisant les modèles des clients est disponible <a href="https://docs.gitlab.com/administration/gitlab_duo_self_hosted/#gitlab-duo-agent-platform" rel="">pour les installations auto hébergées</a>. Pour en savoir plus, consultez notre article <a href="https://about.gitlab.com/fr-fr/blog/agentic-ai-enterprise-control-self-hosted-duo-agent-platform-and-byom/" rel="">IA agentique avec contrôle d&#39;entreprise : GitLab Duo Agent Platform Self-Hosted et BYOM</a>.</p><h2 id="perspectives-lia-agentique-au-coeur-du-devsecops">Perspectives : l&#39;IA agentique au coeur du DevSecOps</h2><p>GitLab Duo Agent Platform marque une évolution dans l&#39;intégration de l&#39;IA dans le cycle de développement DevSecOps. Il ne s&#39;agit plus uniquement de suggestions de code, mais d&#39;une véritable orchestration agentique où des agents spécialisés prennent en charge des workflows complets.</p><p>Vous souhaitez en savoir plus sur les flows ? Consultez notre article <a href="https://about.gitlab.com/fr-fr/blog/understanding-flows-multi-agent-workflows/" rel="">Comprendre les flows : workflows multi-agents</a> et découvrez comment utiliser les <a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/" rel="">flows par défaut</a> et les <a href="https://docs.gitlab.com/user/duo_agent_platform/flows/custom/" rel="">flows personnalisables</a>.</p><blockquote><p>🎯 Essayez <a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr" rel="">GitLab Duo Agent Platform</a> dès aujourd&#39;hui !</p></blockquote>]]></content>
        <author>
            <name>GitLab France Team</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/gitlab-france-team/</uri>
        </author>
        <published>2026-02-24T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Mise à jour du tableau de bord de sécurité de GitLab : suivez la correction des vulnérabilités]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/track-vulnerability-remediation-with-the-updated-gitlab-security-dashboard/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/track-vulnerability-remediation-with-the-updated-gitlab-security-dashboard/"/>
        <updated>2026-02-23T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Les équipes de sécurité et de développement font face à la même frustration : des milliers de vulnérabilités demandent leur attention, mais elles manquent d&#39;informations pour les aider à hiérarchiser les mesures correctives. Où se concentrent les risques et à quelle vitesse sont-ils corrigés ? Où les mesures correctives auront-elles le plus d&#39;impact ? La mise à jour apportée au tableau de bord de sécurité de GitLab aide à répondre à ces questions avec le suivi des tendances, la répartition des vulnérabilités en fonction de leur ancienneté et la notation des risques par projet.</p><h2 id="mesurer-la-correction-pas-seulement-la-détection">Mesurer la correction, pas seulement la détection</h2><p>Les équipes chargées de la sécurité des applications ne peinent pas à trouver des vulnérabilités. En revanche, elles peinent à les comprendre. La plupart des tableaux de bord affichent des décomptes bruts sans contexte, ce qui les force à passer des heures à mettre en œuvre des mesures correctives sans comprendre quelles vulnérabilités les exposent aux risques les plus importants.</p><p><a href="https://docs.gitlab.com/user/application_security/security_dashboard/#new-security-dashboards" rel="">Le tableau de bord de sécurité de GitLab</a> regroupe toutes les données relatives aux vulnérabilités en une vue unique qui couvre l&#39;ensemble des projets, groupes et unités commerciales.</p><p>Dans la version 18.6, nous avons introduit la première mise à jour du tableau de bord de sécurité, où les équipes pouvaient visualiser les vulnérabilités au fil du temps et les filtrer en fonction du type de projet ou de rapport. Dans le cadre de la <a href="https://about.gitlab.com/releases/2026/02/19/gitlab-18-9-released/" rel="">version 18.9</a>, les clients pourront profiter de nouveaux filtres et graphiques qui facilitent le découpage des données par gravité, statut, scanner ou projet et visualiser les tendances (vulnérabilités ouvertes, vitesse de correction, répartition des vulnérabilités en fonction de leur ancienneté et score de risque au fil du temps).</p><p>Les scores de risque aident les équipes à prioriser la correction de leurs vulnérabilités les plus critiques. Le score de risque est calculé au moyen de facteurs tels que l&#39;âge de la vulnérabilité, le système EPSS (Exploit Prediction Scoring System) et les scores KEV (Known Exploited Vulnerabilities) pour les dépôts associés et leurs postures de sécurité. Avec ces données, les équipes de sécurité des applications peuvent identifier les domaines à prioriser.</p><p>Le tableau de bord de sécurité de GitLab aide les équipes chargées de la sécurité et du développement des applications à :</p><ul><li><strong>Suivre l&#39;efficacité des programmes</strong> : surveiller la vitesse de correction, l&#39;adoption des scanners et la posture de risque pour montrer une amélioration mesurable.</li><li><strong>Se concentrer sur les corrections ciblées</strong> : corriger les vulnérabilités qui représentent le plus grand risque pour les systèmes de production.</li><li><strong>Identifier les domaines nécessitant une formation à la correction</strong> : identifier les équipes qui ont des difficultés à corriger les vulnérabilités conformément à la politique de l&#39;entreprise afin d&#39;investir dans des formations supplémentaires.</li><li><strong>Réduire les rapports manuels</strong> : éliminer le recours à des tableaux de bord et de feuilles de calcul externes en suivant tout depuis GitLab.</li></ul><p>Cette mise à jour reflète l&#39;engagement continu de GitLab en faveur de la sécurité mesurable, contextuelle et intégrée dans les workflows de développement quotidiens. Le tableau de bord de sécurité de GitLab transforme les résultats bruts en informations exploitables afin que les équipes de sécurité et de développement puissent fixer des priorités, réduire les risques plus rapidement et étayer leurs progrès.</p><h2 id="découvrez-le-tableau-de-bord-de-sécurité-de-gitlab-en-action">Découvrez le tableau de bord de sécurité de GitLab en action</h2><p>Imaginez un responsable en charge de la sécurité des applications qui se prépare pour une réunion avec sa direction. Il peut maintenant montrer si les investissements réalisés réduisent les risques à l&#39;aide des points de tendance clairs : vulnérabilités ouvertes en baisse, ancienneté des vulnérabilités en baisse, types de failles CWE autrefois fréquentes en baisse, score de risque satisfaisant. Au lieu de présenter des informations bruts, il peut afficher la diminution du backlog et l&#39;amélioration de la posture de risque d&#39;un trimestre à l&#39;autre.</p><p>Parallèlement, les équipes de développement peuvent accéder au même tableau de bord, où les vulnérabilités critiques sont mises en évidence dans leurs projets actifs, afin de concentrer leurs efforts de correction sans avoir à exporter de données ni à jongler entre plusieurs outils.</p><iframe src="https://player.vimeo.com/video/1166108924?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="Security-Dashboard-Demo-Final"></iframe><script src="https://player.vimeo.com/api/player.js"></script><blockquote><p>Pour plus d’informations sur l&#39;utilisation du tableau de bord de sécurité de GitLab, consultez notre <a href="https://docs.gitlab.com/user/application_security/security_dashboard/" rel="">documentation</a>.</p></blockquote>]]></content>
        <author>
            <name>Alisa Ho</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/alisa-ho/</uri>
        </author>
        <author>
            <name>Mike Clausen</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/mike-clausen/</uri>
        </author>
        <published>2026-02-23T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[IA agentique avec contrôle d'entreprise : GitLab Duo Agent Platform Self-Hosted et BYOM]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/agentic-ai-enterprise-control-self-hosted-duo-agent-platform-and-byom/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/agentic-ai-enterprise-control-self-hosted-duo-agent-platform-and-byom/"/>
        <updated>2026-02-19T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Pour les organisations qui opèrent dans des secteurs réglementés, la transition vers l&#39;automatisation alimentée par l&#39;IA s&#39;accompagne de contraintes strictes. La résidence des données, le contrôle des fournisseurs et la gouvernance ne sont pas négociables. De nombreuses organisations ont déjà investi massivement dans leurs propres modèles, avec des processus d&#39;approbation rigoureux qui régissent leur fonctionnement et leur déploiement.</p><p>Avec <a href="https://about.gitlab.com/releases/2026/02/19/gitlab-18-9-released/" rel="">GitLab 18.9</a>, nous proposons deux fonctionnalités qui comblent une lacune stratégique critique pour ces organisations et transformons <a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/" rel="">GitLab Duo Agent Platform</a> en un plan de contrôle d&#39;IA prêt à être déployé et gouvernable pour les environnements réglementaires les plus stricts.</p><h2 id="gitlab-duo-agent-platform-self-hosted-pour-les-licences-cloud-en-ligne">GitLab Duo Agent Platform Self-Hosted pour les licences cloud en ligne</h2><p>Avec GitLab Duo Agent Platform, les équipes d&#39;ingénierie créent des flows alimentés par l&#39;IA qui automatisent des séquences de tâches, allant de la refactorisation des services au renforcement des pipelines CI/CD en passant par la hiérarchisation des vulnérabilités. Jusqu&#39;à présent, l&#39;utilisation de GitLab Duo Agent Platform en production avec des modèles auto-hébergés était principalement alignée sur des chemins de licence hors ligne ou complémentaires et n&#39;était pas conçue pour les clients disposant de licences cloud en ligne qui opèrent dans des environnements avec des réglementations strictes.</p><p>Désormais en disponibilité générale, <a href="https://docs.gitlab.com/subscriptions/subscription-add-ons/#gitlab-duo-agent-platform-self-hosted" rel="">GitLab Duo Agent Platform Self-Hosted pour les licences cloud en ligne</a> introduit un modèle de facturation basé sur l&#39;usage alimenté par les <a href="https://about.gitlab.com/fr-fr/blog/introducing-gitlab-credits/" rel="">GitLab Credits</a>. Cette approche offre la mesure transparente et prévisible dont les entreprises ont besoin pour instaurer la confiance et la refacturation interne.</p><ul><li><strong>Résidence et contrôle des données</strong> : vous pouvez désormais exécuter GitLab Duo Agent Platform en production sur des licences cloud en ligne tout en utilisant des modèles hébergés sur votre propre infrastructure ou dans des environnements cloud approuvés. Vous contrôlez ainsi le lieu d&#39;exécution des modèles et la façon dont le trafic d&#39;inférence est acheminé dans vos environnements approuvés.</li><li><strong>Transparence des coûts et refacturation</strong> : bénéficiez d&#39;une transparence granulaire des coûts grâce aux GitLab Credits et au décompte par requête, deux éléments essentiels pour une refacturation interne précise et le respect des normes réglementaires en matière de reporting.</li><li><strong>Accélération de l&#39;adoption</strong> : supprime un obstacle majeur au déploiement de l&#39;IA agentique dans des secteurs comme les services financiers, les administrations publiques et les infrastructures critiques, où l&#39;acheminement des données via des fournisseurs d&#39;IA externes n&#39;est tout simplement pas envisageable. Avec GitLab 18.9, GitLab Duo Agent Platform devient un environnement de déploiement de premier ordre pour les licences cloud en ligne.</li></ul><h2 id="bring-your-own-model">Bring Your Own Model</h2><p>L&#39;auto-hébergement de la couche d&#39;orchestration n&#39;est qu&#39;une partie de la solution. De nombreux clients de secteurs réglementés ont déjà investi massivement dans leurs propres modèles : des LLM adaptés à leur domaine, des déploiements dans une région dédiée ou air-gapped pour la souveraineté des données, et des modèles fermés et internes conçus en fonction d&#39;un profil de risque spécifique.</p><p><strong>Bring Your Own Model (BYOM)</strong> renforce la flexibilité de GitLab Duo Agent Platform. Les administrateurs peuvent connecter des modèles tiers ou auto-hébergés via la <a href="https://docs.gitlab.com/administration/gitlab_duo/gateway/" rel="">passerelle d&#39;IA (AI-Gateway) de GitLab</a>, et les clients choisissent et contrôlent le modèle.</p><ul><li><strong>Intégration et gouvernance</strong> : les modèles BYOM apparaissent aux côtés des modèles gérés par GitLab dans le plan de contrôle d&#39;IA de GitLab. GitLab Duo Agent Platform peut ainsi les traiter comme des options prêtes à l&#39;emploi pour l&#39;entreprise.</li><li><strong>Mappage granulaire</strong> : une fois enregistrés via la passerelle d&#39;IA, les modèles peuvent être mappés à des flows ou des fonctionnalités spécifiques de GitLab Duo Agent Platform. Vous pouvez ainsi exercer un contrôle étroit sur les agents et les flows, ainsi que sur les modèles utilisés. Les administrateurs restent toujours responsables de la validation des modèles, des performances et de l&#39;évaluation des risques. Vous êtes responsable de la compatibilité, des performances et de l&#39;évaluation des risques pour les modèles que vous apportez.</li></ul><p>Ensemble, ces fonctionnalités donnent aux responsables d&#39;ingénierie un contrôle complet sur l&#39;IA agentique. Ce plan de contrôle unique et gouverné pour l&#39;IA agentique remplace l&#39;ensemble fragmenté de solutions ponctuelles et d&#39;outils d&#39;IA non gérés sur lesquels de nombreuses organisations s&#39;appuient aujourd&#39;hui. Il s&#39;agit d&#39;une combinaison que les organisations réglementées réclamaient depuis longtemps : la liberté de choisir son modèle accompagnée d&#39;une gouvernance forte, au sein de la même plateforme DevSecOps en laquelle elles ont déjà confiance.</p><blockquote><p>Vous souhaitez essayer GitLab Duo Agent Platform ? <a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr" rel="">Contactez-nous ou commencez un essai gratuit dès aujourd&#39;hui</a>.</p></blockquote><hr /><p><em>Cet article de blog contient des « déclarations prospectives » au sens de la section 27A du Securities Act de 1933, tel que modifié, et de la section 21E du Securities Exchange Act de 1934. Bien que nous croyions que les attentes reflétées dans ces déclarations sont raisonnables, elles sont soumises à des risques, incertitudes, hypothèses et autres facteurs connus et inconnus qui peuvent entraîner des résultats ou des issues réels sensiblement différents. Des informations supplémentaires sur ces risques et autres facteurs sont incluses sous la rubrique « Facteurs de risque » dans nos dépôts auprès de la SEC. Nous ne nous engageons pas à mettre à jour ou à réviser ces déclarations après la date de cet article de blog, sauf si la loi l&#39;exige.</em></p>]]></content>
        <author>
            <name>Rebecca Carter</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/rebecca-carter/</uri>
        </author>
        <published>2026-02-19T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab garantit une disponibilité de 99,9 % avec des crédits de service pour les clients Ultimate]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-backs-99-9-availability-with-service-credits-for-ultimate-customers/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-backs-99-9-availability-with-service-credits-for-ultimate-customers/"/>
        <updated>2026-02-18T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>GitLab garantit désormais son engagement en matière de disponibilité de 99,9 % avec des crédits de service destinés aux clients GitLab Ultimate sur GitLab.com et <a href="https://about.gitlab.com/dedicated/" rel="">GitLab Dedicated</a>. Lorsque la disponibilité mensuelle est inférieure à ce seuil, les clients éligibles reçoivent des crédits à appliquer sur leurs prochaines factures. Cet engagement assure à vos workflows DevSecOps la fiabilité dont ils ont besoin.</p><h2 id="votre-confiance-notre-priorité">Votre confiance, notre priorité</h2><p>La livraison logicielle moderne évolue à un rythme soutenu : les équipes effectuent des push de code, ouvrent des merge requests et suivent les tickets en continu tout au long de la journée. Les opérations <a href="https://about.gitlab.com/fr-fr/blog/what-is-git/" rel="" title="Qu&#39;est-ce que Git ?">Git</a> (push, pull, clone) se produisent des milliers de fois par heure au sein d’équipes distribuées. Lorsque l&#39;une de ces actions essentielles devient indisponible, l&#39;ensemble de votre workflow de livraison de logiciels est impacté.</p><p>L&#39;accord de niveau de service (SLA) garantissant une disponibilité de 99,9 % vous assure que votre rythme de développement accéléré ne se heurte pas à des obstacles liés à l’infrastructure. Les crédits de service témoignent de notre responsabilité. Ils lient notre réussite à la fiabilité de la plateforme et alignent nos intérêts sur les vôtres. Nous nous tenons responsables de vos résultats commerciaux, et pas seulement des objectifs de disponibilité.</p><p>L&#39;engagement SLA de GitLab couvre les services de base de la plateforme essentiels à vos workflows DevSecOps.</p><p>Au lancement, les expériences couvertes sont les suivantes :</p><ul><li>Tickets et merge requests</li><li>Opérations Git (push, pull, clone via HTTPS et SSH)</li><li>Opérations du registre de conteneurs</li><li>Opérations du registre de paquets</li><li>Requêtes API (limitées aux éléments ci-dessus)</li></ul><p>La liste actualisée des expériences couvertes et exclues est disponible dans le <a href="https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/service-level-agreement/#covered-experiences" rel="">manuel de GitLab</a>.</p><p>La disponibilité du service est mesurée à l&#39;aide d&#39;une surveillance automatisée couvrant plusieurs zones géographiques, offrant une représentation précise de la disponibilité réelle du service telle qu’elle est expérimentée par les clients. Lorsque la disponibilité passe sous le seuil de 99,9 %, les clients sont éligibles à des crédits proportionnels à la durée et à la sévérité de l’indisponibilité.</p><h2 id="comprendre-les-minutes-dindisponibilité">Comprendre les minutes d&#39;indisponibilité</h2><p>Lorsque le service de GitLab enregistre une disponibilité dégradée affectant 5 % ou plus des requêtes clients valides pour les expériences couvertes au cours d&#39;une minute donnée, entraînant des erreurs serveur, cette période est appelée une <a href="https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/service-level-agreement/#downtime-minute-definition" rel="">minute d&#39;indisponibilité</a>. Les erreurs serveur sont définies comme des codes de statut HTTP 5xx ou des délais d&#39;expiration de connexion dépassant 30 secondes, tels que déterminés par les systèmes de surveillance internes et externes de GitLab.</p><p>Le SLA mesure les défaillances côté serveur, mais certains problèmes peuvent ne pas générer d&#39;erreurs 5xx, comme les bogues applicatifs qui rendent des fonctionnalités inutilisables, les interruptions du traitement des jobs Sidekiq ou les problèmes d&#39;infrastructure qui dégradent les performances sans provoquer des échecs de requêtes.</p><p>Voici comment réclamer des crédits de service lorsque les conditions requises sont remplies :</p><ol><li>Soumettez une demande d&#39;assistance sur support.gitlab.com dans les trente (30) jours suivant la fin du mois affecté.</li><li>L&#39;équipe de GitLab examine la demande, valide l&#39;indisponibilité et traite le crédit le cas échéant.</li><li>Les crédits de service seront appliqués sur votre prochaine facture émise.</li></ol><p><a href="https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/service-level-agreement/#calculating-monthly-uptime-percentage" rel="">Consultez notre manuel</a> pour en savoir plus sur le calcul de la disponibilité mensuelle, les crédits de service offerts le cas échéant et les procédures de réclamation de crédits.</p><p>Bien que notre système de surveillance soit conçu pour détecter la grande majorité des interruptions de service, si votre expérience ne correspond pas à la disponibilité rapportée, nous vous encourageons à soumettre une demande de crédit de service. GitLab examinera la demande dans sa globalité, y compris les problèmes susceptibles de ne pas être reflétés dans la surveillance automatisée.</p><h2 id="une-fiabilité-sur-laquelle-vous-pouvez-compter">Une fiabilité sur laquelle vous pouvez compter</h2><p>Le SLA à 99,9 % assorti de crédits de service traduit notre engagement à être une base fiable pour vos workflows de livraison logicielle. Vos équipes comptent sur GitLab pour continuer à livrer des logiciels, et nous sommes là pour vous soutenir.</p><p>Des questions sur le SLA ? Contactez votre chargé de compte GitLab ou soumettez une demande via le <a href="http://support.GitLab.com" rel="">support de GitLab</a>.</p>]]></content>
        <author>
            <name>Aathira Nair</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/aathira-nair/</uri>
        </author>
        <author>
            <name>Lyle Kozloff</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/lyle-kozloff/</uri>
        </author>
        <published>2026-02-18T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Sécurité et conformité : respectez les normes réglementaires avec GitLab]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/meet-regulatory-standards-with-gitlab/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/meet-regulatory-standards-with-gitlab/"/>
        <updated>2026-02-09T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Des principes directeurs sous forme de normes ont toujours permis de garantir la livraison sécurisée et fiable de produits et services aux clients. Ces normes, généralement appliquées par des organismes légalement mandatés, réglementent les secteurs d&#39;activité et empêchent la diffusion de produits de qualité inférieure.</p><p>Dans le secteur des technologies de l&#39;information, le respect des normes va au-delà de la livraison du produit final ; il englobe l&#39;ensemble du cycle de vie de la solution. Étant donné que tous les secteurs d&#39;activité exploitent de plus en plus diverses formes de technologies afin d&#39;accélérer les processus et d&#39;améliorer l&#39;efficacité, de vastes quantités de données souvent sensibles sont générées, stockées et transmises au moyen d&#39;outils et de services informatiques. Le traitement inapproprié de ces données peut entraîner de graves conséquences et conduire à des pertes financières <a href="https://tech.co/news/data-breaches-updated-list" rel="">de l&#39;ordre de centaines de millions de dollars</a>.</p><p>Ce guide complet présente des normes de conformité du monde entier et explique comment respecter les normes réglementaires avec la gestion des politiques de conformité et de sécurité de GitLab.</p><h2 id="normes-de-conformité-informatiques-courantes">Normes de conformité informatiques courantes</h2><p>Les normes de conformité réglementaire prennent diverses formes et dépendent du secteur d&#39;activité ou de la région dans laquelle une organisation opère. Nous examinerons d&#39;abord les normes de conformité courantes, suivies des normes spécifiques à certaines régions et à certains secteurs.</p><h3 id="rgpd">RGPD</h3><p>Le <a href="https://gdpr-info.eu/" rel="">Règlement général sur la protection des données (RGPD)</a> est une loi importante de l&#39;Union européenne qui régit la protection des données personnelles. Mis en œuvre en 2018, le RGPD établit des directives strictes pour les organisations qui traitent les informations personnelles des résidents de l&#39;UE. Il accorde aux individus un contrôle accru sur leurs données, notamment le droit d&#39;accéder, de rectifier et d&#39;effacer les informations personnelles détenues par les entreprises. Le RGPD exige que les organisations obtiennent un consentement explicite avant de collecter ou de traiter des données personnelles et qu&#39;elles expliquent clairement l&#39;objectif de la collecte de données. Le non-respect peut entraîner des sanctions financières importantes.</p><p>Bien qu&#39;il s&#39;agisse d&#39;une réglementation de l&#39;UE, le RGPD a des implications dans le monde entier et concerne toute organisation qui traite les données des résidents de l&#39;UE. Cette législation a entraîné des changements généralisés dans les pratiques de traitement des données et a sensibilisé le monde entier aux questions de confidentialité.</p><h3 id="nist-ssdf">NIST SSDF</h3><p>Le framework relatif au développement de logiciels sécurisés NIST, SSDF <a href="https://csrc.nist.gov/Projects/ssdf" rel="">(NIST Secure Software Development Framework, SSDF)</a>  est un guide qui aide les organisations à créer des logiciels plus sûrs. Créé par le National Institute of Standards and Technology, ce framework propose <a href="https://about.gitlab.com/blog/comply-with-nist-secure-supply-chain-framework-with-gitlab/" rel="">des pratiques de base pour le développement sécurisé de logiciels</a>.</p><p>Le SSDF se concentre sur quatre domaines principaux : préparer l&#39;organisation, protéger le logiciel, créer des logiciels sécurisés et gérer les vulnérabilités. Il aide les entreprises à intégrer la sécurité, y compris les protocoles de sécurité, pendant le développement et tout au long de la chaîne d&#39;approvisionnement logicielle.</p><p>En suivant ces directives, les organisations peuvent créer des logiciels avec moins de points faibles et gérer les problèmes plus efficacement. Le SSDF est flexible et peut fonctionner avec différentes méthodes de développement logiciel, il est donc utile pour de nombreuses organisations.</p><h3 id="pci-dss">PCI DSS</h3><p>La norme de sécurité de l’industrie des cartes de paiement <a href="https://www.pcisecuritystandards.org/lang/fr-fr/" rel="">(Payment Card Industry Data Security Standard, PCI DSS)</a> représente un ensemble de règles de sécurité pour les organisations qui traitent des informations de cartes de crédit. Créée par les principales sociétés de cartes de crédit, elle vise à protéger les données des titulaires de cartes et à prévenir la fraude. La norme PCI DSS exige que les entreprises mettent en place et maintiennent un réseau sécurisé, protègent les données des titulaires de cartes, utilisent des mesures strictes de contrôle d&#39;accès, surveillent et testent régulièrement les réseaux et maintiennent une politique de sécurité de l&#39;information. Ces règles s&#39;appliquent à toute entreprise qui accepte, traite, stocke ou transmet des données de cartes de crédit.</p><p>La conformité à la norme PCI DSS est obligatoire pour ces entreprises, quelle que soit leur taille ou leur volume de transactions. En suivant cette norme, les entreprises peuvent mieux protéger les informations financières sensibles, réduire le risque de violations de données et maintenir la confiance des clients. Des audits réguliers garantissent le respect continu de ces mesures de sécurité importantes.</p><h3 id="iso-27000">ISO 27000</h3><p>La norme <a href="https://www.iso.org/fr/standard/iso-iec-27000-family" rel="">ISO/IEC 27000</a> fournit le cadre fondamental de la famille de normes ISO/IEC 27000 et offre un aperçu complet des systèmes de gestion de la sécurité de l&#39;information. Elle établit un vocabulaire normalisé grâce à des termes et concepts clés qui garantissent une compréhension cohérente entre les organisations dans le domaine de la sécurité de l&#39;information.</p><p>La norme décrit les composants et processus essentiels qui établissent et maintiennent des systèmes de gestion de la sécurité de l&#39;information efficaces. Ces directives permettent aux organisations de gérer systématiquement les risques liés à la sécurité de l&#39;information et protègent les données confidentielles ainsi que la propriété intellectuelle.</p><p>L&#39;adhésion à la norme ISO/IEC 27000 permet aux organisations de construire des systèmes de gestion de la sécurité de l&#39;information robustes, de renforcer leur résilience face aux menaces liées à la cybersécurité, de protéger des informations précieuses et de favoriser la confiance des parties prenantes.</p><blockquote><p><a href="https://about.gitlab.com/fr-fr/blog/how-gitlab-can-support-your-iso-compliance-journey/" rel="">Découvrez comment GitLab peut vous aider dans votre parcours de conformité à la norme ISO 27001.</a></p></blockquote><h3 id="hipaa">HIPAA</h3><p>La loi sur la portabilité et la responsabilité des assurances-maladie <a href="https://www.hhs.gov/hipaa/index.html" rel="">(Health Insurance Portability and Accountability Act, HIPAA)</a> est une législation importante qui a un impact sur le secteur de la santé aux États-Unis. L&#39;objectif principal de la loi HIPAA, adoptée en 1996, est de protéger les informations sensibles de santé des patients contre toute divulgation sans qu&#39;ils n&#39;y aient consenti ou n&#39;en aient connaissance.</p><p>Il est essentiel de préserver la confidentialité des patients, de garantir la sécurité des données et de normaliser les transactions électroniques des soins de santé. La loi HIPAA a contraint les prestataires de soins de santé, les assureurs et les entités connexes à mettre en œuvre des mesures strictes de protection des données afin de réduire considérablement l&#39;accès non autorisé aux dossiers médicaux et de renforcer la confiance des patients.</p><h2 id="normes-de-conformité-mondiales-et-régionales">Normes de conformité mondiales et régionales</h2><h3 id="réglementations-nationalesrégionales">Réglementations nationales/régionales</h3><p>Bien que des normes de conformité comme la loi HIPAA et le RGPD soient connues dans le monde entier, il s&#39;agit respectivement de normes américaines et européennes. Elles influencent d&#39;autres normes régionales dans le monde, mais ne sont requises que pour les entreprises qui traitent des données provenant, par exemple, de l&#39;UE. Plusieurs pays ont des normes de conformité qui doivent être respectées si une entreprise opère dans ces pays. Voici quelques autres normes spécifiques à certains pays :</p><ul><li><a href="https://fr.wikipedia.org/wiki/Loi_Sarbanes-Oxley" rel="">SOX</a> (États-Unis, sociétés cotées) : Sarbanes-Oxley Act. Cette loi impose une tenue et une déclaration appropriées des documents comptables pour les sociétés cotées.</li><li><a href="https://www.priv.gc.ca/fr/sujets-lies-a-la-protection-de-la-vie-privee/lois-sur-la-protection-des-renseignements-personnels-au-canada/la-loi-sur-la-protection-des-renseignements-personnels-et-les-documents-electroniques-lprpde/" rel="">LPRPDE</a> (Canada, entreprises commerciales) : Loi sur la protection des renseignements personnels et les documents électroniques. Elle régit la manière dont les organisations du secteur privé collectent, utilisent et divulguent les informations personnelles.</li><li><a href="https://www.pdpc.gov.sg/overview-of-pdpa/the-legislation/personal-data-protection-act" rel="">PDPA</a> (Singapour, toutes les organisations) : Personal Data Protection Act. Cette loi sur la protection des données personnelles régit la collecte, l&#39;utilisation et la divulgation de données personnelles par les organisations.</li><li><a href="https://www.ppc.go.jp/files/pdf/Act_on_the_Protection_of_Personal_Information.pdf" rel="">APPI</a> (Japon, tous les secteurs) : Act on the Protection of Personal Information. Cette loi sur la protection des informations personnelles réglemente l&#39;utilisation d&#39;informations personnelles au Japon.</li><li><a href="https://lgpd-brazil.info/" rel="">LGPD</a> (Brésil, tous les secteurs) : Lei Geral de Proteção de Dados. La loi brésilienne sur la protection des données est similaire au RGPD.</li><li><a href="https://www.cisa.gov/topics/cyber-threats-and-advisories/federal-information-security-modernization-act" rel="">FISMA</a> (États-Unis, agences fédérales) : Federal Information Security Management Act. Cette loi sur la gestion de la sécurité des informations fédérales définit un cadre pour la gestion de la sécurité de l&#39;information des systèmes d&#39;information fédéraux.</li><li><a href="https://popia.co.za/" rel="">POPI Act</a> (Afrique du Sud, tous les secteurs) : Protection of Personal Information Act. Cette loi sur la protection des données personnelles promeut la protection des informations personnelles traitées par des organismes publics et privés.</li><li><a href="https://www.pwc.com/th/en/tax/personal-data-protection-act.html" rel="">PDPA</a> (Thaïlande, tous les secteurs) : Personal Data Protection Act. Comme le RGPD, cette loi sur la protection des données personnelles réglemente la collecte, l&#39;utilisation et la divulgation de données personnelles en Thaïlande.</li><li><a href="https://en.wikipedia.org/wiki/Personal_Information_Protection_Law_of_the_People%27s_Republic_of_China" rel="">PIPL</a> (Chine, tous les secteurs) : Personal Information Protection Law. La première loi complète sur la protection des données de la Chine est similaire au RGPD.</li><li><a href="https://nitda.gov.ng/wp-content/uploads/2021/01/NDPR-Implementation-Framework.pdf" rel="">NDPR</a> (Nigeria, tous les secteurs) : Nigeria Data Protection Regulation. Ce règlement sur la protection des données au Nigéria protège les droits des personnes physiques à la confidentialité des données.</li><li><a href="https://www.difc.ae/business/laws-and-regulations/legal-database/difc-laws/data-protection-law-difc-law-no-5-2020" rel="">DIFC Data Protection Law</a> (Dubaï, entreprises du Dubai International Financial Centre) : cette loi sur la protection des données du DIFC réglemente le traitement des données personnelles dans la zone franche du DIFC.</li><li><a href="https://www.pdp.gov.my/jpdpv2/laws-of-malaysia-pdpa/personal-data-protection-act-2010/?lang=en" rel="">PDPA</a> (Malaisie, transactions commerciales) : Personal Data Protection Act. Cette loi sur la protection des données personnelles réglemente le traitement des données personnelles dans les transactions commerciales.</li><li><a href="https://www.ag.gov.au/rights-and-protections/privacy" rel="">Privacy Act</a> (Australie, agences gouvernementales et certaines organisations du secteur privé). Cette loi relative à la confidentialité réglemente la manière dont les informations personnelles sont traitées par les agences gouvernementales australiennes et certaines organisations du secteur privé.</li><li><a href="https://www.kvkk.gov.tr/Icerik/6649/Personal-Data-Protection-Law" rel="">KVKK</a> (Turquie, tous les secteurs) : Turkish Personal Data Protection Law. La loi sur la protection des données personnelles turque réglemente le traitement des données personnelles et protège les droits individuels.</li></ul><p>Ces normes reflètent la préoccupation croissante concernant la confidentialité et la sécurité des données. De nombreux pays développent leurs propres frameworks inspirés de réglementations établies comme le RGPD. Chaque norme est adaptée au contexte juridique, culturel et économique spécifique de son pays.</p><h3 id="normes-spécifiques-aux-secteurs">Normes spécifiques aux secteurs</h3><ul><li><a href="https://www.pcisecuritystandards.org/lang/fr-fr/" rel="">PCI DSS</a> (services financiers) : cette norme s&#39;applique à toutes les organisations qui traitent des informations de cartes de crédit dans le monde entier.</li><li><a href="https://www.iso.org/fr/standard/iso-iec-27000-family" rel="">ISO 27001</a> (tous les secteurs) : cette norme de système de gestion de la sécurité de l&#39;information fournit un framework pour les pratiques de gestion de la sécurité de l&#39;information.</li><li><a href="https://qbdgroup.com/en/blog/gamp-categories/" rel="">GAMP 5</a> (secteur pharmaceutique) : Good Automated Manufacturing Practice. Directives pour les systèmes informatiques dans la fabrication pharmaceutique.</li><li><a href="https://www.iso.org/fr/standard/59752.html" rel="">ISO 13485</a> (dispositifs médicaux) : cette norme précise les exigences d&#39;un système de gestion de la qualité pour les fabricants de dispositifs médicaux.</li><li><a href="https://www.isaca.org/resources/cobit" rel="">COBIT</a> (gestion informatique) : Control Objectives for Information and Related Technologies. Framework pour la gestion informatique et la gouvernance informatique.</li><li><a href="https://fr.wikipedia.org/wiki/Information_Technology_Infrastructure_Library" rel="">ITIL</a> (services informatiques) : Information Technology Infrastructure Library. Ensemble de pratiques détaillées pour la gestion des services informatiques.</li><li><a href="https://www.nist.gov/cyberframework" rel="">NIST CSF</a> (cybersécurité) : National Institute of Standards and Technology Cybersecurity Framework. Conseils pour gérer et réduire les risques liés à la cybersécurité.</li><li><a href="https://www.w3.org/WAI/standards-guidelines/wcag/fr" rel="">WCAG</a> (accessibilité Web) : Web Content Accessibility Guidelines. Ces directives dédiées à l’accessibilité des contenus Web visent à rendre le Web plus accessible aux personnes handicapées.</li><li><a href="https://www.bis.org/bcbs/basel3_fr.htm" rel="">Basel III</a> (secteur bancaire). Dispositif réglementaire international pour les banques, qui comprend des exigences de gestion des risques informatiques.</li><li><a href="https://portal.enx.com/en-US/TISAX/" rel="">TISAX</a> (secteur automobile) : Trusted Information Security Assessment Exchange. Mécanisme d&#39;évaluation et d&#39;échange de sécurité de l&#39;information pour l&#39;industrie automobile.</li></ul><p>Ces normes s&#39;appliquent dans le monde entier à des secteurs spécifiques, et garantissent des pratiques cohérentes et des mesures de sécurité dans leurs domaines respectifs.</p><h2 id="importance-de-la-conformité-continue">Importance de la conformité continue</h2><p>Les organisations doivent mettre en œuvre des systèmes qui assurent la conformité aux exigences réglementaires pertinentes. Elles peuvent y parvenir grâce à <a href="https://about.gitlab.com/fr-fr/solutions/compliance/" rel="">la conformité continue des logiciels</a>, un principe essentiel à tous les secteurs qui garantit la surveillance, l&#39;évaluation et l&#39;ajustement continus des systèmes, processus et pratiques d&#39;une organisation afin de garantir que ces derniers respectent à tout moment les normes et réglementations pertinentes.</p><p>La conformité continue n&#39;est pas seulement une case à cocher en matière de réglementation, mais une nécessité stratégique pour le développement logiciel aujourd&#39;hui. Elle permet aux organisations de naviguer de manière proactive face aux menaces émergentes, aux changements technologiques et aux évolutions réglementaires, tout en favorisant la confiance des parties prenantes, l&#39;efficacité opérationnelle et l&#39;avantage concurrentiel dans un environnement commercial de plus en plus complexe.</p><h2 id="conformité-réglementaire-ou-normes-auto-imposées">Conformité réglementaire ou normes auto-imposées ?</h2><p>La conformité réglementaire et les normes auto-imposées sont deux approches distinctes de la gouvernance organisationnelle. La conformité réglementaire implique le respect de lois et de réglementations obligatoires établies par des autorités externes, qui ont une portée large et des conséquences juridiques potentielles en cas de non-respect. Elle se concentre sur le respect des exigences légales minimales et est généralement moins flexible. Le RGPD et la loi HIPAA en sont des exemples.</p><p>En revanche, les normes auto-imposées sont des directives volontaires adoptées par les organisations pour améliorer la qualité, la sécurité ou les performances. Elles peuvent être adaptées à des besoins spécifiques et visent généralement à dépasser les exigences minimales. Bien que le non-respect des normes auto-imposées puisse avoir un impact sur la réputation d&#39;une organisation, il n&#39;entraîne généralement pas de conséquences juridiques. Les principales différences résident dans leur origine, leur motivation, leur adaptabilité et leur portée. De nombreuses organisations mettent en œuvre les deux approches pour créer une stratégie complète de gestion de la qualité, de la sécurité et des performances.</p><h2 id="gestion-de-la-conformité">Gestion de la conformité</h2><p>Pour respecter des normes, les organisations doivent évaluer les <a href="https://advisory.kpmg.us/articles/2018/compliance-metrics.html" rel="">indicateurs de conformité</a> appropriés et les intégrer dans leurs procédures opérationnelles standard. L&#39;objectif est de fournir des informations permettant la détection et la prévention précoces des risques de conformité actuels et futurs. La gestion de la conformité doit être efficace et représente bien plus qu&#39;une simple liste de contrôle avec des tâches à effectuer périodiquement ; il s&#39;agit d&#39;un processus continu complet à l&#39;échelle de l&#39;organisation.</p><h2 id="gestion-de-la-conformité-avec-gitlab">Gestion de la conformité avec GitLab</h2><p>Avec GitLab, les organisations peuvent créer des <a href="https://docs.gitlab.com/ee/user/group/compliance_frameworks.html" rel="">frameworks de conformité</a>, des <a href="https://docs.gitlab.com/ee/user/application_security/policies/" rel="">politiques de sécurité</a> et une <a href="https://docs.gitlab.com/ee/administration/audit_reports.html" rel="">gestion des audits</a>. GitLab permet également aux équipes de conformité ou de direction de surveiller les indicateurs de conformité avec les <a href="https://docs.gitlab.com/ee/user/compliance/compliance_report/index.html" rel="">rapports de conformité</a>.</p><h3 id="frameworks-et-pipelines-de-conformité">Frameworks et pipelines de conformité</h3><p>Les organisations peuvent créer un <a href="https://docs.gitlab.com/ee/user/group/compliance_frameworks.html" rel="">framework de conformité</a> qui identifie les projets dans GitLab avec des exigences de conformité définies, qui peuvent être appliquées au moyen de <a href="https://docs.gitlab.com/ee/user/group/compliance_pipelines.html" rel="">pipelines de conformité</a>. Par exemple, une entreprise FinTech peut créer un <a href="https://docs.gitlab.com/ee/user/group/compliance_frameworks.html#default-compliance-frameworks" rel="">framework de conformité par défaut</a> pour tous les projets afin de garantir que chaque étape de son cycle de développement logiciel respecte les exigences PCI DSS pour le traitement des données des titulaires de cartes.</p><p>Ces exigences sont ensuite appliquées en veillant à ce que chaque modification introduite dans le code source soit suffisamment testée automatiquement avec les <a href="https://docs.gitlab.com/ee/user/application_security/" rel="">fonctionnalités de sécurité des applications</a> de GitLab, qui couvrent le code source, les dépendances, les licences, les vulnérabilités dans l&#39;application en cours d&#39;exécution et les configurations d&#39;infrastructure. Vous pouvez en savoir plus sur la façon dont GitLab vous aide à atteindre la conformité PCI et d&#39;autres <a href="https://about.gitlab.com/fr-fr/solutions/continuous-software-compliance/" rel="">normes de conformité réglementaires</a> avec les frameworks de conformité.</p><p>Les vidéos suivantes vous aident à configurer et à utiliser des frameworks et pipelines de conformité.</p><p><strong>Tutoriel vidéo : créer des frameworks de conformité</strong></p><figure className="video_container">
  <iframe src="https://www.youtube.com/embed/IDswzRI-8VQ" title="Comment configurer les frameworks et pipelines de conformité dans GitLab" frameBorder="0" allowFullScreen="true"> </iframe></figure><p><strong>Tutoriel vidéo : appliquer des pipelines de conformité</strong></p><figure className="video_container">
  <iframe src="https://www.youtube.com/embed/jKA_e_jimoI" title="GitLab Compliance Pipelines &amp; Overriding Settings" frameBorder="0" allowFullScreen="true"> </iframe></figure><h3 id="gestion-des-politiques-de-sécurité">Gestion des politiques de sécurité</h3><p>Les équipes de sécurité et de conformité peuvent utiliser GitLab pour appliquer les exigences de conformité en veillant à ce que des scanners de sécurité s&#39;exécutent dans certains pipelines ou exigent une approbation sur les merge requests lorsque les <a href="https://docs.gitlab.com/ee/user/application_security/policies/" rel="">politiques de sécurité</a> sont enfreintes. GitLab prend en charge les politiques d&#39;<a href="https://docs.gitlab.com/ee/user/application_security/policies/scan-execution-policies.html" rel="">exécution des scans</a> et de <a href="https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html" rel="">résultats des scans</a>. Ces politiques sont définies dans un <a href="https://docs.gitlab.com/ee/user/application_security/policies/#security-policy-project" rel="">projet de politique de sécurité</a> dédié qui sépare les responsabilités entre les équipes de sécurité et de développement. Les politiques de sécurité peuvent être appliquées de manière granulaire au niveau du groupe, du sous-groupe et du projet. Les politiques peuvent être modifiées en mode règle, qui utilise l&#39;<a href="https://docs.gitlab.com/ee/user/application_security/policies/#policy-editor" rel="">éditeur de politique</a>, ou en mode yaml.</p><h4 id="politiques-dexécution-des-scans">Politiques d&#39;exécution des scans</h4><p>Les politiques d&#39;exécution des scans peuvent être configurées pour s&#39;exécuter sur un <a href="https://docs.gitlab.com/runner/" rel="">GitLab Runner</a> spécifié :</p><ul><li><a href="https://docs.gitlab.com/ee/user/application_security/sast/" rel="">Test statique de sécurité des applications (SAST)</a></li><li><a href="https://docs.gitlab.com/ee/user/application_security/iac_scanning/" rel="">Infrastructure as Code</a></li><li><a href="https://docs.gitlab.com/ee/user/application_security/dast/" rel="">Test dynamique de sécurité des applications (DAST)</a></li><li><a href="https://docs.gitlab.com/ee/user/application_security/secret_detection/" rel="">Détection des secrets</a></li><li><a href="https://docs.gitlab.com/ee/user/application_security/container_scanning/" rel="">Analyse des conteneurs</a></li><li><a href="https://docs.gitlab.com/ee/user/application_security/dependency_scanning/" rel="">Analyse des dépendances</a></li></ul><p>Les jobs de scans peuvent être exécutés selon un calendrier ou chaque fois qu&#39;un pipeline s&#39;exécute. Les équipes de conformité et de sécurité peuvent utiliser les politiques d&#39;exécution des analyses pour vérifier périodiquement et prévenir de manière proactive l&#39;escalade des vulnérabilités dans le cadre d&#39;une stratégie de gestion des vulnérabilités. Elles peuvent également renforcer les contrôles lorsque de nouvelles tendances sont observées à partir des résultats des scans.</p><p><strong>Tutoriel vidéo : configurer des politiques d&#39;analyse de sécurité dans GitLab</strong></p><figure className="video_container">
  <iframe src="https://www.youtube.com/embed/ZBcqGmEwORA" title="Comment configurer des politiques des scans de sécurité dans GitLab" frameBorder="0" allowFullScreen="true"> </iframe></figure><h4 id="politiques-de-résultats-des-scans">Politiques de résultats des scans</h4><p>Les politiques de résultats des scans ajoutent une révision et une approbation requises pour les merge requests lorsque les résultats des analyses de sécurité spécifiées enfreignent les règles des politiques. Par exemple, une politique peut exiger qu&#39;un membre de l&#39;équipe de sécurité prenne des mesures lorsqu&#39;une nouvelle vulnérabilité SAST critique est détectée. De cette façon, les membres des équipes de sécurité et de conformité peuvent venir en aide aux développeurs tout en veillant à ce que les modifications introduites dans la base de code soient sécurisées et respectent les exigences de conformité.</p><p><strong>Tutoriel vidéo : aperçu des politiques de résultats des scans de GitLab</strong></p><figure className="video_container">
  <iframe src="https://www.youtube.com/embed/w5I9gcUgr9U" title="Aperçu des politiques de résultats des scans de GitLab" frameBorder="0" allowFullScreen="true"> </iframe></figure><h4 id="politiques-dapprobation-des-licences">Politiques d&#39;approbation des licences</h4><p>Lors de la sélection des types de scans pour les règles de politique de résultats des scans, vous pouvez choisir entre le scan de sécurité, le comportement par défaut pour les politiques de résultats d&#39;analyse, et l&#39;analyse de licence, qui aide à garantir la conformité des licences. L&#39;analyse des licences dépend des résultats du job <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" rel="">CI/CD</a> d&#39;<a href="https://docs.gitlab.com/ee/user/application_security/dependency_scanning/" rel="">analyse des dépendances</a> qui vérifie si les licences identifiées correspondent aux critères spécifiés, puis ajoute des exigences d&#39;approbation avant qu&#39;une merge request ouverte puisse être fusionnée. Cette étape est cruciale pour garantir que seules les dépendances avec des licences approuvées sont utilisées dans votre organisation.</p><p><strong>Démonstration vidéo : politiques d&#39;approbation des licences</strong></p><figure className="video_container">
  <iframe src="https://www.youtube.com/embed/34qBQ9t8qO8" title="Démonstration des politiques d&#39;approbation des licences" frameBorder="0" allowFullScreen="true"> </iframe></figure><h3 id="gestion-des-audits">Gestion des audits</h3><h4 id="préparation-aux-audits">Préparation aux audits</h4><p>Les audits sont essentiels pour la gestion de la conformité, car ils permettent de comprendre la posture de sécurité et de conformité de votre organisation. Les audits externes requis par les régulateurs sont souvent détaillés et exhaustifs. Pour s&#39;y préparer, les organisations doivent :</p><ul><li>Déterminer les réglementations ou normes qui seront évaluées et les domaines de l&#39;organisation qui seront examinés.</li><li>Analyser les résultats d&#39;audit passés et s&#39;assurer que tous les problèmes précédemment identifiés ont été résolus.</li><li>Collecter toutes les politiques, procédures et dossiers pertinents qui démontrent la conformité.</li><li>Effectuer un audit interne avant l&#39;audit officiel pour identifier et combler toute lacune de conformité potentielle.</li><li>Informer les employés du processus d&#39;audit et de leurs rôles. Effectuer une formation si nécessaire.</li><li>S&#39;assurer que toute la documentation requise est facilement accessible et bien organisée.</li><li>Veiller à ce que toutes les politiques et procédures liées à la conformité soient à jour et alignées sur les réglementations actuelles.</li><li>Vérifier que toutes les mesures de protection techniques et tous les contrôles sont en place et fonctionnent correctement.</li><li>Identifier le personnel clé qui pourrait être interrogé et le briefer sur les questions potentielles.</li><li>Traiter les problèmes connus : s&#39;il existe des problèmes de conformité connus, élaborer et documenter des plans d&#39;action pour y remédier.</li></ul><p>Pour faciliter votre préparation, les <a href="https://docs.gitlab.com/ee/administration/audit_events.html" rel="">événements d&#39;audit</a> et le <a href="https://docs.gitlab.com/ee/user/compliance/compliance_center/index.html" rel="">Centre de conformité</a> de GitLab offrent une vue détaillée de la conformité de l&#39;organisation.</p><h4 id="utilisation-efficace-des-journaux-daudit-gitlab">Utilisation efficace des journaux d&#39;audit GitLab</h4><p>Les <a href="https://docs.gitlab.com/ee/administration/audit_events.html" rel="">événements d&#39;audit</a> vous permettent de connaître chaque action effectuée sur l&#39;instance GitLab. Les rapports d&#39;audit indiquent chaque événement significatif avec son auteur et le moment où il a été effectué. Vous pouvez également générer des rapports détaillés à partir des événements d&#39;audit en utilisant les <a href="https://docs.gitlab.com/ee/administration/audit_reports.html" rel="">rapports d&#39;audit</a>, ce qui vous permet de prouver votre conformité aux auditeurs ou aux régulateurs.</p><p><img alt="Événements d&#39;audit" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098755/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750098755493.png" /></p><p><a href="https://docs.gitlab.com/ee/user/compliance/compliance_report/index.html#compliance-violations-report" rel="">Le Centre de conformité</a> est un composant important de la gestion des audits dans GitLab qui offre une visibilité sur la posture de conformité de votre organisation. Les rapports de conformité détaillent chaque violation découverte avec le <a href="https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_violations_report.html" rel="">rapport sur les violations de conformité</a> et les frameworks utilisés par les projets au sein de votre organisation avec le <a href="https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_frameworks_report.html" rel="">rapport sur les frameworks de conformité</a>.</p><p><img alt="Respect des exigences réglementaires – image 2" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098756/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750098755493.png" /></p><center><i>Exemple d&#39;un rapport sur les violations de conformité d&#39;un groupe GitLab parent</i></center><p><img alt="Respect des exigences réglementaires – image 3" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098755/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750098755495.png" /></p><center><i>Exemple d&#39;un rapport de framework de conformité pour tous les projets dans un groupe</i></center><h4 id="streaming-des-événements-daudit">Streaming des événements d&#39;audit</h4><p>La plupart des organisations disposent de systèmes pour surveiller les activités dans leurs systèmes en temps réel. Avec le <a href="https://docs.gitlab.com/ee/administration/audit_event_streaming/index.html" rel="">streaming des événements d&#39;audit</a> de GitLab, vous pouvez intégrer des solutions tierces comme Splunk pour la surveillance d&#39;infrastructure ou DataDog pour la surveillance des flux afin d&#39;obtenir des analyses des événements d&#39;audit en temps réel. Toutes les données d&#39;événements d&#39;audit sont envoyées à la destination de streaming (il est essentiel de diffuser vers un service de confiance). Le streaming des événements d&#39;audit peut être <a href="https://docs.gitlab.com/ee/administration/audit_event_streaming/index.html#top-level-group-streaming-destinations" rel="">configuré au niveau des groupes principaux</a> et au <a href="https://docs.gitlab.com/ee/administration/audit_event_streaming/#instance-streaming-destinations" rel="">niveau de l&#39;instance</a> pour les instances GitLab autogérées.</p><h2 id="bonnes-pratiques-pour-la-gestion-de-la-conformité">Bonnes pratiques pour la gestion de la conformité</h2><p>Voici quelques bonnes pratiques pour une gestion efficace de la conformité :</p><ul><li>Établissez une solide culture de conformité qui favorise la sensibilisation à la conformité au sein de l&#39;organisation et garantit l&#39;engagement et le soutien de la direction.</li><li>Développez un programme de conformité complet avec des politiques et procédures claires et révisez-le régulièrement pour refléter les changements réglementaires.</li><li>Mettez en œuvre l&#39;évaluation et la gestion des risques pour identifier et évaluer régulièrement les risques de conformité, en hiérarchisant les risques en fonction de l&#39;impact potentiel et de la probabilité.</li><li>Organisez régulièrement des formations sur la conformité adaptée aux rôles et responsabilités spécifiques pour tous les employés.</li><li>Mettez en œuvre une gestion de la conformité pour automatiser la surveillance de la conformité et les rapports de conformité dans la mesure du possible.</li><li>Effectuez des audits internes pour identifier les lacunes et les domaines d&#39;amélioration. Il est également essentiel de considérer les audits externes de manière impartiale et d&#39;utiliser les résultats d&#39;audit pour affiner et améliorer les processus de conformité.</li><li>Tenez-vous informé des changements réglementaires en assignant à une personne ou équipe la surveillance des mises à jour réglementaires et en rejoignant des associations ou en participant à des forums du secteur.</li><li>Intégrez la conformité dans les processus métier, intégrez des contrôles de conformité dans les workflows opérationnels et prenez en compte la conformité dans la prise de décision stratégique. Alignez les objectifs de conformité avec les objectifs commerciaux.</li><li>Développez des plans de réponse pour les violations potentielles de conformité et effectuez des scénarios fictifs pour tester la préparation aux incidents et violations.</li></ul><h2 id="en-savoir-plus">En savoir plus</h2><p>La conformité est un processus continu de gestion efficace des risques, qui implique la mise en œuvre de garde-fous et la surveillance des indicateurs de conformité. GitLab permet aux organisations de respecter les normes réglementaires avec des fonctionnalités de <a href="https://about.gitlab.com/fr-fr/solutions/compliance/" rel="">gestion de la conformité</a>. Avec GitLab, vous pouvez améliorer l&#39;expérience de la chaîne d&#39;approvisionnement logicielle, créer des logiciels plus sécurisés plus rapidement et maintenir la confiance de vos utilisateurs, de vos clients et de votre communauté.</p><blockquote><p>Pour en savoir plus sur la conformité et la gestion des politiques de sécurité, consultez le <a href="https://gitlab-da.gitlab.io/tutorials/security-and-governance/devsecops/simply-vulnerable-notes/" rel="">tutoriel GitLab DevSecOps</a>, qui couvre le cycle de vie complet de la sécurité des applications dans GitLab.</p></blockquote><h2 id="pour-aller-plus-loin">Pour aller plus loin</h2><ul><li><a href="https://about.gitlab.com/blog/introducing-gitlab-dedicated-for-government/" rel="">GitLab Dedicated pour le secteur public</a></li><li><a href="https://about.gitlab.com/fr-fr/blog/ensuring-compliance/" rel="">Comment garantir la séparation des tâches et appliquer la conformité avec GitLab</a></li><li><a href="https://about.gitlab.com/blog/the-ultimate-guide-to-least-privilege-access-with-gitlab/" rel="">Accès avec le principe de moindre privilège avec GitLab : notre guide</a></li></ul>]]></content>
        <author>
            <name>Abubakar Siddiq Ango</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/abubakar-siddiq-ango/</uri>
        </author>
        <published>2026-02-09T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Déploiement sécurisé d'agents d'IA sur GKE]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/secure-ai-agent-deployment-to-gke/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/secure-ai-agent-deployment-to-gke/"/>
        <updated>2026-02-06T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Créer des <a href="https://about.gitlab.com/fr-fr/gitlab-duo/agent-platform/" rel="">agents d&#39;IA</a> est passionnant, mais leur déploiement sécurisé en production est parfois compliqué. Dans ce tutoriel, vous découvrirez comment <a href="https://cloud.google.com/blog/topics/partners/understand-the-google-cloud-gitlab-integration" rel="">l&#39;intégration native de GitLab avec Google Cloud</a> facilite le déploiement d&#39;agents d&#39;IA vers Google Kubernetes Engine (GKE), avec scans de sécurité intégrés et sans clés de compte de service.</p><h2 id="pourquoi-choisir-gke-pour-déployer-vos-agents-dia">Pourquoi choisir GKE pour déployer vos agents d&#39;IA ?</h2><p>GKE offre une orchestration d&#39;entreprise qui s&#39;intègre parfaitement aux pipelines <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" rel="">CI/CD</a> de GitLab grâce à l&#39;authentification OpenID Connect (OIDC). Votre équipe de développement peut déployer des agents d&#39;IA tout en conservant une visibilité, une conformité et un contrôle complets sur votre infrastructure cloud. Ce guide utilise l&#39;Agent Development Kit (<a href="https://developers.googleblog.com/en/agent-development-kit-easy-to-build-multi-agent-applications/" rel="">ADK</a>) de Google afin de créer l&#39;application, ce qui garantit une intégration fluide lors du déploiement avec GitLab.</p><p>Voici trois avantages clés de cette approche :</p><p><strong>Contrôle total de l&#39;infrastructure :</strong> vos données, vos règles, votre environnement. Vous conservez un contrôle complet sur l&#39;emplacement d&#39;exécution de vos agents d&#39;IA et de leur configuration.</p><p><strong>Intégration native avec GitLab :</strong> pas de solution de contournement complexe. Vos pipelines existants fonctionnent immédiatement grâce à l&#39;intégration native de GitLab avec Google Cloud.</p><p><strong>Mise à l&#39;échelle de niveau production :</strong> GKE gère automatiquement la mise à l&#39;échelle et l&#39;orchestration interne à mesure que vos charges de travail d&#39;IA augmentent.</p><p>Avec GKE, GitLab offre la fiabilité d&#39;entreprise dont vos déploiements d&#39;IA ont besoin sans sacrifier l&#39;expérience développeur que vos équipes attendent.</p><h2 id="prérequis">Prérequis</h2><p>Avant de commencer, assurez-vous d&#39;avoir activé ces API :</p><ul><li>API GKE</li><li>API Artifact Registry</li><li>API Vertex AI</li></ul><p>Assurez-vous également de disposer des éléments suivant :</p><ul><li>Un projet GitLab créé</li><li>Un cluster GKE provisionné</li><li>Un dépôt Artifact Registry créé</li></ul><h2 id="le-processus-de-déploiement">Le processus de déploiement</h2><h3 id="_1-configurer-iam-et-les-autorisations-sur-gitlab">1. Configurer IAM et les autorisations sur GitLab</h3><p>Accédez à vos intégrations GitLab afin de configurer l&#39;authentification Google Cloud (IAM).</p><p>Accédez à <strong>Paramètres &gt; Intégrations</strong> et configurez l&#39;intégration Google Cloud. Si vous utilisez une intégration au niveau du groupe, notez que les paramètres par défaut sont déjà hérités par les projets. Il vous suffit donc de configurer vos paramètres une fois au niveau du groupe pour que tous les projets en bénéficient et les héritent.</p><p>Pour configurer les paramètres, vous devez fournir les éléments suivants :</p><ul><li>ID du projet</li><li>Numéro du projet</li><li>ID du pool d&#39;identités de charge de travail</li><li>ID du fournisseur</li></ul><p>Une fois ces informations renseignées, GitLab fournit un script à exécuter dans Google Cloud Console via Cloud Shell. Le résultat de l&#39;exécution de ce script est un pool de fédération d&#39;identité de charge de travail avec l&#39;identité de service de compte principal nécessaire pour permettre l&#39;accès approprié.</p><h3 id="_2-configurer-lintégration-à-artifact-registry">2. Configurer l&#39;intégration à Artifact Registry</h3><p>Toujours dans les paramètres d&#39;intégration de GitLab, configurez la gestion des artefacts :</p><ol><li>Cliquez sur <strong>Gestion des artefacts</strong>.</li><li>Sélectionnez <strong>Google Artifact Registry</strong>.</li><li>Indiquez les éléments suivants :<ul><li>ID du projet</li><li>Nom du dépôt (créé au préalable)</li><li>Emplacement du dépôt</li></ul></li></ol><p>GitLab fournit un autre script à exécuter dans Google Cloud Console.</p><p><strong>Important :</strong> avant de continuer, ajoutez ces rôles supplémentaires au pool de fédération d&#39;identité de charge de travail :</p><ul><li>Utilisateur de compte de service</li><li>Développeur Kubernetes</li><li>Observateur de cluster Kubernetes</li></ul><p>Ces autorisations permettent à GitLab de déployer vers GKE dans les étapes suivantes.</p><h3 id="_3-créer-le-pipeline-cicd">3. Créer le pipeline CI/CD</h3><p>Voici maintenant la partie essentielle : la création du <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" rel="" title="Pipeline CI/CD">pipeline CI/CD</a> pour le déploiement.</p><p>Accédez à <strong>Compilation &gt; Éditeur de pipeline</strong> et définissez votre pipeline en quatre étapes :</p><ul><li><strong>Build :</strong> Docker crée l&#39;image de conteneur.</li><li><strong>Test :</strong> GitLab Auto DevOps fournit des scans de sécurité intégrés afin de garantir l&#39;absence de vulnérabilités.</li><li><strong>Importation :</strong> utilise le composant CI/CD intégré de GitLab pour effectuer un push vers Google Artifact Registry.</li><li><strong>Déploiement :</strong> utilise la configuration <a href="https://about.gitlab.com/fr-fr/blog/kubernetes-the-container-orchestration-solution/" rel="" title="Kubernetes">Kubernetes</a> pour déployer vers GKE.</li></ul><p>Voici le fichier <code className="">.gitlab-ci.yml</code> complet :</p><pre className="language-yaml shiki shiki-themes github-light" code="


default:
  tags: [ saas-linux-2xlarge-amd64 ]

stages:
  - build
  - test
  - upload
  - deploy

variables:
  GITLAB_IMAGE: $CI_REGISTRY_IMAGE/main:$CI_COMMIT_SHORT_SHA
  AR_IMAGE: $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/main:$CI_COMMIT_SHORT_SHA
  GCP_PROJECT_ID: &quot;your-project-id&quot;
  GKE_CLUSTER: &quot;your-cluster&quot;
  GKE_REGION: &quot;us-central1&quot;
  KSA_NAME: &quot;ai-agent-ksa&quot;

build:
  image: docker:24.0.5
  stage: build
  services:
    - docker:24.0.5-dind
  before_script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  script:
    - docker build -t $GITLAB_IMAGE .
    - docker push $GITLAB_IMAGE

include:
  - template: Jobs/Dependency-Scanning.gitlab-ci.yml
  - template: Jobs/Container-Scanning.gitlab-ci.yml
  - template: Jobs/Secret-Detection.gitlab-ci.yml
  - component: gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main
    inputs:
      stage: upload
      source: $GITLAB_IMAGE
      target: $AR_IMAGE

deploy:
  stage: deploy
  image: google/cloud-sdk:slim
  identity: google_cloud
  before_script:
    - apt-get update &amp;&amp; apt-get install -y kubectl google-cloud-sdk-gke-gcloud-auth-plugin
    - gcloud container clusters get-credentials $GKE_CLUSTER --region $GKE_REGION --project $GCP_PROJECT_ID
  script:
    - |
      kubectl apply -f - &lt;&lt;EOF
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: ai-agent
        namespace: default
      spec:
        replicas: 2
        selector:
          matchLabels:
            app: ai-agent
        template:
          metadata:
            labels:
              app: ai-agent
          spec:
            serviceAccountName: $KSA_NAME
            containers:
            - name: ai-agent
              image: $AR_IMAGE
              ports:
              - containerPort: 8080
              resources:
                requests: {cpu: 500m, memory: 1Gi}
                limits: {cpu: 2000m, memory: 4Gi}
              livenessProbe:
                httpGet: {path: /health, port: 8080}
                initialDelaySeconds: 60
              readinessProbe:
                httpGet: {path: /health, port: 8080}
                initialDelaySeconds: 30
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: ai-agent-service
        namespace: default
      spec:
        type: LoadBalancer
        ports:
        - port: 80
          targetPort: 8080
        selector:
          app: ai-agent
      ---
      apiVersion: autoscaling/v2
      kind: HorizontalPodAutoscaler
      metadata:
        name: ai-agent-hpa
        namespace: default
      spec:
        scaleTargetRef:
          apiVersion: apps/v1
          kind: Deployment
          name: ai-agent
        minReplicas: 2
        maxReplicas: 10
        metrics:
        - type: Resource
          resource:
            name: cpu
            target: {type: Utilization, averageUtilization: 70}
      EOF
      
      kubectl rollout status deployment/ai-agent -n default --timeout=5m
      EXTERNAL_IP=$(kubectl get service ai-agent-service -n default -o jsonpath=&#39;{.status.loadBalancer.ingress[0].ip}&#39;)
      echo &quot;Deployed at: http://$EXTERNAL_IP&quot;
  only:
    - main
" language="yaml" meta="" style=""><code><span class="line" line="1"><span emptyLinePlaceholder>
</span></span><span class="line" line="2"><span emptyLinePlaceholder>
</span></span><span class="line" line="3"><span emptyLinePlaceholder>
</span></span><span class="line" line="4"><span style="--shiki-default:#22863A">default</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="5"><span style="--shiki-default:#22863A">  tags</span><span style="--shiki-default:#24292E">: [ </span><span style="--shiki-default:#032F62">saas-linux-2xlarge-amd64</span><span style="--shiki-default:#24292E"> ]
</span></span><span class="line" line="6"><span emptyLinePlaceholder>
</span></span><span class="line" line="7"><span style="--shiki-default:#22863A">stages</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="8"><span style="--shiki-default:#24292E">  - </span><span style="--shiki-default:#032F62">build
</span></span><span class="line" line="9"><span style="--shiki-default:#24292E">  - </span><span style="--shiki-default:#032F62">test
</span></span><span class="line" line="10"><span style="--shiki-default:#24292E">  - </span><span style="--shiki-default:#032F62">upload
</span></span><span class="line" line="11"><span style="--shiki-default:#24292E">  - </span><span style="--shiki-default:#032F62">deploy
</span></span><span class="line" line="12"><span emptyLinePlaceholder>
</span></span><span class="line" line="13"><span style="--shiki-default:#22863A">variables</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="14"><span style="--shiki-default:#22863A">  GITLAB_IMAGE</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">$CI_REGISTRY_IMAGE/main:$CI_COMMIT_SHORT_SHA
</span></span><span class="line" line="15"><span style="--shiki-default:#22863A">  AR_IMAGE</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/main:$CI_COMMIT_SHORT_SHA
</span></span><span class="line" line="16"><span style="--shiki-default:#22863A">  GCP_PROJECT_ID</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;your-project-id&quot;
</span></span><span class="line" line="17"><span style="--shiki-default:#22863A">  GKE_CLUSTER</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;your-cluster&quot;
</span></span><span class="line" line="18"><span style="--shiki-default:#22863A">  GKE_REGION</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;us-central1&quot;
</span></span><span class="line" line="19"><span style="--shiki-default:#22863A">  KSA_NAME</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;ai-agent-ksa&quot;
</span></span><span class="line" line="20"><span emptyLinePlaceholder>
</span></span><span class="line" line="21"><span style="--shiki-default:#22863A">build</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="22"><span style="--shiki-default:#22863A">  image</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">docker:24.0.5
</span></span><span class="line" line="23"><span style="--shiki-default:#22863A">  stage</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">build
</span></span><span class="line" line="24"><span style="--shiki-default:#22863A">  services</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="25"><span style="--shiki-default:#24292E">    - </span><span style="--shiki-default:#032F62">docker:24.0.5-dind
</span></span><span class="line" line="26"><span style="--shiki-default:#22863A">  before_script</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="27"><span style="--shiki-default:#24292E">    - </span><span style="--shiki-default:#032F62">docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
</span></span><span class="line" line="28"><span style="--shiki-default:#22863A">  script</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="29"><span style="--shiki-default:#24292E">    - </span><span style="--shiki-default:#032F62">docker build -t $GITLAB_IMAGE .
</span></span><span class="line" line="30"><span style="--shiki-default:#24292E">    - </span><span style="--shiki-default:#032F62">docker push $GITLAB_IMAGE
</span></span><span class="line" line="31"><span emptyLinePlaceholder>
</span></span><span class="line" line="32"><span style="--shiki-default:#22863A">include</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="33"><span style="--shiki-default:#24292E">  - </span><span style="--shiki-default:#22863A">template</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">Jobs/Dependency-Scanning.gitlab-ci.yml
</span></span><span class="line" line="34"><span style="--shiki-default:#24292E">  - </span><span style="--shiki-default:#22863A">template</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">Jobs/Container-Scanning.gitlab-ci.yml
</span></span><span class="line" line="35"><span style="--shiki-default:#24292E">  - </span><span style="--shiki-default:#22863A">template</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">Jobs/Secret-Detection.gitlab-ci.yml
</span></span><span class="line" line="36"><span style="--shiki-default:#24292E">  - </span><span style="--shiki-default:#22863A">component</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main
</span></span><span class="line" line="37"><span style="--shiki-default:#22863A">    inputs</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="38"><span style="--shiki-default:#22863A">      stage</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">upload
</span></span><span class="line" line="39"><span style="--shiki-default:#22863A">      source</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">$GITLAB_IMAGE
</span></span><span class="line" line="40"><span style="--shiki-default:#22863A">      target</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">$AR_IMAGE
</span></span><span class="line" line="41"><span emptyLinePlaceholder>
</span></span><span class="line" line="42"><span style="--shiki-default:#22863A">deploy</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="43"><span style="--shiki-default:#22863A">  stage</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">deploy
</span></span><span class="line" line="44"><span style="--shiki-default:#22863A">  image</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">google/cloud-sdk:slim
</span></span><span class="line" line="45"><span style="--shiki-default:#22863A">  identity</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">google_cloud
</span></span><span class="line" line="46"><span style="--shiki-default:#22863A">  before_script</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="47"><span style="--shiki-default:#24292E">    - </span><span style="--shiki-default:#032F62">apt-get update &amp;&amp; apt-get install -y kubectl google-cloud-sdk-gke-gcloud-auth-plugin
</span></span><span class="line" line="48"><span style="--shiki-default:#24292E">    - </span><span style="--shiki-default:#032F62">gcloud container clusters get-credentials $GKE_CLUSTER --region $GKE_REGION --project $GCP_PROJECT_ID
</span></span><span class="line" line="49"><span style="--shiki-default:#22863A">  script</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="50"><span style="--shiki-default:#24292E">    - </span><span style="--shiki-default:#D73A49">|
</span></span><span class="line" line="51"><span style="--shiki-default:#032F62">      kubectl apply -f - &lt;&lt;EOF
</span></span><span class="line" line="52"><span style="--shiki-default:#032F62">      apiVersion: apps/v1
</span></span><span class="line" line="53"><span style="--shiki-default:#032F62">      kind: Deployment
</span></span><span class="line" line="54"><span style="--shiki-default:#032F62">      metadata:
</span></span><span class="line" line="55"><span style="--shiki-default:#032F62">        name: ai-agent
</span></span><span class="line" line="56"><span style="--shiki-default:#032F62">        namespace: default
</span></span><span class="line" line="57"><span style="--shiki-default:#032F62">      spec:
</span></span><span class="line" line="58"><span style="--shiki-default:#032F62">        replicas: 2
</span></span><span class="line" line="59"><span style="--shiki-default:#032F62">        selector:
</span></span><span class="line" line="60"><span style="--shiki-default:#032F62">          matchLabels:
</span></span><span class="line" line="61"><span style="--shiki-default:#032F62">            app: ai-agent
</span></span><span class="line" line="62"><span style="--shiki-default:#032F62">        template:
</span></span><span class="line" line="63"><span style="--shiki-default:#032F62">          metadata:
</span></span><span class="line" line="64"><span style="--shiki-default:#032F62">            labels:
</span></span><span class="line" line="65"><span style="--shiki-default:#032F62">              app: ai-agent
</span></span><span class="line" line="66"><span style="--shiki-default:#032F62">          spec:
</span></span><span class="line" line="67"><span style="--shiki-default:#032F62">            serviceAccountName: $KSA_NAME
</span></span><span class="line" line="68"><span style="--shiki-default:#032F62">            containers:
</span></span><span class="line" line="69"><span style="--shiki-default:#032F62">            - name: ai-agent
</span></span><span class="line" line="70"><span style="--shiki-default:#032F62">              image: $AR_IMAGE
</span></span><span class="line" line="71"><span style="--shiki-default:#032F62">              ports:
</span></span><span class="line" line="72"><span style="--shiki-default:#032F62">              - containerPort: 8080
</span></span><span class="line" line="73"><span style="--shiki-default:#032F62">              resources:
</span></span><span class="line" line="74"><span style="--shiki-default:#032F62">                requests: {cpu: 500m, memory: 1Gi}
</span></span><span class="line" line="75"><span style="--shiki-default:#032F62">                limits: {cpu: 2000m, memory: 4Gi}
</span></span><span class="line" line="76"><span style="--shiki-default:#032F62">              livenessProbe:
</span></span><span class="line" line="77"><span style="--shiki-default:#032F62">                httpGet: {path: /health, port: 8080}
</span></span><span class="line" line="78"><span style="--shiki-default:#032F62">                initialDelaySeconds: 60
</span></span><span class="line" line="79"><span style="--shiki-default:#032F62">              readinessProbe:
</span></span><span class="line" line="80"><span style="--shiki-default:#032F62">                httpGet: {path: /health, port: 8080}
</span></span><span class="line" line="81"><span style="--shiki-default:#032F62">                initialDelaySeconds: 30
</span></span><span class="line" line="82"><span style="--shiki-default:#032F62">      ---
</span></span><span class="line" line="83"><span style="--shiki-default:#032F62">      apiVersion: v1
</span></span><span class="line" line="84"><span style="--shiki-default:#032F62">      kind: Service
</span></span><span class="line" line="85"><span style="--shiki-default:#032F62">      metadata:
</span></span><span class="line" line="86"><span style="--shiki-default:#032F62">        name: ai-agent-service
</span></span><span class="line" line="87"><span style="--shiki-default:#032F62">        namespace: default
</span></span><span class="line" line="88"><span style="--shiki-default:#032F62">      spec:
</span></span><span class="line" line="89"><span style="--shiki-default:#032F62">        type: LoadBalancer
</span></span><span class="line" line="90"><span style="--shiki-default:#032F62">        ports:
</span></span><span class="line" line="91"><span style="--shiki-default:#032F62">        - port: 80
</span></span><span class="line" line="92"><span style="--shiki-default:#032F62">          targetPort: 8080
</span></span><span class="line" line="93"><span style="--shiki-default:#032F62">        selector:
</span></span><span class="line" line="94"><span style="--shiki-default:#032F62">          app: ai-agent
</span></span><span class="line" line="95"><span style="--shiki-default:#032F62">      ---
</span></span><span class="line" line="96"><span style="--shiki-default:#032F62">      apiVersion: autoscaling/v2
</span></span><span class="line" line="97"><span style="--shiki-default:#032F62">      kind: HorizontalPodAutoscaler
</span></span><span class="line" line="98"><span style="--shiki-default:#032F62">      metadata:
</span></span><span class="line" line="99"><span style="--shiki-default:#032F62">        name: ai-agent-hpa
</span></span><span class="line" line="100"><span style="--shiki-default:#032F62">        namespace: default
</span></span><span class="line" line="101"><span style="--shiki-default:#032F62">      spec:
</span></span><span class="line" line="102"><span style="--shiki-default:#032F62">        scaleTargetRef:
</span></span><span class="line" line="103"><span style="--shiki-default:#032F62">          apiVersion: apps/v1
</span></span><span class="line" line="104"><span style="--shiki-default:#032F62">          kind: Deployment
</span></span><span class="line" line="105"><span style="--shiki-default:#032F62">          name: ai-agent
</span></span><span class="line" line="106"><span style="--shiki-default:#032F62">        minReplicas: 2
</span></span><span class="line" line="107"><span style="--shiki-default:#032F62">        maxReplicas: 10
</span></span><span class="line" line="108"><span style="--shiki-default:#032F62">        metrics:
</span></span><span class="line" line="109"><span style="--shiki-default:#032F62">        - type: Resource
</span></span><span class="line" line="110"><span style="--shiki-default:#032F62">          resource:
</span></span><span class="line" line="111"><span style="--shiki-default:#032F62">            name: cpu
</span></span><span class="line" line="112"><span style="--shiki-default:#032F62">            target: {type: Utilization, averageUtilization: 70}
</span></span><span class="line" line="113"><span style="--shiki-default:#032F62">      EOF
</span></span><span class="line" line="114"><span style="--shiki-default:#032F62">      
</span></span><span class="line" line="115"><span style="--shiki-default:#032F62">      kubectl rollout status deployment/ai-agent -n default --timeout=5m
</span></span><span class="line" line="116"><span style="--shiki-default:#032F62">      EXTERNAL_IP=$(kubectl get service ai-agent-service -n default -o jsonpath=&#39;{.status.loadBalancer.ingress[0].ip}&#39;)
</span></span><span class="line" line="117"><span style="--shiki-default:#032F62">      echo &quot;Deployed at: http://$EXTERNAL_IP&quot;
</span></span><span class="line" line="118"><span style="--shiki-default:#22863A">  only</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="119"><span style="--shiki-default:#24292E">    - </span><span style="--shiki-default:#032F62">main
</span></span></code></pre><h4 id="configuration-essentielle-pour-gke">Configuration essentielle pour GKE</h4><p>Pour que tout fonctionne, et c&#39;est la raison pour laquelle nous avons besoin de cette configuration supplémentaire pour GKE, nous devons disposer d&#39;un compte de service Kubernetes dans le cluster qui peut fonctionner avec Vertex AI. Ce compte de service doit être autorisé à accéder aux capacités d&#39;IA de Google Cloud.</p><p>Sans cela, nous pouvons déployer l&#39;application, mais l&#39;agent d&#39;IA ne fonctionnera pas. Nous devons créer un compte de service Kubernetes capable d&#39;accéder à Vertex AI.</p><p>Exécutez cette configuration ponctuelle :</p><pre className="language-bash shiki shiki-themes github-light" code="


#!/bin/bash



PROJECT_ID=&quot;your-project-id&quot;



GSA_NAME=&quot;ai-agent-vertex&quot;



GSA_EMAIL=&quot;${GSA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com&quot;



KSA_NAME=&quot;ai-agent-ksa&quot;



CLUSTER_NAME=&quot;your-cluster&quot;



REGION=&quot;us-central1&quot;




# Create GCP Service Account



gcloud iam service-accounts create $GSA_NAME \
    --display-name=&quot;AI Agent Vertex AI&quot; \
    --project=$PROJECT_ID

# Grant Vertex AI permissions



gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member=&quot;serviceAccount:${GSA_EMAIL}&quot; \
    --role=&quot;roles/aiplatform.user&quot;

# Get cluster credentials



gcloud container clusters get-credentials $CLUSTER_NAME \
    --region $REGION --project $PROJECT_ID

# Create Kubernetes Service Account



kubectl create serviceaccount $KSA_NAME -n default




# Link accounts



kubectl annotate serviceaccount $KSA_NAME -n default \
    iam.gke.io/gcp-service-account=${GSA_EMAIL}

gcloud iam service-accounts add-iam-policy-binding ${GSA_EMAIL} \
    --role=roles/iam.workloadIdentityUser \
    --member=&quot;serviceAccount:${PROJECT_ID}.svc.id.goog[default/${KSA_NAME}]&quot; \
    --project=$PROJECT_ID
" language="bash" meta="" style=""><code><span class="line" line="1"><span emptyLinePlaceholder>
</span></span><span class="line" line="2"><span emptyLinePlaceholder>
</span></span><span class="line" line="3"><span emptyLinePlaceholder>
</span></span><span class="line" line="4"><span style="--shiki-default:#6A737D">#!/bin/bash
</span></span><span class="line" line="5"><span emptyLinePlaceholder>
</span></span><span class="line" line="6"><span emptyLinePlaceholder>
</span></span><span class="line" line="7"><span emptyLinePlaceholder>
</span></span><span class="line" line="8"><span style="--shiki-default:#24292E">PROJECT_ID</span><span style="--shiki-default:#D73A49">=</span><span style="--shiki-default:#032F62">&quot;your-project-id&quot;
</span></span><span class="line" line="9"><span emptyLinePlaceholder>
</span></span><span class="line" line="10"><span emptyLinePlaceholder>
</span></span><span class="line" line="11"><span emptyLinePlaceholder>
</span></span><span class="line" line="12"><span style="--shiki-default:#24292E">GSA_NAME</span><span style="--shiki-default:#D73A49">=</span><span style="--shiki-default:#032F62">&quot;ai-agent-vertex&quot;
</span></span><span class="line" line="13"><span emptyLinePlaceholder>
</span></span><span class="line" line="14"><span emptyLinePlaceholder>
</span></span><span class="line" line="15"><span emptyLinePlaceholder>
</span></span><span class="line" line="16"><span style="--shiki-default:#24292E">GSA_EMAIL</span><span style="--shiki-default:#D73A49">=</span><span style="--shiki-default:#032F62">&quot;${</span><span style="--shiki-default:#24292E">GSA_NAME</span><span style="--shiki-default:#032F62">}@${</span><span style="--shiki-default:#24292E">PROJECT_ID</span><span style="--shiki-default:#032F62">}.iam.gserviceaccount.com&quot;
</span></span><span class="line" line="17"><span emptyLinePlaceholder>
</span></span><span class="line" line="18"><span emptyLinePlaceholder>
</span></span><span class="line" line="19"><span emptyLinePlaceholder>
</span></span><span class="line" line="20"><span style="--shiki-default:#24292E">KSA_NAME</span><span style="--shiki-default:#D73A49">=</span><span style="--shiki-default:#032F62">&quot;ai-agent-ksa&quot;
</span></span><span class="line" line="21"><span emptyLinePlaceholder>
</span></span><span class="line" line="22"><span emptyLinePlaceholder>
</span></span><span class="line" line="23"><span emptyLinePlaceholder>
</span></span><span class="line" line="24"><span style="--shiki-default:#24292E">CLUSTER_NAME</span><span style="--shiki-default:#D73A49">=</span><span style="--shiki-default:#032F62">&quot;your-cluster&quot;
</span></span><span class="line" line="25"><span emptyLinePlaceholder>
</span></span><span class="line" line="26"><span emptyLinePlaceholder>
</span></span><span class="line" line="27"><span emptyLinePlaceholder>
</span></span><span class="line" line="28"><span style="--shiki-default:#24292E">REGION</span><span style="--shiki-default:#D73A49">=</span><span style="--shiki-default:#032F62">&quot;us-central1&quot;
</span></span><span class="line" line="29"><span emptyLinePlaceholder>
</span></span><span class="line" line="30"><span emptyLinePlaceholder>
</span></span><span class="line" line="31"><span emptyLinePlaceholder>
</span></span><span class="line" line="32"><span emptyLinePlaceholder>
</span></span><span class="line" line="33"><span style="--shiki-default:#6A737D"># Create GCP Service Account
</span></span><span class="line" line="34"><span emptyLinePlaceholder>
</span></span><span class="line" line="35"><span emptyLinePlaceholder>
</span></span><span class="line" line="36"><span emptyLinePlaceholder>
</span></span><span class="line" line="37"><span style="--shiki-default:#6F42C1">gcloud</span><span style="--shiki-default:#032F62"> iam</span><span style="--shiki-default:#032F62"> service-accounts</span><span style="--shiki-default:#032F62"> create</span><span style="--shiki-default:#24292E"> $GSA_NAME </span><span style="--shiki-default:#005CC5">\
</span></span><span class="line" line="38"><span style="--shiki-default:#005CC5">    --display-name=</span><span style="--shiki-default:#032F62">&quot;AI Agent Vertex AI&quot;</span><span style="--shiki-default:#005CC5"> \
</span></span><span class="line" line="39"><span style="--shiki-default:#005CC5">    --project=</span><span style="--shiki-default:#24292E">$PROJECT_ID
</span></span><span class="line" line="40"><span emptyLinePlaceholder>
</span></span><span class="line" line="41"><span style="--shiki-default:#6A737D"># Grant Vertex AI permissions
</span></span><span class="line" line="42"><span emptyLinePlaceholder>
</span></span><span class="line" line="43"><span emptyLinePlaceholder>
</span></span><span class="line" line="44"><span emptyLinePlaceholder>
</span></span><span class="line" line="45"><span style="--shiki-default:#6F42C1">gcloud</span><span style="--shiki-default:#032F62"> projects</span><span style="--shiki-default:#032F62"> add-iam-policy-binding</span><span style="--shiki-default:#24292E"> $PROJECT_ID </span><span style="--shiki-default:#005CC5">\
</span></span><span class="line" line="46"><span style="--shiki-default:#005CC5">    --member=</span><span style="--shiki-default:#032F62">&quot;serviceAccount:${</span><span style="--shiki-default:#24292E">GSA_EMAIL</span><span style="--shiki-default:#032F62">}&quot;</span><span style="--shiki-default:#005CC5"> \
</span></span><span class="line" line="47"><span style="--shiki-default:#005CC5">    --role=</span><span style="--shiki-default:#032F62">&quot;roles/aiplatform.user&quot;
</span></span><span class="line" line="48"><span emptyLinePlaceholder>
</span></span><span class="line" line="49"><span style="--shiki-default:#6A737D"># Get cluster credentials
</span></span><span class="line" line="50"><span emptyLinePlaceholder>
</span></span><span class="line" line="51"><span emptyLinePlaceholder>
</span></span><span class="line" line="52"><span emptyLinePlaceholder>
</span></span><span class="line" line="53"><span style="--shiki-default:#6F42C1">gcloud</span><span style="--shiki-default:#032F62"> container</span><span style="--shiki-default:#032F62"> clusters</span><span style="--shiki-default:#032F62"> get-credentials</span><span style="--shiki-default:#24292E"> $CLUSTER_NAME </span><span style="--shiki-default:#005CC5">\
</span></span><span class="line" line="54"><span style="--shiki-default:#005CC5">    --region</span><span style="--shiki-default:#24292E"> $REGION </span><span style="--shiki-default:#005CC5">--project</span><span style="--shiki-default:#24292E"> $PROJECT_ID
</span></span><span class="line" line="55"><span emptyLinePlaceholder>
</span></span><span class="line" line="56"><span style="--shiki-default:#6A737D"># Create Kubernetes Service Account
</span></span><span class="line" line="57"><span emptyLinePlaceholder>
</span></span><span class="line" line="58"><span emptyLinePlaceholder>
</span></span><span class="line" line="59"><span emptyLinePlaceholder>
</span></span><span class="line" line="60"><span style="--shiki-default:#6F42C1">kubectl</span><span style="--shiki-default:#032F62"> create</span><span style="--shiki-default:#032F62"> serviceaccount</span><span style="--shiki-default:#24292E"> $KSA_NAME </span><span style="--shiki-default:#005CC5">-n</span><span style="--shiki-default:#032F62"> default
</span></span><span class="line" line="61"><span emptyLinePlaceholder>
</span></span><span class="line" line="62"><span emptyLinePlaceholder>
</span></span><span class="line" line="63"><span emptyLinePlaceholder>
</span></span><span class="line" line="64"><span emptyLinePlaceholder>
</span></span><span class="line" line="65"><span style="--shiki-default:#6A737D"># Link accounts
</span></span><span class="line" line="66"><span emptyLinePlaceholder>
</span></span><span class="line" line="67"><span emptyLinePlaceholder>
</span></span><span class="line" line="68"><span emptyLinePlaceholder>
</span></span><span class="line" line="69"><span style="--shiki-default:#6F42C1">kubectl</span><span style="--shiki-default:#032F62"> annotate</span><span style="--shiki-default:#032F62"> serviceaccount</span><span style="--shiki-default:#24292E"> $KSA_NAME </span><span style="--shiki-default:#005CC5">-n</span><span style="--shiki-default:#032F62"> default</span><span style="--shiki-default:#005CC5"> \
</span></span><span class="line" line="70"><span style="--shiki-default:#032F62">    iam.gke.io/gcp-service-account=</span><span style="--shiki-default:#24292E">${GSA_EMAIL}
</span></span><span class="line" line="71"><span emptyLinePlaceholder>
</span></span><span class="line" line="72"><span style="--shiki-default:#6F42C1">gcloud</span><span style="--shiki-default:#032F62"> iam</span><span style="--shiki-default:#032F62"> service-accounts</span><span style="--shiki-default:#032F62"> add-iam-policy-binding</span><span style="--shiki-default:#24292E"> ${GSA_EMAIL} </span><span style="--shiki-default:#005CC5">\
</span></span><span class="line" line="73"><span style="--shiki-default:#005CC5">    --role=roles/iam.workloadIdentityUser</span><span style="--shiki-default:#005CC5"> \
</span></span><span class="line" line="74"><span style="--shiki-default:#005CC5">    --member=</span><span style="--shiki-default:#032F62">&quot;serviceAccount:${</span><span style="--shiki-default:#24292E">PROJECT_ID</span><span style="--shiki-default:#032F62">}.svc.id.goog[default/${</span><span style="--shiki-default:#24292E">KSA_NAME</span><span style="--shiki-default:#032F62">}]&quot;</span><span style="--shiki-default:#005CC5"> \
</span></span><span class="line" line="75"><span style="--shiki-default:#005CC5">    --project=</span><span style="--shiki-default:#24292E">$PROJECT_ID
</span></span></code></pre><h3 id="_4-déployer-vers-gke">4. Déployer vers GKE</h3><p>Une fois que vous avez terminé, effectuez un push vers le pipeline et le tour est joué.</p><p>Le pipeline vient d&#39;être déployé. Accédez à <strong>CI/CD &gt; Pipelines</strong> pour voir les quatre étapes :</p><ul><li>Build</li><li>Test (avec tous les scans de sécurité définis)</li><li>Importation vers Artifact Registry (réussie)</li><li>Déploiement vers Kubernetes dans GKE (réussi)</li></ul><h2 id="résumé">Résumé</h2><p>Avec GitLab et Google Cloud, vous êtes en mesure de déployer votre agent d&#39;IA vers GKE en toute simplicité et sécurité en quelques étapes seulement grâce à l&#39;intégration native de GitLab avec Google Cloud.</p><p>Regardez cette démo :</p><figure className="video_container">
  <iframe src="https://www.youtube.com/embed/mc2pCL5Qjus?si=QoH02lvz5KH5Ku9O" frameBorder="0" allowFullScreen="true"> </iframe></figure><blockquote><p>Utilisez <a href="https://gitlab.com/gitlab-partners-public/google-cloud/demos/gke-ai-agent" rel="">l&#39;exemple de code complet de ce tutoriel</a> pour commencer dès maintenant. Vous n’utilisez pas encore GitLab ? Découvrez la plateforme DevSecOps et profitez d&#39;<a href="https://about.gitlab.com/fr-fr/free-trial/" rel="">un essai gratuit</a>. Les startups hébergées sur Google Cloud disposent d&#39;<a href="https://about.gitlab.com/fr-fr/solutions/startups/google-cloud/" rel="">une offre spéciale pour essayer et utiliser GitLab</a>.</p></blockquote><style>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);}</style>]]></content>
        <author>
            <name>Regnard Raquedan</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/regnard-raquedan/</uri>
        </author>
        <published>2026-02-06T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Nouveautés de Git 2.53.0]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-53-0/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-53-0/"/>
        <updated>2026-02-03T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Le projet Git a récemment publié <a href="https://lore.kernel.org/git/xmqq4inz13e3.fsf@gitster.g/T/#u" rel="">Git 2.53.0</a>. Passons en revue quelques points marquants de cette version, qui comprend des contributions de l&#39;équipe Git chez GitLab.</p><h2 id="prise-en-charge-du-rempaquetage-géométrique-avec-les-dépôts-distants-promisor">Prise en charge du rempaquetage géométrique avec les dépôts distants promisor</h2><p>Les objets qui viennent d&#39;être créés dans un dépôt Git sont souvent stockés sous forme de fichiers libres individuels. Pour garantir de bonnes performances et une utilisation optimale de l&#39;espace disque, ces objets libres sont régulièrement compressés dans ce qu&#39;on appelle des fichiers d&#39;empaquetage (« packfiles »). Le nombre de fichiers d&#39;empaquetage dans un dépôt augmente au fil du temps en raison des tâches effectuées, comme la création de nouveaux commits ou la récupération depuis un dépôt distant. À mesure que le nombre de fichiers d&#39;empaquetage augmente dans un dépôt, Git doit effectuer davantage de travail pour rechercher des objets individuels. Par conséquent, pour préserver les performances optimales du dépôt, les fichiers d&#39;empaquetage sont périodiquement rempaquetés via git-repack(1) afin de consolider les objets dans un nombre réduit de fichiers d&#39;empaquetage. Lors du rempaquetage, deux stratégies existent : « tout-en-un » et « géométrique ».</p><p>La stratégie tout-en-un est assez simple et constitue la stratégie par défaut actuelle. Comme son nom l&#39;indique, tous les objets du dépôt sont empaquetés dans un seul fichier. Cette approche est idéale pour le dépôt d&#39;un point de vue des performances, car Git n&#39;a besoin de parcourir qu&#39;un seul fichier d&#39;empaquetage lors de la recherche d&#39;objets. Le principal inconvénient ? Le calcul d&#39;un fichier d&#39;empaquetage unique pour un dépôt peut prendre beaucoup de temps en cas de dépôt volumineux.</p><p>La stratégie géométrique permet d&#39;atténuer ce problème en maintenant une progression géométrique des fichiers d&#39;empaquetage en fonction de leur taille, au lieu de toujours rempaqueter dans un seul fichier. Lors du rempaquetage, Git maintient un ensemble de fichiers d&#39;empaquetage classés par taille, où chaque fichier de la séquence doit avoir au moins deux fois la taille du fichier d&#39;empaquetage précédent. Si un fichier d&#39;empaquetage de la séquence enfreint cette propriété, les fichiers d&#39;empaquetage sont combinés selon les besoins jusqu&#39;à ce que la progression soit rétablie. Cette stratégie permet de limiter le nombre de fichiers d&#39;empaquetage dans un dépôt tout en minimisant également la quantité de travail à effectuer pour la plupart des opérations de rempaquetage.</p><p>Toutefois, la stratégie de rempaquetage géométrique n&#39;était pas compatible avec les clones partiels. Ces derniers permettent de cloner uniquement certaines parties d&#39;un dépôt (par exemple en ignorant tous les blobs de plus de 1 mégaoctet). Cette approche peut réduire considérablement la taille d&#39;un dépôt, et Git sait comment récupérer les objets manquants auxquels il doit accéder ultérieurement.</p><p>Résultat : nous obtenons un dépôt dans lequel il manque certains objets. Tout objet qui pourrait ne pas être entièrement connecté est stocké dans un fichier d&#39;empaquetage « promisor ». Lors du rempaquetage, cette propriété promisor doit être conservée pour les fichiers d&#39;empaquetage contenant un objet promisor, afin qu&#39;il soit possible de déterminer si un objet manquant est attendu et peut être récupéré depuis le dépôt distant promisor. Avec une stratégie de rempaquetage tout-en-un, Git sait gérer correctement les objets promisor et les stocke dans un fichier d&#39;empaquetage promisor distinct. Malheureusement, la stratégie de rempaquetage géométrique ne savait pas comment accorder un traitement spécial aux fichiers d&#39;empaquetage promisor et les fusionnait avec des fichiers d&#39;empaquetage normaux sans tenir compte de la présence d&#39;objets promisor. Heureusement, en raison d&#39;un bogue, la commande git-pack-objects(1) sous-jacente échoue lors de l&#39;utilisation du rempaquetage géométrique dans un dépôt de clone partiel. Les dépôts dans cette configuration ne pouvaient donc de toute façon pas être rempaquetés. Ce n&#39;est pas idéal, mais c&#39;est un résultat préférable à une corruption du dépôt.</p><p>Avec la sortie de Git 2.53, le rempaquetage géométrique fonctionne désormais avec les dépôts de clones partiels. Lors d&#39;un rempaquetage géométrique, les fichiers d&#39;empaquetage promisor sont gérés séparément afin de préserver le marqueur promisor et sont rempaquetés selon une progression géométrique distincte. Avec ce correctif, la stratégie géométrique suit une progression logique en vue de s&#39;imposer comme la stratégie de rempaquetage par défaut. Pour plus d&#39;informations, consultez le <a href="https://lore.kernel.org/git/20260105-pks-geometric-repack-with-promisors-v1-0-c4660573437e@pks.im/" rel="">fil de discussion de la liste de diffusion</a> correspondant.</p><p>Ce projet a été mené par <a href="https://gitlab.com/pks-gitlab" rel="">Patrick Steinhardt</a>.</p><h2 id="git-fast-import1-préservation-des-signatures-valides-uniquement">git-fast-import(1) : préservation des signatures valides uniquement</h2><p>Dans notre <a href="https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-52-0/" rel="">article de blog consacré à la version Git 2.52</a>, nous avons abordé les améliorations liées aux signatures apportées à git-fast-import(1) et git-fast-export(1). Consultez cet article pour une explication plus détaillée de ces commandes, de leur utilisation et des modifications apportées concernant les signatures.</p><p>Pour résumer brièvement, git-fast-import(1) fournit un backend qui permet d&#39;importer efficacement des données dans un dépôt et qui est utilisé par des outils tels que <a href="https://github.com/newren/git-filter-repo" rel="">git-filter-repo(1)</a> pour aider à réécrire l&#39;historique d&#39;un dépôt en masse. Dans la version Git 2.52, git-fast-import(1) a appris l&#39;option <code className="">--signed-commits=&lt;mode&gt;</code>, qui est similaire à la même option dans git-fast-export(1). Avec cette option, il est devenu possible de conserver ou de supprimer de façon inconditionnelle les signatures des commits et des tags.</p><p>Dans les situations où seule une partie de l&#39;historique du dépôt a été réécrite, toute signature pour les commits ou tags réécrits devient invalide. Cela signifie que git-fast-import(1) est limité : la commande peut soit supprimer toutes les signatures, soit les conserver même si elles sont devenues invalides. Mais conserver des signatures invalides n&#39;est pas vraiment utile, c&#39;est pourquoi la réécriture de l&#39;historique avec git-repo-filter(1) entraîne la suppression de toutes les signatures, même si le commit ou tag sous-jacent n&#39;est pas réécrit. Cette approche n&#39;est pas idéale : si le commit ou tag ne change pas, sa signature est toujours valide et il n&#39;y a donc aucune raison réelle de la supprimer. Nous avons en réalité besoin de préserver les signatures pour les objets inchangés, et de supprimer les signatures invalides.</p><p>Avec la sortie de Git 2.53, l&#39;option <code className="">--signed-commits=&lt;mode&gt;</code> de git-fast-import(1) a appris un nouveau mode <code className="">strip-if-invalid</code> qui, lorsqu&#39;il est utilisé, supprime seulement les signatures devenues invalides des commits réécrits. Ainsi, avec cette option, il devient possible de préserver certaines signatures de commits lors de l&#39;utilisation de git-fast-import(1). Il s&#39;agit d&#39;une étape critique vers la mise en place des bases qui permettent à des outils comme git-repo-filter(1) de préserver les signatures valides et, plus tard, de signer à nouveau les signatures invalides.</p><p>Ce projet a été mené par <a href="https://gitlab.com/chriscool" rel="">Christian Couder</a>.</p><h2 id="plus-de-données-collectées-dans-git-repo-structure">Plus de données collectées dans git-repo-structure</h2><p>Dans la version Git 2.52, la sous-commande « structure » a été introduite dans git-repo(1). L&#39;objectif de cette commande était de collecter des informations sur le dépôt et de remplacer éventuellement nativement des outils tels que <a href="https://github.com/github/git-sizer" rel="">git-sizer(1)</a>. Chez GitLab, nous hébergeons des dépôts extrêmement volumineux, et disposer d&#39;informations sur la structure générale d&#39;un dépôt est essentiel pour comprendre ses performances. Dans cette version, la commande collecte désormais également des informations sur la taille totale des objets accessibles dans un dépôt afin d&#39;aider à comprendre la taille globale du dépôt. Dans les données de sortie ci-dessous, vous pouvez voir que la commande collecte désormais à la fois les tailles totales décompressées et sur disque des objets accessibles par type.</p><pre className="language-shell shiki shiki-themes github-light" code="$ git repo structure

| Repository structure | Value      |
| -------------------- | ---------- |
| * References         |            |
|   * Count            |   1.78 k   |
|     * Branches       |      5     |
|     * Tags           |   1.03 k   |
|     * Remotes        |    749     |
|     * Others         |      0     |
|                      |            |
| * Reachable objects  |            |
|   * Count            | 421.37 k   |
|     * Commits        |  88.03 k   |
|     * Trees          | 169.95 k   |
|     * Blobs          | 162.40 k   |
|     * Tags           |    994     |
|   * Inflated size    |   7.61 GiB |
|     * Commits        |  60.95 MiB |
|     * Trees          |   2.44 GiB |
|     * Blobs          |   5.11 GiB |
|     * Tags           | 731.73 KiB |
|   * Disk size        | 301.50 MiB |
|     * Commits        |  33.57 MiB |
|     * Trees          |  77.92 MiB |
|     * Blobs          | 189.44 MiB |
|     * Tags           | 578.13 KiB |
" language="shell" meta="" style=""><code><span class="line" line="1"><span style="--shiki-default:#6F42C1">$</span><span style="--shiki-default:#032F62"> git</span><span style="--shiki-default:#032F62"> repo</span><span style="--shiki-default:#032F62"> structure
</span></span><span class="line" line="2"><span emptyLinePlaceholder>
</span></span><span class="line" line="3"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1"> Repository</span><span style="--shiki-default:#032F62"> structure</span><span style="--shiki-default:#D73A49"> |</span><span style="--shiki-default:#6F42C1"> Value</span><span style="--shiki-default:#D73A49">      |
</span></span><span class="line" line="4"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1"> --------------------</span><span style="--shiki-default:#D73A49"> |</span><span style="--shiki-default:#6F42C1"> ----------</span><span style="--shiki-default:#D73A49"> |
</span></span><span class="line" line="5"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1"> *</span><span style="--shiki-default:#032F62"> References</span><span style="--shiki-default:#D73A49">         |</span><span style="--shiki-default:#D73A49">            |
</span></span><span class="line" line="6"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">   *</span><span style="--shiki-default:#032F62"> Count</span><span style="--shiki-default:#D73A49">            |</span><span style="--shiki-default:#6F42C1">   1.78</span><span style="--shiki-default:#032F62"> k</span><span style="--shiki-default:#D73A49">   |
</span></span><span class="line" line="7"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Branches</span><span style="--shiki-default:#D73A49">       |</span><span style="--shiki-default:#6F42C1">      5</span><span style="--shiki-default:#D73A49">     |
</span></span><span class="line" line="8"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Tags</span><span style="--shiki-default:#D73A49">           |</span><span style="--shiki-default:#6F42C1">   1.03</span><span style="--shiki-default:#032F62"> k</span><span style="--shiki-default:#D73A49">   |
</span></span><span class="line" line="9"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Remotes</span><span style="--shiki-default:#D73A49">        |</span><span style="--shiki-default:#6F42C1">    749</span><span style="--shiki-default:#D73A49">     |
</span></span><span class="line" line="10"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Others</span><span style="--shiki-default:#D73A49">         |</span><span style="--shiki-default:#6F42C1">      0</span><span style="--shiki-default:#D73A49">     |
</span></span><span class="line" line="11"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#D73A49">                      |</span><span style="--shiki-default:#D73A49">            |
</span></span><span class="line" line="12"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1"> *</span><span style="--shiki-default:#032F62"> Reachable</span><span style="--shiki-default:#032F62"> objects</span><span style="--shiki-default:#D73A49">  |</span><span style="--shiki-default:#D73A49">            |
</span></span><span class="line" line="13"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">   *</span><span style="--shiki-default:#032F62"> Count</span><span style="--shiki-default:#D73A49">            |</span><span style="--shiki-default:#6F42C1"> 421.37</span><span style="--shiki-default:#032F62"> k</span><span style="--shiki-default:#D73A49">   |
</span></span><span class="line" line="14"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Commits</span><span style="--shiki-default:#D73A49">        |</span><span style="--shiki-default:#6F42C1">  88.03</span><span style="--shiki-default:#032F62"> k</span><span style="--shiki-default:#D73A49">   |
</span></span><span class="line" line="15"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Trees</span><span style="--shiki-default:#D73A49">          |</span><span style="--shiki-default:#6F42C1"> 169.95</span><span style="--shiki-default:#032F62"> k</span><span style="--shiki-default:#D73A49">   |
</span></span><span class="line" line="16"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Blobs</span><span style="--shiki-default:#D73A49">          |</span><span style="--shiki-default:#6F42C1"> 162.40</span><span style="--shiki-default:#032F62"> k</span><span style="--shiki-default:#D73A49">   |
</span></span><span class="line" line="17"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Tags</span><span style="--shiki-default:#D73A49">           |</span><span style="--shiki-default:#6F42C1">    994</span><span style="--shiki-default:#D73A49">     |
</span></span><span class="line" line="18"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">   *</span><span style="--shiki-default:#032F62"> Inflated</span><span style="--shiki-default:#032F62"> size</span><span style="--shiki-default:#D73A49">    |</span><span style="--shiki-default:#6F42C1">   7.61</span><span style="--shiki-default:#032F62"> GiB</span><span style="--shiki-default:#D73A49"> |
</span></span><span class="line" line="19"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Commits</span><span style="--shiki-default:#D73A49">        |</span><span style="--shiki-default:#6F42C1">  60.95</span><span style="--shiki-default:#032F62"> MiB</span><span style="--shiki-default:#D73A49"> |
</span></span><span class="line" line="20"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Trees</span><span style="--shiki-default:#D73A49">          |</span><span style="--shiki-default:#6F42C1">   2.44</span><span style="--shiki-default:#032F62"> GiB</span><span style="--shiki-default:#D73A49"> |
</span></span><span class="line" line="21"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Blobs</span><span style="--shiki-default:#D73A49">          |</span><span style="--shiki-default:#6F42C1">   5.11</span><span style="--shiki-default:#032F62"> GiB</span><span style="--shiki-default:#D73A49"> |
</span></span><span class="line" line="22"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Tags</span><span style="--shiki-default:#D73A49">           |</span><span style="--shiki-default:#6F42C1"> 731.73</span><span style="--shiki-default:#032F62"> KiB</span><span style="--shiki-default:#D73A49"> |
</span></span><span class="line" line="23"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">   *</span><span style="--shiki-default:#032F62"> Disk</span><span style="--shiki-default:#032F62"> size</span><span style="--shiki-default:#D73A49">        |</span><span style="--shiki-default:#6F42C1"> 301.50</span><span style="--shiki-default:#032F62"> MiB</span><span style="--shiki-default:#D73A49"> |
</span></span><span class="line" line="24"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Commits</span><span style="--shiki-default:#D73A49">        |</span><span style="--shiki-default:#6F42C1">  33.57</span><span style="--shiki-default:#032F62"> MiB</span><span style="--shiki-default:#D73A49"> |
</span></span><span class="line" line="25"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Trees</span><span style="--shiki-default:#D73A49">          |</span><span style="--shiki-default:#6F42C1">  77.92</span><span style="--shiki-default:#032F62"> MiB</span><span style="--shiki-default:#D73A49"> |
</span></span><span class="line" line="26"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Blobs</span><span style="--shiki-default:#D73A49">          |</span><span style="--shiki-default:#6F42C1"> 189.44</span><span style="--shiki-default:#032F62"> MiB</span><span style="--shiki-default:#D73A49"> |
</span></span><span class="line" line="27"><span style="--shiki-default:#D73A49">|</span><span style="--shiki-default:#6F42C1">     *</span><span style="--shiki-default:#032F62"> Tags</span><span style="--shiki-default:#D73A49">           |</span><span style="--shiki-default:#6F42C1"> 578.13</span><span style="--shiki-default:#032F62"> KiB</span><span style="--shiki-default:#D73A49"> |
</span></span></code></pre><p>Vous aurez peut-être également remarqué que les valeurs de taille dans le tableau des données de sortie sont désormais également affichées de manière plus conviviale avec des unités. Dans les versions suivantes, nous espérons étendre davantage les données de sortie de cette commande pour fournir des éléments supplémentaires, tels que les objets individuels les plus volumineux du dépôt.</p><p>Ce projet a été mené par <a href="https://gitlab.com/justintobler" rel="">Justin Tobler</a>.</p><h2 id="pour-en-savoir-plus">Pour en savoir plus</h2><p>Cet article n&#39;a mis en évidence que quelques-unes des contributions apportées par GitLab et la communauté Git pour cette dernière version. Vous pouvez en apprendre davantage sur ces contributions dans l&#39;<a href="https://lore.kernel.org/git/xmqq4inz13e3.fsf@gitster.g/T/#u" rel="">annonce de version officielle</a> du projet Git. Consultez également nos <a href="https://about.gitlab.com/fr-fr/tags/git/" rel="">articles de blog précédents sur les versions de Git</a> pour découvrir d&#39;autres contributions des membres de l&#39;équipe GitLab.</p><style>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);}</style>]]></content>
        <author>
            <name>Justin Tobler</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/justin-tobler/</uri>
        </author>
        <published>2026-02-03T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Personnaliser GitLab Duo Agent Platform : règles, prompts et workflows]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/customizing-gitlab-duo-chat-rules-prompts-workflows/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/customizing-gitlab-duo-chat-rules-prompts-workflows/"/>
        <updated>2026-01-28T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><em>Bienvenue dans la partie 8 de notre guide en huit parties, <a href="/fr-fr/blog/gitlab-duo-agent-platform-complete-getting-started-guide/">Démarrer avec GitLab Duo Agent Platform</a>, dans laquelle vous apprendrez à maîtriser la construction et le déploiement d&#39;agents d&#39;IA et de workflows au sein de votre cycle de développement. Suivez des tutoriels qui vous mèneront de votre première interaction à des workflows d&#39;automatisation entièrement personnalisés et prêts pour la mise en production.</em></p><blockquote><p>🎯 Essayez <strong><a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr" rel="">GitLab Duo Agent Platform</a></strong> dès aujourd&#39;hui !</p></blockquote><h2 id="introduction-à-la-personnalisation">Introduction à la personnalisation</h2><p><a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/" rel="">GitLab Duo Agent Platform</a> offre des fonctionnalités puissantes, et vous pouvez l&#39;exploiter encore davantage en l&#39;adaptant aux besoins spécifiques de votre équipe. GitLab propose des options de personnalisation flexibles à plusieurs niveaux :</p><ul><li><strong>Au niveau de l&#39;utilisateur</strong> : préférences personnelles qui s&#39;appliquent à tous les projets (règles personnalisées, AGENTS.md, configuration MCP)</li><li><strong>Au niveau du workspace</strong> : configurations spécifiques au projet (règles personnalisées, AGENTS.md, configuration MCP)</li><li><strong>Au niveau du projet</strong> : agents et flows personnalisés que vous créez et gérez au sein d&#39;un projet spécifique</li></ul><h2 id="partie-1-personnaliser-le-comportement-des-agents">Partie 1 : personnaliser le comportement des agents</h2><h3 id="règles-personnalisées">Règles personnalisées</h3><p>Les <a href="https://docs.gitlab.com/user/gitlab_duo/customize_duo/custom_rules/" rel="">règles personnalisées</a> fournissent des instructions aux agents et flows afin de garantir un comportement cohérent au sein de votre équipe sans nécessiter de répétitions (exemples : guides de style relatifs au développement ou manière d&#39;exécuter les tests).</p><p>Accédez au <strong>répertoire de configuration de votre workspace <a href="https://about.gitlab.com/fr-fr/blog/what-is-an-ide/" rel="" title="Qu&#39;est-ce qu&#39;un IDE ?">IDE</a> ou utilisateur</strong>.</p><h3 id="règles-personnalisées-au-niveau-de-lutilisateur">Règles personnalisées au niveau de l&#39;utilisateur</h3><p>Les règles au niveau de l&#39;utilisateur s&#39;appliquent à tous vos projets et workspaces.</p><p>Pour des instructions détaillées sur la création de règles personnalisées au niveau de l&#39;utilisateur, consultez la <a href="https://docs.gitlab.com/user/gitlab_duo/customize_duo/custom_rules/#create-user-level-custom-rules" rel="">documentation de GitLab</a>.</p><p><strong>Créez le fichier</strong> <code className="">~/.gitlab/duo/chat-rules.md</code> dans votre répertoire personnel.</p><p><strong>Exemples de règles :</strong></p><pre className="language-markdown shiki shiki-themes github-light" code="- Include JSDoc comments for all functions
- Use single quotes for strings
- Follow the existing code style in the repository
- Write concise explanations, avoid lengthy descriptions
- Suggest tests for any code changes
- Use async/await instead of promises
" language="markdown" meta="" style=""><code><span class="line" line="1"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Include JSDoc comments for all functions
</span></span><span class="line" line="2"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Use single quotes for strings
</span></span><span class="line" line="3"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Follow the existing code style in the repository
</span></span><span class="line" line="4"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Write concise explanations, avoid lengthy descriptions
</span></span><span class="line" line="5"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Suggest tests for any code changes
</span></span><span class="line" line="6"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Use async/await instead of promises
</span></span></code></pre><h3 id="règles-personnalisées-au-niveau-du-workspace">Règles personnalisées au niveau du workspace</h3><p>Les règles du workspace s&#39;appliquent uniquement à un projet spécifique. Elles remplacent les règles au niveau de l&#39;utilisateur pour ce projet.</p><p><strong>Créez le fichier</strong> <code className="">.gitlab/duo/chat-rules.md</code> à la racine de votre projet.</p><p><strong>Exemples de règles pour un projet Vue.js :</strong></p><pre className="language-markdown shiki shiki-themes github-light" code="- Use Vue 3 Composition API with `&lt;script setup&gt;`
- Always include TypeScript types for props
- Use scoped styles with SCSS
- Follow the Slippers UI design system
- Keep components under 300 lines
- Use kebab-case for component names
- Include accessibility attributes (aria-*, role)
" language="markdown" meta="" style=""><code><span class="line" line="1"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Use Vue 3 Composition API with </span><span style="--shiki-default:#005CC5">`&lt;script setup&gt;`
</span></span><span class="line" line="2"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Always include TypeScript types for props
</span></span><span class="line" line="3"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Use scoped styles with SCSS
</span></span><span class="line" line="4"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Follow the Slippers UI design system
</span></span><span class="line" line="5"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Keep components under 300 lines
</span></span><span class="line" line="6"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Use kebab-case for component names
</span></span><span class="line" line="7"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Include accessibility attributes (aria-*, role)
</span></span></code></pre><h3 id="bonnes-pratiques-pour-les-règles-personnalisées">Bonnes pratiques pour les règles personnalisées</h3><ul><li><strong>Soyez précis</strong> : « utilise des guillemets simples » est mieux que « suis le guide de style ».</li><li><strong>Priorisez</strong> : indiquez les règles les plus importantes en premier.</li><li><strong>Concentrez-vous sur votre équipe</strong> : les règles doivent refléter les standards de votre équipe, pas vos préférences personnelles.</li><li><strong>Misez sur des règles exploitables</strong> : les règles doivent être suffisamment claires pour qu&#39;un agent d’IA puisse les suivre.</li><li><strong>Maintenez vos règles</strong> : mettez à jour les règles lorsque vos standards évoluent.</li><li><strong>Évitez les conflits</strong> : ne contredisez pas le style de votre code source.</li></ul><p><strong>Astuce :</strong> utilisez la fonctionnalité Code Owners pour gérer qui approuve les modifications de <code className="">.gitlab/duo/chat-rules.md</code>.</p><p>Pour un tutoriel détaillé d&#39;un cas d&#39;utilisation des règles personnalisées, consultez l&#39;<a href="https://about.gitlab.com/blog/custom-rules-duo-agentic-chat-deep-dive/" rel="">article sur les règles personnalisées dans GitLab Duo Agentic Chat pour renforcer l&#39;efficacité des équipes de développement</a>.</p><h2 id="agentsmd-personnaliser-le-comportement-des-agents">AGENTS.md : personnaliser le comportement des agents</h2><p><a href="https://agents.md/" rel="">AGENTS.md</a> est un fichier standard qui permet de personnaliser le comportement des agents. Il vous aide à définir comment les agents doivent se comporter dans vos conversations de chat, vos flows de base et vos flows personnalisés sans modifier les agents eux-mêmes.</p><p><strong>Différence avec les règles personnalisées :</strong> le fichier AGENTS.md est utilisé par tous les agents et flows (de base et personnalisables). Il suit également une norme que d&#39;autres outils d&#39;IA peuvent utiliser, par exemple Claude Code en tant qu&#39;<a href="https://docs.gitlab.com/user/duo_agent_platform/agents/external/" rel="">agent externe</a>. Utilisez AGENTS.md lorsque vous souhaitez que vos instructions s&#39;appliquent à plusieurs contextes.</p><p><strong>Niveau de l&#39;utilisateur</strong> (s&#39;applique à tous vos projets et workspaces) :</p><ul><li>macOS/Linux : <code className="">~/.gitlab/duo/AGENTS.md</code></li><li>Windows : <code className="">%APPDATA%\GitLab\duo\AGENTS.md</code></li></ul><p><strong>Niveau du workspace</strong> (s&#39;applique à un projet spécifique) :</p><ul><li>Créez le fichier <code className="">AGENTS.md</code> à la racine de votre projet.</li></ul><p><strong>Niveau du sous-répertoire</strong> (s&#39;applique à des répertoires spécifiques dans les monorepos) :</p><ul><li>Créez le fichier <code className="">AGENTS.md</code> dans les sous-répertoires pour des instructions contextuelles spécifiques.</li></ul><p><strong>Fonctionnement :</strong></p><ul><li>Le fichier AGENTS.md au niveau de l&#39;utilisateur s&#39;applique à tous les projets.</li><li>Le fichier AGENTS.md au niveau du workspace s&#39;applique à un projet spécifique.</li><li>Les fichiers AGENTS.md au niveau du sous-répertoire fournissent un contexte pour des parties spécifiques de votre code source.</li><li>Les agents et flows combinent les instructions de tous les niveaux applicables.</li><li>Les instructions AGENTS.md (nouvelles ou mises à jour) nécessitent de déclencher de nouveaux flows ou de démarrer un nouveau chat avec un agent (personnalisé).</li></ul><h3 id="contrôles-du-fichier-agentsmd">Contrôles du fichier AGENTS.md</h3><ul><li>La personnalité et le ton de l&#39;agent</li><li>Les instructions spécifiques au projet</li><li>Les normes et conventions de codage</li><li>Les préférences d&#39;utilisation des outils</li><li>Les exigences de formatage des données de sortie</li><li>La structure et l&#39;organisation du dépôt</li></ul><h3 id="exemple-dun-fichier-agentsmd">Exemple d&#39;un fichier AGENTS.md</h3><pre className="language-markdown shiki shiki-themes github-light" code="# Agent Customization for Our Project
## General Guidelines
- Always prioritize code quality over speed
- Follow our project&#39;s architecture patterns
- Reference existing code examples when suggesting changes
- Ask for clarification if requirements are ambiguous
## Code Style
- Use TypeScript for all new code
- Follow ESLint configuration in the project
- Include unit tests for all new functions
- Use descriptive variable names (no single letters except loops)
## Documentation
- Add JSDoc comments to all public functions
- Update README.md if adding new features
- Include examples in code comments
## Security
- Never suggest hardcoding secrets or API keys
- Always validate user input
- Use parameterized queries for database operations
- Flag potential security issues immediately
" language="markdown" meta="" style=""><code><span class="line" line="1"><span style="--shiki-default:#005CC5;--shiki-default-font-weight:bold"># Agent Customization for Our Project
</span></span><span class="line" line="2"><span style="--shiki-default:#005CC5;--shiki-default-font-weight:bold">## General Guidelines
</span></span><span class="line" line="3"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Always prioritize code quality over speed
</span></span><span class="line" line="4"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Follow our project&#39;s architecture patterns
</span></span><span class="line" line="5"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Reference existing code examples when suggesting changes
</span></span><span class="line" line="6"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Ask for clarification if requirements are ambiguous
</span></span><span class="line" line="7"><span style="--shiki-default:#005CC5;--shiki-default-font-weight:bold">## Code Style
</span></span><span class="line" line="8"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Use TypeScript for all new code
</span></span><span class="line" line="9"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Follow ESLint configuration in the project
</span></span><span class="line" line="10"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Include unit tests for all new functions
</span></span><span class="line" line="11"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Use descriptive variable names (no single letters except loops)
</span></span><span class="line" line="12"><span style="--shiki-default:#005CC5;--shiki-default-font-weight:bold">## Documentation
</span></span><span class="line" line="13"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Add JSDoc comments to all public functions
</span></span><span class="line" line="14"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Update README.md if adding new features
</span></span><span class="line" line="15"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Include examples in code comments
</span></span><span class="line" line="16"><span style="--shiki-default:#005CC5;--shiki-default-font-weight:bold">## Security
</span></span><span class="line" line="17"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Never suggest hardcoding secrets or API keys
</span></span><span class="line" line="18"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Always validate user input
</span></span><span class="line" line="19"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Use parameterized queries for database operations
</span></span><span class="line" line="20"><span style="--shiki-default:#E36209">-</span><span style="--shiki-default:#24292E"> Flag potential security issues immediately
</span></span></code></pre><h3 id="bonnes-pratiques-pour-le-fichier-agentsmd">Bonnes pratiques pour le fichier AGENTS.md</h3><ul><li><strong>Soyez précis</strong> : incluez des exemples concrets de votre projet.</li><li><strong>Restez concis</strong> : concentrez-vous sur ce qui est unique à votre projet.</li><li><strong>Utilisez le <a href="https://about.gitlab.com/fr-fr/topics/version-control/" rel="" title="Qu&#39;est-ce que le contrôle de version ?">contrôle de version</a></strong> : effectuez un commit dans votre dépôt et utilisez le suivi des modifications.</li><li><strong>Soyez aligné avec votre équipe</strong> : discutez avec votre équipe avant de finaliser votre fichier.</li><li><strong>Mettez à jour votre fichier régulièrement</strong> : affinez à mesure que votre projet évolue.</li><li><strong>Documentez la structure du dépôt</strong> : aidez les agents à comprendre l&#39;organisation de votre code source.</li></ul><h3 id="prérequis">Prérequis</h3><ul><li>GitLab 18.8 ou version ultérieure</li><li>Pour VS Code : extension GitLab Workflow 6.60 ou version ultérieure</li><li>Pour JetBrains : plugin GitLab 3.26.0 ou version ultérieur</li><li>Pour les flows : mettez à jour la configuration du flow pour accéder au contexte <code className="">user_rule</code></li></ul><p><a href="https://docs.gitlab.com/user/gitlab_duo/customize_duo/agents_md/" rel="">En savoir plus sur AGENTS.md</a>.</p><h3 id="instructions-de-revue-personnalisées">Instructions de revue personnalisées</h3><p>Les <a href="https://docs.gitlab.com/user/gitlab_duo/customize_duo/review_instructions/" rel="">instructions de revue personnalisées</a> fournissent des directives spécifiques pour le <a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/code_review/" rel="">flow de base Code Review</a>. Ces instructions garantissent des standards de revue de code cohérents et peuvent être adaptées à des types de fichiers spécifiques dans votre projet.</p><p><strong>Créez le fichier</strong> <code className="">.gitlab/duo/mr-review-instructions.yaml</code> à la racine de votre projet.</p><p><strong>Exemples d&#39;instructions de revue :</strong></p><pre className="language-yaml shiki shiki-themes github-light" code="instructions:
  - name: Ruby Style Guide
    fileFilters:
      - &quot;*.rb&quot;           # Ruby files in the root directory
      - &quot;lib/**/*.rb&quot;    # Ruby files in lib and its subdirectories
      - &quot;!spec/**/*.rb&quot;  # Exclude test files
    instructions: |
      1. Ensure all methods have proper documentation
      2. Follow Ruby style guide conventions
      3. Prefer symbols over strings for hash keys

  - name: TypeScript Source Files
    fileFilters:
      - &quot;**/*.ts&quot;        # TypeScript files in any directory
      - &quot;!**/*.test.ts&quot;  # Exclude test files
    instructions: |
      1. Ensure proper TypeScript types (avoid &#39;any&#39;)
      2. Follow naming conventions
      3. Document complex functions
" language="yaml" meta="" style=""><code><span class="line" line="1"><span style="--shiki-default:#22863A">instructions</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="2"><span style="--shiki-default:#24292E">  - </span><span style="--shiki-default:#22863A">name</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">Ruby Style Guide
</span></span><span class="line" line="3"><span style="--shiki-default:#22863A">    fileFilters</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="4"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;*.rb&quot;</span><span style="--shiki-default:#6A737D">           # Ruby files in the root directory
</span></span><span class="line" line="5"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;lib/**/*.rb&quot;</span><span style="--shiki-default:#6A737D">    # Ruby files in lib and its subdirectories
</span></span><span class="line" line="6"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;!spec/**/*.rb&quot;</span><span style="--shiki-default:#6A737D">  # Exclude test files
</span></span><span class="line" line="7"><span style="--shiki-default:#22863A">    instructions</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#D73A49">|
</span></span><span class="line" line="8"><span style="--shiki-default:#032F62">      1. Ensure all methods have proper documentation
</span></span><span class="line" line="9"><span style="--shiki-default:#032F62">      2. Follow Ruby style guide conventions
</span></span><span class="line" line="10"><span style="--shiki-default:#032F62">      3. Prefer symbols over strings for hash keys
</span></span><span class="line" line="11"><span emptyLinePlaceholder>
</span></span><span class="line" line="12"><span style="--shiki-default:#24292E">  - </span><span style="--shiki-default:#22863A">name</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">TypeScript Source Files
</span></span><span class="line" line="13"><span style="--shiki-default:#22863A">    fileFilters</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="14"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;**/*.ts&quot;</span><span style="--shiki-default:#6A737D">        # TypeScript files in any directory
</span></span><span class="line" line="15"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;!**/*.test.ts&quot;</span><span style="--shiki-default:#6A737D">  # Exclude test files
</span></span><span class="line" line="16"><span style="--shiki-default:#22863A">    instructions</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#D73A49">|
</span></span><span class="line" line="17"><span style="--shiki-default:#032F62">      1. Ensure proper TypeScript types (avoid &#39;any&#39;)
</span></span><span class="line" line="18"><span style="--shiki-default:#032F62">      2. Follow naming conventions
</span></span><span class="line" line="19"><span style="--shiki-default:#032F62">      3. Document complex functions
</span></span></code></pre><p><strong>Bonnes pratiques pour les instructions de revue personnalisées :</strong></p><ul><li><strong>Soyez précis et concret</strong>  : des instructions claires et numérotées fonctionnent mieux.</li><li><strong>Utilisez des modèles glob</strong> : ciblez des types de fichiers spécifiques avec <code className="">fileFilters</code>.</li><li><strong>Concentrez-vous sur les normes importantes</strong> : priorisez les points de revue les plus critiques.</li><li><strong>Expliquez le « pourquoi »</strong> : aidez les relecteurs à comprendre le raisonnement.</li><li><strong>Testez les modèles</strong> : assurez-vous que les modèles glob correspondent aux fichiers visés.</li></ul><p><strong>Astuce :</strong> utilisez la fonctionnalité Code Owners pour protéger les modifications apportées à <code className="">.gitlab/duo/mr-review-instructions.yaml</code>.</p><p>Pour obtenir des instructions de configuration détaillées et des exemples, consultez la <a href="https://docs.gitlab.com/user/gitlab_duo/customize_duo/review_instructions/" rel="">documentation relative aux instructions de revue personnalisées</a>.</p><h2 id="partie-2-étendre-les-fonctionnalités-avec-le-mcp">Partie 2 : étendre les fonctionnalités avec le MCP</h2><p>Le Model Context Protocol (MCP) permet aux agents d&#39;accéder à des systèmes externes comme Jira, Slack, AWS et plus encore. Cette section couvre la configuration du MCP pour étendre les capacités des agents.</p><blockquote><p><strong>🎯 Découvrez maintenant</strong> <a href="https://gitlab.navattic.com/mcp" rel="">une démo interactive du MCP</a> pour apprendre à l&#39;utiliser.</p></blockquote><h3 id="configuration-du-mcp-pour-les-intégrations-externes">Configuration du MCP pour les intégrations externes</h3><p>Le Model Context Protocol (MCP) permet aux agents d&#39;accéder à des systèmes externes comme Jira, Slack, AWS et plus encore.</p><p><strong>Portée :</strong> niveau de l&#39;utilisateur (s&#39;applique à tous les workspaces) ou niveau du workspace (spécifique au projet, remplace la configuration utilisateur)</p><p><strong>Créer une configuration utilisateur :</strong></p><ul><li><strong>macOS/Linux</strong> : <code className="">~/.gitlab/duo/mcp.json</code></li><li><strong>Windows</strong> : <code className="">C:\Users\&lt;username&gt;\AppData\Roaming\GitLab\duo\mcp.json</code></li><li><strong>VS Code</strong> : exécutez la commande <code className="">GitLab MCP: Open User Settings (JSON)</code></li></ul><p><strong>Créer une configuration workspace :</strong></p><ul><li><strong>Créez le fichier</strong> : <code className="">.gitlab/duo/mcp.json</code> à la racine de votre projet</li></ul><p><strong>Bonnes pratiques :</strong></p><ul><li><strong>Sécurité avant tout</strong> : utilisez des serveurs MCP qui nécessitent OAuth et non des tokens en texte brut.</li><li><strong>Portée minimale</strong> : activez uniquement les serveurs MCP que vous utilisez réellement et en qui vous avez confiance.</li><li><strong>Tests locaux</strong> : vérifiez que les connexions et l&#39;autorisation au MCP fonctionnent avant de les partager avec les équipes.</li><li><strong>Documentation des intégrations</strong> : expliquez ce que fournit chaque serveur MCP.</li><li><strong>Contrôle de version</strong> : stockez la configuration dans <code className="">.gitlab/duo/mcp.json</code> avec l&#39;approbation de la fonctionnalité Code Owners.</li></ul><p>Pour obtenir des instructions de configuration détaillées et des exemples, consultez la <a href="/fr-fr/blog/duo-agent-platform-with-mcp/">partie 7 : intégrer le Model Context Protocol (MCP)</a>.</p><h2 id="partie-3-créer-des-agents-et-flows-personnalisés">Partie 3 : créer des agents et flows personnalisés</h2><p>Les agents et flows personnalisés vous permettent d&#39;automatiser les workflows spécifiques de votre équipe. Avant de vous lancer dans la personnalisation, il est utile de comprendre leurs caractéristiques et leur fonctionnement : consultez le <a href="/fr-fr/blog/gitlab-duo-agent-platform-complete-getting-started-guide/">guide Démarrer avec GitLab Duo Agent Platform</a> pour en savoir plus.</p><ul><li><strong><a href="/fr-fr/blog/understanding-agents-foundational-custom-external/">Partie 3 : comprendre les agents</a></strong>. Découvrez les agents de base, personnalisés et externes, et quand les utiliser.</li><li><strong><a href="/fr-fr/blog/understanding-flows-multi-agent-workflows/">Partie 4 : comprendre les flows</a></strong>. Découvrez comment les flows orchestrent plusieurs agents pour résoudre des problèmes complexes.</li><li><strong><a href="/fr-fr/blog/ai-catalog-discover-and-share-agents/">Partie 5 : découvrir le catalogue d&#39;IA</a></strong>. Apprenez à créer et partager des agents et flows au sein de votre organisation. Une fois que vous comprenez les bases, cette section fournit un aperçu des options de personnalisation avec des liens vers des guides détaillés.</li></ul><h3 id="prompts-système-pour-les-agents-personnalisés">Prompts système pour les agents personnalisés</h3><p>Les prompts système définissent la personnalité, les compétences et le comportement d&#39;un agent. Un prompt bien conçu renforce l&#39;efficacité des agents et les aligne avec les besoins de votre équipe.</p><p><strong>Qu&#39;est-ce qu&#39;un prompt système ?</strong> Les prompts système sont des instructions qui indiquent à un agent comment se comporter, quelles compétences il possède et comment répondre aux demandes. Ils constituent la base du comportement des agents personnalisés.</p><p><strong>Éléments clés d&#39;un prompt système efficace :</strong></p><ul><li><strong>Définition du rôle</strong> : rôle et fonction de l&#39;agent</li><li><strong>Domaines d&#39;expertise</strong> : domaines ou technologies spécifiques</li><li><strong>Directives de comportement</strong> : comment il doit interagir et répondre</li><li><strong>Format des données de sortie</strong> : structure des réponses</li><li><strong>Contraintes</strong> : ce qu&#39;il doit éviter</li></ul><p><strong>Bonnes pratiques :</strong></p><ul><li><strong>Soyez précis</strong> : des prompts plus spécifiques produisent de meilleurs résultats.</li><li><strong>Utilisez des exemples</strong> : montrez à l&#39;agent à quoi ressemble un bon résultat.</li><li><strong>Définissez la portée</strong> : indiquez clairement ce que l&#39;agent doit et ne doit pas faire.</li><li><strong>Testez de manière itérative</strong> : affinez les prompts en fonction du comportement de l&#39;agent.</li><li><strong>Contrôle de version</strong> : suivez les modifications des prompts dans votre dépôt.</li></ul><p>Pour des conseils détaillés sur la création de prompts système et d&#39;agents personnalisés, consultez la <a href="/fr-fr/blog/understanding-agents-foundational-custom-external/">Partie 3 : comprendre les agents</a>.</p><h3 id="agents-et-flows-personnalisables">Agents et flows personnalisables</h3><p>Étant donné que les informations sont nombreuses, nous avons divisé les tutoriels pour faciliter la lecture :</p><p><strong>Agents personnalisables :</strong></p><ul><li>Apprenez à créer des agents avec des prompts système personnalisés, à configurer les outils et à gérer les autorisations.</li><li>Consultez la <a href="/fr-fr/blog/understanding-agents-foundational-custom-external/#custom-agents">Partie 3 : comprendre les agents – section Agents personnalisables</a>.</li></ul><p><strong>Flows personnalisables :</strong></p><ul><li>Apprenez à créer des workflows en plusieurs étapes, à configurer des composants et à mettre en place une automatisation basée sur des événements.</li><li>Consultez la <a href="/fr-fr/blog/understanding-flows-multi-agent-workflows/#custom-flows">Partie 4 : comprendre les flows – section Flows personnalisables</a>.</li></ul><p><strong>Outils d&#39;agent :</strong></p><ul><li>Les outils déterminent les actions que les agents peuvent effectuer. Configurez les outils en fonction de l&#39;objectif de votre agent et des exigences de sécurité.</li><li>Consultez la <a href="/fr-fr/blog/understanding-agents-foundational-custom-external/">Partie 3 : comprendre les agents</a> pour les détails de configuration des outils.</li></ul><h2 id="résumé-quand-utiliser-les-personnalisations">Résumé : quand utiliser les personnalisations</h2><table><thead><tr><th>Outil</th><th>Utilisation idéale</th><th>Emplacement</th></tr></thead><tbody><tr><td><strong>Règles personnalisées</strong></td><td>Guider les réponses de <a href="https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-duo-agentic-chat/" rel="">GitLab Duo Agentic Chat</a> dans l&#39;IDE (ton, style, comportement)</td><td><code className="">~/.gitlab/duo/chat-rules.md</code> (utilisateur) ou <code className="">.gitlab/duo/chat-rules.md</code> (workspace)</td></tr><tr><td><strong>AGENTS.md</strong></td><td>Imposer des normes dans l&#39;Agentic Chat, les flows et autres outils d&#39;IA</td><td><code className="">~/.gitlab/duo/AGENTS.md</code> (utilisateur) ou <code className="">AGENTS.md</code> (racine du workspace)</td></tr><tr><td><strong>Instructions de revue personnalisées</strong></td><td>Guider les normes de revue de code pour des types de fichiers spécifiques</td><td><code className="">.gitlab/duo/mr-review-instructions.yaml</code> (workspace uniquement)</td></tr><tr><td><strong>Prompts système</strong></td><td>Personnaliser le comportement d&#39;agents individuels</td><td>Catalogue d&#39;IA lors de la création d&#39;un agent</td></tr><tr><td><strong>Configuration du MCP</strong></td><td>Connecter les agents à des outils externes</td><td><code className="">~/.gitlab/duo/mcp.json</code> (utilisateur) ou <code className="">.gitlab/duo/mcp.json</code> (workspace)</td></tr><tr><td><strong>Agents personnalisables</strong></td><td>Créer des agents spécialisés pour des tâches spécifiques à l&#39;équipe</td><td>Automatisation → Agents ou Catalogue d&#39;IA</td></tr><tr><td><strong>Flows personnalisables</strong></td><td>Orchestrer plusieurs agents dans des workflows</td><td>Automatisation → Flows ou Catalogue d&#39;IA</td></tr></tbody></table><h2 id="perspectives">Perspectives</h2><p>Félicitations ! Vous avez terminé toute la série concernant GitLab Duo Agent Platform. Vous savez maintenant :</p><ul><li>Comment utiliser les agents et flows tout au long du <a href="https://about.gitlab.com/fr-fr/blog/what-is-sdlc/" rel="" title="Qu&#39;est-ce que le SDLC ?">SDLC</a> en fonction de vos cas d&#39;utilisation</li><li>Comment découvrir et partager des solutions dans le catalogue d&#39;IA</li><li>Comment surveiller et gérer vos workflows d&#39;IA</li><li>Comment étendre les capacités avec les intégrations MCP</li><li>Comment personnaliser chaque aspect de GitLab Duo Agent Platform pour votre équipe</li></ul><p><strong><a href="/fr-fr/blog/gitlab-duo-agent-platform-complete-getting-started-guide/">Consultez l&#39;aperçu complet de la série</a></strong> pour revoir toutes les parties et explorer des sujets spécifiques en profondeur.</p><h2 id="ressources">Ressources</h2><ul><li><a href="https://docs.gitlab.com/user/gitlab_duo/customize_duo/custom_rules/" rel="">Documentation relative aux règles personnalisées</a></li><li><a href="https://docs.gitlab.com/user/gitlab_duo/customize_duo/agents_md/" rel="">Documentation relative au fichier AGENTS.md</a></li><li><a href="https://docs.gitlab.com/user/gitlab_duo/customize_duo/review_instructions/" rel="">Documentation relative aux instructions de revue personnalisées</a></li><li><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/custom.html" rel="">Documentation relative aux agents personnalisables</a></li><li><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/custom.html" rel="">Documentation relative aux flows personnalisables</a></li><li><a href="https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_clients/" rel="">Documentation relative au client MCP</a></li></ul><hr /><p><strong>Article précédent :</strong> <a href="/fr-fr/blog/duo-agent-platform-with-mcp/">Partie 7 : intégrer le Model Context Protocol</a></p><p><strong>Retour au début :</strong> <a href="/fr-fr/blog/gitlab-duo-agent-platform-complete-getting-started-guide/">Aperçu complet de la série</a></p><style>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);}</style>]]></content>
        <author>
            <name>Itzik Gan Baruch</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/itzik-gan-baruch/</uri>
        </author>
        <published>2026-01-28T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Surveiller, gérer et automatiser les workflows d'IA]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/monitor-manage-automate-ai-workflows/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/monitor-manage-automate-ai-workflows/"/>
        <updated>2026-01-26T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><em>Bienvenue dans la Partie 6 de notre guide en huit parties, <a href="/fr-fr/blog/gitlab-duo-agent-platform-complete-getting-started-guide/">Démarrer avec GitLab Duo Agent Platform</a>, dans laquelle vous apprendrez à maîtriser la construction et le déploiement d&#39;agents d&#39;IA et de workflows au sein de votre cycle de développement. Suivez des tutoriels qui vous mèneront de votre première interaction à des workflows d&#39;automatisation entièrement personnalisés et prêts pour la mise en production.</em></p><blockquote><p>🎯 Essayez <a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr" rel=""><strong>GitLab Duo Agent Platform</strong></a> dès aujourd&#39;hui !</p></blockquote><h2 id="présentation-des-fonctionnalités-de-la-section-automatisation">Présentation des fonctionnalités de la section Automatisation</h2><p>La section Automatisation est votre centre de contrôle où vous pouvez gérer les workflows d&#39;IA dans GitLab. Elle offre une visibilité sur l&#39;activité des <a href="/fr-fr/blog/understanding-agents-foundational-custom-external/">agents</a> et des <a href="/fr-fr/blog/understanding-flows-multi-agent-workflows/">flows</a> et permet l&#39;automatisation basée sur des événements.</p><p>Accédez à <strong>Projet → Automatisation</strong>.</p><p>La section Automatisation propose les sous-sections suivantes :</p><ul><li><strong>Agents</strong> : visualisez, créez et gérez les agents de votre projet.</li><li><strong>Flows</strong> : visualisez, créez et gérez les flows de votre projet.</li><li><strong>Déclencheurs</strong> : configurez l&#39;automatisation basée sur des événements pour les flows.</li><li><strong>Sessions</strong> : surveillez l&#39;exécution des agents et des flows avec des logs détaillés.</li></ul><h2 id="gérer-les-agents">Gérer les agents</h2><p>La section Agents vous permet de visualiser, créer et gérer les agents de votre projet.</p><p>Accédez à <strong>Automatisation → Agents</strong>.</p><p>Les sections Agents et Flows proposent deux onglets pour organiser vos ressources :</p><ul><li><strong>Activé</strong> : agents/flows disponibles dans votre projet</li><li><strong>Géré</strong> : agents/flows créés et contrôlés par votre projet</li></ul><p><strong>Pour augmenter le nombre d&#39;agents disponibles :</strong></p><ul><li>Créez de nouveaux agents personnalisés, activez-les au niveau du groupe parent, puis activez-les dans votre projet.</li><li>Parcourez le catalogue d&#39;IA et activez les agents existants d&#39;abord dans votre groupe parent, puis dans votre projet.</li></ul><p>Pour plus de détails sur la création d&#39;agents personnalisés, consultez la <a href="/fr-fr/blog/understanding-agents-foundational-custom-external/">Partie 3 : comprendre les agents</a>.</p><h2 id="gérer-les-flows">Gérer les flows</h2><p>La section Flows vous permet de visualiser, créer et gérer les flows de votre projet.</p><p>Accédez à <strong>Automatisation → Flows</strong>.</p><p><strong>Pour augmenter le nombre de flows disponibles :</strong></p><ul><li>Créez de nouveaux flows personnalisés, activez-les au niveau du groupe parent, puis activez-les dans votre projet.</li><li>Parcourez le catalogue d&#39;IA et activez les flows existants d&#39;abord dans votre groupe parent, puis dans votre projet.</li></ul><p>Pour plus de détails sur la création de flows personnalisés, consultez <a href="/blog/understanding-flows-multi-agent-workflows/">Partie 4 : comprendre les flows</a>.</p><h2 id="automatiser-à-laide-de-déclencheurs">Automatiser à l&#39;aide de déclencheurs</h2><p><img alt="Déclencheurs" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1767618237/oakundtw3m4iksepxpen.png" title="Vue d&#39;ensemble des déclencheurs créés automatiquement" /></p><p>Les déclencheurs permettent l&#39;automatisation sur la base d&#39;événements. Ils exécutent automatiquement des agents ou des flows lorsque des événements spécifiques du cycle de développement logiciel (<a href="https://about.gitlab.com/fr-fr/blog/what-is-sdlc/" rel="" title="Qu&#39;est-ce que le SDLC ?">SDLC</a>) GitLab se produisent.</p><p>Accédez à <strong>Automatisation → Déclencheurs</strong>.</p><p><strong>Types d&#39;événements déclencheurs disponibles :</strong></p><ul><li><strong>Mention</strong> : mention dans un commentaire, par exemple <code className="">@ci-cd-optimizer</code></li><li><strong>Assignation</strong> : assignation à un ticket ou une merge request, par exemple via l&#39;interface ou l&#39;action rapide <code className="">/assign @ci-cd-optimizer</code></li><li><strong>Assignation en tant que relecteur</strong> : assignation comme relecteur de merge request, par exemple via l&#39;interface ou l&#39;action rapide <code className="">/assign_reviewer @ci-cd-optimizer</code></li></ul><p><strong>Fonctionnement des déclencheurs :</strong></p><ol><li>Un événement se produit (par ex., <code className="">@ci-cd-optimizer</code> mentionné dans un commentaire de merge request).</li><li>Le déclencheur identifie le flow à exécuter.</li><li>Le flow s&#39;exécute et démarre une session.</li><li>Les résultats sont publiés dans le ticket/la merge request.</li></ol><p>Pour obtenir des instructions de configuration, consultez la <a href="https://docs.gitlab.com/user/duo_agent_platform/triggers/" rel="">documentation relative aux déclencheurs</a>.</p><h2 id="surveiller-avec-les-sessions">Surveiller avec les sessions</h2><p>Les sessions offrent une transparence totale sur l&#39;exécution des agents et des flows, avec le raisonnement, les outils exécutés et les résultats. Chaque exécution crée une session avec un log des activités.</p><p><img alt="Surveillance des sessions" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1767618251/jpqv5frskvgzz6fnmvjl.png" title="Vue d&#39;ensemble des sessions avec le statut et la progression de l&#39;exécution" /></p><p>Accédez à <strong>Automatisation → Sessions</strong>.</p><p><strong>Les sessions affichent :</strong></p><ul><li>Le statut d&#39;exécution (Créé, En cours, Terminé, Échec, Saisie requise, etc.)</li><li>La progression étape par étape et les actions entreprises</li><li>Le raisonnement de l&#39;agent et son processus de décision</li><li>Le lien vers les logs du job du runner (onglet Détails)</li></ul><h3 id="onglet-activité">Onglet Activité</h3><p>L&#39;onglet Activité affiche l&#39;exécution étape par étape avec chaque action entreprise par l&#39;agent, les outils utilisés et les résultats de ces actions.</p><p><img alt="Activité de session" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1767618251/wb1szmr7spmtry5gztss.png" title="Activité de session avec l&#39;exécution étape par étape et les actions de l&#39;agent" /></p><h3 id="onglet-détails">Onglet Détails</h3><p>L&#39;onglet Détails donne accès aux logs complets du job du runner, où vous pouvez consulter le contexte d&#39;exécution complet et toute information système sur l&#39;exécution du flow.</p><p><img alt="Détails de session" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1767618251/ovjxsugwor9nkfxsfpog.png" title="Détails de session avec les logs du job du runner et le contexte d&#39;exécution" /></p><p>Les logs du job contiennent les données de sortie d&#39;exécution complètes, avec tous les messages système, les invocations d&#39;outils et les informations détaillées concernant les tâches effectuées par le flow.</p><p><img alt="Logs du job" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1767618237/kduex4pilullw2yzurky.png" title="Logs complets du job du runner avec les données de sortie d&#39;exécution détaillées" /></p><p>Pour plus de détails, consultez la <a href="https://docs.gitlab.com/user/duo_agent_platform/sessions/" rel="">documentation relative aux sessions</a>.</p><h2 id="perspectives">Perspectives</h2><p>Vous savez désormais comment surveiller l&#39;activité des agents et des flows via les sessions, configurer une automatisation basée sur des événements avec les déclencheurs et gérer vos workflows d&#39;IA depuis la section Automatisation. Vous apprendrez ensuite comment utiliser GitLab Duo avec des outils externes et des sources de données dans la <a href="/blog/duo-agent-platform-with-mcp/">Partie 7 : intégrer le Model Context Protocol</a>.</p><h2 id="ressources">Ressources</h2><ul><li><a href="https://docs.gitlab.com/user/duo_agent_platform/sessions/" rel="">Documentation relative aux sessions</a></li><li><a href="https://docs.gitlab.com/user/duo_agent_platform/triggers/" rel="">Documentation relative aux déclencheurs</a></li><li><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/custom.html" rel="">Documentation relative aux flows personnalisables</a></li><li><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/custom.html" rel="">Documentation relative aux Agents personnalisables</a></li></ul><hr /><p><strong>Article suivant :</strong> <a href="/blog/duo-agent-platform-with-mcp/">Partie 7 :  intégrer le Model Context Protocol</a></p><p><strong>Article précédent :</strong> <a href="/fr-fr/blog/ai-catalog-discover-and-share-agents/">Partie 5 : découvrir le catalogue d&#39;IA</a></p>]]></content>
        <author>
            <name>Itzik Gan Baruch</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/itzik-gan-baruch/</uri>
        </author>
        <published>2026-01-26T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Quelles sont les meilleures pratiques CI/CD à connaître ?]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/how-to-keep-up-with-ci-cd-best-practices/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/how-to-keep-up-with-ci-cd-best-practices/"/>
        <updated>2026-01-23T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>L&#39;intégration continue et la livraison continue (CI/CD) sont au cœur de toute pratique DevSecOps réussie. Elles permettent aux équipes d&#39;automatiser le build, les tests et le déploiement du code tout en intégrant la sécurité dès les premières étapes du développement.</p><p>Dans cet article, découvrez les meilleures pratiques CI/CD à connaître pour accélérer la livraison de logiciels, réduire les risques et améliorer la qualité logicielle.</p><h2 id="quest-ce-que-le-cicd">Qu’est-ce que le CI/CD ?</h2><p>Le <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" rel="" title="Qu&#39;est-ce que le CI/CD ?">CI/CD</a> est à la fois un processus technologique, un état d&#39;esprit et une suite d&#39;étapes. En termes simples, l&#39;<strong>intégration continue (CI)</strong> permet aux <a href="https://about.gitlab.com/fr-fr/topics/devops/build-a-devops-team/" rel="" title="Equipes DevOps">équipes DevSecOps</a> d&#39;optimiser le développement du code grâce à l&#39;automatisation. Elle simplifie les builds logiciels et l&#39;intégration du code source, permet le <a href="https://about.gitlab.com/fr-fr/topics/version-control/" rel="" title="Qu&#39;est-ce que le contrôle de version ?">contrôle de version</a> et favorise une meilleure collaboration entre les équipes.</p><p>Là où la l&#39;intégration continue (CI) s&#39;arrête, la <strong><a href="https://about.gitlab.com/fr-fr/topics/continuous-delivery/" rel="" title="Qu&#39;est-ce que le livraison continue ?">livraison continue (CD)</a></strong> prend le relais avec des tests et des déploiements automatisés. La livraison continue réduit considérablement le travail manuel des équipes Ops, tout en permettant de <strong><a href="https://about.gitlab.com/fr-fr/the-source/platform/devops-teams-want-to-shake-off-diy-toolchains-a-platform-is-the-answer/" rel="" title="Chaîne d’outils">réduire la chaîne d&#39;outils</a></strong> nécessaires à la gestion du cycle de développement logiciel.</p><p>Ensemble, la CI et la CD forment un <strong>pipeline d&#39;intégration et de livraison continues</strong>, orchestré pour automatiser les étapes de développement, du build du code à son déploiement en production.</p><p>En intégrant des scans de sécurité et des contrôles de conformité en amont du pipeline, le CI/CD met en œuvre une approche « shift-left » de la sécurité où les problèmes sont identifiés et corrigés en amont avant d&#39;atteindre l’environnement de production.</p><blockquote><p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr" rel="">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement et découvrez toute la puissance du CI/CD intégré à une plateforme DevSecOps complète.</a></strong></p></blockquote><h2 id="les-10-meilleures-pratiques-cicd">Les 10 meilleures pratiques CI/CD</h2><h3 id="_1-utilisez-une-plateforme-devsecops-unifiée">1. Utilisez une plateforme DevSecOps unifiée</h3><p>Regroupez vos outils CI/CD au sein d&#39;une seule et même plateforme afin de réduire les coûts de maintenance, limiter les changements de contexte et renforcer la collaboration entre les équipes. Moins il y a d&#39;outils, moins il y a de complexité d&#39;intégration, et meilleure est l&#39;expérience pour les équipes chargées du développement, de la sécurité et des opérations.</p><h3 id="_2-automatisez-tout">2. Automatisez tout</h3><p>Optimisez continuellement votre pipeline CI/CD pour atteindre un état d&#39;« automatisation continue ». Cette automatisation inclut les <strong>tests automatisés</strong>, les scans de sécurité, le déploiement et le provisionnement de l&#39;infrastructure. Plus vos processus sont automatisés, plus vos livraisons sont rapides, cohérentes et fiables.</p><h3 id="_3-échouez-vite-et-souvent">3. Échouez vite et souvent</h3><p>Les équipes de développement doivent être informées immédiatement lorsqu&#39;un commit provoque une erreur. Corriger le code pendant que le problème est encore frais dans leur esprit limite le changement de contexte, tout en améliorant la qualité du code. Cette approche contribue aussi à la satisfaction et à la productivité des équipes DevSecOps.</p><h3 id="_4-validez-fréquemment">4. Validez fréquemment</h3><p>Des commits réguliers et de petite taille facilitent la revue, les tests et le déploiement du code. Ces changements incrémentaux limitent les risques et accélèrent les livraisons.</p><h3 id="_5-adoptez-une-approche-shift-left">5. Adoptez une approche « shift-left »</h3><p>Le CI/CD offre l&#39;opportunité d&#39;intégrer la sécurité très tôt dans le développement logiciel. En déplaçant la sécurité plus en amont, les failles sont détectées avant la mise en production, réduisant ainsi le coût et l&#39;impact des correctifs.</p><h3 id="_6-exploitez-lia-pour-diagnostiquer-les-pipelines-en-échec">6. Exploitez l&#39;IA pour diagnostiquer les pipelines en échec</h3><p>Les <a href="https://about.gitlab.com/fr-fr/topics/devops/the-role-of-ai-in-devops/" rel="">outils alimentés par l&#39;intelligence artificielle</a> permettent de diagnostiquer automatiquement les pipelines en échec, d&#39;identifier leur cause et de suggérer des correctifs. Cette approche réduit considérablement le temps de résolution de plusieurs heures à quelques minutes tout en libérant les équipes de tâches répétitives.</p><h3 id="_7-décorrélez-déploiement-et-release-grâce-aux-feature-flags">7. Décorrélez déploiement et release grâce aux feature flags</h3><p>Les feature flags permettent de déployer du code en production sans exposer immédiatement les nouvelles fonctionnalités aux utilisateurs. Cette approche sécurise les déploiements, facilite les tests progressifs et rend les retours en arrière instantanés en cas de problème.</p><h3 id="_8-monitorez-tout">8. Monitorez tout</h3><p>Mettez en place une surveillance complète couvrant les métriques applicatives, les logs et les indicateurs de performance. Des alertes bien configurées, à la fois sur les seuils techniques et métier, permettent d&#39;anticiper les anomalies et d&#39;assurer la stabilité du service.</p><h3 id="_9-maintenez-le-pipeline-en-tant-que-code">9. Maintenez le pipeline en tant que code</h3><p>Stockez la configuration de votre pipeline CI/CD dans le même système de contrôle de version que votre application. Chaque modification est ainsi suivie, révisable et réversible.</p><h3 id="_10-mettez-en-place-des-boucles-de-rétroaction-continues">10. Mettez en place des boucles de rétroaction continues</h3><p>Le CI/CD n&#39;est pas un processus figé. Veillez à ce que toutes les équipes puissent facilement recevoir et apporter des retours. Les retours issus de la supervision, des alertes ou des validations post-déploiement alimentent une amélioration continue du pipeline.</p><h2 id="les-meilleures-pratiques-en-matière-de-livraison-continue">Les meilleures pratiques en matière de livraison continue</h2><p>La livraison continue mérite à elle seule une attention particulière : si l&#39;intégration continue fait souvent la une, c&#39;est bien la livraison continue qui concrétise la promesse du <a href="https://about.gitlab.com/fr-fr/topics/devops/" rel="" title="Qu&#39;est-ce que le DevOps ?">DevOps</a> : livrer plus vite et plus souvent.</p><p>Voici les meilleures pratiques à adopter en matière de livraison continue pour des déploiements fluides et fiables :</p><ul><li><strong>Commencez par votre configuration actuelle.</strong> Inutile d&#39;attendre la plateforme parfaite. Analysez vos processus de déploiement existants, repérez les points de friction et automatisez d&#39;abord les tâches manuelles les plus répétitives. L&#39;amélioration continue commence toujours avec ce que vous avez déjà.</li><li><strong>Adoptez des stratégies de déploiement progressif.</strong> Mettez en place des approches éprouvées comme le <a href="https://docs.gitlab.com/ci/environments/incremental_rollouts/#blue-green-deployment" rel="">déploiement bleu/vert</a>, le <a href="https://docs.gitlab.com/user/project/canary_deployments/" rel="">déploiement canari</a> ou les <a href="https://docs.gitlab.com/operations/feature_flags/" rel="">feature flags</a>. Ces méthodes réduisent considérablement les risques et facilitent les retours en arrière rapides en cas d&#39;incident.</li><li><strong>Assurez la cohérence entre vos environnements.</strong> Vos environnements de développement, de préproduction et de production doivent être les plus similaires possible. L&#39;<a href="https://about.gitlab.com/fr-fr/topics/gitops/infrastructure-as-code/" rel="" title="Infrastructure as Code">Infrastructure as Code (IaC)</a> vous aidera à éliminer les dérives de configuration.</li><li><strong>Automatisez la validation après chaque déploiement.</strong> Mettez en place des smoke tests automatisés et des états de service automatiques pour vérifier instantanément la stabilité du système après une mise en production. Si une validation échoue, le pipeline doit pouvoir déclencher automatiquement un retour à la version précédente.</li><li><strong>Mettez en place une supervision complète.</strong> Suivez à la fois les indicateurs techniques (temps de réponse, taux d&#39;erreur) et les indicateurs métiers (satisfaction, engagement, conversion). La détection précoce des anomalies est la clé d&#39;une production stable.</li><li><strong>Adoptez le déploiement sans interruption.</strong> Concevez vos applications et votre processus de déploiement de manière à gérer les mises à jour sans temps d&#39;arrêt. Le « zéro temps d&#39;arrêt » doit être un objectif dès la conception.</li><li><strong>Simplifiez les retours à la version précédente.</strong> Le retour en arrière doit être instantané. Testez vos processus régulièrement et assurez-vous qu&#39;un retour complet puisse être exécuté en un clic.</li><li><strong>Dissociez déploiement et mise en production.</strong> Grâce aux feature flags, vous pouvez déployer du code sans exposer immédiatement les nouvelles fonctionnalités. Cela vous permet de tester en conditions réelles tout en limitant les risques pour les utilisateurs finaux.</li></ul><p>Tirez parti de tous les avantages de <a href="https://about.gitlab.com/fr-fr/solutions/continuous-integration/" rel="" title="Intégration et livraison continues">l&#39;intégration et de la livraison continues</a> avec la plateforme <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" rel="" title="DevSecOps">DevSecOps</a> de GitLab.</p><h2 id="comment-optimiser-son-pipeline-cicd">Comment optimiser son pipeline CI/CD ?</h2><p>Le <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" rel="" title="Qu&#39;est-ce qu&#39;un pipeline CI/CD ?">pipeline CI/CD</a> est la colonne vertébrale du développement moderne. C’est une série d&#39;étapes automatisées qui achemine le code du développement à la mise en production. Un pipeline type comprend les étapes suivantes : <strong>build, tests, scans de sécurité, déploiement et supervision</strong>. Ces étapes peuvent être réalisées manuellement, mais c&#39;est leur automatisation qui décuple la rapidité et la fiabilité du processus.</p><h3 id="optimisez-les-performances-du-pipeline">Optimisez les performances du pipeline</h3><ul><li>Utilisez la <a href="https://docs.gitlab.com/ci/caching/" rel="">mise en cache des builds</a> pour éviter de recompiler les éléments inchangés.</li><li>Définissez des <a href="https://docs.gitlab.com/ci/jobs/job_rules/#rules-examples" rel="">règles conditionnelles</a> pour ignorer les étapes inutiles lorsque le code n&#39;a pas été modifié.</li><li>Optimisez les images <a href="https://about.gitlab.com/fr-fr/blog/what-is-docker-comprehensive-guide/" rel="" title="Qu&#39;est-ce que Docker ?">Docker</a> avec des builds multi-étapes et des images de base plus légères.</li></ul><h3 id="améliorez-la-visibilité-du-pipeline">Améliorez la visibilité du pipeline</h3><ul><li>Ajoutez un suivi de la durée du pipeline pour identifier les goulots d&#39;étranglement.</li><li>Mettez en place une journalisation détaillée et une collecte d’artefacts pour faciliter le diagnostic.</li><li>Appuyez-vous sur les <a href="https://docs.gitlab.com/user/operations_dashboard/" rel="">tableaux de bord de GitLab</a> pour visualiser les taux de réussite et les tendances en matière de performances.</li></ul><h3 id="optimisez-lefficacité-des-ressources">Optimisez l&#39;efficacité des ressources</h3><ul><li>Ajustez la taille de vos runners selon leur charge réelle.</li><li>Exploitez les instances ponctuelles ou la <a href="https://docs.gitlab.com/runner/runner_autoscale/" rel="">mise à l&#39;échelle automatique</a> pour réduire les coûts d&#39;exécution.</li><li>Nettoyez les ressources temporaires et les artefacts après l&#39;achèvement du pipeline.</li></ul><h3 id="anticipez-la-croissance-de-léquipe">Anticipez la croissance de l&#39;équipe</h3><ul><li>Utilisez des <a href="https://docs.gitlab.com/ci/components/" rel="">composants de pipeline</a> pour uniformiser les pratiques entre projets. Utilisez des environnements dynamiques qui se créent et se suppriment automatiquement.</li><li>Configurez des workflows d&#39;<a href="https://docs.gitlab.com/ci/environments/deployment_approvals/" rel="">approbation de déploiement</a> avant toute mise en production.</li></ul><h2 id="stratégie-de-déploiement-cicd">Stratégie de déploiement CI/CD</h2><p>L&#39;objectif du CI/CD est simple : livrer un logiciel plus performant, plus rapidement, et en continu. Les organisations qui adoptent cette approche gagnent en agilité, en productivité et en qualité. Encore faut-il définir une stratégie adaptée à votre contexte.</p><p>Voici quelques leviers pour réussir vos déploiements :</p><ul><li><strong>Privilégiez les petits changements.</strong> Le déploiement fréquent de mises à jour incrémentales facilite les tests, les revues et les retours en arrière. Cela réduit les risques et améliore la stabilité des logiciels.</li><li><strong>Montez progressivement en puissance.</strong> Démarrez sur des projets à faible impact pour affiner vos processus avant de vous attaquer aux systèmes critiques.</li><li><strong>Automatisez les retours en arrière.</strong> Définissez des seuils d&#39;alerte (taux d&#39;erreur, indicateurs de performance, état des services) qui déclenchent un retour à la version précédente automatique.</li><li><strong>Répétez vos déploiements.</strong> Testez régulièrement votre processus de déploiement dans des environnements de préproduction qui reflètent la production.</li><li><strong>Planifiez vos fenêtres de déploiement.</strong> Commencez par des périodes de faible activité avant de passer à un déploiement continu.</li><li><strong>Mesurez l&#39;impact de chaque déploiement.</strong> Suivez les performances techniques et les indicateurs business après chaque déploiement pour évaluer la réussite.</li></ul><h2 id="comment-mesurer-la-performance-de-votre-cicd">Comment mesurer la performance de votre CI/CD ?</h2><p>Il est impossible d&#39;améliorer ce qu&#39;on ne mesure pas. Les équipes DevSecOps s&#39;appuient sur des indicateurs pour évaluer la performance et détecter les marges de progrès.</p><h3 id="les-4-métriques-dora">Les 4 métriques DORA</h3><p>Les organisations les plus performantes mesurent systématiquement ces quatre indicateurs issus du <a href="https://docs.gitlab.com/user/analytics/dora_metrics/" rel="">framework DORA</a> :</p><ul><li><strong>Fréquence de déploiement</strong> : nombre de mises en production réussies sur une période donnée. Les organisations d&#39;élite déploient jusqu&#39;à plusieurs fois par jour.</li><li><strong>Délai d&#39;exécution des modifications</strong> : temps écoulé entre le le premier commit et le déploiement en production. Objectif cible : passer sous la barre des 24 heures.</li><li><strong>Taux d&#39;échec des modifications</strong> : pourcentage de déploiements provoquant des incidents en production et nécessitant des correctifs urgents ou des retours en arrière. Un taux inférieur à 15 % est signe d&#39;un pipeline mature.</li><li><strong>Temps moyen de restauration</strong> : rapidité de résolution après incident. Les meilleurs rétablissent un service complet en moins d&#39;une heure. Une restauration rapide nécessite une supervision robuste et des capacités de retour en arrière automatisées.</li></ul><h3 id="les-autres-kpi-à-suivre">Les autres KPI à suivre</h3><ul><li><strong>Coûts d&#39;infrastructure</strong> : le CI/CD cloud-native peut entraîner des dépenses importantes s&#39;il n&#39;est pas géré correctement. Les pratiques qui réduisent les temps de build et optimisent l&#39;utilisation des ressources ont un impact direct sur les coûts opérationnels.</li><li><strong>Satisfaction et rétention des équipes</strong> : les développeurs satisfaits restent fidèles à l&#39;entreprise. Lorsque les équipes collaborent efficacement sur les pratiques CI/CD, la fidélisation suit. Un pipeline fluide réduit ainsi le stress, améliore la collaboration et fidélise les équipes de développement.</li></ul><h3 id="impact-business-immédiat">Impact business immédiat</h3><p>Ces indicateurs techniques se traduisent par des gains concrets :</p><ul><li>Des cycles de livraison plus courts améliorent les délais de mise sur le marché et la compétitivité.</li><li>Un faible taux d&#39;échec réduit les coûts d&#39;assistance et les interruptions.</li><li>Un temps moyen de réparation rapide garantit la continuité des services et la satisfaction client.</li></ul><blockquote><p><em>Les équipes hautement performantes en matière de CI/CD obtiennent systématiquement de meilleurs résultats commerciaux, améliorent leur productivité, et ont une plus grande capacité d&#39;innovation.</em> — <a href="https://cloud.google.com/blog/products/ai-machine-learning/announcing-the-2025-dora-report?hl=en" rel="">Étude DORA 2025</a></p></blockquote><h2 id="quels-sont-les-avantages-dune-approche-cicd-maîtrisée">Quels sont les avantages d&#39;une approche CI/CD maîtrisée ?</h2><p>L&#39;application rigoureuse des bonnes pratiques CI/CD profite à tous : utilisateurs, développeurs et dirigeants, en favorisant un développement logiciel plus fluide, collaboratif et orienté qualité.</p><ul><li><strong>Des fonctionnalités livrées plus vite</strong> : cycles courts, releases fréquentes et corrections rapides.</li><li><strong>Une qualité logicielle renforcée</strong> : moins de bugs, moins de stress, plus de stabilité.</li><li><strong>Une meilleure réactivité client</strong> : intégration immédiate des retours utilisateurs.</li><li><strong>Un service plus fiable</strong> : supervision continue et retours à la version précédente automatisés.</li><li><strong>Un environnement propice à l&#39;innovation</strong> : moins de tâches répétitives, plus de création de valeur.</li><li><strong>Des équipes plus engagées</strong> : moins d&#39;incidents, plus de temps pour le développement et la collaboration.</li></ul><h2 id="comment-déployer-le-cicd-dans-votre-organisation">Comment déployer le CI/CD dans votre organisation ?</h2><p>Avant de vous lancer, clarifiez les objectifs stratégiques et leur impact sur votre cycle de développement logiciel. Impliquez vos équipes dès la phase de conception de votre approche CI/CD : elles seront les premières concernées par ce changement.</p><ul><li>Évaluez les solutions adaptées à vos besoins (infrastructure, sécurité, gouvernance).</li><li>Testez les outils via des essais gratuits pour valider leur intégration dans votre pile existante.</li><li>Avancez progressivement, en automatisant étape par étape.</li><li>Suivez vos métriques clés pour mesurer les gains de performance et d&#39;efficacité.</li></ul><blockquote><p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr" rel="">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement et découvrez toute la puissance du CI/CD intégré à une plateforme DevSecOps complète.</a></strong></p></blockquote>]]></content>
        <author>
            <name>Valerie Silverthorne</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/valerie-silverthorne/</uri>
        </author>
        <published>2026-01-23T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Découvrir le catalogue d'IA : créer et partager des agents et des flows]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/ai-catalog-discover-and-share-agents/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/ai-catalog-discover-and-share-agents/"/>
        <updated>2026-01-22T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><em>Bienvenue dans la partie 5 de notre guide en huit parties, <a href="/fr-fr/blog/gitlab-duo-agent-platform-complete-getting-started-guide/">Démarrer avec GitLab Duo Agent Platform</a>, dans laquelle vous apprendrez à maîtriser la construction et le déploiement d&#39;agents d&#39;IA et de workflows au sein de votre cycle de développement. Suivez des tutoriels qui vous mèneront de votre première interaction à des workflows d&#39;automatisation prêts pour la production avec une personnalisation complète.</em></p><blockquote><p>🎯 Essayez <strong><a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/" rel="">GitLab Duo Agent Platform</a></strong> dès aujourd&#39;hui !</p></blockquote><h2 id="quest-ce-que-le-catalogue-dia">Qu&#39;est-ce que le catalogue d&#39;IA ?</h2><p>Le catalogue d&#39;IA est un dépôt centralisé qui permet de découvrir, de créer et de partager des <a href="/fr-fr/blog/understanding-agents-foundational-custom-external/">agents</a> et des <a href="/blog/understanding-flows-multi-agent-workflows/">flows</a> dans l&#39;ensemble de votre organisation. Il favorise la cohérence, les solutions réutilisables et la collaboration en permettant aux équipes d&#39;exploiter des solutions préconfigurées et des bonnes pratiques.</p><p><strong>Actions possibles avec le catalogue d&#39;IA :</strong></p><ul><li><strong>Découvrir</strong> : parcourez les agents et les flows créés par GitLab et la communauté.</li><li><strong>Créer</strong> : créez et maintenez des agents et des flows personnalisés dans une interface unique.</li><li><strong>Activer</strong> : activez des agents et des flows au niveau de votre groupe principal, puis utilisez-les dans vos projets.</li><li><strong>Partager</strong> : publiez vos agents et vos flows afin que d&#39;autres puissent les utiliser (visibilité publique ou privée).</li><li><strong>Dupliquer</strong> : copiez et personnalisez des agents et des flows existants.</li></ul><p><img alt="Catalogue d&#39;IA" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1765458621/un1xt2tql9wmjfjkyztg.png" title="Catalogue d&#39;IA" /></p><h2 id="accéder-au-catalogue-dia-et-lutiliser">Accéder au catalogue d&#39;IA et l&#39;utiliser</h2><p>Accédez à <strong>Explorer → Catalogue d&#39;IA</strong>.</p><p>Le catalogue propose actuellement deux types d&#39;éléments :</p><ul><li><strong>Agents</strong> : des agents personnalisables pour des tâches ponctuelles, interactives ou contextuelles.</li><li><strong>Flows</strong> : des flows personnalisables pour des automatisations reproductibles en plusieurs étapes, qui orchestrent une équipe d&#39;agents.</li></ul><p>Pour obtenir des informations détaillées, consultez la <a href="https://docs.gitlab.com/user/duo_agent_platform/ai_catalog/" rel="">documentation relative au catalogue d&#39;IA</a>.</p><h2 id="découvrir-les-agents-et-des-flows">Découvrir les agents et des flows</h2><p>Le catalogue d&#39;IA facilite la découverte d&#39;agents et de flows adaptés à vos besoins :</p><p><strong>Comment parcourir le catalogue :</strong></p><ol><li>Accédez à <strong>Explorer → Catalogue d&#39;IA</strong>.</li><li>Sélectionnez l&#39;onglet <strong>Agents</strong> ou <strong>Flows</strong>.</li><li>Parcourez les agents ou flows disponibles et consultez le titre, la description et le statut de visibilité.</li><li>Cliquez sur n&#39;importe quel agent ou flow pour afficher davantage de détails.</li></ol><p><strong>Activer des agents et des flows :</strong></p><p>Une fois que vous avez trouvé un agent ou un flow que vous souhaitez utiliser :</p><ol><li>Cliquez sur l&#39;agent ou le flow pour en afficher les détails.</li><li>Cliquez sur le bouton <strong>Activer dans le groupe</strong> pour ajouter l&#39;agent ou le flow à votre groupe principal.</li><li>Activez-le dans votre projet pour commencer à l&#39;utiliser.</li></ol><h2 id="créer-partager-et-gérer-la-visibilité">Créer, partager et gérer la visibilité</h2><h3 id="créer-des-agents-et-des-flows">Créer des agents et des flows</h3><p>Voici des instructions détaillées pour créer des agents et des flows.</p><p><strong>Créer des agents :</strong></p><p>Accédez à <strong>Explorer → Catalogue d&#39;IA → Agents → Nouvel agent</strong>.</p><ol><li>Assignez une tâche ou une spécialisation spécifique à cet agent, par exemple un agent de débogage et de dépannage.</li><li>Ajoutez un nom qui s&#39;affichera et une description pour aider les autres utilisateurs à identifier l&#39;objectif et la raison pour laquelle ils souhaiteraient utiliser l&#39;agent, par exemple <code className="">troubleshoot-debugger</code>.</li><li>Indiquez la visibilité et l&#39;accès. Sélectionnez un projet privé et définissez la visibilité comme privée si vous souhaitez commencer par tester l&#39;agent.</li><li>Définissez le comportement, les capacités et la spécialisation de l&#39;agent dans le prompt système. Pour obtenir des détails sur la création de prompts système efficaces, consultez la <a href="/fr-fr/blog/understanding-agents-foundational-custom-external/">Partie 3 : comprendre les agents</a>.</li><li>Sélectionnez et limitez éventuellement l&#39;accès aux outils pour les agents. Par exemple, un agent de débogage a besoin d&#39;un accès en lecture au code, aux tickets et aux merge requests, mais n&#39;a pas besoin d&#39;un accès en écriture pour apporter des modifications.</li></ol><p><strong>Créer des flows :</strong></p><p>Accédez à <strong>Explorer → Catalogue d&#39;IA → Flows → Nouveau flow</strong>.</p><ol><li>Définissez une tâche spécifique complexe en plusieurs étapes, par exemple un flow d&#39;optimisation de pipeline CI/CD.</li><li>Ajoutez un nom qui s&#39;affichera et une description pour aider les autres utilisateurs à identifier l&#39;objectif et la raison pour laquelle ils souhaiteraient utiliser le flow, par exemple <code className="">ci-cd-optimizer</code>.</li><li>Indiquez la visibilité et l&#39;accès. Sélectionnez un projet privé et définissez la visibilité comme privée si vous souhaitez commencer par tester l&#39;agent.</li><li>Définissez le comportement du flow ainsi que ses composants d&#39;agents, ses prompts et ses routeurs. Pour obtenir des détails sur la structure YAML des flows, consultez la <a href="/fr-fr/blog/understanding-flows-multi-agent-workflows/">Partie 4 : comprendre les flows</a>.</li></ol><p>Pour plus de détails, consultez les ressources suivantes :</p><ul><li><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/custom.html" rel="">Documentation concernant les agents personnalisables</a></li><li><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/custom.html" rel="">Documentation concernant les flows personnalisables</a></li></ul><h3 id="partager-votre-travail-et-définir-la-visibilité">Partager votre travail et définir la visibilité</h3><p>Lors de la création d&#39;agents ou de flows, vous pouvez choisir entre une visibilité <strong>privée</strong> et <strong>publique</strong> afin de contrôler qui peut y accéder et les utiliser.</p><p><strong>Visibilité privée :</strong></p><ul><li>Les agents et flows ne peuvent être consultés que par les membres du projet de gestion qui disposent au moins du rôle Développeur, ou par les utilisateurs avec le rôle Propriétaire pour le groupe principal.</li><li>Ils ne peuvent pas être activés dans d&#39;autres projets.</li><li>Ils sont utiles pour les workflows spécifiques d&#39;une équipe ou sensibles.</li></ul><p><strong>Visibilité publique :</strong></p><ul><li>Les agents et flows peuvent être consultés par toute personne sur l&#39;instance.</li><li>Ils peuvent être activés dans n&#39;importe quel projet répondant aux prérequis.</li><li>Ils apparaissent dans le catalogue d&#39;IA pour faciliter leur découverte.</li></ul><h3 id="bonnes-pratiques-de-partage">Bonnes pratiques de partage</h3><p>Lorsque vous publiez des agents et des flows dans le catalogue d&#39;IA, n&#39;oubliez pas de suivre ces recommandations :</p><p><strong>Nommage :</strong></p><ul><li>Utilisez des noms clairs et descriptifs (par exemple, <code className="">security-code-review</code>, <code className="">api-documentation-generator</code>).</li><li>Évitez les noms génériques comme <code className="">agent1</code> ou <code className="">my-flow</code>.</li><li>Incluez l&#39;objectif dans le nom lorsque cela est possible.</li></ul><p><strong>Documentation :</strong></p><ul><li>Indiquez une description claire de ce que fait l&#39;agent ou le flow.</li><li>Ajoutez des cas d&#39;utilisation et des exemples.</li><li>Documentez tous les prérequis ou dépendances.</li></ul><p><strong>Qualité :</strong></p><ul><li>Testez minutieusement l&#39;agent ou le flow avant de le publier.</li><li>Assurez-vous que l&#39;agent ou le flow résout un problème réel.</li><li>Veillez à ce qu&#39;il puisse être maintenu et qu&#39;il soit bien documenté.</li><li>Prenez en compte les cas limites et la gestion des erreurs.</li></ul><p><strong>Choix concernant la visibilité :</strong></p><ul><li>Commencez avec une visibilité <strong>privée</strong> pour effectuer des tests avec votre équipe.</li><li>Passez à une visibilité <strong>publique</strong> une fois les tests validés et documentés.</li><li>Ne publiez que si l&#39;agent ou le flow apporte une valeur ajoutée.</li><li>Prenez en compte le public et les cas d&#39;utilisation.</li></ul><h3 id="comprendre-la-gestion-des-versions">Comprendre la gestion des versions</h3><p>Les agents et flows personnalisés du catalogue d&#39;IA conservent un historique des versions pour suivre les modifications.</p><p><strong>Fonctionnement de la gestion des versions :</strong></p><ul><li>GitLab crée automatiquement une nouvelle version lorsque vous mettez à jour le prompt système d&#39;un agent ou modifiez la configuration d&#39;un flow.</li><li>Les versions utilisent la gestion sémantique de version (par exemple, <code className="">1.0.0</code>, <code className="">1.1.0</code>).</li><li>GitLab effectue une gestion sémantique de version automatique : les mises à jour incrémentent toujours la version mineure.</li><li>Les versions sont immuables afin de garantir un comportement cohérent.</li></ul><p><strong>Épinglage des versions :</strong></p><p>Lorsque vous activez un agent ou un flow :</p><ul><li><strong>Dans un groupe</strong> : GitLab l&#39;épingle à la dernière version.</li><li><strong>Dans un projet</strong> : GitLab l&#39;épingle à la même version que votre groupe principal.</li></ul><p>Conséquences :</p><ul><li>Vos projets utilisent une version fixe et stable de l&#39;agent ou du flow.</li><li>Les mises à jour dans le catalogue d&#39;IA n&#39;affectent pas automatiquement votre configuration.</li><li>Vous devez accepter explicitement de passer aux nouvelles versions : les mises à jour ne sont jamais automatiques.</li><li>Vous conservez un contrôle total sur le moment d&#39;adoption des nouvelles versions.</li></ul><p><strong>Consulter les versions :</strong></p><ul><li>Accédez à <strong>Automatisation → Agents</strong> ou <strong>Automatisation → Flows</strong>.</li><li>Sélectionnez l&#39;agent ou le flow pour afficher sa version sur le côté droit dans la section <strong>À propos</strong>.</li></ul><p><strong>Mettre à jour vers la dernière version</strong></p><p>Lorsqu&#39;une nouvelle version d&#39;un agent ou d&#39;un flow est disponible dans le catalogue d&#39;IA, vous pouvez mettre à jour vos projets pour l&#39;utiliser.</p><ol><li>Accédez à <strong>Automatisation → Agents</strong> ou <strong>Automatisation → Flows</strong>.</li><li>Cliquez sur l&#39;agent ou le flow que vous souhaitez mettre à jour.</li><li>Cliquez sur le bouton <strong>Mettre à jour</strong> (apparaît lorsqu&#39;une version plus récente est disponible).</li><li>Examinez les modifications apportées dans la nouvelle version.</li><li>Confirmez la mise à jour pour épingler votre projet à la dernière version.</li></ol><h2 id="perspectives">Perspectives</h2><p>Vous savez désormais comment découvrir, créer et partager des agents et des flows via le catalogue d&#39;IA. Dans la <a href="/blog/monitor-manage-automate-ai-workflows/">Partie 6</a>, vous apprendrez à surveiller l&#39;activité des agents et des flows via les sessions, à configurer des déclencheurs basés sur des événements et à gérer vos workflows d&#39;IA.</p><h2 id="ressources">Ressources</h2><ul><li><a href="https://docs.gitlab.com/user/duo_agent_platform/ai_catalog/" rel="">Documentation concernant le catalogue d&#39;IA</a></li><li><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/custom.html" rel="">Documentation concernant les agents personnalisables</a></li><li><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/custom.html" rel="">Documentation concernant les flows personnalisables</a></li></ul><hr /><p><strong>Article suivant :</strong> <a href="/blog/monitor-manage-automate-ai-workflows/">Partie 6 : surveiller, gérer et automatiser les workflows d&#39;IA</a></p><p><strong>Article précédent :</strong> <a href="/fr-fr/blog/understanding-flows-multi-agent-workflows/">Partie 4 : comprendre les flows</a></p>]]></content>
        <author>
            <name>Itzik Gan Baruch</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/itzik-gan-baruch/</uri>
        </author>
        <published>2026-01-22T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Comprendre les flows : workflows multi-agents]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/understanding-flows-multi-agent-workflows/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/understanding-flows-multi-agent-workflows/"/>
        <updated>2026-01-21T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><em>Bienvenue dans la partie 4 de notre guide en huit parties, <a href="/fr-fr/blog/gitlab-duo-agent-platform-complete-getting-started-guide/">Démarrer avec GitLab Duo Agent Platform</a>, dans laquelle vous apprendrez à maîtriser la construction et le déploiement d&#39;agents d&#39;IA et de workflows au sein de votre cycle de développement. Suivez des tutoriels qui vous mèneront de votre première interaction à des workflows d&#39;automatisation prêts pour la production avec une personnalisation complète.</em></p><blockquote><p>🎯 Essayez <strong><a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr" rel="">GitLab Duo Agent Platform</a></strong> dès aujourd&#39;hui !</p></blockquote><h2 id="introduction-aux-flows">Introduction aux flows</h2><p>Les flows sont des combinaisons d&#39;un ou de plusieurs agents qui collaborent ensemble. Ils orchestrent des workflows multi-étapes pour résoudre des problèmes complexes et s&#39;exécutent sur la plateforme de calcul de GitLab.</p><p><strong>Caractéristiques clés des flows :</strong></p><ul><li><strong>Orchestration multi-agents :</strong> ils combinent plusieurs agents spécialisés.</li><li><strong>Intégrés :</strong> ils s&#39;exécutent sur la plateforme de calcul, aucun environnement supplémentaire nécessaire.</li><li><strong>Pilotés par des événements :</strong> ils sont déclenchés par des mentions, des assignations ou peuvent être assignés en tant que relecteur.</li><li><strong>Asynchrones :</strong> ils s&#39;exécutent en arrière-plan pendant que vous continuez à travailler.</li><li><strong>Workflows complets :</strong> ils gèrent les tâches de bout en bout, de l&#39;analyse à l&#39;implémentation.</li></ul><p>Les flows sont des workflows autonomes capables de rassembler du contexte, de prendre des décisions, d&#39;exécuter des changements et de livrer des résultats pendant que vous vous concentrez sur d&#39;autres tâches.</p><h2 id="flows-vs-agents-quelle-est-la-différence">Flows vs agents : quelle est la différence ?</h2><p>Les agents travaillent avec vous de manière interactive. Les flows travaillent pour vous de manière autonome.</p><table><thead><tr><th>Aspect</th><th>Agents</th><th>Flows</th></tr></thead><tbody><tr><td><strong>Interactions</strong></td><td>Chat interactif</td><td>Exécution autonome</td></tr><tr><td><strong>Quand les utiliser</strong></td><td>Questions, conseils et exécution interactive de tâches</td><td>Workflows multi-étapes autonomes</td></tr><tr><td><strong>Implication de l&#39;utilisateur</strong></td><td>Conversation active</td><td>Déclenchement et revue des résultats</td></tr><tr><td><strong>Temps d&#39;exécution</strong></td><td>Réponses en temps réel</td><td>Traitement en arrière-plan</td></tr><tr><td><strong>Complexité</strong></td><td>Tâches effectuées par un agent unique</td><td>Orchestration multi-agents</td></tr></tbody></table><h2 id="vue-densemble-des-types-de-flows">Vue d&#39;ensemble des types de flows</h2><table><thead><tr><th>Type</th><th>Interface</th><th>Responsable</th><th>Cas d&#39;utilisation</th></tr></thead><tbody><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/" rel="">Agent de base</a></strong></td><td>Actions dans l&#39;interface utilisateur (UI), interface IDE</td><td>GitLab</td><td>Développement logiciel, développeur, correction de pipeline CI/CD, conversion en GitLab CI/CD, revue de code, détection des faux positifs SAST</td></tr><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/custom/" rel="">Agent personnalisable</a></strong></td><td>Mention, assignation, assignation comme relecteur</td><td>Vous</td><td>Exemples : migration/modernisation à grande échelle, automatisation des releases, gestion des mises à jour des dépendances</td></tr></tbody></table><h2 id="flows-de-base">Flows de base</h2><p>Les flows de base sont des workflows prêts pour la production créés et maintenus par GitLab. Ils sont accessibles via des contrôles UI dédiés ou des interfaces <a href="https://about.gitlab.com/fr-fr/blog/what-is-an-ide/" rel="" title="Qu&#39;est-ce qu&#39;un IDE ?">IDE</a>.</p><h3 id="flows-de-base-actuellement-disponibles">Flows de base actuellement disponibles</h3><table><thead><tr><th>Flow</th><th>Emplacement</th><th>Comment y accéder</th><th>Idéal pour</th></tr></thead><tbody><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/software_development.html" rel="">Software Development (Développement logiciel)</a></strong></td><td>IDE (VS Code, JetBrains, Visual Studio)</td><td>Onglet Flows dans l&#39;IDE</td><td>Implémentation de fonctionnalités, refactorisation complexe, modifications de plusieurs fichiers</td></tr><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/developer.html" rel="">Developer (Développeur)</a></strong></td><td>Interface utilisateur web GitLab</td><td>Bouton « Générer une merge request avec Duo » dans les tickets</td><td>Fonctionnalités bien définies, corrections de bogues avec étapes claires</td></tr><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/fix_pipeline.html" rel="">Fix CI/CD Pipeline (Correction de pipeline CI/CD)</a></strong></td><td>Interface utilisateur web GitLab</td><td>Interface d&#39;échec de pipeline</td><td>Débogage de pipeline, problèmes de configuration CI/CD</td></tr><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/convert_to_gitlab_ci.html" rel="">Convert to GitLab CI/CD (Conversion en GitLab CI/CD)</a></strong></td><td>Interface utilisateur web GitLab</td><td>Bouton « Convertir en GitLab CI/CD » sur fichier Jenkins (Jenkinsfile)</td><td>Migration de Jenkins vers GitLab CI/CD</td></tr><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/code_review.html" rel="">Code Review (Revue de code)</a></strong></td><td>Interface utilisateur web GitLab</td><td>Assignation comme relecteur sur une merge request</td><td>Revue de code automatisée avec analyse et feedback d&#39;IA native</td></tr><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/sast_false_positive_detection.html" rel="">SAST false positive detection (Détection des faux positifs SAST)</a></strong></td><td>Interface utilisateur web GitLab</td><td>Résultats de scans de sécurité</td><td>Identification et filtrage automatique des faux positifs dans les résultats SAST</td></tr></tbody></table><h2 id="flows-personnalisables">Flows personnalisables</h2><p>Les flows personnalisables sont des workflows définis en YAML que vous créez pour les besoins spécifiques de votre équipe. Ils s&#39;exécutent dans <a href="https://about.gitlab.com/fr-fr/blog/what-is-gitlab-runner/" rel="" title="GitLab Runner">GitLab Runner</a> et peuvent être déclenchés par des événements GitLab.</p><blockquote><p><strong>🎯 Essayez les flows :</strong> visionnez notre <a href="https://gitlab.navattic.com/custom-flows" rel="">démo interactive des flows personnalisables</a> pour explorer comment les créer et les configurer.</p></blockquote><h3 id="pourquoi-créer-des-flows-personnalisés">Pourquoi créer des flows personnalisés ?</h3><p>Les flows personnalisables automatisent les tâches multi-étapes répétitives spécifiques au workflow de votre équipe. Contrairement aux flows de base qui servent des objectifs généraux, les flows personnalisables sont adaptés aux processus, outils et exigences de votre organisation.</p><p><strong>Cas d&#39;utilisation courants :</strong></p><ul><li><strong>Revue de code automatisée :</strong> processus de revue multi-étapes (scan de sécurité → vérification de qualité → validation de style)</li><li><strong>Vérification de la conformité :</strong> vérification des exigences réglementaires, de la conformité des licences ou des politiques de sécurité pour chaque merge request</li><li><strong>Génération de documentation :</strong> mise à jour automatique de la documentation API, des fichiers README ou des changelogs basée sur les modifications de code</li><li><strong>Gestion des dépendances :</strong> scans de sécurité hebdomadaires, mises à jour automatisées et rapports de vulnérabilité</li><li><strong>Tests personnalisés :</strong> suites de tests spécialisées pour votre pile technologique ou vos tests d&#39;intégration</li></ul><h3 id="exemple-concret">Exemple concret</h3><p>Une entreprise fintech crée un flow de conformité qui s&#39;exécute sur chaque merge request. Lorsqu&#39;il est déclenché par <code className="">@compliance-flow</code>, le flow exécute les étapes suivantes :</p><ol><li><strong>L&#39;agent Security Analyst</strong> scanne le code pour détecter les violations PCI-DSS et vérifie les données sensibles exposées.</li><li><strong>L&#39;agent Code Review</strong> vérifie que les modifications respectent les standards de codage sécurisé et les bonnes pratiques.</li><li><strong>L&#39;agent de documentation</strong> vérifie que les modifications apportées à l&#39;API incluent une documentation mise à jour.</li><li><strong>L&#39;agent de synthèse</strong> agrège les résultats et publie un rapport de conformité avec un statut réussite/échec.</li></ol><p>L&#39;ensemble de la revue de conformité se déroule automatiquement en 5 à 10 minutes, avec des vérifications cohérentes sur toutes les merge requests.</p><h3 id="comment-déclencher-des-flows-personnalisés">Comment déclencher des flows personnalisés ?</h3><p>Les flows personnalisés peuvent être déclenchés de plusieurs façons :</p><p><strong>1. Via des mentions dans les tickets/merge requests :</strong> mentionnez le flow dans un commentaire pour le déclencher. Exemple pour un flow de génération de documentation :</p><pre className="language-text" code="@doc-generator Generate API documentation for this feature
" language="text" meta=""><code>@doc-generator Generate API documentation for this feature
</code></pre><p><strong>2. En assignant le flow à un ticket ou une merge request :</strong> assignez le flow en utilisant :</p><ul><li><strong>L&#39;interface utilisateur de GitLab :</strong> cliquez sur le bouton « Assigner » sur le ticket/la merge request et sélectionnez le flow.</li><li><strong>Commande :</strong> utilisez la commande <code className="">/assign</code> dans un commentaire. Exemple :</li></ul><pre className="language-shell shiki shiki-themes github-light" code="/assign @doc-generator
" language="shell" meta="" style=""><code><span class="line" line="1"><span style="--shiki-default:#6F42C1">/assign</span><span style="--shiki-default:#032F62"> @doc-generator
</span></span></code></pre><p><strong>3. En assignant le flow en tant que relecteur :</strong> assignez le flow comme relecteur sur une merge request en utilisant :</p><ul><li><strong>L&#39;interface utilisateur de GitLab :</strong> cliquez sur le bouton « Assigner un relecteur » sur la merge request et sélectionnez le flow.</li><li><strong>Commande :</strong> utilisez la commande <code className="">/assign reviewer</code> dans un commentaire. Exemple :</li></ul><pre className="language-shell shiki shiki-themes github-light" code="/assign_reviewer @doc-reviewer
" language="shell" meta="" style=""><code><span class="line" line="1"><span style="--shiki-default:#6F42C1">/assign_reviewer</span><span style="--shiki-default:#032F62"> @doc-reviewer
</span></span></code></pre><p>Chacune de ces méthodes déclenche automatiquement le flow pour qu&#39;il exécute ses tâches.</p><h3 id="comment-créer-des-flows-personnalisés">Comment créer des flows personnalisés</h3><p>Les flows personnalisés sont créés via l&#39;interface de GitLab sous <strong>Automatisation → Flows → Nouveau flow</strong> dans votre projet, ou depuis <strong>Explorer → Catalogue d&#39;IA → Flows → Nouveau flow</strong>. Vous définissez votre flow à l&#39;aide d&#39;une configuration YAML qui précise les composants, les prompts, le routage et le flow d&#39;exécution. Le schéma YAML vous permet de créer des workflows multi-agents sophistiqués avec un contrôle précis du comportement et de l’orchestration des agents.</p><p><strong>Éléments clés d&#39;un flow personnalisé :</strong></p><ul><li><strong>Composants :</strong> définissez les agents et les étapes de votre workflow</li><li><strong>Prompts :</strong> configurez le comportement et les instructions du modèle d&#39;IA</li><li><strong>Routeurs :</strong> contrôlez le flow entre les composants</li><li><strong>Set d&#39;outils :</strong> indiquez quels outils de l&#39;API GitLab les agents peuvent utiliser</li></ul><h3 id="exemple-de-flow-personnalisé-yaml">Exemple de flow personnalisé YAML</h3><p><strong>Contexte :</strong> cet exemple montre un flow d&#39;implémentation de fonctionnalité pour une plateforme de réservation de voyages. Lorsqu&#39;un développeur crée un ticket avec des exigences de fonctionnalité, il peut déclencher ce flow pour analyser automatiquement les exigences, examiner le code source, implémenter la solution et créer une merge request, le tout sans intervention manuelle.</p><p>Voici la configuration YAML :</p><pre className="language-yaml shiki shiki-themes github-light" code="version: &quot;v1&quot;
environment: ambient
components:
  - name: &quot;implement_feature&quot;
    type: AgentComponent
    prompt_id: &quot;implementation_prompt&quot;
    inputs:
      - from: &quot;context:goal&quot;
        as: &quot;user_goal&quot;
      - from: &quot;context:project_id&quot;
        as: &quot;project_id&quot;
    toolset:
      - &quot;get_issue&quot;
      - &quot;get_repository_file&quot;
      - &quot;list_repository_tree&quot;
      - &quot;find_files&quot;
      - &quot;blob_search&quot;
      - &quot;create_file&quot;
      - &quot;create_commit&quot;
      - &quot;create_merge_request&quot;
      - &quot;create_issue_note&quot;
    ui_log_events:
      - &quot;on_agent_final_answer&quot;
      - &quot;on_tool_execution_success&quot;
      - &quot;on_tool_execution_failed&quot;

prompts:
  - name: &quot;Cheapflights Feature Implementation&quot;
    prompt_id: &quot;implementation_prompt&quot;
    unit_primitives: []
    prompt_template:
      system: |
        You are an expert full-stack developer specializing in travel booking platforms, specifically Cheapflights.

        Your task is to:
        1. Extract the issue IID from the goal (look for &quot;Issue IID: XX&quot;)
        2. Use get_issue with project_id={{project_id}} and issue_iid to retrieve issue details
        3. Analyze the requirements for the flight search feature
        4. Review the existing codebase using list_repository_tree, find_files, and get_repository_file
        5. Design and implement the solution following Cheapflights best practices
        6. Create all necessary code files using create_file (call multiple times for multiple files)
        7. Commit the changes using create_commit
        8. Create a merge request using create_merge_request
        9. Post a summary comment to the issue using create_issue_note with the MR link

        Cheapflights Domain Expertise:
        - Flight search and booking systems (Amadeus, Sabre, Skyscanner APIs)
        - Fare comparison and pricing strategies
        - Real-time availability and inventory management
        - Travel industry UX patterns
        - Performance optimization for high-traffic flight searches

        Code Standards:
        - Clean, maintainable code (TypeScript/JavaScript/Python/React)
        - Proper state management for React components
        - RESTful API endpoints with comprehensive error handling
        - Mobile-first responsive design
        - Proper timezone handling (use moment-timezone or date-fns-tz)
        - WCAG 2.1 accessibility compliance

        Flight-Specific Best Practices:
        - Accurate fare calculations (base fare + taxes + fees + surcharges)
        - Flight duration calculations across timezones
        - Search filter logic (price range, number of stops, airlines, departure/arrival times)
        - Sort algorithms (best value, fastest, cheapest)
        - Handle edge cases: date line crossing, daylight saving time, red-eye flights
        - Currency amounts use proper decimal handling (avoid floating point errors)
        - Dates use ISO 8601 format
        - Flight codes follow IATA standards (3-letter airport codes)

        Implementation Requirements:
        - No TODOs or placeholder comments
        - All functions must be fully implemented
        - Include proper TypeScript types or Python type hints
        - Add JSDoc/docstring comments for all functions
        - Comprehensive error handling and input validation
        - Basic unit tests for critical functions
        - Performance considerations for handling large result sets

        CRITICAL - Your final comment on the issue MUST include:
        - **Implementation Summary**: Brief description of what was implemented
        - **Files Created/Modified**: List of all files with descriptions
        - **Key Features**: Bullet points of main functionality
        - **Technical Approach**: Brief explanation of architecture/patterns used
        - **Testing Notes**: How to test the implementation
        - **Merge Request Link**: Direct link to the created MR (format: [View Merge Request](MR_URL))

        IMPORTANT TOOL USAGE:
        - Extract the issue IID from the goal first (e.g., &quot;Issue IID: 12&quot; means issue_iid=12)
        - Use get_issue with project_id={{project_id}} and issue_iid=&lt;extracted_iid&gt;
        - Create multiple files by calling create_file multiple times (once per file)
        - Use create_commit to commit all files together with a descriptive commit message
        - Use create_merge_request to create the MR and capture the MR URL from the response
        - Use create_issue_note with project_id={{project_id}}, noteable_id=&lt;issue_iid&gt;, and body=&lt;your complete summary with MR link&gt;
        - Make sure to include the MR link in the comment body so users can easily access it

      user: |
        Goal: {{user_goal}}
        Project ID: {{project_id}}

        Please complete the following steps:
        1. Extract the issue IID and retrieve full issue details
        2. Analyze the requirements thoroughly
        3. Review the existing codebase structure and patterns
        4. Implement the feature with production-ready code
        5. Create all necessary files (components, APIs, tests, documentation)
        6. Commit all changes with a clear commit message
        7. Create a merge request
        8. Post a detailed summary comment to the issue including the MR link

      placeholder: history
    params:
      timeout: 300

routers:
  - from: &quot;implement_feature&quot;
    to: &quot;end&quot;

flow:
  entry_point: &quot;implement_feature&quot;
" language="yaml" meta="" style=""><code><span class="line" line="1"><span style="--shiki-default:#22863A">version</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;v1&quot;
</span></span><span class="line" line="2"><span style="--shiki-default:#22863A">environment</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">ambient
</span></span><span class="line" line="3"><span style="--shiki-default:#22863A">components</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="4"><span style="--shiki-default:#24292E">  - </span><span style="--shiki-default:#22863A">name</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;implement_feature&quot;
</span></span><span class="line" line="5"><span style="--shiki-default:#22863A">    type</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">AgentComponent
</span></span><span class="line" line="6"><span style="--shiki-default:#22863A">    prompt_id</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;implementation_prompt&quot;
</span></span><span class="line" line="7"><span style="--shiki-default:#22863A">    inputs</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="8"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#22863A">from</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;context:goal&quot;
</span></span><span class="line" line="9"><span style="--shiki-default:#22863A">        as</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;user_goal&quot;
</span></span><span class="line" line="10"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#22863A">from</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;context:project_id&quot;
</span></span><span class="line" line="11"><span style="--shiki-default:#22863A">        as</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;project_id&quot;
</span></span><span class="line" line="12"><span style="--shiki-default:#22863A">    toolset</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="13"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;get_issue&quot;
</span></span><span class="line" line="14"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;get_repository_file&quot;
</span></span><span class="line" line="15"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;list_repository_tree&quot;
</span></span><span class="line" line="16"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;find_files&quot;
</span></span><span class="line" line="17"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;blob_search&quot;
</span></span><span class="line" line="18"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;create_file&quot;
</span></span><span class="line" line="19"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;create_commit&quot;
</span></span><span class="line" line="20"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;create_merge_request&quot;
</span></span><span class="line" line="21"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;create_issue_note&quot;
</span></span><span class="line" line="22"><span style="--shiki-default:#22863A">    ui_log_events</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="23"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;on_agent_final_answer&quot;
</span></span><span class="line" line="24"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;on_tool_execution_success&quot;
</span></span><span class="line" line="25"><span style="--shiki-default:#24292E">      - </span><span style="--shiki-default:#032F62">&quot;on_tool_execution_failed&quot;
</span></span><span class="line" line="26"><span emptyLinePlaceholder>
</span></span><span class="line" line="27"><span style="--shiki-default:#22863A">prompts</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="28"><span style="--shiki-default:#24292E">  - </span><span style="--shiki-default:#22863A">name</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;Cheapflights Feature Implementation&quot;
</span></span><span class="line" line="29"><span style="--shiki-default:#22863A">    prompt_id</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;implementation_prompt&quot;
</span></span><span class="line" line="30"><span style="--shiki-default:#22863A">    unit_primitives</span><span style="--shiki-default:#24292E">: []
</span></span><span class="line" line="31"><span style="--shiki-default:#22863A">    prompt_template</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="32"><span style="--shiki-default:#22863A">      system</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#D73A49">|
</span></span><span class="line" line="33"><span style="--shiki-default:#032F62">        You are an expert full-stack developer specializing in travel booking platforms, specifically Cheapflights.
</span></span><span class="line" line="34"><span emptyLinePlaceholder>
</span></span><span class="line" line="35"><span style="--shiki-default:#032F62">        Your task is to:
</span></span><span class="line" line="36"><span style="--shiki-default:#032F62">        1. Extract the issue IID from the goal (look for &quot;Issue IID: XX&quot;)
</span></span><span class="line" line="37"><span style="--shiki-default:#032F62">        2. Use get_issue with project_id={{project_id}} and issue_iid to retrieve issue details
</span></span><span class="line" line="38"><span style="--shiki-default:#032F62">        3. Analyze the requirements for the flight search feature
</span></span><span class="line" line="39"><span style="--shiki-default:#032F62">        4. Review the existing codebase using list_repository_tree, find_files, and get_repository_file
</span></span><span class="line" line="40"><span style="--shiki-default:#032F62">        5. Design and implement the solution following Cheapflights best practices
</span></span><span class="line" line="41"><span style="--shiki-default:#032F62">        6. Create all necessary code files using create_file (call multiple times for multiple files)
</span></span><span class="line" line="42"><span style="--shiki-default:#032F62">        7. Commit the changes using create_commit
</span></span><span class="line" line="43"><span style="--shiki-default:#032F62">        8. Create a merge request using create_merge_request
</span></span><span class="line" line="44"><span style="--shiki-default:#032F62">        9. Post a summary comment to the issue using create_issue_note with the MR link
</span></span><span class="line" line="45"><span emptyLinePlaceholder>
</span></span><span class="line" line="46"><span style="--shiki-default:#032F62">        Cheapflights Domain Expertise:
</span></span><span class="line" line="47"><span style="--shiki-default:#032F62">        - Flight search and booking systems (Amadeus, Sabre, Skyscanner APIs)
</span></span><span class="line" line="48"><span style="--shiki-default:#032F62">        - Fare comparison and pricing strategies
</span></span><span class="line" line="49"><span style="--shiki-default:#032F62">        - Real-time availability and inventory management
</span></span><span class="line" line="50"><span style="--shiki-default:#032F62">        - Travel industry UX patterns
</span></span><span class="line" line="51"><span style="--shiki-default:#032F62">        - Performance optimization for high-traffic flight searches
</span></span><span class="line" line="52"><span emptyLinePlaceholder>
</span></span><span class="line" line="53"><span style="--shiki-default:#032F62">        Code Standards:
</span></span><span class="line" line="54"><span style="--shiki-default:#032F62">        - Clean, maintainable code (TypeScript/JavaScript/Python/React)
</span></span><span class="line" line="55"><span style="--shiki-default:#032F62">        - Proper state management for React components
</span></span><span class="line" line="56"><span style="--shiki-default:#032F62">        - RESTful API endpoints with comprehensive error handling
</span></span><span class="line" line="57"><span style="--shiki-default:#032F62">        - Mobile-first responsive design
</span></span><span class="line" line="58"><span style="--shiki-default:#032F62">        - Proper timezone handling (use moment-timezone or date-fns-tz)
</span></span><span class="line" line="59"><span style="--shiki-default:#032F62">        - WCAG 2.1 accessibility compliance
</span></span><span class="line" line="60"><span emptyLinePlaceholder>
</span></span><span class="line" line="61"><span style="--shiki-default:#032F62">        Flight-Specific Best Practices:
</span></span><span class="line" line="62"><span style="--shiki-default:#032F62">        - Accurate fare calculations (base fare + taxes + fees + surcharges)
</span></span><span class="line" line="63"><span style="--shiki-default:#032F62">        - Flight duration calculations across timezones
</span></span><span class="line" line="64"><span style="--shiki-default:#032F62">        - Search filter logic (price range, number of stops, airlines, departure/arrival times)
</span></span><span class="line" line="65"><span style="--shiki-default:#032F62">        - Sort algorithms (best value, fastest, cheapest)
</span></span><span class="line" line="66"><span style="--shiki-default:#032F62">        - Handle edge cases: date line crossing, daylight saving time, red-eye flights
</span></span><span class="line" line="67"><span style="--shiki-default:#032F62">        - Currency amounts use proper decimal handling (avoid floating point errors)
</span></span><span class="line" line="68"><span style="--shiki-default:#032F62">        - Dates use ISO 8601 format
</span></span><span class="line" line="69"><span style="--shiki-default:#032F62">        - Flight codes follow IATA standards (3-letter airport codes)
</span></span><span class="line" line="70"><span emptyLinePlaceholder>
</span></span><span class="line" line="71"><span style="--shiki-default:#032F62">        Implementation Requirements:
</span></span><span class="line" line="72"><span style="--shiki-default:#032F62">        - No TODOs or placeholder comments
</span></span><span class="line" line="73"><span style="--shiki-default:#032F62">        - All functions must be fully implemented
</span></span><span class="line" line="74"><span style="--shiki-default:#032F62">        - Include proper TypeScript types or Python type hints
</span></span><span class="line" line="75"><span style="--shiki-default:#032F62">        - Add JSDoc/docstring comments for all functions
</span></span><span class="line" line="76"><span style="--shiki-default:#032F62">        - Comprehensive error handling and input validation
</span></span><span class="line" line="77"><span style="--shiki-default:#032F62">        - Basic unit tests for critical functions
</span></span><span class="line" line="78"><span style="--shiki-default:#032F62">        - Performance considerations for handling large result sets
</span></span><span class="line" line="79"><span emptyLinePlaceholder>
</span></span><span class="line" line="80"><span style="--shiki-default:#032F62">        CRITICAL - Your final comment on the issue MUST include:
</span></span><span class="line" line="81"><span style="--shiki-default:#032F62">        - **Implementation Summary**: Brief description of what was implemented
</span></span><span class="line" line="82"><span style="--shiki-default:#032F62">        - **Files Created/Modified**: List of all files with descriptions
</span></span><span class="line" line="83"><span style="--shiki-default:#032F62">        - **Key Features**: Bullet points of main functionality
</span></span><span class="line" line="84"><span style="--shiki-default:#032F62">        - **Technical Approach**: Brief explanation of architecture/patterns used
</span></span><span class="line" line="85"><span style="--shiki-default:#032F62">        - **Testing Notes**: How to test the implementation
</span></span><span class="line" line="86"><span style="--shiki-default:#032F62">        - **Merge Request Link**: Direct link to the created MR (format: [View Merge Request](MR_URL))
</span></span><span class="line" line="87"><span emptyLinePlaceholder>
</span></span><span class="line" line="88"><span style="--shiki-default:#032F62">        IMPORTANT TOOL USAGE:
</span></span><span class="line" line="89"><span style="--shiki-default:#032F62">        - Extract the issue IID from the goal first (e.g., &quot;Issue IID: 12&quot; means issue_iid=12)
</span></span><span class="line" line="90"><span style="--shiki-default:#032F62">        - Use get_issue with project_id={{project_id}} and issue_iid=&lt;extracted_iid&gt;
</span></span><span class="line" line="91"><span style="--shiki-default:#032F62">        - Create multiple files by calling create_file multiple times (once per file)
</span></span><span class="line" line="92"><span style="--shiki-default:#032F62">        - Use create_commit to commit all files together with a descriptive commit message
</span></span><span class="line" line="93"><span style="--shiki-default:#032F62">        - Use create_merge_request to create the MR and capture the MR URL from the response
</span></span><span class="line" line="94"><span style="--shiki-default:#032F62">        - Use create_issue_note with project_id={{project_id}}, noteable_id=&lt;issue_iid&gt;, and body=&lt;your complete summary with MR link&gt;
</span></span><span class="line" line="95"><span style="--shiki-default:#032F62">        - Make sure to include the MR link in the comment body so users can easily access it
</span></span><span class="line" line="96"><span emptyLinePlaceholder>
</span></span><span class="line" line="97"><span style="--shiki-default:#22863A">      user</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#D73A49">|
</span></span><span class="line" line="98"><span style="--shiki-default:#032F62">        Goal: {{user_goal}}
</span></span><span class="line" line="99"><span style="--shiki-default:#032F62">        Project ID: {{project_id}}
</span></span><span class="line" line="100"><span emptyLinePlaceholder>
</span></span><span class="line" line="101"><span style="--shiki-default:#032F62">        Please complete the following steps:
</span></span><span class="line" line="102"><span style="--shiki-default:#032F62">        1. Extract the issue IID and retrieve full issue details
</span></span><span class="line" line="103"><span style="--shiki-default:#032F62">        2. Analyze the requirements thoroughly
</span></span><span class="line" line="104"><span style="--shiki-default:#032F62">        3. Review the existing codebase structure and patterns
</span></span><span class="line" line="105"><span style="--shiki-default:#032F62">        4. Implement the feature with production-ready code
</span></span><span class="line" line="106"><span style="--shiki-default:#032F62">        5. Create all necessary files (components, APIs, tests, documentation)
</span></span><span class="line" line="107"><span style="--shiki-default:#032F62">        6. Commit all changes with a clear commit message
</span></span><span class="line" line="108"><span style="--shiki-default:#032F62">        7. Create a merge request
</span></span><span class="line" line="109"><span style="--shiki-default:#032F62">        8. Post a detailed summary comment to the issue including the MR link
</span></span><span class="line" line="110"><span emptyLinePlaceholder>
</span></span><span class="line" line="111"><span style="--shiki-default:#22863A">      placeholder</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">history
</span></span><span class="line" line="112"><span style="--shiki-default:#22863A">    params</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="113"><span style="--shiki-default:#22863A">      timeout</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#005CC5">300
</span></span><span class="line" line="114"><span emptyLinePlaceholder>
</span></span><span class="line" line="115"><span style="--shiki-default:#22863A">routers</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="116"><span style="--shiki-default:#24292E">  - </span><span style="--shiki-default:#22863A">from</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;implement_feature&quot;
</span></span><span class="line" line="117"><span style="--shiki-default:#22863A">    to</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;end&quot;
</span></span><span class="line" line="118"><span emptyLinePlaceholder>
</span></span><span class="line" line="119"><span style="--shiki-default:#22863A">flow</span><span style="--shiki-default:#24292E">:
</span></span><span class="line" line="120"><span style="--shiki-default:#22863A">  entry_point</span><span style="--shiki-default:#24292E">: </span><span style="--shiki-default:#032F62">&quot;implement_feature&quot;
</span></span></code></pre><p><strong>Ce que fait ce flow :</strong> ce flow orchestre un agent d&#39;IA pour implémenter automatiquement une fonctionnalité en analysant les exigences du ticket, en examinant le code source, en écrivant du code prêt pour la production avec une expertise métier, et en créant une merge request avec un commentaire de synthèse détaillé.</p><p>Pour obtenir une documentation complète et des exemples, consultez les pages suivantes :</p><ul><li><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/custom.html" rel="">Documentation relative aux flows personnalisables</a></li><li><a href="https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/docs/flow_registry/v1.md" rel="">Framework de dépôt des flows (schéma YAML)</a></li></ul><h2 id="exécution-des-flows">Exécution des flows</h2><p>Les flows s&#39;exécutent sur le système de calcul de la plateforme GitLab. Lorsqu&#39;ils sont déclenchés par un événement (mention, assignation ou clic sur un bouton), une session est créée et le flow commence à s&#39;exécuter.</p><h3 id="variables-denvironnement-disponibles">Variables d&#39;environnement disponibles</h3><p>Les flows ont accès à des variables d&#39;environnement qui fournissent le contexte sur le déclencheur et l&#39;objet GitLab :</p><ul><li><strong><code className="">AI_FLOW_CONTEXT</code> :</strong> contexte sérialisé en JSON qui inclut les diffs des merge requests, les descriptions des tickets, les commentaires et les fils de discussion</li><li><strong><code className="">AI_FLOW_INPUT</code> :</strong> le texte du prompt ou du commentaire de l&#39;utilisateur qui a déclenché le flow</li><li><strong><code className="">AI_FLOW_EVENT</code> :</strong> le type d&#39;événement qui a déclenché le flow (<code className="">mention</code>, <code className="">assign</code>, <code className="">assign_reviewer</code>)</li></ul><p>Ces variables permettent à votre flow de comprendre ce qui l&#39;a déclenché et d&#39;accéder aux données GitLab pertinentes pour effectuer sa tâche.</p><h3 id="flows-multi-agents">Flows multi-agents</h3><p>Les flows personnalisés peuvent inclure plusieurs composants d&#39;agents qui travaillent ensemble de manière séquentielle. La configuration YAML du flow définit :</p><ul><li><strong>Les composants :</strong> un ou plusieurs agents (AgentComponent) ou étapes déterministes</li><li><strong>Routeurs :</strong> définissent le flow entre les composants (par exemple, du composant A au composant B jusqu&#39;à la fin)</li><li><strong>Prompts :</strong> configurent le comportement et le modèle de chaque agent</li></ul><p>Par exemple, un flow de revue de code pourrait avoir un agent de sécurité, puis un agent de qualité, puis un agent d&#39;approbation, avec des routeurs qui les connectent en séquence.</p><h3 id="surveillance-de-lexécution-des-flows">Surveillance de l&#39;exécution des flows</h3><p>Pour afficher les flows en cours d&#39;exécution pour votre projet :</p><ol><li>Accédez à <strong>Automatisation → Sessions</strong>.</li><li>Sélectionnez une session pour afficher plus de détails.</li><li>L&#39;onglet <strong>Détails</strong> affiche un lien vers les logs du job CI/CD.</li></ol><p>Les sessions affichent des informations détaillées qui incluent la progression étape par étape, les outils invoqués, le raisonnement et le processus de prise de décision.</p><h3 id="quand-utiliser-les-flows">Quand utiliser les flows</h3><ul><li>Tâches complexes multi-étapes</li><li>Automatisation en arrière-plan</li><li>Workflows basés sur les événements</li><li>Modifications multi-fichiers</li><li>Tâches chronophages</li><li>Revues/vérifications automatisées</li></ul><h2 id="prochaines-étapes">Prochaines étapes</h2><p>Vous connaissez maintenant les flows et savez comment les créer et quand les utiliser par rapport aux agents. Dans la <a href="/blog/ai-catalog-discover-and-share-agents/">Partie 5 : découvrir le catalogue d&#39;IA</a>, vous apprendrez à créer et à partager des agents et des flows dans votre organisation. Explorez le catalogue d&#39;IA pour connaître les flows et agents disponibles, les ajouter à vos projets, et publier vos propres agents et flows.</p><h2 id="ressources">Ressources</h2><ul><li><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/" rel="">Flows de GitLab Duo Agent Platform</a></li><li><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/" rel="">Documentation relative aux flows de base</a></li><li><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/custom.html" rel="">Documentation relative aux flows personnalisables</a></li><li><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/execution.html" rel="">Configuration d&#39;exécution des flows</a></li><li><a href="https://docs.gitlab.com/ci/variables/" rel="">Guide des variables CI/CD de GitLab</a></li><li><a href="https://docs.gitlab.com/user/profile/service_accounts/" rel="">Comptes de service</a></li></ul><hr /><p><strong>Article suivant :</strong> <a href="/blog/ai-catalog-discover-and-share-agents/">Partie 5 : découvrir le catalogue d&#39;IA</a></p><p><strong>Article précédent :</strong> <a href="/fr-fr/blog/understanding-agents-foundational-custom-external/">Partie 3 : comprendre les agents</a></p><style>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);}</style>]]></content>
        <author>
            <name>Itzik Gan Baruch</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/itzik-gan-baruch/</uri>
        </author>
        <published>2026-01-21T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Duo Agent Platform : comprendre les agents]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/understanding-agents-foundational-custom-external/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/understanding-agents-foundational-custom-external/"/>
        <updated>2026-01-20T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><em>Bienvenue dans la troisième partie de notre guide en huit parties, <a href="/fr-fr/blog/gitlab-duo-agent-platform-complete-getting-started-guide/">Démarrer avec GitLab Duo Agent Platform</a>, dans laquelle vous apprendrez à maîtriser la création et le déploiement d&#39;agents d&#39;IA et de workflows au sein de votre cycle de développement logiciel. Suivez ces tutoriels qui vous accompagnent de votre première interaction jusqu&#39;aux workflows d&#39;automatisation entièrement personnalisés et prêts pour la mise en production.</em></p><blockquote><p>🎯 Essayez <a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr" rel=""><strong>GitLab Duo Agent Platform</strong></a> dès aujourd&#39;hui !</p></blockquote><h2 id="quest-ce-quun-agent">Qu&#39;est-ce qu&#39;un agent ?</h2><p>Les agents sont des partenaires de collaboration d&#39;IA spécialisés au sein de <a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/" rel="">GitLab Duo Agent Platform</a>. Chaque type d&#39;agent remplit des objectifs différents et s&#39;exécute dans des contextes différents.</p><h2 id="types-dagents">Types d&#39;agents</h2><table><thead><tr><th>Type</th><th>Interface</th><th>Responsable</th><th>Cas d&#39;usage</th></tr></thead><tbody><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/" rel="">Agent de base</a></strong></td><td>GitLab Duo Chat</td><td>GitLab</td><td>Tâches de développement courantes</td></tr><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/custom/" rel="">Agent personnalisable</a></strong></td><td>GitLab Duo Chat</td><td>Vous</td><td>Workflows spécifiques à l&#39;équipe</td></tr><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/external/" rel="">Agent externe</a></strong></td><td>Plateforme</td><td>Vous, voir <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/external_examples/" rel="">exemples de configuration</a></td><td>Intégrations d&#39;IA externes</td></tr></tbody></table><h2 id="agents-de-base">Agents de base</h2><p>Conçus et maintenus par GitLab, ces agents sont disponibles immédiatement sans aucune configuration requise.</p><p>La disponibilité des agents de base peut être <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/#turn-foundational-agents-on-or-off" rel="">gérée par les propriétaires d&#39;espaces de nommage ou les administrateurs d&#39;instance</a>.</p><p>Commencez à interagir avec les agents de base en ouvrant GitLab Duo Agentic Chat dans l&#39;<a href="https://about.gitlab.com/fr-fr/blog/what-is-an-ide/" rel="" title="Qu&#39;est-ce qu&#39;un IDE ?">IDE</a> ou l&#39;interface utilisateur Web.</p><h3 id="lagent-gitlab-duo">L&#39;agent GitLab Duo</h3><p>Il s&#39;agit de l&#39;agent par défaut, votre partenaire de collaboration de développement polyvalent pour créer et modifier du code, ouvrir des merge requests, trier et mettre à jour des tickets et epics, et exécuter des workflows avec un contexte complet de la plateforme <a href="https://about.gitlab.com/fr-fr/blog/what-is-sdlc/" rel="" title="SDLC">SDLC</a>.</p><p><strong>Exemples de prompts :</strong></p><ul><li>« Explique-moi comment fonctionne le système d&#39;authentification. »</li><li>« Où se trouve la logique du profil utilisateur ? »</li><li>« Comment dois-je implémenter la fonctionnalité X ? »</li></ul><h3 id="lagent-planner">L&#39;agent Planner</h3><p>Il aide à la planification produit, à la décomposition des epics et à la création de tickets structurés.</p><p><strong>Exemples de prompts :</strong></p><ul><li>« Crée un epic pour le nouveau système de paiement avec des sous-tâches. »</li><li>« Décompose le ticket #789 en tâches plus petites. »</li><li>« Génère des critères d&#39;acceptation pour cette fonctionnalité. »</li></ul><p><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/" rel="">En savoir plus sur l&#39;agent Planner Agent.</a></p><h3 id="lagent-security-analyst">L&#39;agent Security Analyst</h3><p>Il trie les vulnérabilités, identifie les faux positifs et hiérarchise les risques de sécurité.</p><p><strong>Exemples de prompts :</strong></p><ul><li>« Trie toutes les vulnérabilités détectées lors du dernier scan. »</li><li>« Quels résultats SAST sont des faux positifs ? »</li><li>« Hiérarchise les problèmes de sécurité en fonction du risque réel. »</li></ul><p><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/security_analyst_agent.html" rel="">En savoir plus sur l&#39;agent Security Analyst Agent.</a></p><h3 id="lagent-data-analyst">L&#39;agent Data Analyst</h3><p>ll interroge, visualise et met en évidence les données à travers la plateforme de GitLab en utilisant GitLab Query Language (GLQL) pour fournir des informations exploitables sur vos projets et équipes.</p><p><strong>Exemples de prompts :</strong></p><ul><li>« Combien de merge requests ont été créées au cours du dernier trimestre ? »</li><li>« Montre-moi sur quoi chaque membre de l&#39;équipe a travaillé ce mois-ci. »</li><li>« Quelles sont les tendances en matière de délais de résolution des tickets ? »</li><li>« Trouve tous les tickets ouverts avec le label &#39;bug&#39; dans mon projet. »</li><li>« Génère une requête GLQL pour compter les merge requests par auteur. »</li></ul><p><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/data_analyst/" rel="">En savoir plus sur l&#39;agent Data Analyst Agent.</a></p><h2 id="les-agents-personnalisables">Les agents personnalisables</h2><p>Créez vos propres agents adaptés aux workflows et standards spécifiques de votre équipe.</p><h3 id="cas-dusage-courants">Cas d&#39;usage courants</h3><ul><li><strong>Agent chargé du dépannage et du débogage</strong> : il débogue les bogues logiciels et les régressions, et analyse les échecs de déploiement.</li><li><strong>Agent chargé de la documentation</strong> : il maintient la documentation conformément à vos conventions.</li><li><strong>Assistant chargé de l&#39;intégration des équipes</strong> : il aide les nouveaux membres de l&#39;équipe à se familiariser avec les pratiques spécifiques à l&#39;entreprise.</li><li><strong>Moniteur de conformité</strong> : il veille au respect des exigences réglementaires.</li><li><strong>Agent d&#39;assistance localisé</strong> : il trie les tickets d&#39;assistance dans une langue localisée, par exemple le français.</li></ul><p>Regardez l&#39;enregistrement de la présentation des cas d&#39;utilisation de la plateforme Duo Agent lors du GitLab DACH Roadshow Vienna 2025 :</p><figure className="video_container"><iframe src="https://www.youtube.com/embed/amJQkKhe5ys?si=JKYNoRWcbr9czxCR" title="GitLab DACH Roadshow Vienna 2025 Duo Agent Platform use cases talk" frameBorder="0" allowFullScreen="true"> </iframe></figure><blockquote><p><strong>🎯 Essayez maintenant :</strong> <a href="https://gitlab.navattic.com/custom-agents" rel="">démo interactive des agents personnalisables</a>. Explorez comment créer et configurer des agents personnalisés.</p></blockquote><h3 id="comment-créer-un-agent-personnalisé">Comment créer un agent personnalisé ?</h3><p>Les agents personnalisés sont configurés via les paramètres de votre projet ou de votre groupe. Le composant clé est le <strong>prompt système</strong>, qui définit le comportement et l&#39;expertise de votre agent.</p><p><strong>Exemple de prompt système</strong> de l&#39;agent personnalisé <a href="https://gitlab.com/explore/ai-catalog/agents/333/" rel=""><code className="">devops-debug-failures-agent</code></a> :</p><pre className="language-text" code="You are an expert in Dev, Ops, DevOps, and SRE, and can debug code and runtime failures.

Your speciality is that you can correlate static SDLC data with runtime data from CI/CD pipelines, logs, and other tool calls necessary.

Expect that the user has advanced knowledge, but always provide commands and steps to reproduce your analysis so they can learn from you.

Start with a short summary and suggested actions, and then go into detail with thoughts, analysis, suggestions.

Think creative and consider unknown unknowns in your debug journey.
" language="text" meta=""><code>You are an expert in Dev, Ops, DevOps, and SRE, and can debug code and runtime failures.

Your speciality is that you can correlate static SDLC data with runtime data from CI/CD pipelines, logs, and other tool calls necessary.

Expect that the user has advanced knowledge, but always provide commands and steps to reproduce your analysis so they can learn from you.

Start with a short summary and suggested actions, and then go into detail with thoughts, analysis, suggestions.

Think creative and consider unknown unknowns in your debug journey.
</code></pre><p><strong>Options de visibilité :</strong></p><ul><li><strong>Privé</strong> : il est visible uniquement par les membres du projet de gestion (rôle Developeur et niveau supérieur). Ne peut pas être activé dans d&#39;autres projets.</li><li><strong>Public</strong> : il peut être visible par tous et activable dans tout projet répondant aux prérequis. Il apparaît dans le <a href="https://docs.gitlab.com/user/duo_agent_platform/ai_catalog/" rel="">catalogue d&#39;IA</a>.<br /><img alt="Custom agent configuration" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1765373437/uubo0l32qn2enuwipd6q.png" title="Interface de configuration personnalisée de l&#39;agent" /></li></ul><p><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/custom/" rel="">Guide de configuration complet disponible dans la documentation.</a></p><h3 id="bonnes-pratiques">Bonnes pratiques</h3><p><strong>Conseils pour le prompt système :</strong></p><ul><li>Soyez précis sur le rôle et les responsabilités de l&#39;agent.</li><li>Définissez des standards de qualité et des contraintes clairs.</li><li>Incluez des exemples de résultats attendus.</li><li>Gardez les prompts concentrés sur une tâche principale.</li></ul><p><strong>Commencez progressivement :</strong></p><ul><li>Commencez par des autorisations en lecture seule.</li><li>Testez minutieusement avant d&#39;accorder un accès en écriture.</li><li>Recueillez les retours de l&#39;équipe et itérez.</li></ul><h2 id="les-agents-externes">Les agents externes</h2><p>Les agents externes s&#39;exécutent en arrière-plan sur la plateforme GitLab lorsqu&#39;ils sont déclenchés par des mentions (par exemple, <code className="">@ai-codex</code>) ou des assignations dans des tickets et des merge requests. Contrairement aux agents de base et aux agents personnalisables qui fonctionnent de manière interactive dans le chat, les agents externes s&#39;exécutent de manière asynchrone, permettant une automatisation puissante avec des fournisseurs d&#39;IA spécialisés.</p><p><strong>Gestion des identifiants :</strong> à partir de la disponibilité générale de GitLab Duo Agent Platform, les identifiants de connexion gérés par GitLab seront utilisés pour prendre en charge les agents externes, évitant aux clients d&#39;avoir à gérer et faire pivoter eux-mêmes les clés API.</p><h3 id="quand-utiliser-les-agents-externes">Quand utiliser les agents externes ?</h3><ul><li>Vous avez besoin d&#39;un comportement d&#39;IA agentique spécifique ou de <a href="https://about.gitlab.com/fr-fr/blog/2025/05/28/large-language-model/" rel="" title="Qu&#39;est-ce qu&#39;un LLM ?">LLM</a> pour des tâches spécialisées.</li><li>Vous souhaitez une automatisation déclenchée par des événements (et non un chat interactif).</li><li>Vous devez respecter des exigences spécifiques en matière de conformité ou de résidence des données.</li></ul><h3 id="pourquoi-utiliser-les-agents-externes">Pourquoi utiliser les agents externes ?</h3><ul><li><strong>Exploiter des modèles d&#39;IA spécialisés :</strong> accédez à des fonctionnalités spécifiques à certains fournisseurs comme l&#39;analyse de code de Claude Code ou la délégation de tâches d&#39;OpenAI Codex.</li><li><strong>Respecter les exigences de conformité :</strong> conservez les données auprès de fournisseurs d&#39;IA approuvés pour respecter les politiques réglementaires ou de sécurité.</li><li><strong>Tester différents fournisseurs :</strong> testez différents comportements d&#39;IA agentique et de LLM afin de trouver celui qui convient le mieux à vos workflows.</li><li><strong>Accéder à des fonctionnalités uniques :</strong> utilisez des outils spécifiques à certains fournisseurs comme l&#39;analyse de code de Claude Code ou la délégation de tâches d&#39;OpenAI Codex.</li></ul><h3 id="exemple-concret">Exemple concret</h3><p>Une équipe de développement utilise OpenAI Codex comme agent externe pour la revue de code. Lorsque les développeurs créent des merge requests, ils assignent Codex comme relecteur. L&#39;agent :</p><ol><li>Analyse les modifications apportées au code dans la merge request.</li><li>Vérifie les bonnes pratiques et les problèmes de qualité du code.</li><li>Suggère des améliorations et des optimisations.</li><li>Publie des commentaires de revue détaillés avec des recommandations spécifiques.</li><li>Fournit des liens vers la documentation pertinente.</li></ol><p>Tout cela se produit automatiquement en arrière-plan pendant que le développeur continue à travailler, avec les résultats publiés directement dans la merge request.</p><h3 id="agents-externes-pris-en-charge">Agents externes pris en charge</h3><p>Les intégrations suivantes ont été testées et sont disponibles :</p><ul><li><strong><a href="https://code.claude.com/docs/en/overview" rel="">Anthropic Claude</a></strong> : génération, revue et analyse de code</li><li><strong><a href="https://platform.openai.com/docs/guides/code" rel="">OpenAI Codex</a></strong> : assistance au code alimentée par GPT</li></ul><p><strong>Exemple d&#39;utilisation :</strong></p><pre className="language-text" code="@ai-codex Please implement this issue
" language="text" meta=""><code>@ai-codex Please implement this issue
</code></pre><p>Cela déclenche un job d&#39;exécution de runner qui exécute l&#39;outil IA externe et publie les résultats dans GitLab.</p><h3 id="configuration-des-agents-externes">Configuration des agents externes</h3><p>Pour obtenir des instructions de configuration complètes incluant les comptes de service, les déclencheurs et des exemples de configuration, consultez notre <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/external.html" rel="">documentation sur les agents externes</a>.</p><h2 id="personnalisation-du-comportement-des-agents-avec-agentsmd">Personnalisation du comportement des agents avec AGENTS.md</h2><p>Personnalisez le comportement des agents à l&#39;aide des fichiers <code className="">AGENTS.md</code> suivant le standard <a href="https://agents.md/" rel="">agents.md</a>. Pour en savoir plus, consultez la <a href="/blog/customizing-gitlab-duo-chat-rules-prompts-workflows/">Partie 8 : personnalisation de GitLab Duo Agent Platform : règles de chat, prompts et workflows</a>.</p><h2 id="choisir-le-type-dagent-le-mieux-adapté-à-vos-cas-dusage">Choisir le type d&#39;agent le mieux adapté à vos cas d&#39;usage</h2><table><thead><tr><th>Fonctionnalité</th><th>Agent de base</th><th>Agent personnalisable</th><th>Agent externe</th></tr></thead><tbody><tr><td><strong>Configuration</strong></td><td>Aucune configuration, maintenue par GitLab</td><td>Nécessite la configuration du prompt système</td><td>Nécessite la configuration du flow</td></tr><tr><td><strong>Disponibilité</strong></td><td>Disponible immédiatement dans l&#39;Agentic Chat</td><td>Disponible dans l&#39;Agentic Chat après activation dans le projet</td><td>S&#39;exécute sur la plateforme de calcul</td></tr><tr><td><strong>Personnalisation</strong></td><td>Limitée (instructions personnalisées)</td><td>Comportement personnalisable via le prompt système</td><td>Personnalisation du prompt</td></tr><tr><td><strong>Interaction</strong></td><td>Agentic Chat</td><td>Agentic Chat</td><td>Déclenché par un événement, asynchrone</td></tr><tr><td><strong>Idéal pour</strong></td><td>Des tâches de développement générales</td><td>Des workflows spécifiques à l&#39;équipe</td><td>Des intégrations IA externes</td></tr></tbody></table><h2 id="résumé">Résumé</h2><p>GitLab Duo Agent Platform offre les types d&#39;agents suivants :</p><ul><li><strong>Agent de base :</strong> des agents prêts à l&#39;emploi pour les tâches courantes (Chat, Planner, Security Analyst, Data Analyst)</li><li><strong>Agent personnalisable :</strong> des agents spécifiques à l&#39;équipe qui peuvent être créés avec des prompts et comportements personnalisés</li><li><strong>Agent externe :</strong> des agents intégrés avec des outils IA externes</li></ul><p>Commencez avec les agents de base, créez des agents personnalisés pour répondre aux besoins spécifiques de votre équipe et explorez les agents externes lorsque vous avez besoin de fournisseurs d&#39;IA spécialisés.</p><hr /><p><strong>Article suivant :</strong> <a href="/blog/understanding-flows-multi-agent-workflows/">Partie 4 : comprendre les flows</a></p><p><strong>Article précédent :</strong> <a href="/fr-fr/blog/getting-started-with-gitlab-duo-agentic-chat/">Partie 2 : démarrer avec GitLab Duo Agentic Chat</a></p>]]></content>
        <author>
            <name>Itzik Gan Baruch</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/itzik-gan-baruch/</uri>
        </author>
        <published>2026-01-20T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Mises à jour des politiques du programme de bug bounty de GitLab]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-bug-bounty-program-policy-updates/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-bug-bounty-program-policy-updates/"/>
        <updated>2026-01-20T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>GitLab a lancé <a href="https://about.gitlab.com/blog/gitlab-hackerone-bug-bounty-program-is-public-today/" rel="">son programme de bug bounty HackerOne</a> pour la première fois en 2018. Nous avons depuis travaillé avec la communauté des chercheurs pour sécuriser notre plateforme DevSecOps complète alimentée par l&#39;IA. Nous sommes ravis d&#39;annoncer les mises à jour des politiques du programme, qui reflètent notre engagement envers la transparence, les retours des chercheurs et nos efforts continus en vue de fournir des attentes claires et des processus rationalisés.</p><h2 id="les-changements-apportés">Les changements apportés</h2><h3 id="conseils-améliorés-pour-les-tests">Conseils améliorés pour les tests</h3><p>Nous mettons davantage l&#39;accent sur les environnements de test locaux pour protéger à la fois les chercheurs et notre infrastructure de production. Nous <strong>recommandons fortement les tests locaux avec le <a href="https://gitlab-org.gitlab.io/gitlab-development-kit/" rel="">GitLab Development Kit (GDK)</a></strong> pour la plupart des recherches en sécurité. Le GDK vous donne accès à des fonctionnalités de pointe avant leur publication et vous permet d&#39;expérimenter sans devoir vous préoccuper de l&#39;infrastructure de production.</p><p>Si vous devez démontrer l&#39;impact d&#39;une attaque par déni de service (DoS), nous vous recommandons de le tester sur une instance GitLab auto-gérée avec des spécifications et des ressources égales ou supérieures aux <a href="https://docs.gitlab.com/install/requirements/" rel="">exigences d&#39;installation des instances GitLab auto-gérées</a>.</p><p>Pour les vulnérabilités qui requièrent l&#39;architecture de production de GitLab.com, vous devez utiliser des comptes de test créés avec votre alias de courrier électronique HackerOne : <code className="">yourhandle@wearehackerone.com</code>.</p><h3 id="portée-affinée-pour-une-meilleure-concentration">Portée affinée pour une meilleure concentration</h3><p>Nous avons clarifié plusieurs domaines de portée en fonction des retours de la communauté :</p><p><strong>Les attaques par DoS sortent du champ d&#39;application :</strong> des exceptions peuvent être envisagées pour les vulnérabilités DoS au niveau de l&#39;application qui entraînent une interruption totale persistante du service et peuvent être exécutées via des points de terminaison non authentifiés (exemples : ReDoS, bombes logiques, etc.).</p><p><strong>Injection de prompt :</strong> l&#39;injection de prompt autonome sort du champ d&#39;application, mais peut être admise si elle sert de vecteur initial pour causer un préjudice au-delà de sa limite de sécurité.</p><p><strong>Métadonnées et énumération</strong> : la collecte générale d&#39;informations sort du champ d&#39;application, tandis que les violations de confidentialité exposant des données confidentielles tombent dans le champ d&#39;application. Nous avons fourni de nouveaux exemples détaillés qui distinguent ces deux types de problèmes sur la <a href="https://hackerone.com/gitlab" rel="">page des politiques du programme</a>.</p><h2 id="période-de-transition-pour-les-chercheurs">Période de transition pour les chercheurs</h2><p>Nous sommes conscients que les changements de politique peuvent créer de l&#39;incertitude pour les chercheurs qui mènent des enquêtes actives. Pour préserver la confiance pendant cette transition et éviter d&#39;interférer avec les importantes recherches déjà en cours :</p><ul><li>GitLab offre un délai de grâce de 7 jours pour les rapports DoS soumis avant <strong>le 22 janvier 2026 à 21 h 00, heure du Pacifique (23 janvier 2026 à 6 h 00, heure française).</strong> Les rapports soumis avant cette date seront évalués selon notre politique précédente.</li></ul><p>Votre investissement dans la sécurité de GitLab nous tient à cœur, et nous nous engageons à honorer la politique dans le cadre de laquelle vous avez commencé votre recherche.</p><h2 id="notre-engagement-envers-la-communauté">Notre engagement envers la communauté</h2><p>Ces changements reflètent notre engagement profond envers la communauté des chercheurs à travers trois principes clés.</p><p>1. Nous mettons l&#39;accent sur la transparence en établissant des limites plus claires et des critères objectifs qui réduisent l&#39;ambiguïté et préviennent les différends.</p><p>2. Nous renforçons la sécurité grâce à des conseils améliorés sur la plateforme de test qui protègent à la fois les systèmes de production et les chercheurs contre les interruptions accidentelles de service.</p><p>3. Nous assurons l&#39;équité grâce à des normes d&#39;évaluation cohérentes et à des dispositions qui garantissent un traitement équitable pour tous les chercheurs, y compris ceux qui participent déjà au programme.</p><p>Les ajustements apportés à la portée contribuent également à la durabilité du programme, car ils concentrent les ressources sur les problèmes de sécurité à fort impact et maintiennent une couverture large.</p><h2 id="lancez-vous">Lancez-vous</h2><p>Envie de contribuer à la sécurité de GitLab ?</p><ul><li><strong>Nouveaux chercheurs :</strong> visitez notre <a href="https://hackerone.com/gitlab" rel="">page consacrée au programme HackerOne</a>.</li><li><strong>Configurer des tests locaux :</strong> téléchargez le <a href="https://gitlab.com/gitlab-org/gitlab-development-kit" rel="">GitLab Development Kit</a>.</li><li><strong>Examiner les politiques :</strong> <a href="https://hackerone.com/gitlab" rel="">consultez notre documentation complète pour obtenir des directives détaillées</a>.</li><li><strong>Comprendre l&#39;évaluation de la gravité :</strong> explorez notre <a href="https://gitlab-com.gitlab.io/gl-security/appsec/cvss-calculator/" rel="">calculateur CVSS</a>.</li></ul><p>Nous remercions la communauté des chercheurs dont l&#39;engagement continu aide à maintenir la sécurité de GitLab. Votre expertise et votre dévouement font une réelle différence pour des millions d&#39;utilisateurs dans le monde.</p><hr /><p><em>Des questions sur ces changements ? Contactez notre équipe en <a href="https://gitlab.com/gitlab-com/gl-security/product-security/appsec/hackerone-questions/-/issues/new" rel="">créant un ticket</a> dans notre projet de questions HackerOne sur GitLab.</em></p>]]></content>
        <author>
            <name>Kayla Hagopian</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/kayla-hagopian/</uri>
        </author>
        <published>2026-01-20T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Démarrer avec GitLab Duo Agentic Chat]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-duo-agentic-chat/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-duo-agentic-chat/"/>
        <updated>2026-01-19T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><em>Bienvenue dans la deuxième partie de notre guide en huit parties, <a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-agent-platform-complete-getting-started-guide/" rel="">Démarrer avec GitLab Duo Agent Platform</a>, où vous apprendrez à maîtriser la création et le déploiement d&#39;agents d&#39;IA et de workflows au sein de votre cycle de vie de développement logiciel. Suivez ces tutoriels qui vous guideront de votre première interaction jusqu&#39;à la mise en place de workflows d&#39;automatisation entièrement personnalisés et prêts pour la mise en production.</em></p><h2 id="quest-ce-que-gitlab-duo-agentic-chat">Qu&#39;est-ce que GitLab Duo Agentic Chat ?</h2><p>GitLab Duo Agentic Chat est votre interface principale où vous pouvez interagir avec des agents d&#39;IA tout au long de votre workflow de développement. Contrairement aux chatbots classiques de type questions-réponses qui se contentent de répondre à des requêtes, GitLab Duo Agentic Chat est un partenaire de collaboration d&#39;IA autonome capable d&#39;agir en votre nom : il peut créer et modifier du code, ouvrir des merge requests, trier et mettre à jour des tickets/epics et exécuter des workflows avec un contexte complet de la plateforme <a href="https://about.gitlab.com/fr-fr/blog/what-is-sdlc/" rel="" title="Qu&#39;est-ce que le SDLC ?">SDLC</a>, le tout en vous informant à chaque étape.</p><blockquote><p>🎯 Essayez <strong><a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/" rel="">GitLab Duo Agent Platform</a></strong> dès aujourd&#39;hui !</p></blockquote><p><strong>Capacités clés :</strong></p><ul><li><strong>Opérations sur le code :</strong> création de fichiers, modification de code, ouverture de merge requests.</li><li><strong>Analyse de projet :</strong> consultation des tickets, epics, merge requests, commits <a href="https://about.gitlab.com/fr-fr/blog/what-is-git/" rel="" title="Qu&#39;est-ce que Git ?">Git</a>, <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" rel="" title="Qu&#39;est-ce qu&#39;un pipeline CI/CD ?">pipelines CI/CD</a>, analyses (GLQL) et scans de sécurité.</li><li><strong>Tâches opérationnelles :</strong> hiérarchisation, mise à jour ou création de tickets et d&#39;epics, résolution des vulnérabilités, génération de documentation et de tests, correction des pipelines CI/CD en échec.</li><li><strong>Conscience du contexte :</strong> mémorisation de l&#39;historique des conversations, compréhension de l&#39;architecture du projet, recherche dans le code source, le wiki et la documentation de GitLab.</li><li><strong>Extensibilité :</strong> intégration avec des services externes via Model Context Protocol (MCP).</li><li><strong>Prise en charge de plusieurs agents :</strong> utilisation d&#39;agents spécialisés pour différentes tâches.</li></ul><blockquote><p><strong>🎯 Découvrez</strong> une <a href="https://gitlab.navattic.com/duo-agentic-chat" rel="">démo interactive de GitLab Duo Agentic Chat</a> et explorez l&#39;interface de chat ainsi que ses fonctionnalités.</p></blockquote><h2 id="accéder-à-gitlab-duo-agentic-chat">Accéder à GitLab Duo Agentic Chat</h2><table><thead><tr><th>Environnement</th><th>Mode d&#39;accès</th><th>Remarques</th></tr></thead><tbody><tr><td><strong>Interface Web</strong></td><td>Icône GitLab Duo dans le coin supérieur droit</td><td>Panneau persistant, reste ouvert lors de la navigation</td></tr><tr><td><strong>VS Code</strong></td><td>Barre latérale principale &gt; GitLab Duo Agent Platform &gt; Onglet Chat</td><td>Intégré à votre workflow IDE</td></tr><tr><td><strong>JetBrains</strong></td><td>Fenêtre d&#39;outils &gt; GitLab Duo Agent Platform &gt; Onglet Chat</td><td>Disponible dans IntelliJ, PyCharm, etc.</td></tr><tr><td><strong>Visual Studio</strong></td><td>Extensions &gt; GitLab &gt; &quot;Open Agentic Chat&quot;</td><td>Windows uniquement, GitLab 18.3 et versions supérieures</td></tr></tbody></table><h3 id="fonctionnalités-du-panneau-de-linterface-utilisateur-web">Fonctionnalités du panneau de l&#39;interface utilisateur Web</h3><ul><li><strong>Panneau réduit :</strong> icône visible dans le coin supérieur droit</li><li><strong>Panneau ouvert :</strong> barre latérale déployée (~400px de largeur)</li><li><strong>Panneau maximisé :</strong> extension pour afficher des réponses détaillées</li></ul><p><img alt="Projet GitLab avec le panneau de chat GitLab Duo ouvert" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1767618251/gdkojstbdsruen4bo5fw.png" title="Projet GitLab avec le panneau de chat GitLab Duo ouvert" /></p><h2 id="sélection-du-modèle">Sélection du modèle</h2><p>Les grands modèles de langage (<a href="https://about.gitlab.com/fr-fr/blog/what-is-a-large-language-model-llm/" rel="">LLM</a>) excellent dans différentes tâches et exigences en matière de connaissances. Choisissez le modèle approprié en fonction de vos besoins.</p><p><img alt="Sélection du modèle dans GitLab Duo Chat" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1765458800/jwryhqjmaq4flp7711wf.png" title="Sélection du modèle dans GitLab Duo Chat" /></p><h3 id="niveaux-de-configuration">Niveaux de configuration</h3><ul><li><strong>Niveau du groupe :</strong> défini par le propriétaire du groupe, s&#39;applique à tous les utilisateurs</li><li><strong>Niveau de l&#39;utilisateur :</strong> contrôle individuel lorsque le groupe l&#39;autorise</li></ul><h2 id="sélection-de-lagent">Sélection de l&#39;agent</h2><p>Les agents sont des partenaires de collaboration d&#39;IA spécialisés dans des tâches spécifiques. Basculez entre les agents selon vos besoins :</p><table><thead><tr><th>Agent</th><th>Description</th><th>Cas d&#39;utilisation</th></tr></thead><tbody><tr><td><strong>GitLab Duo</strong></td><td>Collaboration de développement polyvalente (agent par défaut)</td><td>Démarrage, questions sur les algorithmes, l&#39;architecture et les design patterns, débogage, refactorisation et explication du code</td></tr><tr><td><strong>Planner</strong></td><td>Workflows de gestion de produit et de planification</td><td>Création de tickets, planification d&#39;epics, assistance à la la roadmap, hiérarchisation des priorités</td></tr><tr><td><strong>Security Analyst</strong></td><td>Gestion des vulnérabilités et workflows de sécurité</td><td>Analyse d&#39;impact de sécurité, hiérarchisation des vulnérabilités, remédiation</td></tr><tr><td><strong>Data Analyst</strong></td><td>Consultation, visualisation et extraction de données dans GitLab</td><td>Analyse de volumes, performance d&#39;équipe, analyse des tendances, suivi des statuts, découverte d&#39;éléments de travail, génération de requêtes GLQL</td></tr><tr><td><strong>Agents personnalisables</strong></td><td>Créés par votre équipe pour des besoins spécifiques</td><td>Workflows spécifiques à l&#39;équipe, expertise métier</td></tr></tbody></table><h3 id="sélection-de-lagent-1">Sélection de l&#39;agent</h3><p><img alt="Sélection de l&#39;agent dans GitLab Duo Chat" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1765373437/todfyhlfhnhgclpecbhu.png" title="Sélection de l&#39;agent dans GitLab Duo Chat" /></p><h3 id="comment-changer-dagent">Comment changer d&#39;agent</h3><ol><li>Ouvrez GitLab Duo Agentic Chat.</li><li><a href="https://about.gitlab.com/fr-fr/blog/what-is-an-ide/" rel="" title="Qu&#39;est-ce qu&#39;un IDE ?">IDE</a> : cliquez sur le menu déroulant de l&#39;agent (sous l&#39;onglet de sélection du modèle).</li><li>Interface Web : ouvrez un nouveau chat.</li><li>Sélectionnez l&#39;agent dont vous avez besoin.</li></ol><p><img alt="Sélection du modèle dans l&#39;IDE" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1768309468/zwebhhswfp4cs3vjpesk.png" title="Sélection du modèle dans l&#39;IDE" /></p><p><img alt="Sélection du modèle dans l&#39;interface utilisateur" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1768309468/xn8yxafnnevdnxjtodhw.png" title="Sélection du modèle dans l&#39;interface utilisateur" /></p><h2 id="cas-dutilisation-courants">Cas d&#39;utilisation courants</h2><h3 id="gestion-et-hiérarchisation-des-tickets">Gestion et hiérarchisation des tickets</h3><p>Pour la gestion des tickets et les workflows de planification, utilisez l&#39;<strong><a href="https://about.gitlab.com/fr-fr/blog/ace-your-planning-without-the-context-switching/" rel="">agent Planner</a></strong>, un agent spécialisé conçu pour les tâches de gestion de produit.</p><p><strong>Exemples de prompts :</strong></p><ul><li>« Répertorie tous les tickets ouverts avec les labels “bogue” et “priorité élevée” créés au cours des 30 derniers jours. »</li><li>« Crée un ticket pour l&#39;implémentation de l&#39;authentification utilisateur avec OAuth2, inclus les critères d&#39;acceptation et les exigences techniques. »</li><li>« Analyse le ticket #456 et suggère des tickets connexes qui pourraient avoir la même cause profonde. »</li><li>« Décompose l&#39;epic #123 en tâches plus petites et indique une estimation de la complexité. »</li></ul><h3 id="analyse-et-résolution-des-vulnérabilités">Analyse et résolution des vulnérabilités</h3><p>Pour les workflows de sécurité, utilisez l&#39;<strong><a href="https://about.gitlab.com/blog/vulnerability-triage-made-simple-with-gitlab-security-analyst-agent/" rel="">agent Security Analyst</a></strong>, un agent spécialisé conçu pour la gestion et la résolution des vulnérabilités.</p><p><strong>Exemples de prompts :</strong></p><ul><li>« Montre-moi toutes les vulnérabilités critiques dans le dernier scan de pipeline. »</li><li>« Classe toutes les vulnérabilités du dernier scan de sécurité et identifie lesquelles sont des faux positifs. »</li><li>« Explique la vulnérabilité #789 en termes simples et montre-moi où elle se situe dans le code. »</li><li>« Quelle est la correction recommandée pour la vulnérabilité d&#39;injection SQL dans le point d&#39;entrée de recherche utilisateur ? »</li><li>« Crée une merge request pour corriger la vulnérabilité XSS trouvée dans <code className="">src/components/UserProfile.vue</code>. »</li></ul><h3 id="compréhension-et-documentation-du-code">Compréhension et documentation du code</h3><p>Obtenez des réponses sur votre code source sans avoir à rechercher manuellement dans les fichiers avec l&#39;agent GitLab Duo.</p><p><strong>Exemples de prompts :</strong></p><ul><li>« Comment fonctionne le flux d&#39;authentification dans cette application ? »</li><li>« Trouve tous les endroits où la fonction <code className="">sendEmail</code> est appelée. »</li><li>« Explique ce que fait la méthode <code className="">calculateDiscount</code> dans <code className="">src/pricing/calculator.ts</code>. »</li><li>« Génère la documentation pour les points de terminaison API dans <code className="">src/api/routes/</code>. »</li><li>« Quels design patterns sont utilisés dans le répertoire <code className="">src/services/</code> ? »</li></ul><h3 id="intégration-à-un-nouveau-projet">Intégration à un nouveau projet</h3><p>Mettez-vous rapidement à la page en cas de nouveau projet afin de comprendre son architecture, sa configuration et ses dépendances avec l&#39;<strong>agent GitLab Duo</strong>.</p><p><strong>Exemples de prompts :</strong></p><ul><li>« Donne-moi un aperçu de l&#39;architecture de ce projet et de ses composants principaux. »</li><li>« Où est défini le schéma de base de données ? »</li><li>« Comment configurer mon environnement de développement local ? »</li><li>« Quelles sont les dépendances principales et à quoi servent-elles ? »</li></ul><h3 id="débogage-et-dépannage-de-pipeline">Débogage et dépannage de pipeline</h3><p>Identifiez et résolvez rapidement les problèmes dans votre code et vos pipelines CI/CD grâce à l&#39;analyse assistée par l&#39;IA avec l&#39;<strong>agent GitLab Duo</strong>.</p><p><strong>Exemples de prompts :</strong></p><ul><li>« Pourquoi le pipeline CI/CD échoue-t-il à l&#39;étape de test ? »</li><li>« Analyse les logs d&#39;erreur du job #12345 et suggère des corrections. »</li><li>« Pourquoi le pipeline #9876 a-t-il échoué ? Montre-moi les logs d&#39;erreur du job de déploiement qui a échoué. »</li><li>« L&#39;application plante lors du traitement de fichiers volumineux. Aide-moi à déboguer cela. »</li><li>« Examine les commits récents qui pourraient avoir causé la régression de performance. »</li><li>« Comment puis-je optimiser le temps de build de ce pipeline ? »</li><li>« Crée un nouveau job CI/CD pour exécuter des scans de sécurité sur chaque merge request. »</li></ul><h3 id="revue-de-code-et-amélioration-de-la-qualité">Revue de code et amélioration de la qualité</h3><p>Bénéficiez d&#39;une assistance d&#39;IA durant les revues de code pour détecter les problèmes et améliorer la qualité du code avec un <strong>agent personnalisé</strong> entraîné sur les standards de codage et les bonnes pratiques de votre équipe.</p><p><strong>Exemples de prompts :</strong></p><ul><li>« Examine la merge request !234 pour détecter les bogues potentiels et les problèmes de sécurité. »</li><li>« Suggère des optimisations de performance pour les requêtes de base de données dans cette merge request. »</li><li>« Vérifie si la merge request !456 respecte nos standards de codage et nos bonnes pratiques. »</li><li>« Identifie tout problème d&#39;accessibilité dans les nouveaux composants d&#39;interface. »</li></ul><h3 id="implémentation-de-fonctionnalités">Implémentation de fonctionnalités</h3><p>Accélérez le développement en générant du code, des tests et de la documentation avec l&#39;<strong>agent GitLab Duo</strong>.</p><p><strong>Exemples de prompts :</strong></p><ul><li>« Crée un point de terminaison d&#39;<a href="https://about.gitlab.com/fr-fr/blog/what-is-rest-api/" rel="" title="API REST">API REST</a> pour l&#39;inscription utilisateur avec validation. »</li><li>« Génère des tests unitaires pour la classe <code className="">OrderService</code> avec une couverture de 80 %. »</li><li>« Implémente la pagination pour la page de liste des produits. »</li><li>« Ajoute la gestion d&#39;erreurs et la journalisation à la fonctionnalité de téléchargement de fichiers. »</li></ul><h3 id="refactorisation-et-amélioration-du-code">Refactorisation et amélioration du code</h3><p>Modernisez et améliorez le code existant avec les conseils de l&#39;IA en utilisant l&#39;<strong>agent GitLab Duo</strong>.</p><p><strong>Exemples de prompts :</strong></p><ul><li>« Refactorise <code className="">UserController</code> en fonction des principes SOLID. »</li><li>« Convertis ce fichier JavaScript en TypeScript avec des définitions de types appropriées. »</li><li>« Suggère des améliorations pour faciliter le test de cette fonction. »</li><li>« Identifie la duplication de code dans le répertoire <code className="">src/utils/</code> et suggère comment la consolider. »</li><li>« Modernise le projet de Java 8 vers Java 21. Suis les recommandations de l&#39;epic 188. »</li><li>« Crée un plan de migration pour moderniser le code mainframe COBOL, et évalue Java/Python. »</li></ul><h2 id="dépannage">Dépannage</h2><table><thead><tr><th>Problème</th><th>Causes possibles</th><th>Solutions</th></tr></thead><tbody><tr><td><strong>Le chat n&#39;apparaît pas</strong></td><td>• GitLab Duo non activé<br />• Autorisations insuffisantes</td><td>• Activez GitLab Duo pour le projet<br />• Vérifiez le rôle Développeur et rôles de niveaux supérieurs</td></tr><tr><td><strong>Sélection de modèle indisponible</strong></td><td>• Politique de groupe verrouillée<br />• Version trop ancienne</td><td>• Vérifiez auprès du propriétaire du groupe<br />• Mettez à niveau vers GitLab 18.4 et versions ultérieures</td></tr></tbody></table><p>Des conseils de dépannage supplémentaires sont disponibles dans notre <a href="https://docs.gitlab.com/user/gitlab_duo_chat/troubleshooting/" rel="">documentation</a>.</p><h2 id="perspectives">Perspectives</h2><p>GitLab Duo Agentic Chat est disponible dans les IDE et l&#39;interface utilisateur de GitLab. Les prochaines versions fourniront la prise en charge du terminal avec GitLab Duo CLI, qui est actuellement en développement. Suivez l&#39;<a href="https://gitlab.com/groups/gitlab-org/-/work_items/19070" rel="">epic produit</a> pour obtenir plus d&#39;informations.</p><p>Maintenant que vous avez découvert GitLab Duo Agentic Chat, explorez les différents types d&#39;agents et apprenez à créer des agents personnalisés dans la <a href="/fr-fr/blog/understanding-agents-foundational-custom-external/">Partie 3 : comprendre les agents</a>. Découvrez les agents de base, créez des agents personnalisés pour votre équipe et intégrez des agents externes comme Claude Code et OpenAI Codex.</p><h2 id="ressources">Ressources</h2><ul><li><a href="https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/" rel="">Documentation concernant GitLab Duo Agentic Chat</a></li><li><a href="https://docs.gitlab.com/user/duo_agent_platform/" rel="">Documentation concernant GitLab Duo Agent Platform</a></li></ul><hr /><p><strong>Article suivant :</strong> <a href="/fr-fr/blog/understanding-agents-foundational-custom-external/">Partie 3 : comprendre les agents</a></p><p><strong>Article précédent :</strong> <a href="/fr-fr/blog/introduction-to-gitlab-duo-agent-platform/">Partie 1 : démarrer avec GitLab Duo Agent Platform</a></p>]]></content>
        <author>
            <name>Itzik Gan Baruch</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/itzik-gan-baruch/</uri>
        </author>
        <published>2026-01-19T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Démarrer avec GitLab Duo Agent Platform]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/introduction-to-gitlab-duo-agent-platform/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/introduction-to-gitlab-duo-agent-platform/"/>
        <updated>2026-01-16T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><em>Bienvenue dans la Partie 1 de notre guide en huit parties, <a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-agent-platform-complete-getting-started-guide/" rel="">Démarrer avec GitLab Duo Agent Platform</a>, où vous apprendrez à maîtriser la création et le déploiement d&#39;agents d&#39;IA et de workflows au sein de votre cycle de vie de développement. Suivez des tutoriels qui vous guideront de votre première interaction jusqu&#39;à la mise en place de workflows d&#39;automatisation entièrement personnalisés et prêts pour la production.</em></p><p>GitLab Duo Agent Platform représente un changement fondamental dans la façon dont les développeurs interagissent avec l&#39;IA au cours du cycle de vie du développement logiciel. Axé non plus seulement sur le code et s&#39;appuyant sur le contexte complet du SDLC, GitLab Duo Agent Platform permet à plusieurs agents d&#39;IA spécialisés de travailler aux côtés de votre équipe, en gérant des tâches complexes de manière asynchrone tandis que vous vous concentrez sur l&#39;innovation et la résolution de problèmes.</p><p>GitLab Duo Agent Platform transforme les workflows de développement linéaires traditionnels en systèmes de collaboration multi-agents dynamiques.</p><h2 id="quest-ce-que-gitlab-duo-agent-platform">Qu&#39;est-ce que GitLab Duo Agent Platform ?</h2><p><a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/" rel="">GitLab Duo Agent Platform</a> est une couche d&#39;orchestration d&#39;IA qui permet :</p><ul><li>La collaboration asynchrone entre les développeurs et les agents d&#39;IA spécialisés</li><li>Un contexte SDLC complet qui couvre le code, les tickets, les epics, les merge requests, les pipelines CI/CD, les wikis, les analyses et les scans de sécurité</li><li>Des flows multi-agents où de nombreux agents collaborent en parallèle sur des tâches complexes</li><li>Une automatisation intelligente qui comprend les normes, les pratiques et les exigences de conformité de votre organisation</li></ul><p>Il s&#39;agit d&#39;assistants d&#39;IA pour votre équipe qui peuvent prendre en charge des workflows entiers, car ils comprennent les exigences et créent des merge requests, tandis que vous maintenez une visibilité et un contrôle complets.</p><blockquote><p>🧠 Essayez <a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/" rel=""><strong>GitLab Duo Agent Platform</strong></a> dès aujourd&#39;hui !</p></blockquote><h2 id="architecture-de-gitlab-duo-agent-platform">Architecture de GitLab Duo Agent Platform</h2><p>GitLab Duo Agent Platform se compose de plusieurs composants interconnectés qui travaillent ensemble pour fournir une assistance d&#39;IA complète. Le diagramme ci-dessous montre les <em>méthodes d&#39;interaction de l&#39;utilisateur</em> avec GitLab Duo Agent Platform. Il illustre les quatre façons dont les utilisateurs peuvent interagir avec les agents :</p><p><img alt="Diagramme d&#39;architecture de GitLab Duo Agent Platform" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1765373441/k0ktrcnyuqbq3unbcvyp.png" title="Diagramme d&#39;architecture de GitLab Duo Agent Platform" /></p><h3 id="comment-les-équipes-interagissent-avec-gitlab-duo-agent-platform">Comment les équipes interagissent avec GitLab Duo Agent Platform</h3><p><strong>Quatre façons d&#39;utiliser les agents</strong></p><ol><li><strong>GitLab Duo Agentic Chat</strong> : ouvrez le panneau de chat dans l&#39;interface GitLab ou votre IDE pour engager des conversations interactives avec les agents fondamentaux et personnalisés. Sélectionnez parmi les modèles IA disponibles et obtenez une aide en temps réel.</li><li><strong>Déclencher des flows personnalisés</strong> : mentionnez les flows dans les commentaires de tickets ou de merge requests, ou assignez des relecteurs pour déclencher automatiquement les flows personnalisés. Ceux-ci s&#39;exécutent de manière asynchrone via l&#39;exécution du runner.</li><li><strong>Déclencher des flows par défaut</strong> : construits et maintenus par GitLab, notamment <strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/developer/" rel="">le flow Déveloper (développeur)</a></strong>, <strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/code_review/" rel="">le flow Code Review (revue de code)</a></strong>, <strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/fix_pipeline/" rel="">le flow Fix CI/CD Pipeline (correction de pipelines CI/CD)</a></strong>, <strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/convert_to_gitlab_ci/" rel="">le flow Convert Jenkins to GitLab CI/CD (conversion de fichiers Jenkins en GitLab CI/CD)</a></strong>, et <strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/convert_to_gitlab_ci/" rel="">le flow Software Development (développement logiciel)</a></strong>.</li><li><strong>Déclencher des agents externes</strong> : assignez ou mentionnez des agents d&#39;IA externes (comme Claude Code ou OpenAI Codex) dans les commentaires de tickets ou de merge requests pour les déclencher automatiquement. Ceux-ci s&#39;exécutent de manière asynchrone via l&#39;exécution du runner.</li></ol><p><strong>Gestion et découverte</strong></p><ul><li><strong>Catalogue d&#39;IA</strong> : parcourez, créez et partagez des agents et des flows dans votre organisation. Découvrez les agents et les flows créés par GitLab et votre équipe, puis ajoutez-les à vos projets. Vous pouvez également créer et publier vos propres agents et flows personnalisés et les mettre à disposition.</li><li><strong>Fonctionnalités d&#39;automatisation</strong> : votre hub central où vous pouvez tout gérer. Affichez et gérez vos agents, configurez et surveillez les flows, examinez toutes les activités dans les sessions (y compris l&#39;état du pipeline), et configurez des déclencheurs pour l&#39;automatisation basée sur les événements.</li></ul><p>Explorons brièvement chaque composant (nous les approfondirons dans les articles ultérieurs) :</p><p><strong>GitLab Duo Agentic Chat</strong></p><p>Votre interface principale pour interagir avec les agents. Disponible en tant que panneau persistant dans l&#39;interface GitLab et dans votre IDE. Pour en savoir plus, consultez l&#39;article <a href="/fr-fr/blog/getting-started-with-gitlab-duo-agentic-chat/">Partie 2 : démarrer avec GitLab Duo Agentic Chat</a>.</p><p><img alt="GitLab Duo Agentic Chat" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1767618251/gdkojstbdsruen4bo5fw.png" title="Panneau GitLab Duo Agentic Chat dans l&#39;interface web" /></p><p><img alt="IDE GitLab Duo Agentic Chat" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1765373438/gjojavrvjhhvglgkvxmw.png" title="Panneau GitLab Duo Agentic Chat dans VS Code" /></p><p><strong>Agents</strong></p><p>Les agents sont des assistants spécialisés alimentés par l&#39;IA conçus pour gérer des tâches spécifiques tout au long de votre workflow de développement. Considérez-les comme des membres de votre équipe avec une expertise et des capacités uniques.</p><table><thead><tr><th>Type</th><th>Description</th><th>Où les utiliser</th><th>Configuration requise</th></tr></thead><tbody><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/" rel="">Agent par défaut</a></strong></td><td>Maintenu par GitLab pour les workflows de développement courants (Security Analyst, Planner, GitLab Duo), disponible par défaut dans le chat de tout projet</td><td>GitLab Duo Chat</td><td>Non</td></tr><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/custom/" rel="">Agent personnalisable</a></strong></td><td>Créé par vous pour les besoins spécifiques de votre équipe avec des prompts personnalisés et des outils</td><td>GitLab Duo Chat</td><td>Oui</td></tr><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/agents/external/" rel="">Agent externe</a></strong></td><td>Fournisseurs IA externes (Claude, OpenAI) déclenchés via des mentions ou des assignations</td><td>@mentions, assignations</td><td>Facultatif</td></tr></tbody></table><h3 id="à-propos-des-agents-externes">À propos des agents externes</h3><p>Les agents externes s&#39;exécutent en arrière-plan sur le calcul de la plateforme GitLab lorsqu&#39;ils sont déclenchés par des mentions (par exemple, <code className="">@ai-codex</code>) ou des assignations dans les tickets et les merge requests. Contrairement aux agents par défaut et personnalisables qui utilisent des boucles de rétroaction synchrones, les agents externes s&#39;exécutent de manière asynchrone, ce qui entraîne une automatisation puissante avec des fournisseurs IA spécialisés.</p><h3 id="les-forces-des-agents">Les forces des agents</h3><ul><li><strong>Prompts spécialisés</strong> : chaque agent possède un prompt système unique qui définit son expertise, son comportement et son style de communication.</li><li><strong>Accès aux outils</strong> : les agents peuvent lire des fichiers, accéder aux tickets/merge requests/epics, rechercher du code, analyser les logs des tâches CI/CD et les rapports de vulnérabilité, et bien plus en fonction de leur configuration.</li><li><strong>Contexte du projet :</strong> ils ont accès aux tickets, merge requests, code, pipelines CI/CD et vulnérabilités de sécurité.</li></ul><p>Pour plus d&#39;informations, consultez la <a href="/fr-fr/blog/understanding-agents-foundational-custom-external/">Partie 3 : comprendre les agents</a>. Découvrez comment créer des agents personnalisés, intégrer des fournisseurs d&#39;IA externes et configurer les prompts et les outils des agents pour les besoins spécifiques de votre équipe.</p><p><strong>Flows</strong></p><p>Les flows sont des workflows multi-étapes qui combinent plusieurs actions pour résoudre des problèmes complexes. Contrairement aux agents qui répondent à des questions, les flows exécutent des workflows complets de manière autonome via l&#39;exécution du runner.</p><table><thead><tr><th>Type</th><th>Description</th><th>Où les déclencher</th><th>Configuration requise</th></tr></thead><tbody><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/" rel="">Flows par défaut</a></strong></td><td>Maintenus par GitLab pour les workflows de développement courants (Developer <span>développeur</span>, Fix Pipeline <span>correction de pipelines</span>, Convert Jenkins to GitLab CI/CD <span>Conversion de fichiers Jenkins en GitLab CI/CD</span>, Software Development <span>Développement logiciel</span>)</td><td>Boutons d&#39;action dédiés dans l&#39;interface utilisateur ou onglet Flows de l&#39;extension IDE</td><td>Non</td></tr><tr><td><strong><a href="https://docs.gitlab.com/user/duo_agent_platform/flows/custom/" rel="">Flows personnalisables</a></strong></td><td>Workflows définis par l&#39;utilisateur que vous créez, adaptés à vos besoins</td><td>Mentions dans les tickets/merge requests, assignation</td><td>Oui</td></tr></tbody></table><h3 id="les-forces-des-flows">Les forces des flows</h3><ul><li><strong>Exécution multi-étapes</strong> : ils combinent plusieurs opérations en un seul workflow.</li><li><strong>Traitement asynchrone</strong> : ils s&#39;exécutent en arrière-plan tandis que vous continuez à travailler.</li><li><strong>Accès complet au pipeline</strong> : ils s&#39;exécutent via l&#39;exécution du runner avec un contexte de projet complet.</li><li><strong>Déclenchement en fonction d&#39;événements</strong> : ils sont déclenchés automatiquement en fonction d&#39;événements GitLab</li></ul><p>Pour plus d&#39;informations, consultez la <a href="/fr-fr/blog/understanding-flows-multi-agent-workflows/">Partie 4 : comprendre les flows</a>, y compris les workflows multi-agents.</p><h2 id="agents-vs-flows-quelle-est-la-différence">Agents vs flows : quelle est la différence ?</h2><p>Comprendre quand utiliser un agent plutôt qu&#39;un flow est essentiel pour travailler efficacement avec GitLab Duo Agent Platform.</p><table><thead><tr><th>Aspect</th><th>Agents (interactifs dans le chat)</th><th>Flows (automatisés sur la plateforme)</th></tr></thead><tbody><tr><td><strong>Objectif</strong></td><td>Travail interactif, itérations rapides, conseils sous la forme d&#39;une conversation</td><td>Tâches complexes multi-étapes, automatisation en arrière-plan, workflows basés sur des événements</td></tr><tr><td><strong>Où</strong></td><td>Chat GitLab Duo (interface web, IDE)</td><td>Tickets, merge requests, boutons d&#39;action de l&#39;interface utilisateur</td></tr><tr><td><strong>Comment</strong></td><td>Conversation en temps réel avec la capacité de prendre des mesures</td><td>Déclenchés par des événements ou des clics de bouton</td></tr><tr><td><strong>Exécution</strong></td><td>Exécution interactive et immédiate dans le contexte du chat</td><td>Exécution asynchrone via l&#39;exécution du runner</td></tr><tr><td><strong>Exemple</strong></td><td>« Refactorise cette fonction » (l&#39;agent modifie le code), « Crée des tests » (l&#39;agent génère un fichier de test)</td><td>« Génère une merge request pour le ticket #123 » (le flow crée une branche, valide et ouvre une merge request)</td></tr></tbody></table><h3 id="guide-de-décision-rapide">Guide de décision rapide</h3><ul><li>Vous travaillez de manière interactive ou souhaitez des commentaires instantanés ? → Utilisez le chat</li><li>Vous avez besoin d&#39;automatisation en arrière-plan, de revues de merge requests ou de tâches complexes dans plusieurs fichiers ? → Utilisez les flows</li></ul><h3 id="point-essentiel">Point essentiel</h3><p>Les agents et les flows peuvent tous deux prendre des mesures et créer du code. La principale différence est la façon dont ils interagissent et s&#39;exécutent : les agents communiquent de manière interactive dans votre interface de chat, tandis que les flows s&#39;exécutent de manière asynchrone en arrière-plan sur le calcul de la plateforme.</p><h4 id="catalogue-dia">Catalogue d&#39;IA</h4><p>Une bibliothèque centralisée où vous pouvez parcourir, découvrir, créer et partager des agents et des flows dans votre organisation. Vous retrouverez plus d&#39;informations à ce sujet dans la <a href="/fr-fr/blog/ai-catalog-discover-and-share-agents/">Partie 5 : découvrir le catalogue d&#39;IA</a>.</p><p><img alt="Catalogue d&#39;IA" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1767618250/sdtnio4rrbmwlh4iia4l.png" title="Catalogue d&#39;IA" /></p><h4 id="capacités-dautomatisation">Capacités d&#39;automatisation</h4><p>Votre hub pour gérer les workflows d&#39;agents et de flows :</p><ul><li><strong>Agents</strong> : affichez et gérez les agents de votre projet. Plus d&#39;informations dans la <a href="/fr-fr/blog/understanding-agents-foundational-custom-external/">Partie 3</a>.</li><li><strong>Flows</strong> : affichez, créez et gérez les flows de votre projet. Plus d&#39;informations dans la <a href="/fr-fr/blog/understanding-flows-multi-agent-workflows/">Partie 4</a>.</li><li><strong>Sessions</strong> : logs d&#39;activité des agents</li><li><strong>Déclencheurs</strong> : gestion de l&#39;automatisation basée sur les événements pour les flows de votre projet</li></ul><h2 id="comprendre-les-sessions">Comprendre les sessions</h2><p>Chaque exécution d&#39;agent et de flows crée une session qui enregistre les activités agentiques. Les sessions fournissent une transparence complète sur les événements, y compris le raisonnement de l&#39;agent, les détails d&#39;exécution, l&#39;appel d&#39;outils, les résultats et le suivi complet des décisions.</p><p><img alt="Suivi des sessions" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1767618251/jpqv5frskvgzz6fnmvjl.png" title="Aperçu des sessions avec l&#39;état d&#39;exécution et la progression" /></p><p>Pour afficher les sessions, accédez à votre projet &gt; <strong>Automatiser</strong> &gt; <strong>Sessions</strong>. Vous pourrez ensuite accéder à la console du pipeline pour voir les logs d&#39;exécution détaillés.</p><h2 id="sélection-du-modèle">Sélection du modèle</h2><p>L&#39;une des puissantes fonctionnalités de GitLab Duo Agent Platform est la capacité à choisir le modèle IA qui alimente votre conversation.</p><p><strong>Disponible dans :</strong> GitLab 18.4 et versions ultérieures</p><p><strong>Comment sélectionner le modèle :</strong></p><ol><li>Ouvrez GitLab Duo Agentic Chat.</li><li>Recherchez la liste déroulante des modèles.</li><li>Cliquez pour voir les modèles disponibles.</li><li>Sélectionnez le modèle qui convient le mieux à votre tâche.</li></ol><p><strong>Remarque :</strong> la sélection du modèle est actuellement disponible uniquement dans l&#39;interface web. L&#39;intégration IDE utilise le modèle par défaut sélectionné pour votre groupe.</p><h2 id="votre-première-interaction-avec-un-agent">Votre première interaction avec un agent</h2><p>Découvrons une simple première interaction avec GitLab Duo Agentic Chat :</p><h3 id="exemple-1-comprendre-votre-projet-agent">Exemple 1 : comprendre votre projet (agent)</h3><p><strong>Scénario :</strong> vous venez de rejoindre un projet et vous devez comprendre sa structure et son architecture.</p><p><strong>Étapes :</strong></p><ol><li>Ouvrez le panneau GitLab Duo Chat (cliquez sur l&#39;icône Duo en haut à droite).</li><li>Assurez-vous que le mode Agentique (version bêta) est activé.</li><li>Sélectionnez l&#39;agent GitLab Duo (par défaut).</li><li>Saisissez : « Donne-moi un aperçu de l&#39;architecture de ce projet ».</li><li>Appuyez sur <strong>Entrée</strong>.</li></ol><p><strong>Ce qui se passe :</strong></p><p>L&#39;agent :</p><ul><li>Analyse la structure de votre dépôt</li><li>Examine votre README, l&#39;organisation du code et la documentation</li><li>Fournit un aperçu complet avec les composants clés</li></ul><p>Vous pouvez poser des questions de suivi pour clarifier.</p><p><img alt="Chat montrant un aperçu de l&#39;architecture" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1765373438/rvdxbupzh8bupt674kyc.png" title="Chat montrant un aperçu de l&#39;architecture" /></p><h3 id="exemple-2-une-merge-request-flow">Exemple 2 : une merge request (flow)</h3><p><strong>Scénario :</strong> vous avez un ticket qui doit être résolu avec des modifications de code.</p><p><strong>Étapes :</strong></p><ol><li>Ouvrez le ticket dans GitLab.</li><li>Cliquez sur le bouton <strong>Générer une MR avec Duo</strong>.</li><li>Une session d&#39;agent démarre.</li><li>En quelques minutes, une merge request (MR) est créée avec :<ul><li>Des modifications de code dans plusieurs fichiers</li><li>Un message de validation descriptif</li><li>Une explication des modifications dans la description de la merge request</li></ul></li></ol><p><strong>Ce qui se passe :</strong></p><p>Le flow Developer :</p><ul><li>Analyse le ticket</li><li>Comprend la structure du dépôt, les modèles de conception et le contexte SDLC</li><li>Effectue les modifications de code appropriées</li><li>Ouvre une MR prête à être examinée</li></ul><p><img alt="Problème avec le bouton &quot;Générer une MR avec Duo&quot;" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1765373443/gq57mpgyftvru1fyqh4o.png" title="Problème avec le bouton « Générer une MR avec Duo »" /></p><h2 id="questions-fréquemment-posées">Questions fréquemment posées</h2><p><strong>Q : Mes conversations avec les agents sont-elles privées ?</strong></p><p>R : Oui. Les conversations suivent les modèles de confidentialité et de sécurité standard de GitLab. <a href="https://docs.gitlab.com/user/gitlab_duo/data_usage" rel="">En savoir plus.</a></p><p><strong>Q : Puis-je utiliser GitLab Duo Agent Platform avec des modèles auto-hébergés ?</strong></p><p>R : Oui. Cette approche requiert une configuration supplémentaire à partir de GitLab 18.8. Voir la <a href="https://docs.gitlab.com/administration/gitlab_duo_self_hosted/configure_duo_features/#configure-access-to-the-gitlab-duo-agent-platform" rel="">documentation GitLab</a>.</p><h2 id="perspectives">Perspectives</h2><p>Maintenant que vous avez compris les bases de GitLab Duo Agent Platform, vous êtes prêt à approfondir chaque composant :</p><ul><li><strong><a href="/fr-fr/blog/getting-started-with-gitlab-duo-agentic-chat/">Partie 2 : démarrer avec GitLab Duo Agentic Chat</a></strong>. Maîtrisez le panneau de chat persistant, découvrez les stratégies pour sélectionner un modèle, comprenez comment changer d&#39;agent et utilisez le chat efficacement dans l&#39;interface utilisateur web et tous les IDE pris en charge.</li><li><strong><a href="/fr-fr/blog/understanding-agents-foundational-custom-external/">Partie 3 : comprendre les agents</a></strong>. Explorez les agents par défaut construits par GitLab, créez des agents personnalisés avec des prompts spécialisés pour les workflows de votre équipe et intégrez les agents CLI externes de fournisseurs comme Claude Code et OpenAI Codex.</li><li><strong><a href="/fr-fr/blog/understanding-flows-multi-agent-workflows/">Partie 4 : comprendre les flows</a></strong>. Découvrez comment les flows orchestrent plusieurs agents pour résoudre des problèmes complexes, créez des workflows personnalisés définis en YAML et exploitez les fournisseurs d&#39;IA externes pour l&#39;exécution de pipeline automatisée.</li><li><strong><a href="/fr-fr/blog/ai-catalog-discover-and-share-agents/">Partie 5 : découvrir le catalogue d&#39;IA</a></strong>. Parcourez le dépôt centralisé pour découvrir les agents et les flows créés par GitLab et la communauté, ajoutez-les à vos projets et publiez vos propres solutions pour que d&#39;autres les utilisent.</li><li><strong><a href="/fr-fr/blog/monitor-manage-automate-ai-workflows/">Partie 6 : surveiller, gérer et automatiser les workflows d&#39;IA</a></strong>. Surveillez toutes les activités d&#39;agents et de flows via les sessions, configurez les déclencheurs basés sur les événements pour automatiser les workflows et gérez tout votre écosystème de GitLab Duo Agent Platform à partir d&#39;un seul endroit central.</li><li><strong><a href="/fr-fr/blog/duo-agent-platform-with-mcp/">Partie 7 : intégrer le Model Context Protocol (MCP)</a></strong>. Exploitez les capacités de GitLab Duo sur d&#39;autres systèmes en vous connectant à des outils externes comme Jira, Slack et AWS via la norme MCP ouverte et autorisez les outils d&#39;IA externes à accéder à vos données GitLab.</li><li><strong><a href="/fr-fr/blog/customizing-gitlab-duo-chat-rules-prompts-workflows/">Partie 8 : personnaliser GitLab Duo Agent Platform</a></strong>. Configurez des règles de chat personnalisées, créez des prompts système pour les agents, configurez les outils des agents, intégrez des systèmes externes avec MCP et personnalisez les flows en fonction des besoins spécifiques de votre équipe.</li></ul><h2 id="ressources">Ressources</h2><ul><li><a href="https://docs.gitlab.com/user/duo_agent_platform/" rel="">Documentation concernant GitLab Duo Agent Platform</a></li><li><a href="https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/" rel="">Site de GitLab Duo Agent Platform</a></li><li><a href="https://forum.gitlab.com/" rel="">Forum de GitLab</a></li></ul><hr /><p><strong>Article suivant :</strong> <a href="/fr-fr/blog/getting-started-with-gitlab-duo-agentic-chat/">Partie 2 : démarrer avec GitLab Duo Agentic Chat</a></p>]]></content>
        <author>
            <name>Itzik Gan Baruch</name>
            <uri>https://about.gitlab.com/fr-fr/blog/authors/itzik-gan-baruch/</uri>
        </author>
        <published>2026-01-16T00:00:00.000Z</published>
    </entry>
</feed>