<?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>2025-07-02T19:29:42.155Z</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/atom.xml"/>
    <subtitle>Gitlab Blog RSS feed</subtitle>
    <icon>https://about.gitlab.com/favicon.ico</icon>
    <rights>All rights reserved 2025,</rights>
    <entry>
        <title type="html"><![CDATA[Pourquoi choisir une plateforme DevSecOps unifiée ?]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/why-are-organizations-moving-to-a-unified-devsecops-platform/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/why-are-organizations-moving-to-a-unified-devsecops-platform/"/>
        <updated>2025-06-19T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Face aux défis croissants du développement logiciel moderne, de nombreuses entreprises migrent vers le cloud et adoptent des processus DevSecOps. Elles sont cependant confrontées à un défi de taille : les nombreux outils et systèmes hérités ne sont pas adaptés à cette évolution et les obligent souvent à créer des intégrations complexes entre une multitude d'outils pour la gestion des tâches, les pipelines CI/CD, la sécurité, la surveillance, entre autres. Cette mosaïque d’outils entraîne une complexité opérationnelle, des coûts de maintenance élevés et freine la collaboration entre les équipes de développement et celles des opérations. Les développeurs, quant à eux, éprouvent de la frustration, car ils passent constamment d'un outil à l'autre pour un même workflow de développement, de la planification à la production.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097077/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097077287.jpg" alt="Complexité et coûts opérationnels inhérents à l'intégration de plusieurs outils dans un processus DevSecOps"></p>
<p>&lt;center&gt;&lt;i&gt;Degré de complexité de l'intégration de plusieurs outils dans un processus DevSecOps&lt;/i&gt;&lt;/center&gt;</p>
<p>&lt;br&gt;&lt;/br&gt;</p>
<p>Bonne nouvelle, une solution existe : une plateforme DevSecOps complète offrant une approche unifiée du développement logiciel.</p>
<p>Cette plateforme est conçue pour les entreprises opérant dans des environnements cloud et <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSecOps?">DevSecOps</a> : tous les aspects du développement logiciel (gestion du code, processus CI/CD, gestion des tâches, sécurité, automatisation pilotée par l'IA) s'effectuent depuis une seule interface. Ainsi, tous les workflows sont centralisés, offrant aux équipes de développement et des opérations une collaboration optimisée, une communication rationalisée et une réduction significative des complexités et des perturbations opérationnelles.</p>
<p>En outre, l'expérience développeur s'améliore considérablement : les équipes d’ingénierie sont beaucoup plus heureuses de travailler avec un produit conçu spécifiquement pour les besoins du développement moderne.</p>
<p>Découvrez comment GitLab simplifie la gestion de projet, renforce la <a href="https://about.gitlab.com/fr-fr/solutions/security-compliance/" title="Sécurité et conformité">sécurité et la conformité</a>, et intègre l’IA pour transformer le développement logiciel et aider les équipes à surmonter les défis courants.</p>
<h2>Gestion de projet Agile intégrée</h2>
<p>GitLab fournit une solution holistique qui rassemble toutes les fonctionnalités nécessaires pour la gestion des projets et des tâches. Cette intégration couvre toutes les étapes du développement logiciel, y compris les <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline CI/CD ?">pipelines CI/CD</a>. Les équipes peuvent ainsi suivre en temps réel la progression du projet. Les tickets et les epics sont directement liés aux processus d'automatisation. De la planification au déploiement en production, toutes les étapes s'effectuent sans accroc. La transparence entre les équipes est ainsi renforcée, les retards sont réduits et toutes les parties prenantes ont une vision claire de l'état du développement en temps réel.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097077/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097077288.jpg" alt="Les tickets et les epics sont directement liés aux processus d'automatisation. De la planification au déploiement en production, toutes les étapes s'effectuent sans accroc."></p>
<h2>Sécurité intégrée</h2>
<p>La sécurité est au cœur de GitLab avec l'intégration de fonctionnalités de sécurité complètes. La plateforme intègre un large éventail de <a href="https://about.gitlab.com/fr-fr/blog/2024/02/27/how-to-integrate-custom-security-scanners-into-gitlab/" title="Qu'est-ce qu'un scanner de securité ?">scanners de sécurité</a> automatisés, notamment :</p>
<ul>
<li><a href="https://docs.gitlab.com/user/application_security/dependency_scanning/">L'analyse des dépendances</a></li>
<li><a href="https://docs.gitlab.com/user/application_security/sast/">Les tests statiques de sécurité des applications (SAST)</a></li>
<li><a href="https://docs.gitlab.com/user/application_security/dast/">Les tests dynamiques de sécurité des applications (DAST)</a></li>
<li><a href="https://docs.gitlab.com/user/application_security/secret_detection/">La détection des secrets</a></li>
<li><a href="https://docs.gitlab.com/user/application_security/container_scanning/">L'analyse des conteneurs</a></li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097077/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097077289.jpg" alt="Fonctionnalités de scanning de sécurité intégrées dans le processus CI/CD à différentes étapes du développement"></p>
<p>&lt;center&gt;&lt;i&gt;Fonctionnalités de scanning de sécurité intégrées dans le processus CI/CD à différentes étapes du développement&lt;/i&gt;&lt;/center&gt;</p>
<p>&lt;br&gt;&lt;/br&gt;</p>
<p>Ces contrôles de sécurité sont intégrés à chaque étape du cycle de développement logiciel, y compris dans les pipelines CI/CD, et offrent aux équipes de développement des retours immédiats sur les failles de sécurité potentielles, et ce dès le début du cycle de développement.</p>
<h2>Conformité et exigences réglementaires</h2>
<p>Au-delà de la productivité et de l'expérience utilisateur, de nombreuses entreprises, en particulier celles opérant dans les secteurs réglementés tels que les institutions financières ou les grands groupes, doivent s'assurer que leurs processus respectent des normes de sécurité et de conformité strictes. Elles doivent pouvoir appliquer des stratégies pour différents projets, par exemple en rendant obligatoire l'utilisation d'un scanner de sécurité chaque fois qu'un pipeline CI/CD s'exécute sur des branches de code spécifiques (par exemple, les branches principales ou protégées) ou en exigeant des approbations spécifiques avant de fusionner le code dans la branche principale.</p>
<p>Tout devient plus facile avec les <a href="https://about.gitlab.com/blog/2025/04/17/introducing-custom-compliance-frameworks-in-gitlab/">frameworks de conformité</a> de GitLab : cette fonctionnalité permet aux entreprises de définir et d'appliquer des stratégies structurées aux projets sélectionnés. Cette approche garantit la conformité en appliquant sans intervention manuelle des exigences réglementaires et de sécurité, tout en maintenant un workflow de développement fluide et efficace.</p>
<h2>Développement alimenté par l'IA</h2>
<p><a href="https://about.gitlab.com/fr-fr/gitlab-duo/">GitLab Duo</a> offre une assistance pilotée par l'IA à chaque étape du développement logiciel. Par conséquent, aucun outil externe n'est nécessaire. Chaque requête alimentée par l'IA est traitée dans le contexte complet du projet et du code base, ce qui permet de travailler de façon plus intelligente et plus efficace.</p>
<p>L'IA peut effectuer de nombreuses tâches, notamment :</p>
<ul>
<li>Générer automatiquement des descriptions de tâches</li>
<li>Synthétiser les discussions des tickets pour gagner un temps précieux</li>
<li>Enrichir la revue de code</li>
<li>Suggérer des améliorations pour optimiser le code</li>
<li>Automatiser la génération de tests</li>
<li>Détecter et corriger les failles de sécurité</li>
<li>Réaliser une analyse des causes profondes en cas d'échec des pipelines CI</li>
<li>Garantir le respect de la confidentialité et la sécurité des données</li>
</ul>
<p>Grâce à sa compréhension des besoins des entreprises opérant dans les secteurs fortement réglementés, en particulier dans le <a href="https://about.gitlab.com/fr-fr/solutions/public-sector/">secteur public</a> et le <a href="https://about.gitlab.com/fr-fr/solutions/finance/">secteur financier</a>, GitLab offre une plateforme unique qui permet d'exécuter des modèles d'IA dans un environnement sécurisé.</p>
<p><a href="https://about.gitlab.com/fr-fr/blog/2025/02/27/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy/" title="GitLab Duo Self-Hosted">GitLab Duo Self-Hosted</a> permet de garder un contrôle total sur la confidentialité des données, la sécurité et le déploiement de <a href="https://about.gitlab.com/blog/2025/05/29/what-is-a-large-language-model-llm/" title="Qu'est-ce qu'un grand modèle de language ?">grands modèles de langage (LLM)</a> dans leur propre infrastructure et garantit ainsi :</p>
<ul>
<li>La protection de la confidentialité des données</li>
<li>La conformité aux exigences réglementaires</li>
<li>Une sécurité maximale</li>
<li>Tous les avantages de l’IA, sans dépendre d’un réseau externe ni exposer vos systèmes à des risques</li>
</ul>
<h2>GitLab, une plateforme moderne et complète</h2>
<p>Les entreprises ont besoin d'une plateforme DevSecOps complète pour rationaliser leurs processus, renforcer la sécurité et accélérer l'innovation. C'est précisément ce qu'offre GitLab : une application unique, qui regroupe tous les outils essentiels aux équipes de développement, de sécurité et des opérations, avec une sécurité intégrée et une automatisation alimentée par l'IA.</p>
<p>Pour en savoir plus sur GitLab, découvrez nos démonstrations interactives :</p>
<ul>
<li><a href="https://gitlab.navattic.com/gitlab-premium-with-duo">GitLab Premium et Ultimate avec GitLab Duo</a> : l'assistance au développement alimentée par l'IA</li>
<li><a href="https://gitlab.navattic.com/gitlab-scans">La sécurité dans les pipelines CI/CD</a> : l'analyse de sécurité intégrée qui protège vos logiciels</li>
<li><a href="https://gitlab.navattic.com/compliance">Frameworks de conformité</a> : des stratégies appliquées à l'ensemble des projets pour une meilleure gouvernance</li>
</ul>
<blockquote>
<p>Participez à notre événement virtuel à l'occasion du lancement de GitLab 18 et découvrez ce que vous réserve notre plateforme DevSecOps, notamment le rôle de l'<a href="https://about.gitlab.com/fr-fr/topics/agentic-ai/" title="Qu'est-ce que l'IA agentique?">IA agentique</a>. <a href="https://about.gitlab.com/fr-fr/eighteen/">Inscrivez-vous dès aujourd'hui !</a></p>
</blockquote>
]]></content>
        <author>
            <name>Itzik Gan Baruch</name>
            <uri>https://about.gitlab.com/blog/authors/itzik-gan baruch</uri>
        </author>
        <published>2025-06-19T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab nommée Leader dans le rapport The Forrester Wave™: DevOps Platforms (T2 2025)]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-named-a-leader-in-the-forrester-wave-devops-platforms-q2-2025/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-named-a-leader-in-the-forrester-wave-devops-platforms-q2-2025/"/>
        <updated>2025-06-02T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Le choix d'une plateforme <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que l'approche DevSecOps ? ">DevSecOps</a> est l'une des décisions technologiques les plus stratégiques pour une entreprise. C'est pourquoi nous sommes particulièrement fiers d'annoncer que GitLab a été nommée <a href="https://about.gitlab.com/forrester-wave-devops-platform/"><strong>Leader dans le rapport The Forrester Wave™: DevOps Platforms, T2 2025</strong></a>. Notre plateforme a obtenu les meilleurs scores pour les critères qui comptent le plus aux yeux de nos clients, notamment l'expérience zero-day, les outils de développement, l'automatisation de la compilation, l'intégration continue, l'automatisation du déploiement, ainsi que l'atténuation des risques liés à l'IA, l'injection d'IA, les outils de sécurité directement intégrés et la cohésion au sein de la plateforme.</p>
<p><em><strong>« GitLab est la solution tout-en-un la plus complète. Elle s'adresse aux entreprises qui cherchent à standardiser leurs processus avec un seul achat. » -</strong></em> Rapport The Forrester Wave™ dédié aux plateformes DevOps, T2 2025</p>
<p>Cette reconnaissance vient renforcer notre conviction : les équipes de développement logiciel doivent livrer des logiciels sécurisés, plus rapidement, sans sacrifier ni la rapidité, ni la sécurité, ni la simplicité, alors que d'autres plateformes imposent ce compromis. GitLab unifie les enjeux de rapidité, de fiabilité et de gouvernance. Avec la <a href="https://about.gitlab.com/releases/2025/05/15/gitlab-18-0-released/">version 18.0 de GitLab</a> sortie en mai, nous franchissons une nouvelle étape en intégrant les <a href="https://about.gitlab.com/fr-fr/blog/gitlab-premium-with-duo/">fonctionnalités basées sur l'IA native de GitLab Duo</a>, sans frais supplémentaires. Avec GitLab Duo, nos clients bénéficient de fonctionnalités avancées, telles que la génération de tests, les suggestions de code et la refactorisation du code, directement dans GitLab Premium et GitLab Ultimate.</p>
<blockquote>
<p><a href="https://about.gitlab.com/forrester-wave-devops-platform/">Consultez le rapport Forrester dès aujourd'hui !</a></p>
</blockquote>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673518/Blog/Content%20Images/Image_DevOps-Platforms-Q2-2025.png" alt=" Graphique issu du rapport The Forrester Wave™ dédié aux plateformes DevOps, T2 2025"></p>
<h2>Une IA de pointe, sans compromis sur la sécurité</h2>
<p>Les principes de l'approche DevSecOps évoluent rapidement, et l'IA est au cœur de cette transformation. Malheureusement, de nombreux outils alimentés par l'IA imposent de choisir entre des fonctionnalités de pointe et la sécurité à l'échelle de l'entreprise.</p>
<p>Forrester a attribué à GitLab la note maximale de 5 pour 2 critères clés : l'<strong>injection d'IA</strong> et l'<strong>atténuation des risques liés à l'IA</strong>. Nous sommes fiers que notre engagement à créer des fonctionnalités d'IA innovantes qui renforcent la sécurité soit remarqué non seulement par nos clients, mais également par d'autres parties prenantes.</p>
<p>Ces deux critères se reflètent dans nos offres d'IA GitLab Duo, notamment :</p>
<ul>
<li><strong>Duo Workflow (bêta privée)</strong> : des agents d'IA autonomes capables de gérer des tâches DevSecOps complexes, avec l'implémentation de garde-fous adaptés au secteur d'activité concerné et de pistes d'audit.</li>
<li><strong>Agentic Chat</strong> : une IA contextuelle et conversationnelle adaptée à toutes les étapes du cycle de développement, des explications de code à la création de tests, avec une protection de la propriété intellectuelle et des contrôles de confidentialité intégrés.</li>
<li><strong>Suggestions de code</strong> : génération prédictive de blocs de code, définition d'une logique fonctionnelle, génération de tests et suggestion d'un code commun comme des motifs regex.</li>
<li><strong>Résolution de vulnérabilités intégrant l'IA native</strong> : détection, explication et correction automatiques des vulnérabilités, avec des merge requests générées automatiquement, qui simplifient le processus de développement.</li>
</ul>
<h2>En finir avec la multiplication des outils</h2>
<p>Les équipes DevSecOps ne veulent plus jongler entre plusieurs outils disparates et des intégrations qui les aident seulement pour une partie de leur cycle de développement logiciel. Elles ont besoin d'une expérience de développement fluide, intégrée et cohérente de bout en bout.</p>
<p>Les scores de GitLab dans les critères suivants valident notre stratégie centrée sur le client :</p>
<ul>
<li><strong>Expérience zero-day :</strong> Forrester a cité notre « forte expérience zero-day », en notant que « la plateforme est opérationnelle immédiatement », grâce notamment aux nombreux outils de migration et tutoriels complets mis à disposition.</li>
<li><strong>Outils de développement :</strong> Forrester a cité <a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/">GitLab Duo combiné à Amazon Q</a>, notre offre d'IA agentique destinée aux clients AWS, ainsi que notre environnement de développement cloud, notre plateforme de développement intégrée et nos wikis de documentation.</li>
<li><strong>Planification et alignement des projets :</strong> Forrester a noté la « robustesse de notre centre de conformité » et le fait que nous disposons d'outils pour favoriser une approche à la fois descendante et ascendante.</li>
<li><strong>Sécurité des pipelines :</strong> Forrester nous a attribué la note maximale pour ce critère.</li>
<li><strong>Automatisation des compilations et intégration continue (CI) :</strong> Forrester a cité notre automatisation des compilations et nos fonctionnalités d'intégration continue avec des pipelines de compilation en plusieurs étapes et une solide prise en charge des modèles auto-hébergés.</li>
</ul>
<h2>Téléchargez notre rapport</h2>
<p>Le fait que GitLab soit nommée Leader dans le rapport The Forrester Wave™: DevOps Platforms (T2 2025) témoigne de l'étendue et de la profondeur des fonctionnalités de notre plateforme, qui fournit une source unique de vérité pour l'ensemble du cycle de développement logiciel. Plus besoin de jongler avec plusieurs outils et multiples intégrations : GitLab offre une expérience fluide et intégrée qui augmente la productivité et réduit les points de friction. Cette distinction reflète le travail assidu de nos équipes, les nombreuses contributions de notre communauté <a href="https://about.gitlab.com/fr-fr/blog/what-is-open-source/" title="Qu'est-ce que l'open source ? ">open source</a>, les précieux retours de nos clients et notre engagement constant à façonner l'avenir du développement logiciel.</p>
<blockquote>
<h4><a href="https://about.gitlab.com/forrester-wave-devops-platform/">Téléchargez le rapport dès aujourd'hui !</a></h4>
</blockquote>
<p><em>Forrester ne cautionne aucune entreprise, aucun produit, aucune marque ou aucun service inclus dans ses publications de recherche et ne conseille à quiconque de sélectionner les produits ou services d'une entreprise ou d'une marque en fonction des notes attribuées. Les informations se fondent sur les meilleures ressources disponibles. Les opinions reflètent notre jugement du moment et peuvent évoluer. Pour en savoir plus, découvrez les <a href="https://www.forrester.com/about-us/objectivity/">critères d'objectivité de Forrester</a>.</em></p>
]]></content>
        <author>
            <name>Dave Steer</name>
            <uri>https://about.gitlab.com/blog/authors/dave-steer</uri>
        </author>
        <published>2025-06-02T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Duo Chat fait peau neuve : place à l'IA agentique ]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-duo-chat-gets-agentic-ai-makeover/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-chat-gets-agentic-ai-makeover/"/>
        <updated>2025-05-29T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Les assistants de chat basés sur l'IA générative se sont imposés comme des alliés incontournables des équipes de développement logiciel. Capables de suggérer du code, corriger des bogues et automatiser une multitude de tâches, ces assistants intelligents simplifient considérablement leur quotidien.</p>
<p>Mais imaginez un assistant qui ne se limite plus au code : capable de comprendre tous les artefacts de votre processus de développement, de gérer vos tickets, de documenter vos projets, et d’accéder à vos <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline Ci/CD ?">pipelines CI/CD</a> et vos merge requests pour vous aider à mener à bien vos tâches de développement.</p>
<p><strong>Découvrez GitLab Duo Agentic Chat, l'assistant d'IA nouvelle génération, qui succède à GitLab Duo Chat. Dernier-né de la plateforme GitLab, GitLab Duo Agentic Chat marque une avancée majeure dans l'assistance au développement basée sur l'IA native. Disponible dès aujourd'hui en <a href="https://docs.gitlab.com/policy/development_stages_support/#experiment">version expérimentale</a>,</strong> il est accessible à tous les utilisateurs de GitLab.com via l'extension GitLab Workflow pour VS Code.</p>
<p>Contrairement aux assistants de chat traditionnels basés sur une IA conversationnelle, Agentic Chat effectue des actions en votre nom. Il décompose les problèmes complexes en tâches distinctes qu'il peut accomplir. Au lieu de répondre simplement aux questions en se basant sur le contexte que vous fournissez, il offre les capacités suivantes :</p>
<ul>
<li><strong>Il détermine de manière autonome</strong> les informations dont il a besoin pour répondre à vos questions.</li>
<li><strong>Il exécute une séquence d'opérations</strong> afin de collecter ces informations à partir de plusieurs sources.</li>
<li><strong>Il formule des réponses complètes</strong> en combinant les données provenant de l'ensemble de votre projet.</li>
<li><strong>Il crée et modifie des fichiers</strong> pour vous aider à mettre en œuvre des solutions.</li>
</ul>
<p>Mais bien évidemment, en tant que développeur, vous avez toujours votre mot à dire.</p>
<p>Agentic Chat repose sur l'architecture GitLab Duo Workflow, <a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai/">actuellement disponible en version bêta privée</a> qui intègre des agents et des outils dédiés pour des tâches spécifiques : recherche contextuelle, modification de fichiers, et bien plus encore.</p>
<p><strong>Cas d'utilisation de GitLab Duo Agentic Chat</strong></p>
<p>Avec Agentic Chat, vous pouvez :</p>
<ul>
<li>
<p>Prendre en main les nouveaux projets plus rapidement en demandant à l'IA de vous guider à travers le nouveau code base.</p>
</li>
<li>
<p>Commencer à effectuer immédiatement les tâches qui vous sont attribuées, même lorsque les descriptions des tickets ne sont pas claires : Agentic Chat vous aide à faire le lien entre les exigences et les implémentations.</p>
</li>
<li>
<p>Gérer l’implémentation : lorsqu'il est temps d'apporter des modifications, Agentic Chat peut gérer le travail d'implémentation en créant et en modifiant plusieurs fichiers dans votre projet.</p>
</li>
<li>
<p>Vérifier votre solution : au moment de la mise en production, Agentic Chat peut vous aider à vérifier que votre solution répond réellement aux exigences initiales en analysant vos merge requests et en les comparant au ticket ou à la tâche d'origine.</p>
</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099210/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750099210429.png" alt="Agentic Chat - exemple"></p>
<p>&lt;center&gt;&lt;i&gt;Agentic Chat apporte des modifications au code&lt;/i&gt;&lt;/center&gt;</p>
<h2>De l'apprentissage à la livraison : un workflow en quatre étapes</h2>
<p>Pour mieux saisir l'impact d'Agentic Chat, explorons un scénario réel vécu par notre équipe d’ingénierie. Prenons l'exemple suivant : vous intégrez une nouvelle équipe, un ticket vous est attribué, mais vous ne maîtrisez pas encore le code base.</p>
<p>Pour mieux visualiser ce scénario, n'hésitez pas à regarder la vidéo de démonstration ci-dessous :</p>
<p>&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/uG9-QLAJrrg?si=kaOhYylMIaWkIuG8j&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<p><strong>Étape 1 : comprendre le projet</strong></p>
<p>Au lieu d'explorer manuellement les fichiers et la documentation, vous pouvez soumettre le prompt suivant à Agentic Chat :</p>
<pre><code class="language-unset">I am new to this project. Could you read the project structure and explain it to me?
</code></pre>
<p>Agentic Chat fournit une vue d'ensemble complète du projet en :</p>
<ul>
<li>explorant la structure des répertoires</li>
<li>lisant les fichiers README et la documentation</li>
<li>identifiant les composants et les applications clés</li>
</ul>
<p><strong>Étape 2 : comprendre la tâche qui vous a été attribuée</strong></p>
<p>Ensuite, vous devez comprendre la tâche à effectuer. Vous pouvez donc saisir le prompt suivant :</p>
<pre><code class="language-unset">I have been assigned Issue 1119. Could you help me understand this task, specifically where do I need to apply the refactoring?
</code></pre>
<p>Agentic Chat explique la tâche et propose une approche de refactorisation :</p>
<ul>
<li>en récupérant et en analysant les détails du ticket à partir du serveur GitLab distant</li>
<li>en examinant les fichiers associés au projet</li>
<li>en identifiant les emplacements spécifiques nécessitant des modifications</li>
</ul>
<p><strong>Étape 3 : mettre en œuvre la solution</strong></p>
<p>Plutôt que d'effectuer le travail manuellement, vous pouvez saisir le prompt suivant :</p>
<pre><code class="language-unset">Could you make the edits for me? Please start with steps one, two, three.
</code></pre>
<p>Agentic Chat :</p>
<ul>
<li>crée des répertoires et fichiers si nécessaire</li>
<li>extrait et refactorise le code à plusieurs emplacements</li>
<li>assure la cohérence de tous les fichiers modifiés</li>
<li>fournit un résumé de toutes les modifications apportées</li>
</ul>
<p><strong>Étape 4 : vérifier que le travail effectué est correct</strong></p>
<p>Enfin, après avoir créé votre merge request, vous pouvez vérifier votre travail avec le prompt suivant :</p>
<pre><code class="language-unset">Does my MR fully address Issue 1119?  
</code></pre>
<p>Agentic Chat confirme alors si toutes les exigences ont été prises en compte en analysant à la fois votre merge request et le ticket d'origine.</p>
<h2>Essayez Agentic Chat dès aujourd'hui !</h2>
<p>GitLab Duo Agentic Chat est actuellement disponible en tant que fonctionnalité expérimentale dans VS Code pour les utilisateurs de GitLab Duo Pro et GitLab Duo Enterprise. Découvrez les prérequis et les étapes de configuration dans notre <a href="https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/">documentation officielle</a>.</p>
<p>Cette version expérimentale d'Agentic Chat présente encore quelques limitations connues que nous nous efforçons de résoudre, y compris des temps de réponse parfois lents en raison de multiples appels API, une recherche basée sur des mots-clés plutôt que sur une recherche sémantique, ainsi qu'une prise en charge limitée des nouveaux dossiers locaux ou des projets autres que GitLab. <strong>Vos retours sont précieux pour nous aider à hiérarchiser les prochaines améliorations et à proposer Agentic Chat en disponibilité générale. C'est pourquoi nous vous invitons à partager votre expérience dans <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/542198">ce ticket</a>.</strong></p>
<h2>Quelles perspectives pour Agentic Chat ?</h2>
<p>Nous concentrons tous nos efforts sur l'amélioration d'Agentic Chat en vue de sa future disponibilité générale. À court terme, notre objectif est de réduire les temps de réponse et d'y intégrer les capacités dont GitLab Duo Chat dispose actuellement, telles que la compatibilité avec les modèles de GitLab Duo Self-Hosted, ainsi que la prise en charge des environnements JetBrains et Visual Studio, en plus de VS Code. Une fois cette nouvelle architecture pleinement implémentée dans GitLab Duo Chat, nous prévoyons également d'intégrer Agentic Chat directement au chat intégré à l'application web de GitLab. D'autres améliorations sont déjà en cours de développement, notamment : la modification directe des artefacts GitLab, la prise en charge du contexte à partir de serveurs personnalisés via MCP (Model Context Protocol) et la possibilité d'exécuter des commandes directement dans le terminal.</p>
<blockquote>
<p>Vous souhaitez découvrir l'assistance au développement autonome, mais vous n'utilisez pas encore GitLab ? Profitez dès aujourd'hui d'un <a href="https://about.gitlab.com/fr-fr/free-trial/">essai gratuit de 60 jours de GitLab Ultimate avec Duo Enterprise</a> pour tester Agentic Chat et contribuez à façonner l'avenir du développement alimenté par l'IA. Pour commencer, suivez simplement ces <a href="https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/#use-agentic-chat-in-vs-code">étapes de configuration pour VS Code</a>.</p>
</blockquote>
<p><em><strong>Avertissement : cet article de blog contient des informations relatives aux produits, fonctionnalités et caractéristiques à venir. Il est important de noter qu'elles ne sont fournies qu'à titre informatif. Veuillez ne pas vous fier à ces informations à des fins d'achat ou de planification. Comme pour tout projet, les éléments mentionnés dans cet article sont susceptibles de changer ou d’être retardés. Le développement, la sortie et le calendrier de tout produit ou fonctionnalité restent à la seule discrétion de GitLab.</strong></em></p>
<h2>En savoir plus</h2>
<ul>
<li><a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai/">GitLab Duo Workflow : une IA agentique offrant visibilité et contrôle à l'échelle de l'entreprise</a></li>
<li><a href="https://about.gitlab.com/fr-fr/topics/agentic-ai/">Qu'est-ce que l'IA agentique ?</a></li>
<li><a href="https://about.gitlab.com/blog/agentic-ai-guides-and-resources/">Agentic Chat : guides et ressources</a></li>
</ul>
]]></content>
        <author>
            <name>Torsten Linz</name>
            <uri>https://about.gitlab.com/blog/authors/torsten-linz</uri>
        </author>
        <published>2025-05-29T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Qu’est-ce qu’un grand modèle de langage (LLM) ?]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/large-language-model/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/large-language-model/"/>
        <updated>2025-05-28T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Les grands modèles de langage (ou Large Language Models) révolutionnent les approches <a href="https://about.gitlab.com/fr-fr/topics/devops/" title="Qu'est-ce que le DevOps ? ">DevOps</a> et DevSecOps en simplifiant des tâches complexes, qu’il s’agisse de créer du code, d’examiner des logs ou de détecter des vulnérabilités.</p>
<p>Dans cet article, découvrez comment fonctionnent les grands modèles de langage, leurs applications concrètes et les principaux enjeux à surmonter pour exploiter pleinement leur potentiel.</p>
<p><strong>Sommaire</strong></p>
<ul>
<li>Qu’est-ce qu’un LLM ?</li>
<li>Comment fonctionnent les grands modèles de langage ?</li>
<li>Applications des grands modèles de langage dans une approche DevSecOps</li>
<li>Quels sont les avantages des grands modèles de langage ?</li>
<li>Quels sont les défis liés à l’utilisation des LLM ?</li>
<li>Comment GitLab utilise les LLM pour ses fonctionnalités GitLab Duo ?</li>
</ul>
<h2>Qu’est-ce qu’un LLM ?</h2>
<p>Les grands modèles de langage (LLM) sont des systèmes d’intelligence artificielle capables de traiter et de générer du texte de manière autonome. Leur apprentissage repose sur l’analyse de vastes ensembles de données issues de sources variées, afin qu’ils puissent maîtriser les structures linguistiques, les relations contextuelles et les nuances du langage.</p>
<p>Les LLM représentent une avancée majeure dans le domaine de l’IA. Leur capacité à traiter, générer et interpréter du texte repose sur des techniques sophistiquées d’apprentissage automatique et de traitement automatique du langage naturel (NLP). Ces systèmes ne se contentent pas de traiter des mots isolés : ils analysent des séquences complexes pour saisir le sens global, les contextes subtils et les nuances linguistiques.</p>
<h2>Comment fonctionnent les grands modèles de langage ?</h2>
<p>Pour mieux comprendre leur fonctionnement, explorons certaines des caractéristiques clés des grands modèles de langages.</p>
<h3>Apprentissage supervisé et non supervisé</h3>
<p>Les grands modèles de langage sont entraînés selon deux approches complémentaires : l’apprentissage supervisé et l’apprentissage non supervisé. Ces deux approches du machine learning permettent de maximiser leurs capacités à analyser et à générer du texte.</p>
<ul>
<li>
<p><strong>L’apprentissage supervisé</strong> repose sur des données étiquetées, où chaque entrée est associée à un résultat attendu. Le modèle apprend à associer ces entrées aux sorties correctes en ajustant ses paramètres internes pour réduire les erreurs de prédiction. Grâce à cette approche, le modèle acquiert des connaissances précises sur des tâches spécifiques, telles que la classification de textes ou la reconnaissance d’entités nommées.</p>
</li>
<li>
<p><strong>L’apprentissage non supervisé (ou apprentissage automatique)</strong>, quant à lui, ne nécessite pas de données étiquetées. Le modèle explore de vastes volumes de texte pour découvrir des structures cachées et identifier des relations sémantiques. Ainsi, le modèle est en capacité d‘apprendre des schémas récurrents, des règles grammaticales implicites dans le texte ou encore de contextualisation des phrases et des concepts. Cette méthode permet d’entraîner les LLM sur de vastes corpus de données, accélérant considérablement leur progression sans intervention humaine directe.</p>
</li>
</ul>
<p>En combinant ces deux approches, les grands modèles de langage bénéficient autant d'un apprentissage précis guidé par des humains que d’une exploration autonome illimitée. Cette complémentarité leur permet de se développer rapidement, tout en améliorant continuellement leur capacité à comprendre et à générer du texte de manière cohérente et contextuelle.</p>
<h3>Apprentissage reposant sur un large volume de données</h3>
<p>Les grands modèles de langage sont entraînés à partir de milliards de phrases issues de sources variées, telles que des articles de presse, des forums en ligne, des documentations techniques, des études scientifiques et bien plus encore. Cette variété de sources leur permet d’acquérir une compréhension étendue et nuancée du langage naturel, allant des expressions courantes aux terminologies spécialisées.</p>
<p>La richesse des données utilisées est un facteur clé de la performance des LLM. Chaque source apporte des styles d’écriture, des contextes culturels et des niveaux de technicité différents.</p>
<p>Par exemple :</p>
<ul>
<li><strong>Des articles de presse</strong> : pour maîtriser un langage informatif et factuel.</li>
<li><strong>Des forums en ligne</strong> : pour comprendre les conversations informelles et les langages techniques des communautés spécialisées.</li>
<li><strong>Des documentations techniques et études scientifiques</strong> : pour assimiler des concepts complexes et des terminologies spécifiques, notamment dans des domaines comme le DevOps et le DevSecOps.</li>
</ul>
<p>Cette diversité de contenu permet aux LLM de reconnaître des structures linguistiques complexes, d’interpréter des phrases dans différents contextes et de s’adapter à des domaines très techniques. Dans le DevSecOps, cela signifie comprendre des commandes, des configurations, des protocoles de sécurité et même des concepts liés au développement et à la maintenance de systèmes informatiques.</p>
<p>Grâce à cette formation à grande échelle, les grands modèles de langage peuvent répondre avec précision à des questions complexes, rédiger des documentations techniques ou identifier des vulnérabilités dans des systèmes informatiques.</p>
<h3>Architecture de réseaux neuronaux et « deep learning »</h3>
<p>Les grands modèles de langage reposent sur des architectures de réseaux neuronaux avancées. Ces réseaux sont spécialement conçus pour traiter de grandes séquences de texte tout en maintenant une compréhension précise du contexte. Cet apprentissage en « deep learning » constitue un atout majeur dans le domaine du traitement automatique du langage naturel (NLP).</p>
<p>La plus connue de ces structures est l’architecture des modèles séquence à séquence (transformers). Cette architecture a révolutionné le NLP grâce à sa capacité à analyser simultanément toutes les parties d’un texte, contrairement aux approches séquentielles qui traitent les mots un par un.</p>
<p>Les modèles séquence à séquence excellent dans le traitement des textes longs. Par exemple, dans une conversation ou un document technique détaillé, ils sont capables de relier des informations distantes dans le texte pour produire des réponses précises et bien argumentées. Cette gestion du contexte est essentielle dans une approche DevSecOps, où les instructions peuvent être complexes et réparties sur plusieurs lignes de code ou étapes de configuration.</p>
<h3>Génération de texte prédictive</h3>
<p>Lorsque l'utilisateur soumet un texte, une requête ou une question, un grand modèle de langage utilise sa capacité de prédiction pour générer la suite la plus probable, fondée sur le contexte fourni.</p>
<p>Le modèle analyse chaque mot, étudie les relations grammaticales et sémantiques, puis sélectionne les termes les plus adaptés pour produire un texte cohérent et informatif. Cette approche permet de générer des réponses précises, détaillées et adaptées au ton attendu.</p>
<p>Dans les environnements DevSecOps, cette capacité devient particulièrement utile pour :</p>
<ul>
<li><strong>l’assistance au codage</strong> : génération de blocs de code ou de scripts adaptés à des configurations spécifiques.</li>
<li><strong>la résolution de problèmes techniques</strong> : propositions de solutions basées sur des descriptions de bogues ou d’erreurs.</li>
<li><strong>la rédaction de documentations techniques</strong> : création automatique de guides, de manuels ou d'instructions.</li>
</ul>
<p>La génération de texte prédictive permet ainsi d’automatiser de nombreuses tâches répétitives et d’accélérer le travail des équipes techniques.</p>
<h2>Applications des grands modèles de langage dans une approche DevSecOps</h2>
<p>Avec la montée en puissance de l’automatisation, les grands modèles de langage sont devenus des alliés incontournables pour les équipes techniques. Leur capacité à comprendre et à générer du texte de manière contextuelle leur permet d’intervenir efficacement dans des environnements complexes tels que le <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSecOps ?">DevSecOps</a>.</p>
<p>Grâce à leur puissance d’analyse et leur capacité à s’adapter aux besoins spécifiques, ces modèles offrent des solutions sur mesure pour rationaliser les processus et alléger la charge de travail des équipes techniques.</p>
<h3>Génération de code automatisée</h3>
<p>Les équipes de développement peuvent exploiter les grands modèles de langage pour transformer des spécifications fonctionnelles en code source de manière automatisée.</p>
<p>Grâce à cette capacité, elles peuvent :</p>
<ul>
<li>générer des scripts d'automatisation complexes,</li>
<li>créer des pipelines CI/CD adaptés aux processus spécifiques de l'entreprise,</li>
<li>produire des correctifs de sécurité sur mesure.</li>
<li>générer des explications de code et créer une documentation,</li>
<li>refactoriser le code en améliorant sa structure et sa lisibilité sans modifier les fonctionnalités,</li>
<li>générer des tests.</li>
</ul>
<p>En s'appuyant sur les LLM, les équipes parviennent à accélérer le développement de leurs logiciels tout en réduisant les risques d'erreurs humaines.</p>
<h3>Documentation et partage des connaissances améliorés</h3>
<p>Ces puissants outils facilitent la création de manuels d'utilisation, de descriptions d'API et de tutoriels sur mesure, parfaitement adaptés au niveau d'expertise de chaque utilisateur. En s’appuyant sur des bases de connaissances existantes, les grands modèles de langages créent des réponses contextuelles aux questions fréquentes. Cela améliore la transmission des savoirs au sein des équipes, accélère l'intégration des nouveaux membres et permet de centraliser les bonnes pratiques.</p>
<h3>Gestion des incidents et dépannage</h3>
<p>Lors d’un incident, les LLM jouent un rôle crucial en analysant en temps réel les logs et les fichiers de trace. Grâce à leur capacité à croiser des informations provenant de multiples sources, ils identifient les anomalies et proposent des solutions fondées sur des incidents similaires passés. Cette approche réduit significativement le temps de diagnostic. De plus, les LLM peuvent automatiser la création de rapports d'incidents détaillés et recommander des actions correctives précises.</p>
<h3>Création et amélioration des pipelines CI/CD</h3>
<p>Les grands modèles de langage révolutionnent la configuration des <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline CI/CD ?">pipelines CI/CD</a>. Ils peuvent non seulement aider à créer des pipelines, mais aussi à automatiser ce processus et proposer des configurations optimales basées sur des standards de l'industrie. En adaptant les workflows selon vos besoins spécifiques, ils assurent une cohérence parfaite entre les différents environnements de développement. Les tests automatisés sont renforcés par des suggestions pertinentes, limitant ainsi les risques de défaillance. Les LLM surveillent également en continu l’efficacité des pipelines et ajustent les processus pour garantir un déploiement fluide et sans interruption.</p>
<h3>Sécurité et conformité</h3>
<p>Dans un environnement DevSecOps, les grands modèles de langage deviennent des alliés précieux pour la <a href="https://about.gitlab.com/fr-fr/solutions/security-compliance/" title="Sécurité et conformité">sécurité et la conformité</a>. Ils analysent le code source à la recherche de vulnérabilités potentielles et génèrent des recommandations correctives détaillées. Les LLM peuvent également surveiller l'application des normes de sécurité en temps réel, produire des rapports de conformité complets et automatiser l'application de correctifs de sécurité dès qu'une faille est identifiée. Cette automatisation renforce la sécurité globale et garantit un respect constant des exigences légales et industrielles.</p>
<h2>Quels sont les avantages des grands modèles de langage ?</h2>
<p>Les grands modèles de langage transforment en profondeur les approches DevOps et DevSecOps, apportant des améliorations substantielles en matière de productivité, de sécurité et de qualité logicielle. En s’intégrant aux workflows existants, les LLM bouleversent les approches traditionnelles en automatisant des tâches complexes et en fournissant des solutions innovantes.</p>
<h3>Amélioration de la productivité et de l’efficacité</h3>
<p>Les grands modèles de langage jouent un rôle central dans l’amélioration de la productivité et de l’efficacité des équipes techniques. En automatisant un large éventail de tâches répétitives, ils libèrent les équipes de développement des opérations routinières. Ces dernières peuvent ainsi se concentrer sur des activités stratégiques à plus forte valeur ajoutée.</p>
<p>En outre, les LLM agissent comme des assistants techniques intelligents capables de fournir instantanément des extraits de code pertinents, adaptés au contexte spécifique de chaque projet. De cette manière, ils réduisent considérablement le temps de recherche en proposant des solutions prêtes à l’emploi pour assister les équipes dans leur travail. Cette assistance ciblée accélère la résolution des problèmes et diminue les interruptions dans les workflows.</p>
<p>Ainsi, la productivité augmente et les projets avancent plus rapidement. Les équipes techniques peuvent prendre en charge un plus grand nombre de tâches sans compromettre la qualité des livrables.</p>
<h3>Amélioration de la qualité du code et de la sécurité</h3>
<p>L’utilisation des grands modèles de langage dans le développement logiciel constitue un levier majeur pour améliorer autant la qualité du code que la sécurité des applications. Grâce à leurs capacités d’analyse avancées, les LLM peuvent examiner le code source ligne par ligne et détecter instantanément les erreurs syntaxiques, incohérences logiques et vulnérabilités potentielles. Leur aptitude à reconnaître le code défectueux permet de recommander des corrections adaptées et conformes aux meilleures pratiques du secteur.</p>
<p>Les LLM jouent aussi un rôle préventif essentiel. Ils excellent dans l'identification des failles de sécurité complexes, souvent difficiles à repérer par les humains. En analysant les dépendances, ils peuvent signaler des bibliothèques obsolètes ou vulnérables, et recommander des versions mises à jour plus sûres. Cette approche contribue au maintien d’un environnement sécurisé et conforme aux normes de sécurité en vigueur.</p>
<p>Au-delà de la correction des erreurs existantes, les LLM proposent des améliorations en suggérant des pratiques de codage et des structures de projet optimisées. Ils peuvent générer du code respectant les normes de sécurité les plus avancées, et ce, dès les premières étapes du développement.</p>
<h3>Accélération des cycles de développement</h3>
<p>Les grands modèles de langage jouent un rôle déterminant dans l’accélération des cycles de développement logiciel en automatisant des tâches clés qui, autrement, mobiliseraient de précieuses ressources humaines.</p>
<p>Les tâches complexes et répétitives, comme l’écriture de fonctions, la création de tests unitaires ou l’implémentation de composants standards, sont automatisées en quelques instants.</p>
<p>Les LLM accélèrent également la phase de validation grâce à leur capacité à suggérer des scénarios de test complets et adaptés. Ils garantissent une couverture de test plus étendue en un minimum de temps, réduisant les risques d’erreurs et facilitant la détection précoce des anomalies. Cette approche préventive raccourcit le cycle de corrections et limite les retards liés aux problèmes de qualité du code.</p>
<p>En simplifiant les tâches techniques et en fournissant des solutions rapides et adaptées, les grands modèles de langage favorisent une réponse plus agile des entreprises aux exigences du marché. Cette accélération du cycle de développement se traduit par des mises à jour plus fréquentes, des itérations plus rapides et une meilleure capacité à adapter les produits aux besoins changeants des utilisateurs.</p>
<p>Les cycles de développement deviennent ainsi plus courts, offrant un avantage stratégique essentiel dans un environnement technologique toujours plus exigeant.</p>
<h2>Quels sont les défis liés à l’utilisation des LLM ?</h2>
<p>Malgré leurs nombreux avantages, les grands modèles de langage présentent certaines limites qui nécessitent une gestion attentive. Leur efficacité dépend fortement de la qualité des données utilisées lors de leur entraînement et de la mise à jour régulière de leurs bases de connaissances. De plus, des problèmes liés aux biais algorithmiques, à la sécurité des données et à la confidentialité peuvent survenir, exposant les entreprises à des risques opérationnels et juridiques. Une supervision humaine rigoureuse demeure indispensable pour garantir la fiabilité des résultats, assurer la conformité réglementaire et éviter les erreurs critiques.</p>
<h3>Confidentialité et sécurité des données</h3>
<p>L’entraînement des LLM repose sur de vastes volumes de données, souvent issues de sources diverses, ce qui soulève des questions quant à la protection des informations confidentielles. Les données sensibles partagées avec des plateformes cloud peuvent donc être exposées à des violations potentielles. Cela inquiète particulièrement les entreprises opérant dans des secteurs réglementés.</p>
<p>En Europe, où des réglementations strictes comme le RGPD régissent la gestion des données, de nombreuses entreprises hésitent à transférer leurs informations vers des services externes. Les exigences réglementaires, associées à la crainte d'une exploitation non autorisée des données sensibles, incitent certaines entreprises à privilégier des solutions auto-hébergées pour conserver un contrôle total sur leurs systèmes.</p>
<p>Des fournisseurs comme GitLab ont mis en place des garanties de sécurité robustes, telles que la non-rétention intentionnelle des données à caractère personnel et le chiffrement de bout en bout. Toutefois, cela peut ne pas suffire pour les clients les plus exigeants, qui préfèrent une maîtrise complète de leurs environnements. La mise en œuvre de solutions hybrides ou sur site devient alors une nécessité stratégique pour répondre aux exigences de sécurité de certaines entreprises.</p>
<p>Pour en savoir plus sur GitLab Duo Self-Hosted, cliquez sur l'image ci-dessous pour accéder à la visite guidée.</p>
<p>&lt;a href=&quot;https://gitlab.navattic.com/gitlab-duo-self-hosted&quot;&gt;&lt;img src=&quot;//images.ctfassets.net/r9o86ar0p03f/2pwIuKnYugpw309BVVMjou/84dd883d0332876b731faaed6d649140/gitlab-duo-self-hosted-product-tour.png&quot; alt=&quot;GitLab Duo Self-Hosted Product Tour&quot;&gt;&lt;/a&gt;</p>
<h3>Précision et fiabilité</h3>
<p>Bien que les grands modèles de langage soient capables de générer des résultats impressionnants, leur performance n’est pas infaillible. Ils peuvent produire des réponses incorrectes, incomplètes ou incohérentes. Cette imprécision devient particulièrement problématique dans le cadre de tâches critiques comme la génération de code de sécurité ou l'analyse de données sensibles.</p>
<p>De plus, les LLM fonctionnent sur la base de modèles probabilistes, ce qui signifie qu’ils ne « comprennent » pas véritablement le contenu qu'ils traitent, mais produisent des prédictions basées sur des probabilités statistiques. Cela peut entraîner des recommandations techniquement incorrectes, voire dangereuses, lorsqu'elles sont utilisées sans validation humaine.</p>
<p>Pour éviter ces pièges, il est essentiel de maintenir une supervision constante et d’établir des processus de validation rigoureux. Les résultats fournis par les LLM doivent alors toujours être examinés par des humains avant leur intégration dans des systèmes critiques.</p>
<p>Une stratégie de mise à jour régulière des modèles, associée à une surveillance humaine proactive, permet de réduire les erreurs et d'améliorer progressivement la fiabilité des résultats.</p>
<h2>Comment GitLab utilise les LLM pour ses fonctionnalités GitLab Duo ?</h2>
<p><a href="https://about.gitlab.com/fr-fr/gitlab-duo/" title="Qu'est-ce que GitLab Duo ? ">GitLab Duo</a> exploite la puissance des grands modèles de langage pour transformer les processus DevSecOps en intégrant des fonctionnalités alimentées par l’IA, et ce, tout au long du cycle de vie du développement logiciel. Cette approche vise à améliorer la productivité, renforcer la sécurité et automatiser des tâches complexes afin de permettre aux équipes de développement de se concentrer sur des tâches à forte valeur ajoutée.</p>
<h3>Une assistance IA pour le développement logiciel</h3>
<p>GitLab Duo propose un soutien continu tout au long du cycle de développement logiciel grâce à des recommandations en temps réel. Les équipes de développement peuvent automatiquement générer des tests unitaires, obtenir des explications détaillées sur des segments de code complexes et bénéficier de suggestions pour améliorer la qualité de leur code.</p>
<h3>Analyse proactive des défaillances CI/CD</h3>
<p>L’une des fonctionnalités clés de GitLab Duo est son assistance à l'analyse des échecs des jobs CI/CD. Grâce au LLM et l’IA, les équipes parviennent à identifier rapidement les sources d'erreurs dans leurs pipelines d’intégration et de déploiement continus.</p>
<h3>Sécurité du code renforcée</h3>
<p>GitLab Duo intègre des fonctionnalités de sécurité basées sur l’IA. Le système détecte les vulnérabilités dans le code source et propose des correctifs détaillés pour en réduire les risques. Les équipes reçoivent des explications claires sur la nature des failles identifiées et peuvent appliquer des correctifs automatisés via des <a href="https://docs.gitlab.com/ee/user/project/merge_requests/" title="Merge request">merge requests</a> générées directement par GitLab Duo. Cette fonctionnalité permet de sécuriser le développement sans pour autant ralentir les cycles de développement.</p>
<p>Pour en savoir plus sur cette fonctionnalité, cliquez sur l'image ci-dessous pour accéder à notre visite guidée.</p>
<p>&lt;a href=&quot;https://gitlab.navattic.com/ve-vr-short&quot;&gt;&lt;img src=&quot;//images.ctfassets.net/r9o86ar0p03f/R6uuYPxQoSwo56kWygRkJ/9972ec8e5371cfc30391c6f656ed35fb/gitlab-duo-enterprise-product-tour.png&quot; alt=&quot;GitLab Vulnerability Report Product Tour&quot;&gt;&lt;/a&gt;</p>
<h4>Fonctionnalités clés de GitLab Duo</h4>
<ul>
<li>
<p><a href="https://about.gitlab.com/fr-fr/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/" title="GitLab Duo Chat">GitLab Duo Chat</a> : cette fonctionnalité conversationnelle traite et génère du texte et du code de manière intuitive. Elle permet aux utilisateurs de rechercher rapidement des informations pertinentes dans des volumes importants de texte, notamment dans les tickets, les <a href="https://docs.gitlab.com/ee/user/group/epics/" title="Epics">epics</a>, le code source et la <a href="https://docs.gitlab.com/" title="Documentation GitLab">documentation GitLab</a>.</p>
</li>
<li>
<p><a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy/" title="GitLab Duo Self-Hosted">GitLab Duo Self-Hosted</a> : GitLab Duo Self-Hosted permet aux entreprises ayant des exigences strictes en matière de confidentialité de leurs données de bénéficier des fonctionnalités d’IA de GitLab Duo avec une flexibilité dans le choix du déploiement et des LLM parmi une liste d’options supportées.</p>
</li>
<li>
<p><a href="https://about.gitlab.com/direction/create/code_creation/code_suggestions/" title="Suggestions de code">Suggestions de code</a> : les équipes de développement bénéficient de suggestions de code automatisées, ce qui leur permet d'écrire du code sécurisé plus rapidement. Les tâches de codage répétitives et routinières sont ainsi automatisées, accélérant considérablement les cycles de développement logiciel.</p>
</li>
</ul>
<p>GitLab Duo ne se limite pas à ces fonctionnalités. Il offre une gamme étendue de fonctionnalités destinées à simplifier et à optimiser le développement logiciel. Que ce soit pour automatiser des tests, améliorer la collaboration entre les équipes ou renforcer la sécurité des projets, GitLab Duo constitue une solution complète pour des processus DevSecOps intelligents et efficaces.</p>
<p>Pour en savoir plus sur GitLab Duo Enterprise, cliquez sur l'image ci-dessous pour accéder à notre visite guidée.</p>
<p>&lt;a href=&quot;https://gitlab.navattic.com/duo-enterprise&quot;&gt;&lt;img src=&quot;//images.ctfassets.net/r9o86ar0p03f/4nclgZ2JUeQ0hR4wjOS30P/ba948ae1a0dce0cff4469ca06490efb1/Screenshot_2024-08-27_at_9.24.32_AM.png&quot; alt=&quot;GitLab Duo Enterprise Product Tour&quot;&gt;&lt;/a&gt;</p>
]]></content>
        <author>
            <name>GitLab France Team</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab-france team</uri>
        </author>
        <published>2025-05-28T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Premiers pas avec GitLab : comment tirer parti des variables CI/CD]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-working-with-ci-cd-variables/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-working-with-ci-cd-variables/"/>
        <updated>2025-05-27T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><em>Bienvenue dans notre série « Premiers pas avec GitLab », conçue pour guider les nouveaux utilisateurs dans la prise en main de la plateforme DevSecOps de GitLab.</em></p>
<p>Après avoir exploré les bases de <a href="https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-understanding-ci-cd/">l'approche CI/CD de GitLab</a> dans notre précédent article, concentrons-nous à présent sur les <strong>variables CI/CD</strong> afin de tirer pleinement parti de leur potentiel.</p>
<h2>Qu’est-ce qu’une variable CI/CD ?</h2>
<p>Les variables CI/CD sont des paires clé-valeur dynamiques que vous pouvez définir à différents niveaux (projet, groupe ou instance par exemple) au sein de votre environnement GitLab. Elles permettent de personnaliser les <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline CI/CD ?">pipelines CI/CD</a>, de centraliser les configurations et de gérer en toute sécurité des données sensibles. Intégrées directement dans le fichier <code>.gitlab-ci.yml</code> comme des espaces réservés pour les valeurs correspondantes, elles facilitent la maintenance, renforcent la sécurité et améliorent la flexibilité des workflows CI/CD.</p>
<h2>Quel est le rôle des variables CI/CD ?</h2>
<p>Les variables CI/CD offrent de nombreux avantages :</p>
<ul>
<li><strong>Flexibilité</strong> : adaptez facilement vos pipelines à différents environnements, configurations ou cibles de déploiement sans modifier votre script CI/CD principal.</li>
<li><strong>Sécurité</strong> : stockez en toute sécurité des informations sensibles telles que des clés API, des mots de passe et des tokens sans les exposer dans votre code.</li>
<li><strong>Maintenabilité</strong> : en centralisant les valeurs, elles simplifient la gestion et les mises à jour de votre configuration CI/CD pour qu'elle reste structurée correctement.</li>
<li><strong>Réutilisation</strong> : définies une seule fois, elles peuvent être réutilisées dans plusieurs projets, ce qui favorise la cohérence et réduit les doublons.</li>
</ul>
<h2>Portées des variables CI/CD : projet, groupe et instance</h2>
<p>GitLab permet de définir des variables CI/CD à différentes niveaux hiérarchiques du projet, avec un contrôle précis sur leur visibilité, leur portée et leur accessibilité :</p>
<ul>
<li>
<p><strong>Variables au niveau du projet</strong> : elles sont propres à un seul projet et idéales pour stocker des paramètres spécifiques, notamment :</p>
<ul>
<li>L'URL de déploiement : définissez des URL distinctes pour les environnements de préproduction et de production.</li>
<li>Les identifiants de connexion à la base de données : stockez les données de connexion à la base de données afin de pouvoir les utiliser lors d'un test ou d'un déploiement.</li>
<li>Les feature flags : activez ou désactivez les fonctionnalités à différentes étapes de votre pipeline.</li>
<li>Exemple : dans le cadre de votre projet <code>MyWebApp</code>, vous souhaitez stocker l'URL de déploiement de production. Vous pouvez définir une variable au niveau du projet, nommée <code>DPROD_DEPLOY_URL</code>, avec la valeur <code>https://mywebapp.com</code> d'URL de production.</li>
</ul>
</li>
<li>
<p><strong>Variables au niveau du groupe</strong> : elles sont partagées par tous les projets d'un groupe GitLab. Elles sont utiles pour centraliser des paramètres communs à plusieurs projets, notamment :</p>
<ul>
<li>Les clés API de services partagés : stockez-les pour des services tels qu'AWS, Google Cloud ou Docker Hub qui sont utilisés par plusieurs projets au sein du groupe.</li>
<li>Les paramètres de configuration généraux : définissez des paramètres de configuration communs qui s'appliquent à tous les projets du groupe.</li>
<li>Exemple : dans votre groupe <code>Web Apps</code>, vous souhaitez stocker une clé API pour Docker Hub. Vous pouvez définir une variable au niveau du groupe, nommée <code>DOCKER_HUB_API_KEY</code>, avec la valeur de clé API correspondante.</li>
</ul>
</li>
<li>
<p><strong>Variables au niveau de l'instance</strong> : elles sont disponibles pour tous les projets d'une instance GitLab et couramment utilisées pour les paramètres généraux qui s'appliquent à l'ensemble de l'entreprise, notamment :</p>
<ul>
<li>Le token d'enregistrement de runner par défaut : fournissez un token par défaut pour l'enregistrement de nouveaux <a href="https://docs.gitlab.com/runner/">runners</a>.</li>
<li>Les informations sur la licence : stockez les clés de licence des fonctionnalités GitLab ou des outils tiers.</li>
<li>Les paramètres d'environnement généraux : définissez des variables d'environnement qui doivent être disponibles pour tous les projets.</li>
<li>Exemple : vous souhaitez définir une image Docker par défaut pour tous les projets de votre instance GitLab. Vous pouvez définir une variable au niveau de l'instance, nommée <code>DEFAULT_DOCKER_IMAGE</code>, avec la valeur <code>ubuntu:latest</code>.</li>
</ul>
</li>
</ul>
<h2>Comment définir des variables CI/CD ?</h2>
<p>Pour définir une variable CI/CD, voici comment procéder :</p>
<ol>
<li>Cliquez sur les boutons <strong>Paramètres &gt; CI/CD</strong> de votre projet, groupe ou instance.</li>
<li>Accédez à la section <strong>Variables</strong>.</li>
<li>Cliquez sur <strong>Ajouter une variable</strong>.</li>
<li>Saisissez la <strong>clé</strong> (par exemple, <code>API_KEY</code>) et la <strong>valeur</strong> correspondante.</li>
<li>Facultatif : cochez l'option <strong>Protéger la variable</strong> si elle contient des données sensibles afin de restreindre son utilisation aux pipelines qui s'exécutent sur des branches ou des tags protégés.</li>
<li>Facultatif : cochez la case <strong>Masquer la variable</strong> pour masquer sa valeur dans les job logs, afin d'éviter toute exposition accidentelle.</li>
<li>Cliquez sur <strong>Enregistrer la variable</strong>.</li>
</ol>
<h2>Comment utiliser des variables CI/CD ?</h2>
<p>Pour utiliser une variable CI/CD dans votre fichier <code>.gitlab-ci.yml</code>, faites simplement précéder le nom de la variable du symbole <code>$</code> :</p>
<pre><code class="language-yaml">deploy_job:
  script:
    - echo &quot;Deploying to production...&quot;
    - curl -H &quot;Authorization: Bearer $API_KEY&quot; https://api.example.com/deploy
</code></pre>
<h2>Comment utiliser les variables CI/CD prédéfinies dans GitLab ?</h2>
<p>GitLab met à disposition un ensemble de <a href="https://docs.gitlab.com/ci/variables/predefined_variables/">variables CI/CD prédéfinies</a> que vous pouvez utiliser dans vos pipelines CI/CD. Celles-ci fournissent des informations contextuelles sur le pipeline, le job, le projet en cours, et bien plus encore.</p>
<p>Voici les variables plus couramment utilisées :</p>
<ul>
<li><code>$CI_COMMIT_SHA</code> : SHA de validation qui déclenche le pipeline</li>
<li><code>$CI_PROJECT_DIR</code> : répertoire dans lequel le projet est cloné</li>
<li><code>$CI_PIPELINE_ID</code> : ID du pipeline en cours</li>
<li><code>$CI_ENVIRONMENT_NAME</code> : nom de l'environnement de déploiement cible (le cas échéant)</li>
</ul>
<h2>Bonnes pratiques pour l'utilisation des variables CI/CD</h2>
<ul>
<li>Gérez en toute sécurité les variables sensibles : utilisez des variables protégées et masquées pour stocker les clés API, les mots de passe et tout autre secret.</li>
<li>Évitez de coder en dur les valeurs : stockez les valeurs de configuration dans des variables afin de renforcer la flexibilité et la maintenance de vos pipelines.</li>
<li>Organisez vos variables : utilisez des noms explicites et regroupez les variables par usage pour faciliter leur gestion.</li>
<li>Choisissez la portée appropriée : définissez vos variables au niveau du projet, groupe ou instance en fonction de leur utilisation prévue et de leur visibilité.</li>
</ul>
<h2>Tirez parti de la puissance des variables CI/CD</h2>
<p>Les variables CI/CD sont un outil puissant pour personnaliser et sécuriser vos pipelines GitLab. En maîtrisant leur fonctionnement et en comprenant leurs différentes portées, vous pouvez créer des workflows plus flexibles, plus faciles à maintenir et plus efficaces.</p>
<blockquote>
<p>Prêt à passer à l’action ? Commencez à utiliser les variables CI/CD dès aujourd'hui et profitez d'un <a href="https://about.gitlab.com/fr-fr/free-trial/">essai gratuit de 60 jours de GitLab Ultimate avec Duo Enterprise</a>.</p>
</blockquote>
<h2>Articles de la série « Premiers pas avec GitLab »</h2>
<p>Découvrez les autres articles de notre série « Premiers pas avec GitLab » :</p>
<ul>
<li><a href="https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-how-to-manage-users/">Comment gérer les utilisateurs</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-how-to-import-your-projects-to-gitlab/">Comment importer vos projets dans GitLab</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-mastering-project-management/">Comment maîtriser la gestion de projet</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/automating-agile-workflows-with-the-gitlab-triage-gem/">La gemme gitlab-triage : votre alliée pour des workflows Agile automatisés</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-understanding-ci-cd/">Comprendre l'approche CI/CD</a></li>
</ul>
]]></content>
        <author>
            <name>GitLab Team</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab-team</uri>
        </author>
        <published>2025-05-27T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[L'IA à la portée de tous les clients GitLab Premium et Ultimate]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-premium-with-duo/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-premium-with-duo/"/>
        <updated>2025-05-15T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>À l’occasion du lancement de GitLab 18.0, nous présentons nos dernières innovations en matière de workflows <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que l'approche DevSecOps ? ">DevSecOps</a>, de sécurité et de conformité, ainsi que d'IA. <strong>Cette nouvelle version marque une étape importante : GitLab Premium et GitLab Ultimate intègrent désormais, sans frais supplémentaires, les capacités d'IA essentielles de GitLab Duo.</strong> Tous les utilisateurs des éditions Premium et Ultimate bénéficient d'un accès immédiat aux fonctionnalités de chat et de suggestions de code de GitLab Duo, directement dans leurs éditeurs de code source et IDE préférés.</p>
<h2>L'IA au service des équipes de développement</h2>
<p>L'intelligence artificielle occupe désormais une place centrale dans le quotidien des équipes de développement. Elle optimise l'écriture de code en analysant le code base en temps réel, en proposant des suggestions au fil de la saisie, en générant des fonctions et méthodes adaptées au contexte du projet, en automatisant les tâches répétitives et en simplifiant les revues de code.</p>
<p>Depuis plusieurs années, nous développons <a href="https://about.gitlab.com/fr-fr/gitlab-duo/">GitLab Duo</a> pour intégrer ces capacités d'IA générative et agentique à notre plateforme, car l'écriture du code ne représente qu'une partie du cycle de développement logiciel : notre <a href="https://about.gitlab.com/fr-fr/developer-survey/">Rapport Global DevSecOps</a> révèle en effet que les développeurs consacrent 79 % de leur temps à des tâches autres que la création de code. Nous avons donc fait le choix d'intégrer l'IA à chaque étape du cycle de développement logiciel.</p>
<p>Nous franchissons aujourd'hui un nouveau cap en incluant les fonctionnalités clés de GitLab Duo dans nos éditions GitLab Premium et GitLab Ultimate, afin que chaque développeur et développeuse puisse bénéficier des avantages de l'IA, sans frais supplémentaires.</p>
<p>En effet, en intégrant les fonctionnalités de chat et de suggestions de code de GitLab Duo aux éditions GitLab Premium et Ultimate, les ingénieurs logiciels peuvent accélérer leur workflow au sein même de l'IDE, sans devoir installer d'autres outils, gérer des licences distinctes ou se soucier de la gouvernance. Il suffit aux clients Premium et Ultimate existants de passer à GitLab 18.0 pour bénéficier d'un accès instantané à ces fonctionnalités. Elles seront également disponibles pour tous les nouveaux clients.</p>
<blockquote>
<p><strong>« GitLab a déjà joué un rôle déterminant en nous aidant à nous affranchir d'une chaîne d'outils fragmentée, ce qui a permis de réduire les coûts liés à des solutions disparates et de rationaliser notre workflow. L'ajout de GitLab Duo à GitLab Premium nous permettra d'optimiser notre productivité et de réaliser encore plus d'économies, car nos développeurs consacreront moins de temps aux tâches de codage répétitives et plus de temps à la résolution de défis complexes qui génèrent une valeur métier réelle. »</strong></p>
<ul>
<li>Andrei Nita, Chief Technology Officer chez McKenzie Intelligence Services</li>
</ul>
</blockquote>
<p>&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1083723619?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;GitLab Premium with Duo Core&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;script src=&quot;https://player.vimeo.com/api/player.js&quot;&gt;&lt;/script&gt;</p>
<p>&lt;br&gt;&lt;/br&gt;
Les clients Premium et Ultimate bénéficient désormais des capacités d'IA natives suivantes :</p>
<h4>Suggestions de code de GitLab Duo</h4>
<ul>
<li>Génération de fonctions complètes et de blocs de code à partir de commentaires</li>
<li>Complétion de code intelligente au fil de la saisie</li>
<li>Prise en charge de plus de 20 langages de programmation</li>
<li>Intégration aux IDE les plus populaires</li>
</ul>
<p>Découvrez la fonctionnalité de suggestions de code de GitLab Duo dans cette présentation interactive (cliquez sur l'image pour démarrer la présentation).</p>
<p>&lt;a href=&quot;https://gitlab.navattic.com/code-suggestions&quot;&gt;&lt;img src=&quot;//images.ctfassets.net/r9o86ar0p03f/4nclgZ2JUeQ0hR4wjOS30P/ba948ae1a0dce0cff4469ca06490efb1/Screenshot_2024-08-27_at_9.24.32_AM.png&quot; alt=&quot;GitLab Duo Code Suggestions cover image&quot;&gt;&lt;/a&gt;</p>
<p>Consultez notre <a href="https://docs.gitlab.com/user/project/repository/code_suggestions/">documentation sur les suggestions de code de GitLab Duo</a> pour en savoir plus.</p>
<h4>GitLab Duo Chat</h4>
<ul>
<li>Explication de code pour faciliter la compréhension des fonctions complexes</li>
<li>Refactorisation du code existant pour améliorer sa qualité et sa maintenabilité</li>
<li>Génération de scénarios de test complets pour vous aider à détecter les bugs dès les premières étapes du développement</li>
<li>Correction des anomalies directement dans votre workflow</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673912/Blog/Content%20Images/Duo_Chat_-_gif_-_API_endpoint_explanation__3_.gif" alt="GitLab Duo Chat : explication du point de terminaison de l'API"></p>
<p>Pour en savoir plus, consultez notre <a href="https://docs.gitlab.com/user/gitlab_duo_chat/">documentation sur GitLab Duo Chat</a>.</p>
<blockquote>
<p><strong>« Pour nous, en tant qu'utilisateurs de GitLab, les suggestions de code intelligentes de GitLab Duo sont devenues un atout quotidien pour nos développeurs. Combinées à la fonctionnalité de chat, elles permettent d'effectuer des itérations rapides, avec un retour immédiat, pour des cycles de développement plus fluides et un code plus sécurisé. Elles constituent une intégration à la fois fluide et puissante à nos workflows. »</strong></p>
<ul>
<li>Felix Kortmann, Chief Technology Officer, Ignite by FORVIA HELLA</li>
</ul>
</blockquote>
<h2>GitLab Duo Enterprise disponible pour les clients GitLab Premium</h2>
<p>Face à une forte demande, nous avons le plaisir d'annoncer que les clients <a href="https://about.gitlab.com/fr-fr/pricing/premium/">GitLab Premium</a> peuvent désormais acheter une licence GitLab Duo Enterprise, notre suite complète de solutions d'IA, sans avoir à passer à GitLab Ultimate. Ils bénéficient ainsi d'une expérience d'IA exceptionnelle, avec des fonctionnalités avancées parfaitement intégrées à chaque étape du développement logiciel :</p>
<ul>
<li>
<p><a href="https://docs.gitlab.com/user/gitlab_duo/use_cases/#root-cause-analysis-use-cases">L'analyse des causes profondes</a> pour diagnostiquer et résoudre rapidement les <a href="https://about.gitlab.com/fr-fr/blog/quickly-resolve-broken-ci-cd-pipelines-with-ai/" title="Échecs de pipelines CI/CD">échecs de pipelines CI/CD</a> et veiller à leur bon fonctionnement.</p>
</li>
<li>
<p><a href="https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#have-gitlab-duo-review-your-code">La revue de code</a> qui utilise GitLab Duo comme relecteur pour accélérer la révision des modifications proposées dans une merge request.</p>
</li>
<li>
<p><a href="https://docs.gitlab.com/user/gitlab_duo_chat/">Le chat avancé</a> pour résumer les conversations. Il aide à comprendre les modifications apportées au code et fournit une assistance avancée pour la configuration.</p>
</li>
<li>
<p><a href="https://docs.gitlab.com/administration/gitlab_duo_self_hosted/">GitLab Duo Self-Hosted</a> pour déployer GitLab Duo dans des environnements air-gapped et hors ligne en hébergeant des modèles d'IA approuvés.</p>
</li>
</ul>
<p>Au-delà de la disponibilité de GitLab Duo Enterprise, nous renforçons en continu notre engagement auprès des clients GitLab Premium. Depuis le lancement de GitLab 17, <a href="https://gitlab.com/gitlab-org/gitlab/-/releases">nous avons déployé plus d'une centaine de nouvelles fonctionnalités et d'améliorations</a>, dont voici quelques exemples notables :</p>
<ul>
<li>Le <a href="https://about.gitlab.com/blog/ci-cd-catalog-goes-ga-no-more-building-pipelines-from-scratch/"><strong>catalogue CI/CD</strong></a> permet aux équipes de développement de partager, découvrir et réutiliser<br>
des configurations et des composants CI/CD préexistants.</li>
<li><a href="https://docs.gitlab.com/user/packages/virtual_registry/"><strong>Le registre des artefacts</strong></a> offre aux équipes de développement un accès sécurisé aux artefacts et une intégration homogène aux <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline CI/CD ? ">pipelines CI/CD</a>.</li>
<li><a href="https://docs.gitlab.com/user/project/remote_development/"><strong>Le développement à distance</strong></a> permet aux équipes de développement de travailler dans des environnements de développement à la demande, hébergés dans le cloud.</li>
</ul>
<blockquote>
<p><a href="https://about.gitlab.com/fr-fr/pricing/premium/#wp-premium-features">Découvrez les fonctionnalités de GitLab Premium.</a></p>
</blockquote>
<h2>GitLab Duo : une IA qui s'adapte aux besoins des entreprises</h2>
<p>GitLab propose une gamme complète de fonctionnalités GitLab Duo dans ses offres Pro et Enterprise, pour accompagner ses clients à chaque étape de leur cycle d'adoption de l'IA. Plus vos équipes progressent dans ce cycle, et plus vous pouvez utiliser de fonctionnalités pour créer, tester et déployer plus rapidement des logiciels sécurisés.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673912/Blog/Content%20Images/Screenshot_2025-05-14_at_8.50.34_AM.png" alt="Principales fonctionnalités des forfaits GitLab Duo"></p>
<h2>Comment les clients GitLab Ultimate et Premium peuvent-ils activer GitLab Duo ?</h2>
<p>À partir de GitLab 18.0, pour les clients Ultimate et Premium existants, les fonctionnalités de suggestions de code et de chat de GitLab Duo sont désactivées par défaut, mais peuvent facilement être activées.</p>
<p>Vous trouverez la procédure à suivre ci-dessous :</p>
<ol>
<li>
<p>Vérifiez avant tout que vous disposez de GitLab Premium ou Ultimate. Dans le cas contraire, vous pouvez démarrer un essai gratuit de 60 jours.</p>
</li>
<li>
<p>Activez GitLab Duo dans vos paramètres.</p>
</li>
<li>
<p>Si vous utilisez un IDE local, installez l'<a href="https://docs.gitlab.com/editor_extensions/#available-extensions">extension d'éditeur de code</a> GitLab de votre choix.</p>
</li>
<li>
<p>Commencez à utiliser les suggestions de code et le chat dans l'IDE local de votre choix, s'il est pris en charge, ou dans le Web IDE de GitLab.</p>
</li>
</ol>
<p><strong>Remarque :</strong> les fonctionnalités d'IA de GitLab seront activées automatiquement pour les nouveaux clients et les versions d'essai.</p>
<h2>Le développement IA native avec une plateforme DevSecOps</h2>
<p>L'IA redéfinit l'expérience de développement. Les entreprises ne vont pas seulement recruter davantage de talents pour créer leurs logiciels. Elles vont également disposer de davantage de code généré par l'IA et prêt à être déployé en production, <strong>ce qui rend GitLab plus essentiel que jamais.</strong></p>
<p>Nous avons conçu GitLab Premium et Ultimate avec GitLab Duo spécifiquement dans cet état d'esprit, afin d'offrir aux équipes une base sécurisée pour l'ensemble de leur code. À mesure que l'IA génère du code à l'échelle de votre entreprise, GitLab devient votre plateforme de contrôle, éliminant ainsi le recours à des outils distincts pour le scanning de sécurité, les contrôles de conformité ou la gestion des pipelines. Vous pouvez entièrement vous appuyer sur notre plateforme unique et unifiée, qui évolue avec votre entreprise. Elle vous garantit la qualité, la sécurité et la conformité de votre code jusqu’à sa mise en production.</p>
<blockquote>
<p>Pour en savoir plus sur GitLab Duo et tous ses avantages pour votre équipe, <a href="https://about.gitlab.com/fr-fr/pricing/premium/">consultez notre page GitLab Premium</a> ou, si vous êtes un client GitLab, contactez votre représentant GitLab pour organiser une démonstration. Enfin, nous vous invitons à participer au <a href="https://about.gitlab.com/eighteen/">lancement virtuel de GitLab 18</a> le 24 juin 2025, afin de découvrir l'avenir du développement logiciel basé sur l'IA native.</p>
</blockquote>
]]></content>
        <author>
            <name>David DeSanto, Chief Product Officer, GitLab</name>
            <uri>https://about.gitlab.com/blog/authors/david-desanto, chief product officer, gitlab</uri>
        </author>
        <published>2025-05-15T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[L'IA agentique : guides et ressources]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/agentic-ai-guides-and-resources/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/agentic-ai-guides-and-resources/"/>
        <updated>2025-05-07T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<h2>IA agentique : définition</h2>
<p>L'<a href="https://about.gitlab.com/fr-fr/topics/agentic-ai/" title="Qu'est-ce que l'IA agentique ?">IA agentique</a> désigne une forme avancée d'intelligence artificielle capable d'agir de manière autonome en s'appuyant sur des modèles de langage sophistiqués et le traitement du langage naturel.</p>
<p>Contrairement à l'IA générative traditionnelle, qui nécessite une intervention humaine constante, l'IA agentique comprend les instructions, prend des décisions éclairées et exécute plusieurs séquences d'action pour atteindre un objectif défini. Elle décompose les tâches complexes en étapes plus simples et adapte sa stratégie en temps réel grâce à sa capacité d'apprentissage adaptatif lorsqu'elle rencontre des obstacles.</p>
<h2>Informations clés sur l'IA agentique</h2>
<ul>
<li><a href="https://about.gitlab.com/the-source/ai/emerging-agentic-ai-trends-reshaping-software-development/">Vers une nouvelle ère du développement logiciel grâce à l’IA agentique</a> : découvrez comment l'IA agentique transforme le développement logiciel en remplaçant le codage isolé par des workflows intelligents qui améliorent la productivité et garantissent la sécurité.</li>
<li><a href="https://about.gitlab.com/fr-fr/the-source/ai/agentic-ai-unlocking-developer-potential-at-scale/">IA agentique : libérez le plein potentiel des développeurs à grande échelle</a> : découvrez comment l'IA agentique révolutionne le développement logiciel en dépassant la simple complétion de code pour donner naissance à de véritables partenaires d'IA capables de gérer des tâches complexes de manière proactive.</li>
<li><a href="https://about.gitlab.com/fr-fr/the-source/ai/ai-trends-for-2025-agentic-ai-self-hosted-models-and-more/">Tendances de l'IA en 2025 : IA agentique, modèles auto-hébergés et bien plus encore</a> : découvrez les principales tendances du développement logiciel alimenté par l'IA, des déploiements de modèles sur site aux agents d'IA intelligents et adaptatifs.</li>
<li><a href="https://about.gitlab.com/the-source/ai/how-agentic-ai-unlocks-platform-engineering-potential/">L'IA agentique au service des équipes d'ingénierie de plateforme</a> : découvrez comment l'IA agentique révolutionne l'ingénierie de plateforme en automatisant les workflows complexes et en intensifiant les efforts de standardisation.</li>
</ul>
<h2>Bonnes pratiques pour intégrer l'IA agentique</h2>
<ul>
<li><a href="https://about.gitlab.com/the-source/ai/implementing-effective-guardrails-for-ai-agents/">Agents d’IA : sécurisez leur autonomie avec des garde-fous efficaces</a> : découvrez les garde-fous de sécurité indispensables à l'approche <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSecOps ?">DevSecOps</a> pour encadrer les agents d'IA, tels que les contrôles de conformité, la sécurisation de l'infrastructure et la gestion des accès utilisateurs.</li>
</ul>
<h2>Les offres de GitLab en matière d'IA agentique</h2>
<h3>GitLab Duo combiné à Amazon Q</h3>
<ul>
<li><a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/">GitLab Duo combiné à Amazon Q : l'IA agentique optimisée pour AWS est désormais disponible à tous les utilisateurs</a> : la plateforme DevSecOps complète alimentée par l'IA de GitLab, combinée aux fonctionnalités de cloud computing les plus avancées, accélère les cycles de développement, augmente l'automatisation et améliore la qualité du code.</li>
<li><a href="https://about.gitlab.com/blog/devsecops-agentic-ai-now-on-gitlab-self-managed-ultimate-on-aws/">DevSecOps + IA agentique : maintenant disponibles avec GitLab Self-Managed Ultimate sur AWS</a> : utilisez des agents d'IA optimisés pour l'approche DevSecOps dans votre instance GitLab Self-Managed Ultimate sur AWS et tirez pleinement parti des fonctionnalités de <a href="https://about.gitlab.com/fr-fr/gitlab-duo/" title="Qu'est-ce que GitLab Duo ?">GitLab Duo</a> combiné à Amazon Q au sein de votre entreprise.</li>
</ul>
<p>Pour en savoir plus, consultez notre page <a href="https://about.gitlab.com/fr-fr/partners/technology-partners/aws/" title="GitLab Duo et AWS">GitLab et AWS</a> et visionnez une démonstration de GitLab Duo combiné à Amazon Q :</p>
<p>&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1075753390?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;Technical Demo: GitLab Duo with Amazon Q&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;script src=&quot;https://player.vimeo.com/api/player.js&quot;&gt;&lt;/script&gt;</p>
<h4>Visite guidée</h4>
<p>Cliquez sur l'image pour une visite guidée de GitLab Duo combiné à Amazon Q :</p>
<p><a href="https://gitlab.navattic.com/duo-with-q"><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673568/Blog/Content%20Images/Screenshot_2025-05-07_at_7.24.45_AM.png" alt="Présentation interactive de GitLab Duo combiné à Amazon Q"></a></p>
<h4>Tutoriel GitLab Duo combiné à Amazon Q</h4>
<ul>
<li><a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes/">GitLab Duo combiné à Amazon Q : créez de nouvelles fonctionnalités en quelques minutes</a> : GitLab Duo combiné à Amazon Q analyse les descriptions de vos tickets et génère automatiquement des solutions de code complètes et opérationnelles, pour des workflows de développement plus rapides.</li>
</ul>
<h3>GitLab Duo Workflow</h3>
<ul>
<li><a href="https://about.gitlab.com/fr-fr/gitlab-duo/workflow/">GitLab Duo Workflow</a> : l'avenir du développement logiciel basé sur une IA agentique sécurisée</li>
<li><a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai/">GitLab Duo Workflow : une IA agentique offrant visibilité et contrôle à l'échelle de l'entreprise</a> : nos agents d'IA sécurisés et autonomes comprennent le contexte et prennent en charge les tâches complexes. Les équipes de développement sont ainsi en mesure de livrer des logiciels innovants plus rapidement. La liste d'attente pour l'accès à la version bêta privée de GitLab Duo Workflow est ouverte.</li>
<li><a href="https://docs.gitlab.com/user/duo_workflow/">Documentation GitLab Duo Workflow</a></li>
</ul>
<p>Regardez cette présentation de GitLab Duo Workflow :</p>
<p>&lt;!-- blank line --&gt;</p>
<p>&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/eN2Sd5UNc0g?si=C9HibBJ3QDDHADq2&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<h3>Visite guidée</h3>
<p>Cliquez sur l'image pour démarrer une visite de GitLab Duo Workflow :</p>
<p><a href="https://gitlab.navattic.com/duo-workflow"><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673569/Blog/Content%20Images/Screenshot_2025-05-07_at_7.29.57_AM.png" alt="Visite guidée de GitLab Duo Workflow"></a></p>
<h4>Tutoriels et cas d'utilisation de GitLab Duo Workflow</h4>
<ul>
<li><a href="https://about.gitlab.com/blog/refactoring-javascript-to-typescript-with-gitlab-duo-workflow/">Refactorisation de JavaScript en TypeScript avec GitLab Duo Workflow</a></li>
<li><a href="https://about.gitlab.com/blog/automate-tedious-coding-tasks-with-gitlab-duo-workflow/">Automatisation des tâches de codage fastidieuses avec GitLab Duo Workflow</a> : découvrez comment l'IA agentique peut réduire le temps que vous consacrez aux tâches répétitives afin de vous aider à vous concentrer sur le développement et la livraison de solutions innovantes.</li>
<li><a href="https://about.gitlab.com/fr-fr/blog/use-gitlab-duo-workflow-to-improve-application-quality-assurance/">GitLab Duo Workflow : améliorez l'assurance qualité de vos applications</a> : découvrez étape par étape comment ajouter des tests unitaires à une application Java à l'aide de l'IA agentique.</li>
<li><a href="https://about.gitlab.com/blog/solving-complex-challenges-with-gitlab-duo-workflow/">Résolution de défis complexes avec GitLab Duo Workflow</a> : découvrez comment l'équipe Customer Success de GitLab utilise l'IA agentique pour résoudre des problèmes concrets comme les limites des charts Helm dans le registre de paquets.</li>
</ul>
<h2>Autres ressources sur l'IA</h2>
<ul>
<li><a href="https://about.gitlab.com/fr-fr/developer-survey/2024/ai/">Rapport Global DevSecOps 2024 : la maturité de l'IA dans l'approche DevSecOps</a></li>
<li><a href="https://about.gitlab.com/fr-fr/topics/devops/the-role-of-ai-in-devops/">Le rôle de l'IA dans l'approche DevOps</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/categories/ai-ml/">Les articles récents de GitLab sur l'IA et le ML</a></li>
</ul>
]]></content>
        <author>
            <name>GitLab</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab</uri>
        </author>
        <published>2025-05-07T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Intégrez la conformité à vos workflows DevSecOps avec GitLab]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops/"/>
        <updated>2025-04-30T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>La conformité n'est plus une formalité, mais un vecteur stratégique : elle aide à maîtriser les risques opérationnels, renforce la confiance des clients et améliore la performance globale. Pourtant, trouver l'équilibre entre exigences de conformité et vélocité peut s'avérer particulièrement complexe pour les équipes de développement logiciel. Les <a href="https://about.gitlab.com/blog/introducing-custom-compliance-frameworks-in-gitlab/">frameworks de conformité personnalisés</a> de GitLab apportent une réponse concrète à cette problématique en intégrant la vérification de la conformité directement dans vos workflows de développement.</p>
<p>Découvrez dans cet article tout ce que vous devez savoir sur les frameworks de conformité personnalisés de GitLab et comment les utiliser de façon optimale.</p>
<h2>Qu’est-ce qu’un framework de conformité personnalisé ?</h2>
<p>Les frameworks de conformité personnalisés de GitLab vous permettent de définir, d'appliquer et de faire respecter vos propres normes de conformité directement dans votre instance GitLab. GitLab propose déjà des fonctionnalités de conformité « prêtes à l’emploi », mais chaque entreprise a ses propres obligations. Avec les frameworks personnalisés, vous pouvez donc définir vos propres stratégies de conformité en fonction de réglementations spécifiques, de vos politiques internes ou des normes de votre secteur.</p>
<p>Ces frameworks offrent les principaux avantages suivants :</p>
<ul>
<li>Réduction significative du suivi manuel</li>
<li>Accélération de la préparation aux audits</li>
<li>Intégration native des contrôles de conformité</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097114254.png" alt="Capture d'écran du centre de conformité avec les frameworks répertoriés"></p>
<p>GitLab propose à ce jour plus de 50 contrôles préconfigurés, modifiables, que vous pouvez activer selon vos besoins. Ils couvrent un large éventail de réglementations, comme la loi HIPAA dans le domaine de la santé, le RGPD pour la protection des données, la <a href="https://about.gitlab.com/fr-fr/the-source/security/how-gitlab-can-help-you-prepare-for-your-soc-2-exam/" title="Norme SOC 2">norme SOC 2</a> relative aux prestataires de services et bien d'autres réglementations propres à des secteurs d'activité spécifiques. En voici quelques exemples :</p>
<ul>
<li>Séparation des tâches : au moins deux approbateurs requis, y compris l'auteur de la merge request</li>
<li>Scanners de sécurité : scans <a href="https://docs.gitlab.com/user/application_security/sast/">SAST</a> et <a href="https://docs.gitlab.com/user/application_security/dependency_scanning/">analyse des dépendances</a> exécutés automatiquement</li>
<li>Authentification/autorisation : visibilité du projet définie sur privé et authentification unique (SSO) activée</li>
<li>Configuration de l'application : vérification obligatoire des statuts de conformité et utilisation de fichiers de configuration Terraform exigée</li>
</ul>
<p>En outre, vous pouvez étendre les capacités de conformité de GitLab en configurant vos propres contrôles sur des environnements externes à l'aide de l'API GitLab.</p>
<h2>Comment créer un framework de conformité personnalisé dans GitLab ?</h2>
<p>Maintenant que nous avons clarifié l’importance des frameworks de conformité personnalisés, voyons comment les mettre en œuvre dans votre environnement GitLab, en utilisant l'application de démonstration reprise dans la vidéo ci-dessous.</p>
<p><strong>Remarque :</strong> un abonnement <a href="https://about.gitlab.com/fr-fr/pricing/ultimate/" title="Qu'est-ce que GitLab Ultimate ?">GitLab Ultimate</a> est requis.</p>
<p>&lt;!-- TODO: EMBED_YT_VIDEO --&gt;</p>
<p>&lt;!-- blank line --&gt;</p>
<p>&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/bSwwv5XeMdQ?si=unDwCltF4vTHT4mB&quot; title=&quot;Adhering to compliance requirements with built-in compliance controls
&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<p><strong>Étape 1 : définissez vos exigences de conformité</strong></p>
<p>Avant de créer votre framework de conformité personnalisé, vous devez définir clairement vos exigences en la matière :</p>
<ol>
<li><strong>Identifiez les réglementations applicables :</strong> déterminez les obligations légales et normes qui s'appliquent à votre entreprise (par exemple, le RGPD, la norme PCI DSS ou la loi HIPAA).</li>
<li><strong>Associez les exigences à des contrôles :</strong> décomposez chaque exigence réglementaire identifiée en contrôles spécifiques et exploitables.</li>
<li><strong>Hiérarchisez les exigences :</strong> concentrez vos efforts sur les domaines à haut risque et les exigences à fort impact.</li>
</ol>
<p><strong>Étape 2 : créez votre framework de conformité personnalisé dans GitLab</strong></p>
<p>Voici comment procéder :</p>
<ol>
<li>Accédez à la section <strong>Sécurisation &gt; Centre de conformité</strong> de votre groupe GitLab.</li>
<li>Cliquez sur le bouton <strong>Nouveau framework</strong>.</li>
<li>Sélectionnez <strong>Créer un framework vide</strong>.</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750097114255.png" alt="Écran de création d'un framework de conformité personnalisé"></p>
<ol start="4">
<li>Renseignez son nom, sa description et choisissez sa couleur.</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097114257.png" alt="Écran Nouveau framework de conformité"></p>
<ol start="5">
<li>
<p>Ajoutez des exigences :<br>
a. Accédez à l'onglet <strong>Exigences</strong>.</p>
<p>b. Cliquez sur le bouton <strong>Nouvelle exigence</strong>.</p>
<p>c. Fournissez un nom et une description.<br>
d. Dans la section <strong>Contrôles</strong>, sélectionnez <strong>Choisir un contrôle GitLab</strong>.<br>
e. Sélectionnez un contrôle dans la liste (par exemple, au moins deux approbations, l'exécution de scans SAST).<br>
f. Cliquez ensuite sur le bouton <strong>Créer une exigence</strong>.</p>
</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097114258.png" alt="Bouton Créer une exigence"></p>
<ol start="6">
<li>Cliquez sur le bouton <strong>Créer un framework</strong>.</li>
</ol>
<p>Une fois créé, ce framework pourra être appliqué à vos projets selon les paramètres définis. Par ailleurs, GitLab permet également d'importer des frameworks de conformité au format JSON, selon le schéma prévu.</p>
<p><strong>Étape 3 : appliquez le framework à vos projets</strong></p>
<p>Une fois votre framework de conformité créé, suivez les étapes ci-dessous pour l’appliquer à un ou plusieurs projets :</p>
<ol>
<li>Accédez au <strong>Centre de conformité</strong> de GitLab, puis sélectionnez l'onglet <strong>Projets</strong>.</li>
<li>Utilisez la barre de recherche pour <strong>Rechercher</strong> ou <strong>Filtrer</strong> les projets concernés.</li>
<li>Sélectionnez le ou les projets dans la liste.</li>
<li>Cliquez sur le bouton <strong>Choisir une action groupée</strong>.</li>
<li>Sélectionnez <strong>Appliquer les frameworks aux projets sélectionnés</strong>.</li>
<li>Cliquez sur le bouton <strong>Sélectionner des frameworks</strong>.</li>
<li>Sélectionnez le ou les frameworks de votre choix dans la liste.</li>
<li>Cliquez sur le bouton <strong>Appliquer</strong>.</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097114260.png" alt="Écran du Centre de conformité avec la liste déroulante affichant le framework SOC 2"></p>
<p>Une fois cette opération effectuée, le framework sélectionné est associé aux projets choisis. Les exigences définies sont alors visibles et peuvent être vérifiées directement dans l'interface GitLab.</p>
<p><strong>Étape 4 : surveillez et générez des rapports de conformité</strong></p>
<p>Une fois votre framework de conformité en place, GitLab vous offre un suivi continu et centralisé dans le <strong>Centre de conformité</strong> :</p>
<ol>
<li>Suivez le statut de conformité de vos projets, y compris les détails sur les contrôles appliqués, ainsi que des correctifs suggérés pour les contrôles ayant échoué.</li>
<li>Générez des <strong>rapports de conformité</strong> pour les audits et l'examen par les parties prenantes.</li>
<li>Configurez des <strong>alertes de conformité</strong> pour informer les parties prenantes des problèmes de conformité potentiels.</li>
<li>Consultez les <strong>événements d'audit</strong> pour une vue d'ensemble des mesures prises concernant les paramètres de conformité.</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097114263.png" alt="Écran du Centre de conformité affichant le framework de test SOC 2"></p>
<h2>Exemple : mise en œuvre d'un framework de conformité SOC 2</h2>
<p>Le SOC 2 (System and Organization Controls 2), développée par l'American Institute of Certified Public Accountants, est une norme d'audit rigoureuse qui évalue les contrôles mis en œuvre par les prestataires de services en matière de sécurité, de disponibilité, d'intégrité du traitement des données, de confidentialité et de protection des données personnelles. Pour en savoir plus, consultez le <a href="https://about.gitlab.com/blog/guide-to-fulfilling-soc-2-security-requirements-with-gitlab/">guide sur le respect des exigences de sécurité SOC 2 avec GitLab</a>.</p>
<p>Voici un exemple concret d'implémentation d'un framework de conformité personnalisé GitLab dont l'objectif est de vérifier la conformité à la norme de sécurité SOC 2 à l’aide des contrôles GitLab préconfigurés suivants :</p>
<ul>
<li>Contrôles contre les accès non autorisés</li>
<li>Procédures d'identification et d'atténuation des risques</li>
<li>Systèmes de détection et de gestion des incidents de sécurité</li>
</ul>
<p><strong>Avertissement :</strong> il ne s'agit là que d'un exemple qui illustre certains des contrôles possibles pour vérifier l'adhésion à la norme SOC 2. Avant toute mise en production, validez votre configuration avec votre équipe sécurité ou conformité.</p>
<p>Ce framework se présentera comme suit :</p>
<ul>
<li>
<p><strong>Nom :</strong> Exigences de sécurité SOC 2</p>
</li>
<li>
<p><strong>Description :</strong> Ajout des exigences de sécurité pour la conformité au framework SOC 2</p>
</li>
<li>
<p><strong>Exigences :</strong></p>
<ul>
<li>
<p><strong>Contrôles contre les accès non autorisés</strong></p>
<ul>
<li>Authentification SSO activée</li>
<li>Portée des tokens pour les jobs CI/CD activée</li>
<li>Authentification multifacteur requise au niveau de l'entreprise</li>
</ul>
</li>
</ul>
</li>
<li>
<p><strong>Procédures d'identification et d'atténuation des risques</strong></p>
<ul>
<li>Au moins deux approbations requises avant tout merge</li>
<li>Merge request approuvée par l'auteur</li>
<li>Merge request approuvée par les validateurs</li>
<li>Branche par défaut protégée</li>
</ul>
</li>
<li>
<p><strong>Systèmes de détection et de gestion des incidents de sécurité</strong></p>
<ul>
<li>Analyse des dépendances activée</li>
<li>SAST activé</li>
<li>DAST activé</li>
</ul>
</li>
</ul>
<p>Lorsqu'il est appliqué à vos projets, ce framework vous permet de surveiller toute erreur de conformité et d'identifier les corrections envisageables. Notez que vous pouvez associer plusieurs frameworks de conformité à vos projets, par exemple, pour couvrir les exigences d'intégrité des processus SOC 2.</p>
<h2>Comment définir des stratégies de sécurité en accord avec les exigences de conformité ?</h2>
<p>Bien que cet aspect ne soit pas obligatoire, il est fortement recommandé d'appliquer des stratégies de sécurité aux projets associés à un framework de conformité personnalisé. Cette approche garantit que les exigences de conformité critiques sont correctement appliquées de manière automatisée et cohérente dans les <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline CI/CD ?">pipelines CI/CD</a>. Par exemple, si votre framework de conformité personnalisé impose que des scans de sécurité soient exécutés sur chaque pipeline, une stratégie de sécurité peut en forcer l’exécution.</p>
<p>GitLab fournit différentes stratégies de sécurité pour répondre aux différents objectifs de sécurité et de conformité :</p>
<ul>
<li><a href="https://docs.gitlab.com/user/application_security/policies/scan_execution_policies/">Stratégie d'exécution des scans</a> : impose l'exécution de scans de sécurité dans les pipelines ou selon un calendrier précis.</li>
<li><a href="https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/">Politique d'approbation des merge requests</a> : définit des paramètres et règles d'approbation au niveau du projet en fonction des résultats des scans.</li>
<li><a href="https://docs.gitlab.com/user/application_security/policies/pipeline_execution_policies/">Stratégie d'exécution de pipeline</a> : force l'exécution de jobs CI/CD spécifiques dans les pipelines.</li>
<li><a href="https://docs.gitlab.com/user/application_security/policies/vulnerability_management_policy/">Stratégie de gestion des vulnérabilités</a> : corrige automatiquement les vulnérabilités afin qu’elles soient supprimées de la branche par défaut.</li>
</ul>
<p>Si votre framework de conformité personnalisé exige l'exécution de scans SAST, voici comment créer une stratégie de sécurité pour en garantir l’exécution automatique :</p>
<ol>
<li>Accédez à un projet qui dispose d'un framework de conformité personnalisé incluant les <strong>scans SAST</strong>.</li>
<li>Dans la barre latérale du projet, sélectionnez <strong>Sécurisation &gt; Politiques</strong>.</li>
<li>Cliquez sur le bouton <strong>Nouvelle stratégie</strong>.</li>
<li>Dans la section <strong>Stratégie d'exécution des scans</strong>, cliquez sur le bouton <strong>Sélectionner une stratégie</strong>.</li>
<li>Renseignez le <strong>Nom</strong> et la <strong>Description</strong>.</li>
<li>Dans la section <strong>Actions</strong>, sélectionnez <strong>SAST</strong> comme type de scan à exécuter.</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750097114264.png" alt="Écran des actions"></p>
<ol start="7">
<li>Dans la section <strong>Conditions</strong>, sélectionnez tous les pipelines, quelle que soit la branche.</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097114265.png" alt="Écran des conditions"></p>
<ol start="8">
<li>Cliquez sur le bouton <strong>Configurer avec une merge request</strong>.</li>
<li>Une merge request est alors créée dans un projet distinct dédié aux stratégies de sécurité appliquées à ce projet.</li>
<li>Cliquez sur le bouton <strong>Fusionner</strong>.</li>
</ol>
<p>Désormais, les scans SAST s'exécuteront automatiquement sur toutes les branches du projet afin de garantir le respect continu des exigences de conformité. Nous vous conseillons de parcourir les autres types de stratégies de sécurité pour identifier celles qui répondent le mieux à vos besoins.</p>
<h2>5 bonnes pratiques pour des frameworks de conformité efficaces</h2>
<p>Pour tirer pleinement parti des frameworks de conformité personnalisés de GitLab, nous vous conseillons de suivre les principes suivants :</p>
<ol>
<li><strong>Avancez pas à pas :</strong> commencez par une seule réglementation ou norme critique avant d'aller plus loin.</li>
<li><strong>Impliquez les principales parties prenantes :</strong> incluez les équipes de conformité, de sécurité et de développement dans la création du framework.</li>
<li><strong>Automatisez dans la mesure du possible :</strong> utilisez GitLab CI/CD pour automatiser les contrôles de conformité.</li>
<li><strong>Documentez minutieusement votre approche :</strong> conservez une documentation claire du lien entre chaque exigence réglementaire et les contrôles GitLab mis en place.</li>
<li><strong>Révisez régulièrement vos frameworks :</strong> mettez à jour vos frameworks à mesure que les réglementations évoluent ou que de nouvelles exigences sont nécessaires.</li>
</ol>
<h2>Lancez-vous dès aujourd'hui</h2>
<p>Les frameworks de conformité personnalisés de GitLab marquent une avancée majeure pour intégrer la conformité directement dans le workflow de développement DevSecOps. En les adoptant, vous réduisez les frais liés à la conformité, améliorez votre gestion des risques et accélérez vos cycles de développement logiciel, tout en garantissant la meilleure conformité possible aux exigences réglementaires.</p>
<p>Grâce à cette approche, vos équipes bénéficient à la fois de la flexibilité dont elles ont besoin pour répondre aux exigences réglementaires et de la structure indispensable pour garantir des pratiques de conformité cohérentes dans l'ensemble de l'entreprise.</p>
<p>Dans un contexte réglementaire de plus en plus exigeant, des outils comme les frameworks de conformité personnalisés de GitLab sont essentiels pour traiter la conformité comme un processus continu, sans compromettre la vélocité de développement.</p>
<blockquote>
<p>Lancez-vous dès aujourd'hui avec un <a href="https://about.gitlab.com/fr-fr/free-trial/">essai gratuit de 60 jours de GitLab Ultimate</a>.</p>
</blockquote>
<p>Pour en savoir plus, consultez nos ressources connexes :</p>
<ul>
<li><a href="https://docs.gitlab.com/user/compliance/compliance_center/compliance_status_report/">Documentation sur les frameworks de conformité personnalisés</a></li>
<li><a href="https://gitlab.com/groups/gitlab-org/-/epics/13295">Epic sur les frameworks de conformité personnalisés</a></li>
<li><a href="https://docs.gitlab.com/user/application_security/policies/">Documentation sur les stratégies de sécurité</a></li>
<li><a href="https://about.gitlab.com/fr-fr/solutions/security-compliance/">Solutions de sécurité et de conformité de GitLab</a></li>
</ul>
]]></content>
        <author>
            <name>Fernando Diaz</name>
            <uri>https://about.gitlab.com/blog/authors/fernando-diaz</uri>
        </author>
        <published>2025-04-30T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Duo combiné à Amazon Q : créez de nouvelles fonctionnalités en quelques minutes]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes/"/>
        <updated>2025-04-28T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Vous est-il déjà arrivé de passer des jours, voire des semaines, à transformer des idées complexes en code opérationnel ? Toutes les équipes de développement connaissent cette situation. Malgré un concept solide et des exigences claires, il peut falloir beaucoup de temps et d'efforts pour élaborer un code déployable.</p>
<p>Et si les capacités de l'<a href="https://about.gitlab.com/fr-fr/topics/agentic-ai/">IA agentique</a> pouvaient tout changer ? C'est exactement ce que propose <a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/">GitLab Duo combiné à Amazon Q</a>. En associant la plateforme <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSecOps ? ">DevSecOps</a> complète alimentée par l'IA de GitLab aux fonctionnalités avancées de cloud computing d'AWS, cette intégration vous permet d'accélérer considérablement votre processus de développement d'applications, le tout au sein de votre workflow GitLab habituel. Le code que vos équipes de développement écrivent en plusieurs jours peut désormais être généré automatiquement en quelques minutes à partir des descriptions et exigences incluses dans vos tickets GitLab.</p>
<h2>Transformer un ticket en code opérationnel</h2>
<p>Découvrons comment cette fonctionnalité d'IA agentique fonctionne en pratique. Imaginez que vous deviez développer une application de calcul de prêt immobilier. Voici comment procéder à l'aide de GitLab Duo combiné à Amazon Q :</p>
<ol>
<li>
<p><strong>Créez votre ticket dans GitLab :</strong> créez un <a href="https://docs.gitlab.com/user/project/issues/">ticket</a> classique, contenant la liste complète des exigences de votre application. Ce ticket sert de point de départ pour développer votre solution logicielle.</p>
</li>
<li>
<p><strong>Activez Amazon Q :</strong> une fois votre ticket créé, ajoutez simplement un commentaire contenant la commande d'action rapide “/q dev” pour lancer Amazon Q et laisser la magie opérer.</p>
</li>
<li>
<p><strong>Génération automatique du code :</strong> GitLab Duo combiné à Amazon Q analyse votre ticket et le contexte de votre code source, puis génère automatiquement un code répondant à toutes vos spécifications. Et cerise sur le gâteau : l'IA soumet également ce code dans une merge request, prête pour la revue.</p>
</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097156/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097156018.png" alt="Capture d'écran de la fenêtre contextuelle de GitLab Duo combiné à Amazon Q"></p>
<ol start="4">
<li>
<p><strong>Revue de l'application générée</strong> : consultez la merge request pour vérifier que le code correspond bien à vos attentes et apportez des ajustements si nécessaire.</p>
</li>
<li>
<p><strong>Testez votre application</strong> : enfin, assurez-vous que l'application s'exécute correctement. Vous disposez désormais d'un code opérationnel conforme à vos exigences initiales, sans effort superflu.</p>
</li>
</ol>
<h2>Une nouvelle ère pour votre développement logiciel</h2>
<p>GitLab Duo combiné à Amazon Q révolutionne le développement logiciel en automatisant intelligemment les tâches complexes, réduisant ainsi drastiquement le temps nécessaire pour produire du code opérationnel. En tirant parti de l'IA agentique, vous pouvez accélérer le déploiement de vos nouvelles fonctionnalités, ce qui permet à vos équipes de se concentrer sur des tâches plus stratégiques.</p>
<p>Avec GitLab Duo combiné à Amazon Q, dites adieu aux tâches manuelles et développez des logiciels plus rapidement, plus efficacement et plus facilement. Vous pouvez ainsi :</p>
<ul>
<li><strong>Accélérer votre processus de développement</strong> en automatisant la création de code conformément aux exigences du projet.</li>
<li><strong>Maintenir une qualité constante</strong> lors de la génération de code, pour l'ensemble de vos projets.</li>
<li><strong>Réduire la charge mentale</strong> en limitant la traduction manuelle des exigences en code opérationnel.</li>
<li><strong>Accélérer vos cycles de sortie des nouvelles versions</strong> en supprimant les goulots d'étranglement, notamment ceux liés à l'implémentation.</li>
<li><strong>Optimiser l'expertise de votre équipe</strong> en la recentrant sur la revue de code et l'optimisation de ce dernier, plutôt que sur son écriture.</li>
</ul>
<p>Vous souhaitez découvrir GitLab Duo combiné à Amazon Q ? Regardez notre vidéo de démonstration et découvrez dès aujourd'hui comment optimiser votre workflow de développement.</p>
<p>&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/jxxzNst3jpo?si=j_LQdZhUnwqoQEst&quot; title=&quot;GitLab Duo with Amazon Q demo video for dev workflow&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<blockquote>
<p>Pour en savoir plus sur GitLab Duo combiné à Amazon Q, <a href="https://docs.gitlab.com/user/duo_amazon_q/" title="Documentation Amazon Q">consultez notre documentation</a> ou <a href="https://about.gitlab.com/fr-fr/partners/technology-partners/aws/">contactez notre équipe</a>.</p>
</blockquote>
]]></content>
        <author>
            <name>Cesar Saavedra</name>
            <uri>https://about.gitlab.com/blog/authors/cesar-saavedra</uri>
        </author>
        <published>2025-04-28T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Premiers pas avec GitLab : comprendre l'approche CI/CD ]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-understanding-ci-cd/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-understanding-ci-cd/"/>
        <updated>2025-04-25T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Imaginez un cycle de développement logiciel dans lequel chaque modification de code est automatiquement compilée, testée, puis déployée auprès de vos utilisateurs. C'est tout l'intérêt de l'<a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" title="Qu'est-ce que le CI/CD ? ">approche CI/CD</a> (intégration continue/livraison continue) qui vous aide à détecter les bogues à un stade précoce, garantit la qualité du code et vous permet de livrer des logiciels plus rapidement et plus fréquemment.</p>
<h2>Qu'est-ce que l'approche CI/CD ?</h2>
<ul>
<li><strong>L'<a href="https://about.gitlab.com/fr-fr/topics/ci-cd/benefits-continuous-integration/" title="Qu'est-ce que l'intégration continue ? ">intégration continue</a></strong> est une pratique de développement qui consiste à fusionner régulièrement les modifications apportées au code dans un dépôt partagé, de préférence plusieurs fois par jour, afin qu'elles soient vérifiées via un processus automatisé de compilation et de tests. Les équipes de développement peuvent ainsi détecter rapidement les problèmes et conflits éventuels.</li>
<li><strong>La <a href="https://about.gitlab.com/fr-fr/topics/continuous-delivery/" title="Qu'est-ce que la livraison continue ? ">livraison continue</a></strong> complète l'intégration continue en automatisant le pipeline pour la sortie de nouvelles versions. <em>À tout moment</em>, l'application reste déployable vers un environnement donné (par exemple, préproduction, production), en un seul clic ou par le biais d'un déclenchement automatique.</li>
<li><strong>Le déploiement continu</strong> pousse encore plus loin la logique d’automatisation. <em>Chaque compilation réussie</em> est directement mise en production, sans validation manuelle. Ce niveau d'automatisation requiert une confiance totale dans vos tests automatisés et vos processus de déploiement.</li>
</ul>
<h2>Pourquoi choisir GitLab CI/CD ?</h2>
<p>Entièrement intégré à la plateforme GitLab, GitLab CI/CD est un système puissant, qui permet d'automatiser facilement chaque étape de votre cycle de développement logiciel. Avec GitLab CI/CD, vous pouvez notamment :</p>
<ul>
<li><strong>Automatiser l'intégralité de votre cycle de développement :</strong> compilation, tests, déploiement, tout peut être orchestré via le <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline CI/CD ? ">pipeline CI/CD</a>.</li>
<li><strong>Détecter les bogues en amont :</strong> les problèmes sont identifiés et corrigés bien avant d’atteindre l'environnement de production.</li>
<li><strong>Obtenir des retours immédiats :</strong> les équipes de développement obtiennent un retour rapide sur leurs modifications de code.</li>
<li><strong>Renforcer la collaboration :</strong> les workflows automatisés fluidifient le travail en équipe.</li>
<li><strong>Accélérer la livraison :</strong> les livraisons de nouvelles versions sont plus rapides et plus fréquentes.</li>
<li><strong>Réduire les risques :</strong> les erreurs de déploiement et les retours en arrière sont considérablement réduits.</li>
</ul>
<h2>Quels sont les principaux composants de GitLab CI/CD ?</h2>
<ul>
<li><strong><code>.gitlab-ci.yml</code> :</strong> ce <a href="https://docs.gitlab.com/ee/ci/yaml/">fichier YAML</a>, situé dans le répertoire racine de votre projet, définit l'ensemble du pipeline CI/CD, y compris les étapes, les jobs et les runners.</li>
<li><strong><a href="https://docs.gitlab.com/runner/">GitLab Runner</a>:</strong> cet agent exécute les jobs CI/CD sur l'infrastructure de votre choix (par exemple, machines physiques, machines virtuelles, conteneurs Docker ou clusters <a href="https://about.gitlab.com/fr-fr/blog/kubernetes-the-container-orchestration-solution/" title="Qu'est-ce que Kubernetes ? ">Kubernetes</a>).</li>
<li><strong><a href="https://docs.gitlab.com/ee/ci/yaml/#stages">Étapes</a>:</strong> elles définissent l'ordre d'exécution des jobs (par exemple, compilation, tests et déploiement).</li>
<li><strong><a href="https://docs.gitlab.com/ee/ci/yaml/#job-keywords">Jobs</a>:</strong> chaque job représente une unité de travail spécifique exécutée lors de l'étape correspondante (par exemple, compiler du code, exécuter des tests ou déployer dans l'environnement de préproduction).</li>
</ul>
<h2>Comment configurer GitLab CI ?</h2>
<p>GitLab CI est très facile à prendre en main. Voici un exemple basique de fichier <code>.gitlab-ci.yml</code> :</p>
<pre><code class="language-yaml">
stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo &quot;Building the application...&quot;

test_job:
  stage: test
  script:
    - echo &quot;Running tests...&quot;

deploy_job:
  stage: deploy
  script:
    - echo &quot;Deploying to production...&quot;
  environment:
    name: production

</code></pre>
<p>Cette configuration définit trois étapes : « compilation », « test » et « déploiement ». Chaque étape contient un job qui exécute un script simple.</p>
<h3>Exemples de configuration CI/CD</h3>
<p>Explorons quelques exemples plus concrets.</p>
<p><strong>Création, compilation et déploiement d'une application Node.js</strong></p>
<p>Prenons l'exemple du pipeline ci-dessous qui compile et teste une application Node.js à l'aide de npm, puis la déploie sur Heroku via <a href="https://docs.gitlab.com/ci/examples/deployment/">dpl</a>. L'étape de déploiement du pipeline utilise des <a href="https://docs.gitlab.com/ci/variables/">variables GitLab CI/CD</a>, qui permettent de stocker des informations sensibles (par exemple, des identifiants de connexion) et de les utiliser en toute sécurité dans les processus CI/CD.</p>
<p>Dans cet exemple, une clé API pour déployer l'application sur Heroku est stockée sous le nom de variable <code>$HEROKU_API_KEY</code>, cette clé étant utilisée par l'outil dpl.</p>
<pre><code class="language-yaml">
stages:
  - build
  - test
  - deploy

build:
  stage: build
  image: node:latest
  script:
    - npm install
    - npm run build

test:
  stage: test
  image: node:latest
  script:
    - npm run test

deploy:
  stage: deploy
  image: ruby:latest
  script:
    - gem install dpl
    - dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_API_KEY

</code></pre>
<p><strong>Déploiement vers différents environnements (préproduction et production)</strong></p>
<p>GitLab propose également la gestion des <a href="https://docs.gitlab.com/ci/environments/">environnements</a> au sein du pipeline CI/CD pour suivre les déploiements vers des cibles d'infrastructure. Dans l'exemple ci-dessous, le pipeline ajoute des étapes avec une propriété « environnement » pour les environnements de préproduction et de production. Alors que l'étape deploy_staging exécute son script automatiquement, l'étape deploy_production nécessite une approbation manuelle afin d'éviter tout déploiement accidentel en production.</p>
<pre><code class="language-yaml">
stages:
  - build
  - test
  - deploy_staging
  - deploy_production

build:
  # ...

test:
  # ...

deploy_staging:
  stage: deploy_staging
  script:
    - echo &quot;Deploying to staging...&quot;
  environment:
    name: staging

deploy_production:
  stage: deploy_production
  script:
    - echo &quot;Deploying to production...&quot;
  environment:
    name: production
  when: manual  # Requires manual approval

</code></pre>
<h3>GitLab Auto DevOps</h3>
<p><a href="https://docs.gitlab.com/ee/topics/autodevops/">GitLab Auto DevOps</a> simplifie encore plus l'approche CI/CD en fournissant une configuration prédéfinie pour compiler, tester et déployer automatiquement vos applications. Cette suite de fonctionnalités tire parti des bonnes pratiques et des normes du secteur pour rationaliser votre workflow.</p>
<p>Pour activer Auto DevOps :</p>
<ol>
<li>Accédez à <strong>Paramètres &gt; CI/CD &gt; Pipelines généraux</strong>.</li>
<li>Activez l'option <strong>Auto DevOps</strong>.</li>
</ol>
<p>Auto DevOps détecte automatiquement le langage et le framework de votre projet et configure les étapes de compilation, de tests et de déploiement nécessaires. Il est donc inutile de créer un fichier <code>.gitlab-ci.yml</code>.</p>
<h3>Catalogue CI/CD</h3>
<p>Le catalogue CI/CD est une liste de projets contenant des <a href="https://docs.gitlab.com/ee/ci/components/">composants CI/CD</a> publiés par la communauté, que vous pouvez utiliser pour optimiser votre workflow CI/CD. Vous pouvez y contribuer en ajoutant vos propres composants ou en enrichissant ceux déjà existants. Les composants publiés dans le <a href="https://gitlab.com/explore/catalog">catalogue CI/CD</a> sont disponibles sur GitLab.com.</p>
<blockquote>
<p><a href="https://about.gitlab.com/blog/tutorial-how-to-set-up-your-first-gitlab-ci-cd-component/">Tutoriel : Comment configurer votre premier composant GitLab CI/CD</a></p>
</blockquote>
<h3>Templates CI</h3>
<p>Vous pouvez également créer vos propres <a href="https://docs.gitlab.com/ee/ci/examples/">templates CI</a> afin de standardiser et de réutiliser les configurations de vos pipelines CI/CD entre plusieurs projets. Cette pratique favorise la cohérence et réduit les doublons.</p>
<p>Pour créer un template CI :</p>
<ol>
<li>Créez un fichier <code>.gitlab-ci.yml</code> dans un projet ou un dépôt dédié.</li>
<li>Définissez la configuration CI/CD souhaitée dans ce template.</li>
<li>Dans le fichier <code>.gitlab-ci.yml</code>, utilisez le terme <code>include</code> pour inclure ce template.</li>
</ol>
<h2>Optimisez votre processus de développement</h2>
<p>GitLab CI/CD transforme en profondeur votre workflow de développement de logiciels. En maîtrisant ses concepts, en configurant efficacement vos pipelines CI/CD et en tirant parti de fonctionnalités tels qu'Auto DevOps, le catalogue CI/CD et les templates CI, vous pouvez automatiser l'ensemble de votre cycle de développement logiciel et livrer des logiciels de haute qualité plus rapidement et plus efficacement.</p>
<p>Vous souhaitez approfondir vos connaissances ? Inscrivez-vous aux <a href="https://university.gitlab.com/">cours disponibles sur le portail GitLab University</a>.</p>
<blockquote>
<p><a href="https://about.gitlab.com/fr-fr/free-trial/">Essayez GitLab Ultimate gratuitement pendant 60 jours</a>.</p>
</blockquote>
<h2>Articles de la série « Premiers pas avec GitLab »</h2>
<p>Découvrez les autres articles de notre série « Premiers pas avec GitLab » :</p>
<ul>
<li><a href="https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-how-to-manage-users/">Comment gérer les utilisateurs</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-how-to-import-your-projects-to-gitlab/">Comment importer vos projets dans GitLab</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/getting-started-with-gitlab-mastering-project-management/">Comment maîtriser la gestion de projet</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/automating-agile-workflows-with-the-gitlab-triage-gem/">La gemme gitlab-triage : votre alliée pour des workflows Agile automatisés</a></li>
</ul>
]]></content>
        <author>
            <name>GitLab</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab</uri>
        </author>
        <published>2025-04-25T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Guide des changements cassants et suppressions de GitLab 18.0]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/a-guide-to-the-breaking-changes-in-gitlab-18-0/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/a-guide-to-the-breaking-changes-in-gitlab-18-0/"/>
        <updated>2025-04-18T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>GitLab 18.0, notre prochaine version majeure, inclut de nouvelles fonctionnalités qui repoussent les limites de l'innovation DevSecOps, tandis que certaines options obsolètes sont supprimées. Découvrez dans cet article un récapitulatif complet des évolutions majeures à venir, ainsi que des pistes concrètes pour en limiter l’impact sur vos projets.</p>
<h2>Fenêtres de déploiement GitLab 18.0</h2>
<h3>GitLab.com</h3>
<p>Les changements cassants sur GitLab.com sont concentrés sur ces trois périodes clés :</p>
<ul>
<li>Du 21 au 23 avril 2025</li>
<li>Du 28 au 30 avril 2025</li>
<li>Du 5 au 7 mai 2025</li>
</ul>
<p>De nombreux autres évolutions continuent d'être déployés au fil des mois. Pour en savoir plus sur les modifications les plus sensibles apportées prévues à ces dates, consultez notre <a href="https://docs.gitlab.com/update/breaking_windows/">documentation dédie aux changements cassants</a>.</p>
<p><em><strong>Remarque :</strong> exceptionnellement, certaines mises à jour importantes peuvent intervenir légèrement en dehors de ces périodes.</em></p>
<h3>GitLab Self-Managed</h3>
<p>GitLab 18.0 est disponible depuis le 15 mai. Consultez le calendrier complet des sorties de nouvelles versions sur <a href="https://about.gitlab.com/releases/">cette page</a>.</p>
<h3>GitLab Dedicated</h3>
<p>La mise à niveau vers GitLab 18.0 aura lieu pendant votre fenêtre de maintenance, entre le 24 et le 29 juin 2025. Pour en savoir plus et connaître votre fenêtre de maintenance, consultez <a href="https://docs.gitlab.com/administration/dedicated/maintenance/#release-rollout-schedule">cette page</a>.</p>
<p>Nous mettons également à votre disposition des outils et ressources adaptés pour vous aider à mesurer l'impact de ces changements sur votre environnement et préparer votre passage à la version 18.0. N'hésitez pas à consulter <a href="#tools-and-resources-to-manage-your-impact">toutes les informations sur ces outils, ressources et les mesures d'atténuation</a>.</p>
<p>En outre, la <a href="https://docs.gitlab.com/ee/update/deprecations?removal_milestone=18.0">page des obsolescences</a> répertorie l'ensemble des suppressions prévues dans la version 18.0. Découvrez ci-dessous les nouveautés de cette année et comment vous y préparer selon la configuration de votre déploiement.</p>
<h2>Changements cassants</h2>
<h3>Impact élevé</h3>
<p><strong>1. Token pour job CI/CD : suppression du paramètre « Limiter l'accès depuis votre projet »</strong></p>
<p>GitLab.com | GiitLab Self-Managed | GitLab Dedicated</p>
<p>Dans GitLab 14.4, nous avions mis en place le paramètre <strong>Limiter l'accès à CI_JOB_TOKEN</strong> pour améliorer la sécurité en <strong><a href="https://docs.gitlab.com/ci/jobs/ci_job_token/#limit-your-projects-job-token-access">restreignant l'accès <em>depuis</em> les tokens de job CI/CD de votre projet (CI_JOB_TOKEN)</a></strong> Dans la version 16.3 de GitLab, ce paramètre a été renommé <strong>Limiter l'accès <em>à partir</em> de ce projet</strong> pour plus de clarté.
Dans la version 15.9 de GitLab, nous avions introduit une solution alternative : le paramètre <strong><a href="https://docs.gitlab.com/ci/jobs/ci_job_token/#add-a-group-or-project-to-the-job-token-allowlist">Groupes et projets autorisés</a></strong>. Celui-ci contrôle l'accès au token pour job CI/CD de votre projet à l'aide d'une liste d'autorisations et constitue une amélioration significative par rapport à l'original. La première itération a été rendue obsolète dans GitLab 16.0 et sa suppression est prévue dans GitLab 18.0.</p>
<p>Le paramètre <strong>Limiter l'accès <em>à partir</em> de ce projet</strong> est désactivé par défaut pour tous les nouveaux projets. Depuis GitLab 16.0, une fois ce paramètre désactivé dans un projet, il n’est plus possible de le réactiver, mais vous pouvez utiliser le paramètre <strong>Groupes et projets autorisés</strong> pour contrôler l'accès au token pour job de vos projets.</p>
<ul>
<li><a href="https://docs.gitlab.com/update/deprecations/#cicd-job-token---limit-access-from-your-project-setting-removal">Avis d'obsolescence</a></li>
<li><a href="https://gitlab.com/gitlab-com/support/toolbox/gitlab-detective/-/blob/main/README.md">Vérification GitLab Detective disponible</a></li>
</ul>
<p><strong>2. Token pour job CI/CD : application de la liste d'autorisation « Groupes et projets autorisés »</strong></p>
<p>GitLab.com | GitLab Self-Managed | GitLab Dedicated</p>
<p>Introduit dans GitLab 15.9, le <strong><a href="https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#add-a-group-or-project-to-the-job-token-allowlist">paramètre « Groupes et projets autorisés »</a></strong> (renommé <strong>Limiter l'accès à ce projet</strong> dans la version 16.3 de GitLab), vous permet de gérer l'accès au token pour job CI/CD de votre projet. Lorsque le paramètre est défini sur <strong>Uniquement ce projet et tous les groupes et projets de la liste d'autorisation</strong>, seuls les groupes ou projets explicitement ajoutés à cette liste peuvent accéder à votre projet par le biais d'un token de job.</p>
<ul>
<li><strong>Avant GitLab 15.9</strong>, le token de job était accessible depuis n'importe quel projet, car la liste d'autorisation était désactivée par défaut et définie sur <a href="https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#allow-any-project-to-access-your-project"><strong>« Tous les groupes et projets »</strong></a>, sans restriction d'accès.</li>
<li><strong>Depuis GitLab 17.6</strong>, les administrateurs des instances GitLab Self-Managed ou GitLab Dedicated peuvent désormais <a href="https://docs.gitlab.com/ee/administration/settings/continuous_integration.html#job-token-permissions"><strong>imposer des règles de sécurité plus strictes pour tous les projets</strong></a> et empêcher les chargés de maintenance des projets de sélectionner <strong>Tous les groupes et projets</strong>. Cette modification garantit un niveau de sécurité plus élevé entre les projets.</li>
<li>Dans GitLab 18.0, ce paramètre sera activé par défaut. Sur GitLab.com, nous remplirons automatiquement les listes d'autorisations de vos projets en fonction des logs d'authentification de votre projet.</li>
<li>Pour anticiper ce changement sur <strong>GitLab.com</strong>, les chargés de maintenance du projet qui utilisent le token de job pour l'authentification inter-projets doivent remplir les listes d'autorisations <strong>Groupes et projets autorisés</strong>, puis définir le paramètre sur <strong>Uniquement</strong> <strong>ce projet et tous les groupes et projets de la liste d'autorisation</strong>. Nous vous encourageons à utiliser les <a href="https://docs.gitlab.com/ci/jobs/ci_job_token/#auto-populate-a-projects-allowlist">outils de migration</a> disponibles pour <em><strong>automatiser</strong></em> la création de la liste d'autorisation en fonction des <a href="https://docs.gitlab.com/ci/jobs/ci_job_token/#job-token-authentication-log">logs d'authentification</a> du projet avant le passage à la version GitLab 18.0.</li>
<li>Les <strong>utilisateurs de GitLab Self-Managed</strong> doivent remplir les listes d'autorisations avant d'effectuer la mise à niveau vers la version 18.0.</li>
<li>Les <strong>utilisateurs de GitLab Dedicated</strong> doivent élaborer, en collaboration avec l'équipe chargée de leur compte GitLab, une approche adaptée à leur instance.</li>
</ul>
<ul>
<li><a href="https://docs.gitlab.com/update/deprecations/#cicd-job-token---authorized-groups-and-projects-allowlist-enforcement">Avis d'obsolescence</a></li>
<li><a href="https://docs.gitlab.com/ci/jobs/ci_job_token/#add-a-gr">Documentation</a></li>
<li><a href="https://gitlab.com/gitlab-com/support/toolbox/gitlab-detective/-/blob/main/README.md">Vérification GitLab Detective disponible</a></li>
</ul>
<p><strong>3. Renforcement de la portée des tokens pour le proxy de dépendances</strong></p>
<p>GitLab.com | GitLab Self-Managed | GitLab Dedicated</p>
<p>Actuellement, le proxy de dépendances pour les conteneurs accepte les commandes <strong><code>docker login</code></strong> et <strong><code>docker pull</code></strong> en utilisant des tokens <strong>d'accès personnels, de projet</strong> ou <strong>de groupe</strong>, sans vérifier leurs portées.</p>
<p>À partir de GitLab 18.0, il exigera la présence des portées <strong><code>read_registry</code></strong> et <strong><code>write_registry</code></strong> pour valider toute authentification. Après cette modification, les tentatives d'authentification avec des tokens ne disposant pas de ces portées seront <strong>rejetées</strong>.</p>
<p>Avant de procéder à la mise à niveau, vous devez générer de nouveaux tokens avec les <a href="https://docs.gitlab.com/ee/user/packages/dependency_proxy/#authenticate-with-the-dependency-proxy-for-container-images"><strong>portées requises</strong></a>, puis mettre à jour les variables et scripts de vos workflows avec ces nouveaux jetons.</p>
<p>Vous avez également la possibilité d'utiliser <a href="https://gitlab.com/gitlab-com/cs-tools/gitlab-cs-tools/dependancy-token-checker/"><strong>Dependency Token Checker</strong></a>, un script développé par la communauté, qui vous permet de visualiser les tokens et de procéder à leur rotation automatique.</p>
<ul>
<li><a href="https://docs.gitlab.com/update/deprecations/#dependency-proxy-token-scope-enforcement">Avis d'obsolescence</a></li>
</ul>
<h3>Impact modéré</h3>
<p><strong>1. Nouvelles limites de conservation des données relatives aux vulnérabilités sur GitLab.com</strong></p>
<p>GitLab.com - <strong>Réservé aux clients Ultimate</strong></p>
<p>À partir de GitLab 18.1, nous mettrons en place progressivement, sur une période de six mois, une <strong>nouvelle limite de conservation des données</strong> pour les clients de l'édition <strong>GitLab Ultimate</strong> sur GitLab.com, afin d'améliorer les performances et la fiabilité du système. Celle-ci aura une incidence sur la durée de conservation des données relatives aux vulnérabilité.</p>
<p>Les vulnérabilités datant de plus de 12 mois qui n'ont pas été mises à jour seront automatiquement déplacées vers des archives de stockage à froid qui  :</p>
<ul>
<li>restent accessibles et téléchargeables via l'interface utilisateur (UI) de GitLab</li>
<li>sont conservées pendant 3 ans</li>
<li>sont définitivement supprimées après 3 ans</li>
</ul>
<ul>
<li><a href="https://docs.gitlab.com/update/deprecations/#new-data-retention-limits-for-vulnerabilities-on-gitlabcom">Avis d'obsolescence</a></li>
<li><a href="https://handbook.gitlab.com/handbook/security/records-retention-deletion/">Documentation</a></li>
</ul>
<p><strong>2. Rejet des stratégies de pull d'image de conteneur qui ne figurent pas dans <code>allowed_pull_policies</code></strong></p>
<p>GitLab.com | GitLab Self-Managed | GitLab Dedicated</p>
<p>Toutes les stratégies de pull configurées doivent être présentes dans la <a href="https://docs.gitlab.com/runner/executors/docker/#allow-docker-pull-policies"><strong>configuration allowed_pull_policies</strong></a> spécifiée dans le fichier <strong><code>config.toml</code></strong> du runner. Si ce n'est pas le cas, le job devrait échouer avec une erreur de type**<code>incompatible pull policy</code>**.</p>
<p>Actuellement, les jobs ne sont pas rejetés tant qu'au moins une stratégie de pull figure dans <strong><code>allowed-pull-policies</code></strong>, même si d'autres sont exclues.</p>
<p>Dans GitLab 18.0, un job ne sera en échec que si aucune stratégie de pull définie ne figure dans <strong><code>allowed-pull-policies</code></strong>. Toutefois, maintenant, seules les stratégies autorisées dans <strong><code>allowed-pull-policies</code></strong> seront effectivement appliquées. Avec GitLab 18.0, cette distinction risque de provoquer l'échec de jobs qui s'exécutent actuellement avec succès.</p>
<ul>
<li><a href="https://docs.gitlab.com/update/deprecations/#reject-container-image-pull-policies-not-in-allowed_pull_policies">Avis d'obsolescence</a></li>
<li><a href="https://docs.gitlab.com/runner/executors/docker/#allow-docker-pull-policies">Documentation</a></li>
</ul>
<p><strong>3. Fin de la prise en charge de PostgreSQL 14 et 15</strong></p>
<p>GitLab Self-Managed</p>
<p>GitLab suit une <a href="https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/data-access/database-framework/postgresql-upgrade-cadence/"><strong>cadence de mise à niveau annuelle pour PostgreSQL</strong></a>.</p>
<p>La prise en charge de PostgreSQL 14 et 15 sera supprimée dans GitLab 18.0 et PostgreSQL 16 deviendra la version minimale requise.</p>
<p>PostgreSQL 14 et 15 seront pris en charge pendant l'ensemble du cycle de sortie de nouvelles versions de GitLab 17. PostgreSQL 16 sera également pris en charge pour les instances qui souhaitent effectuer une mise à niveau avant la sortie de GitLab 18.0.</p>
<p>Pour anticiper ce changement, les instances qui n'utilisent pas <a href="https://docs.gitlab.com/administration/postgresql/replication_and_failover/"><strong>PostgreSQL Cluster</strong></a> (comme celles installées avec un paquet Omnibus sur une seule instance PostgreSQL), bénéficieront d'une mise à niveau automatique vers PostgreSQL 16 à partir de GitLab 17.11. Si vous utilisez <a href="https://docs.gitlab.com/administration/postgresql/replication_and_failover/"><strong>PostgreSQL Cluster</strong></a> ou si vous <a href="https://docs.gitlab.com/omnibus/settings/database/#opt-out-of-automatic-postgresql-upgrades"><strong>désactivez cette mise à niveau automatique</strong></a>, vous devrez <a href="https://docs.gitlab.com/omnibus/settings/database/#upgrade-packaged-postgresql-server"><strong>effectuer une mise à niveau manuelle vers PostgreSQL 16</strong></a> pour passer à GitLab 18.0. Assurez-vous de disposer de suffisamment d'espace disque pour effectuer la mise à niveau.</p>
<ul>
<li><a href="https://docs.gitlab.com/update/deprecations/#postgresql-14-and-15-no-longer-supported">Avis d'obsolescence</a></li>
<li><a href="https://docs.gitlab.com/omnibus/settings/database/#upgrade-packaged-postgresql-server">Documentation</a></li>
<li><a href="https://docs.gitlab.com/omnibus/development/managing-postgresql-versions/">Instructions pour la migration</a></li>
</ul>
<p><strong>4. Obsolescence des templates CI/CD Terraform</strong></p>
<p>GitLab Self-Managed</p>
<p>Les templates CI/CD Terraform sont déclarés obsolètes et sont supprimés dans GitLab 18.0. Les templates concernés sont les suivants  :</p>
<ul>
<li><code>Terraform.gitlab-ci.yml</code></li>
<li><code>Terraform.latest.gitlab-ci.yml</code></li>
<li><code>Terraform/Base.gitlab-ci.yml</code></li>
<li><code>Terraform/Base.latest.gitlab-ci.yml</code></li>
</ul>
<p>GitLab ne pourra pas mettre à jour le binaire <strong><code>terraform</code></strong> dans les images de job vers une version sous licence Business Source License (BSL).</p>
<p>Pour continuer à utiliser Terraform, clonez les templates et l'<a href="https://gitlab.com/gitlab-org/terraform-images"><strong>image Terraform</strong></a>, et maintenez-les à jour si nécessaire. GitLab fournit des <a href="https://gitlab.com/gitlab-org/terraform-images"><strong>instructions détaillées</strong></a> pour migrer vers une image personnalisée.</p>
<p><strong>À la place, nous vous recommandons d'utiliser le nouveau composant CI/CD OpenTofu sur GitLab.com ou le nouveau template CI/CD OpenTofu sur GitLab Self-Managed.</strong> Les composants CI/CD ne sont pas encore disponibles sur GitLab Self-Managed. Toutefois, le <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/415638"><strong>ticket n° 415638</strong></a> propose d'ajouter cette fonctionnalité. Si les composants CI/CD deviennent disponibles sur GitLab Self-Managed, le template CI/CD OpenTofu sera supprimé.</p>
<p>En savoir plus sur le nouveau <a href="https://gitlab.com/components/opentofu">composant CI/CD OpenTofu</a>.</p>
<ul>
<li><a href="https://docs.gitlab.com/update/deprecations/#deprecate-terraform-cicd-templates">Avis d'obsolescence</a></li>
</ul>
<p><strong>5. Mise à jour majeure du sous-chart Prometheus</strong></p>
<p>GitLab Self-Managed</p>
<p>Avec GitLab 18.0 et le chart GitLab 9.0, le sous-chart Prometheus sera mis à jour de la version 15.3 à la version 27.3.</p>
<p>Avec cette mise à jour, Prometheus 3 sera livré par défaut.</p>
<p>Vous devrez effectuer certaines étapes manuelles pour effectuer la mise à niveau. Si Alertmanager, Node Exporter ou Pushgateway sont activés, vous devrez également mettre à jour vos valeurs Helm.</p>
<p>Veuillez vous référer au <a href="https://docs.gitlab.com/charts/releases/9_0/#prometheus-upgrade"><strong>guide sur la migration</strong></a> pour plus d'informations.</p>
<ul>
<li><a href="https://docs.gitlab.com/update/deprecations/#major-update-of-the-prometheus-subchart">Avis d'obsolescence</a></li>
</ul>
<h3>Impact faible</h3>
<p><strong>1. Arrêt de la compilation des paquets SUSE Linux Enterprise Server 15 SP2</strong></p>
<p>GitLab Self-Managed</p>
<p>Le version avec service et support à long terme (LTSS) pour SUSE Linux Enterprise Server (SLES) 15 SP2 a pris fin en décembre 2024.</p>
<p>Par conséquent, nous ne prendrons plus en charge la distribution de SLES SP2 pour les installations de paquets Linux. Veuillez effectuer une mise à niveau vers SLES 15 SP6 pour bénéficier d'une prise en charge continue.</p>
<ul>
<li><a href="https://docs.gitlab.com/update/deprecations/#support-for-suse-linux-enterprise-server-15-sp2">Avis d'obsolescence</a></li>
</ul>
<p><strong>2. Suppression du limiteur de débit Gitaly</strong></p>
<p>GitLab Self-Managed</p>
<p>Auparavant, Gitaly prenait en charge la <a href="https://gitlab.com/gitlab-org/gitaly/-/blob/4b7ea24f6172a03e7989879200b47b6fd0e2d059/doc/backpressure.md#L55-55"><strong>limitation de débit basée sur RPC</strong></a>. Nous rendons aujourd'hui cette fonctionnalité obsolète, car elle ne donne pas les résultats escomptés. Veuillez consulter le ticket relatif à l'obsolescence pour plus de détails.</p>
<p>Si vous avez procédé à la configuration du limiteur de débit (bientôt obsolète), aucune erreur ne sera renvoyée et celle-ci sera simplement ignorée.</p>
<p>À la place, vous devez utiliser le <a href="https://docs.gitlab.com/administration/gitaly/concurrency_limiting/"><strong>limiteur de simultanéité</strong></a>.</p>
<ul>
<li><a href="https://docs.gitlab.com/update/deprecations/#gitaly-rate-limiting">Avis d'obsolescence</a></li>
</ul>
<p><strong>3. Obsolescence de la prise en charge de l'image du contrôleur NGINX 1.3.1</strong></p>
<p>GitLab Self-Managed</p>
<p>Nous passons à la version 1.11.2 du contrôleur NGINX par défaut, laquelle impose de nouvelles règles de contrôle d'accès basé sur les rôles (RBAC). Les utilisateurs qui utilisent <strong>nginx-ingress.rbac.create: false</strong> pour gérer leurs propres règles RBAC</p>
<p>devront les mettre à jour avant de migrer vers la version 1.11.2 ou une version ultérieure. Un mécanisme alternatif permet désormais de déployer la version 1.3.1 uniquement si la valeur Helm est définie comme indiqué ci-dessus. Par ailleurs, nous avons ajouté la valeur <strong>nginx-ingress.controller.image.disableFallback</strong>, qui est définie par défaut sur « false ». Si vous gérez vos propres règles RBAC, vous pouvez définir cette valeur sur « true » une fois les nouvelles règles en place, afin de permettre le déploiement de la version 1.11.2.</p>
<p>La version 17.5 marquera la fin de la prise en charge de l'image 1.3.1 et du mécanisme alternatif, afin de généraliser l'utilisation de la version 1.11.2, plus sécurisée.</p>
<p><a href="https://docs.gitlab.com/update/deprecations/#fallback-support-for-gitlab-nginx-chart-controller-image-v131">Avis d'obsolescence</a></p>
<p><strong>4. Mise à jour de la version majeure des analyseurs de tests de sécurité des applications</strong></p>
<p>GitLab.com | GitLab Self-Managed | GitLab Dedicated</p>
<p>Avec GitLab 18.0, les analyseurs utilisés pour les tests de sécurité des applications passeront à de nouvelles versions majeures.</p>
<p>Si vous n'utilisez pas les templates inclus par défaut ou si vous avez épinglé vos versions d'analyseur, pensez à mettre à jour votre job CI/CD en retirant la version épinglée ou en passant à la dernière version majeure.</p>
<p>Jusqu'à GitLab 18.0, les analyseurs seront toujours mis à jour sur les versions 17.0 à 17.11. Ensuite, seuls les analyseurs de la nouvelle version majeure bénéficieront des correctifs et des nouvelles fonctionnalités.</p>
<p>Conformément à notre politique de maintenance, nous ne rétroportons pas les bogues ni les nouvelles fonctionnalités vers les versions obsolètes. Seuls les correctifs de sécurité peuvent être appliqués aux trois dernières versions mineures.</p>
<ul>
<li><a href="https://docs.gitlab.com/update/deprecations/#application-security-testing-analyzers-major-version-update">Avis d'obsolescence</a></li>
</ul>
<p><strong>5. API Discovery utilisera les pipelines de branche par défaut</strong></p>
<p>GitLab.com | GitLab Self-Managed | GitLab Dedicated</p>
<p>Dans GitLab 18.0, nous mettrons à jour le comportement par défaut du template CI/CD pour API Discovery (<strong>API-Discovery.gitlab-ci.yml</strong>).</p>
<p>Jusqu'à GitLab 18.0, il configurait par défaut les jobs pour qu'ils s'exécutent dans des <a href="https://docs.gitlab.com/ci/pipelines/merge_request_pipelines/"><strong>pipelines de merge requests (MR)</strong></a> dès l'ouverture d'une MR.</p>
<p>Dès GitLab 18.0, ce template adoptera le même comportement que les <a href="https://docs.gitlab.com/user/application_security/detect/roll_out_security_scanning/#template-editions"><strong>éditions stables de templates</strong></a> des autres scanners d'arbre de syntaxe abstraite (AST) :</p>
<ul>
<li>Par défaut, le template exécutera des jobs de scan dans les pipelines de branche.</li>
<li>Vous pourrez définir la variable CI/CD <strong>AST_ENABLE_MR_PIPELINES: true</strong> pour utiliser les pipelines MR lors de l'ouverture d'une MR. Le suivi de la mise en œuvre de cette variable est disponible via le <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/410880"><strong>ticket n° 410880</strong></a>.</li>
</ul>
<ul>
<li><a href="https://docs.gitlab.com/update/deprecations/#api-discovery-will-use-branch-pipelines-by-default">Avis d'obsolescence</a></li>
</ul>
<p><strong>6. Réduction par défaut de la valeur du DAST DAST_DEVTOOLS_API_TIMEOUT</strong></p>
<p>GitLab.com | GitLab Self-Managed | GitLab Dedicated</p>
<p>La variable d'environnement <strong>DAST_DEVTOOLS_API_TIMEOUT</strong> détermine la durée pendant laquelle un test dynamique de sécurité des applications (DAST) attend une réponse du navigateur. Avant GitLab 18.0, la variable avait une valeur statique de 45 secondes. Dès GitLab 18.0, la variable d'environnement <strong>DAST_DEVTOOLS_API_TIMEOUT</strong> aura une valeur dynamique, calculée en fonction d'autres configurations de délai d'attente dépassé.</p>
<p>Dans la plupart des cas, la valeur de 45 secondes était supérieure à la valeur du délai d'attente dépassé de nombreuses fonctions du scanner. Le passage à un calcul dynamique permet d'adapter la variable <strong>DAST_DEVTOOLS_API_TIMEOUT</strong> à un plus grand nombre de situations.</p>
<ul>
<li><a href="https://docs.gitlab.com/update/deprecations/#dast-dast_devtools_api_timeout-will-have-a-lower-default-value">Avis d'obsolescence</a></li>
</ul>
<h2>Outils et ressources pour gérer l'impact sur votre environnement</h2>
<p>Nous avons développé des outils spécifiques pour aider nos clients à comprendre l'impact de ces changements planifiés sur leur(s) instance(s) GitLab. Après avoir évalué l'impact sur votre projet, consultez les mesures d'atténuation décrites dans la documentation pour assurer une transition fluide vers GitLab 18.0.</p>
<ul>
<li><a href="https://gitlab.com/gitlab-com/cs-tools/gitlab-cs-tools/deprecation-migration-tools/advanced-search-deprecations">Obsolescence de la recherche avancée</a> : cet outil s'appuie sur l'API de recherche avancée de GitLab pour repérer les chaînes liées aux obsolescences dans vos groupes et projets, et signale aussi les fichiers nécessitant une vérification manuelle. <em><strong>Remarque :</strong> peut comporter des faux positifs.</em></li>
<li><a href="https://gitlab.com/security-products/tooling/build-support-detection-helper">Assistant de détection de prise en charge de la compilation pour l'analyse des dépendances</a> : cet outil détecte les projets concernés par trois obsolescences liées à l'analyse des dépendances (<a href="https://docs.gitlab.com/update/deprecations/#dependency-scanning-for-javascript-vendored-libraries">1</a>, <a href="https://docs.gitlab.com/update/deprecations/#dependency-scanning-upgrades-to-the-gitlab-sbom-vulnerability-scanner">2</a>, <a href="https://docs.gitlab.com/update/deprecations/#resolve-a-vulnerability-for-dependency-scanning-on-yarn-projects">3</a> ; toutes reportées à la version 19.0) et s'appuie sur l'API pour analyser les fichiers et les nom de jobs CI.</li>
<li><a href="https://gitlab.com/gitlab-com/support/toolbox/gitlab-detective/-/blob/main/README.md">GitLab Detective</a> (GitLab Auto-géré uniquement) : cet outil expérimental analyse automatiquement votre installation GitLab pour détecter les problèmes connus, en s'appuyant sur des vérifications poussées des fichiers de configuration et valeurs issues de la base de données. <strong>Remarque :</strong> l’outil doit s'exécuter directement sur vos nœuds GitLab.</li>
</ul>
<p>Pour vous accompagner dans cette transition, nous avons lancé sur GitLab University des micro-cours pratiques (de 15 minutes maximum) dédiés à la préparation et à la mise en œuvre des actions d'atténuation nécessaires. <a href="https://university.gitlab.com/catalog?query=18.0">Commencez votre parcours d'apprentissage ici</a>.</p>
<p>Si vous disposez d'un forfait payant et que vous avez des questions ou besoin d'aide concernant ces changements, veuillez <a href="https://about.gitlab.com/support/portal/">créer un ticket d'assistance</a> sur le portail d'assistance GitLab.</p>
<p>Si vous utilisez la <a href="https://about.gitlab.com/support/statement-of-support/#free-users">version gratuite de Gitlab.com</a>, vous pouvez obtenir de l'aide via les ressources communautaires : <a href="https://docs.gitlab.com/">documentation GitLab</a>, <a href="https://forum.gitlab.com/">forum de la communauté GitLab</a> et <a href="http://stackoverflow.com/questions/tagged/gitlab">Stack Overflow</a>.</p>
]]></content>
        <author>
            <name>Martin Brümmer</name>
            <uri>https://about.gitlab.com/blog/authors/martin-brümmer</uri>
        </author>
        <author>
            <name>Fabian Zimmer</name>
            <uri>https://about.gitlab.com/blog/authors/fabian-zimmer</uri>
        </author>
        <author>
            <name>Sam Wiskow</name>
            <uri>https://about.gitlab.com/blog/authors/sam-wiskow</uri>
        </author>
        <published>2025-04-18T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Duo combiné à Amazon Q : l'IA agentique optimisée pour AWS est désormais disponible à tous les utilisateurs]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/"/>
        <updated>2025-04-17T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Nous sommes ravis d'annoncer aujourd'hui la disponibilité générale de <a href="https://about.gitlab.com/fr-fr/partners/technology-partners/aws/">GitLab Duo combiné à Amazon Q</a>, qui fournit une IA agentique tout au long du cycle de développement logiciel aux clients AWS. Basé sur GitLab Ultimate, GitLab Duo combiné à Amazon Q inclut de nombreuses fonctionnalités, telles que la complétion de code, l'explication de code, la génération de code, le chat, ainsi que l'explication et la résolution des vulnérabilités, qui sont désormais toutes optimisées par Amazon Q. Cette solution est disponible dans le cadre d'un modèle de déploiement GitLab Self-Managed pour les clients sur AWS.</p>
<p>Les agents d'Amazon Q étant directement intégrés à la plateforme DevSecOps de GitLab, les développeurs peuvent continuer à utiliser leur environnement de développement habituel tout en bénéficiant de puissantes fonctionnalités d'IA. Le résultat ? Une expérience fluide qui permet d'accélérer les cycles de développement, de réduire les tâches manuelles et d'améliorer la qualité du code.</p>
<p>« Le programme d'accès anticipé de GitLab Duo combiné à Amazon Q nous a permis de découvrir tout le potentiel de transformation de cette solution pour nos workflows de développement », explique Osmar Alonso, ingénieur DevOps chez Volkswagen Digital Solutions. « Même lors de la phase d'amorçage, nous avons vu comment une intégration plus avancée d'agents autonomes pouvait rationaliser notre processus, de la validation du code à la production. Nous avons hâte de découvrir comment cette technologie va nous permettre de nous concentrer sur l'innovation et d'accélérer notre transformation digitale. »</p>
<h2>L'IA agentique s'invite dans les environnements clients complexes</h2>
<p>En combinant l'IA agentique avec une infrastructure cloud sécurisée et fiable, GitLab et AWS apportent une sécurité, une évolutivité et une fiabilité intégrées aux environnements clients complexes, ce qui se traduit par de nombreux avantages :</p>
<p><strong>Une expérience de développement unifiée pour un développement rationalisé</strong></p>
<p>Les développeurs peuvent interagir avec Amazon Q via l'interface GitLab Duo Chat à partir de leur environnement de développement intégré (IDE) préféré ou de l'interface Web GitLab. Les utilisateurs n'ont ainsi pas besoin de changer de contexte pour utiliser d'autres outils et peuvent rester concentrés sur le projet en cours.</p>
<p><strong>Une solution unique pour l'ensemble du cycle de développement logiciel</strong></p>
<p>Les suggestions et optimisations de code exploitent les modèles et pratiques spécifiques à AWS, tandis que les outils de test comprennent les interactions et les dépendances des services AWS. Un magasin de données commun à toutes les étapes fournit un contexte essentiel aux agents d'IA, permettant une visibilité et une traçabilité complètes pour les actions pertinentes.</p>
<p><strong>Un développement sécurisé avec des garde-fous à l'échelle de l'entreprise</strong></p>
<p>La sécurité et la conformité tout au long du cycle de développement logiciel sont intégrées directement dans la plateforme de développement avec des garde-fous qui aident à réduire les risques sans entraver la vélocité du développement. Cette approche sécurisée du développement logiciel garantit la transparence et l'auditabilité grâce aux agents d'IA, tout en s'intégrant de façon homogène aux services liés à la sécurité et aux frameworks de conformité d'AWS.</p>
<h2>Comment utiliser GitLab Duo combiné à Amazon Q ?</h2>
<p>Voici cinq cas d'utilisation initiaux que nous ciblons pour aider les équipes à créer plus rapidement des logiciels sécurisés avec une IA agentique :</p>
<ol>
<li><strong>Accélération du développement des fonctionnalités</strong> : créez des descriptions dans les tickets, générez des plans de mise en œuvre en fonction de votre code base existant et produisez des merge requests complètes prêtes pour la vérification. Vous accélérez ainsi la livraison des fonctionnalités tout en appliquant vos normes de développement internes.</li>
<li><strong>Modernisation des applications existantes</strong> : analysez votre code base Java existant, créez un plan de mise à niveau complet et générez des merge requests contenant toutes les modifications de code nécessaires. Cela permet de réduire le temps de mise à niveau de Java, tout en maintenant une piste d'audit claire de toutes les transformations de code. La prise en charge de .NET et d'autres langages est prévue pour les prochaines versions.</li>
<li><strong>Amélioration de l'assurance qualité</strong> : analysez le code et créez automatiquement des tests unitaires complets qui comprennent la logique de votre application et les interactions avec les services AWS. Vous pouvez ainsi augmenter la couverture des tests, réduire les tâches manuelles de rédaction des tests et contribuer à assurer une qualité de test constante pour toutes les applications.</li>
<li><strong>Optimisation de la revue de code</strong> : insérez des commentaires inline sur les modifications de code, suggérez des améliorations basées sur les normes de développement, mettez en évidence les considérations de sécurité et de performances. Vous pouvez ainsi réduire les cycles de revue de code et fournir des merges de code de meilleure qualité pour le déploiement.</li>
<li><strong>Correction des vulnérabilités</strong> : expliquez les vulnérabilités détectées de façon claire et détaillée, puis corrigez-les en un seul clic en fonction des modifications de code recommandées, ce qui contribue à réduire considérablement le délai entre la détection des failles et leur correction.</li>
</ol>
<p>Découvrez GitLab Duo combiné à Amazon Q en action :</p>
<p>&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1075753390?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;Technical Demo: GitLab Duo with Amazon Q&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;script src=&quot;https://player.vimeo.com/api/player.js&quot;&gt;&lt;/script&gt;</p>
<blockquote>
<h4>Profitez dès aujourd'hui des avantages de GitLab Duo combiné à Amazon Q</h4>
<p>La combinaison de la plateforme DevSecOps unifiée de GitLab alimentée par l'IA et des fonctionnalités d'IA avancées d'Amazon Q offre aux clients AWS une solution qui transforme la façon dont les équipes créent et déploient les logiciels. Pour en savoir plus sur GitLab Duo combiné à Amazon Q, n'hésitez pas à nous retrouver à l'occasion d'un <a href="https://about.gitlab.com/fr-fr/events/aws-summits/">AWS Global Summit dans votre région</a> ou à <a href="https://about.gitlab.com/fr-fr/partners/technology-partners/aws/#form">contacter votre représentant GitLab</a>.</p>
</blockquote>
]]></content>
        <author>
            <name>Emilio Salvador</name>
            <uri>https://about.gitlab.com/blog/authors/emilio-salvador</uri>
        </author>
        <published>2025-04-17T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Open source : définition, avantages et défis]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/what-is-open-source/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/what-is-open-source/"/>
        <updated>2025-04-16T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Basé sur des principes fondamentaux tels que l'ouverture, le partage des connaissances et l'amélioration continue, l'open source révolutionne le monde du développement logiciel. En réunissant des développeurs du monde entier, l'open source crée un environnement propice à l'innovation, où les idées et les solutions émergent grâce à la diversité des contributions.</p>
<p>Découvrez dans cet article les principes fondamentaux du développement <a href="https://about.gitlab.com/fr-fr/solutions/open-source/" title="Solutions GitLab pour les projets open source">open source</a>.</p>
<h2>Qu’est-ce que l’open source ?</h2>
<p>L'open source est un modèle de développement fondé sur la transparence et la collaboration. Contrairement aux logiciels propriétaires, où seul le détenteur des droits peut modifier le code source ou redistribuer le produit, l'open source rend ce code accessible à tous. Les développeurs du monde entier peuvent ainsi l'examiner, l'améliorer et le partager librement, favorisant l'innovation et le progrès collectif.</p>
<blockquote>
<p><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/" title="Essai gratuit de GitLab Ultimate">
Essayez GitLab Ultimate gratuitement pendant 60 jours</a> et commencez à développer des logiciels open source dès aujourd'hui.</p>
</blockquote>
<h2>Quels sont les avantages de l'open source ?</h2>
<p>Bien plus qu'une alternative technologique, l'open source est un modèle offrant de nombreux avantages. Réduction des coûts, accélération de l'innovation, meilleure sécurité des logiciels, ou encore personnalisation, sont autant d'atouts qui peuvent transformer les projets et stimuler la croissance des entreprises.</p>
<h3>Des coûts réduits</h3>
<p>À l'opposé des solutions propriétaires parfois onéreuses, les logiciels open source se distinguent souvent par leur faible coût, vous dispensant des dépenses traditionnellement associées aux licences et au support technique. Chez GitLab par exemple, les utilisateurs ont la possibilité d’utiliser gratuitement <a href="https://about.gitlab.com/fr-fr/install/ce-or-ee/" title="GitLab Community Edition (CE)">GitLab Community Edition (CE)</a> qui est open source.</p>
<h3>Une meilleure transparence</h3>
<p>L'accès au code source permet à qui le souhaite d'examiner, de modifier et d'améliorer les logiciels. Pour les développeurs, cette transparence facilite leur compréhension des logiciels, de la manière dont ils sont construits et des failles de sécurité potentielles qu'ils peuvent contenir. Par exemple, le code source de GitLab est disponible publiquement sur GitLab.com et offre aux utilisateurs l'opportunité d’inspecter le code, de comprendre son fonctionnement et même de contribuer activement à son développement.</p>
<h3>Des logiciels personnalisables</h3>
<p>L'open source offre aux entreprises la possibilité d'adapter leurs logiciels à leurs besoins spécifiques, là où les solutions propriétaires limitent souvent cette liberté. Grâce à leur nature modulable, les logiciels open source permettent d'optimiser l'efficacité opérationnelle en s'adaptant précisément aux besoins des entreprises. GitLab illustre cette flexibilité en offrant à tous la possibilité de contribuer de façon traditionnelle, et en offrant également aux entreprises la possibilité de développer des intégrations et des fonctionnalités sur mesure grâce à son <a href="https://about.gitlab.com/community/co-create/" title="Programme Co-Create">programme Co-Create</a>.</p>
<h3>Une communauté engagée</h3>
<p>Les projets open source reposent sur l'engagement d'une communauté qui partage ses connaissances pour résoudre des problèmes ou proposer des améliorations sur les logiciels. GitLab <a href="https://about.gitlab.com/community/" title="Communauté de GitLab">tire pleinement parti de cet écosystème</a> en s'appuyant sur une base d'utilisateurs et de développeurs qui enrichissent activement son développement et <a href="https://forum.gitlab.com/" title="Forum de GitLab">partagent leur expertise</a>. GitLab collabore également avec d'autres entreprises sur des projets open source comme Git, renforçant son engagement pour l'innovation collective et la création de solutions évolutives.</p>
<h3>Un accélérateur d’innovations</h3>
<p>En réunissant des talents du monde entier autour de projets communs, l'open source devient un puissant moteur d'innovation. Cette synergie stimule l'amélioration continue et l'enrichissement des logiciels grâce à la diversité des compétences partagées. Ce modèle accélère ainsi le développement technologique en rendant les outils open source accessibles à un large public. GitLab, avec son cycle de release mensuel, <a href="https://about.gitlab.com/releases/" title="Releases GitLab">intègre régulièrement de nouvelles fonctionnalités et améliorations</a> fondées sur les retours et contributions de sa communauté d'utilisateurs.</p>
<h3>Des logiciels évolutifs</h3>
<p>Les logiciels open source reposent souvent sur des normes ouvertes qui <a href="https://about.gitlab.com/fr-fr/integrations/" title="Intégrations GitLab">simplifient leur intégration avec d'autres systèmes</a>. Conçus pour s'adapter à divers environnements, ils offrent aux entreprises la possibilité de créer des solutions sur mesure, performantes et évolutives.</p>
<h3>Une sécurité logicielle renforcée</h3>
<p>La sécurité et la fiabilité sont des piliers essentiels des logiciels open source. Grâce à l'examen continu du code par une large communauté de développeurs, les failles de sécurité sont rapidement identifiées et corrigées. Bien que cette approche ne garantisse pas une sécurité absolue, elle favorise grandement la réactivité des équipes de développement face aux vulnérabilités de toutes sortes. GitLab applique ce principe en <a href="https://handbook.gitlab.com/handbook/security/product-security/application-security/runbooks/hackerone-process/">s'appuyant sur sa communauté pour renforcer la sécurité de sa plateforme</a>.</p>
<h3>Un savoir-faire enrichi</h3>
<p>Les logiciels open source représentent une mine d'opportunités d'apprentissage pour les développeurs. En s'impliquant dans ces projets, ils peuvent perfectionner leurs compétences et gagner en expérience auprès d'autres professionnels du domaine, enrichissant leur savoir-faire et accélérant leur développement professionnel.</p>
<p>Par exemple, les développeurs peuvent étudier la base de code de GitLab pour apprendre les meilleures pratiques en matière de développement de plateformes DevSecOps. Les membres de l'équipe GitLab participent par ailleurs à des programmes de mentorat comme <a href="https://about.gitlab.com/blog/google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare/" title="Google Summer of Code">Google Summer of Code</a> et <a href="https://about.gitlab.com/blog/outreachy-sponsorship-winter-2020/" title="Outreachy">Outreachy</a> qui permettent d'apprendre aux nouveaux participants comment contribuer à GitLab ou autres logiciels open source comme Git.</p>
<h3>Des logiciels plus qualitatifs</h3>
<p>De nombreux projets open source bénéficient de la contribution de développeurs talentueux. Grâce à leur expertise, le code des logiciels open source est constamment examiné, amélioré et renforcé, ce qui permet de développer des solutions robustes et performantes.</p>
<h2>Quels sont les défis liés à l’open source</h2>
<p>Explorer l'univers des logiciels open source peut être aussi stimulant qu'exigeant. De la création de relations solides avec une communauté au renforcement de la sécurité des projets, chaque étape comporte ses propres défis. Pour réussir, il est essentiel de comprendre ces obstacles et de mettre en place des stratégies adaptées.</p>
<h3>Construire une relation solide avec sa communauté</h3>
<p>Le succès du développement open source repose sur la capacité à établir et à maintenir une relation solide avec une communauté de développeurs et d'utilisateurs. Cela nécessite des échanges continus afin de comprendre et de répondre à ses attentes. Puisque la majorité des contributeurs sont bénévoles, il est essentiel de coordonner leurs efforts de manière agile et structurée.</p>
<p>Pour maintenir leur motivation sur le long terme, notamment pour les contributeurs œuvrant sans contrepartie financière, il est crucial de reconnaître et de valoriser leur travail. Cela peut passer par des mentions officielles (crédits), des opportunités de formation ou d'autres formes de reconnaissances professionnelles. Sans cette valorisation, les contributeurs risquent de se détourner des projets, voire de créer des initiatives parallèles. Bâtir une communauté engagée et durable est donc au cœur du succès de tout projet open source.</p>
<h3>Trouver un équilibre entre les intérêts de la communauté et celle des entreprises</h3>
<p>Trouver un équilibre entre les intérêts des entreprises et ceux de la communauté est un défi central dans le développement open source. Les entreprises impliquées dans ces projets ont généralement des objectifs prioritaires. Ces priorités, souvent commerciales, peuvent entrer en conflit avec les attentes plus larges de la communauté, dont les intérêts sont plutôt axés sur l'innovation libre ou la personnalisation des logiciels.</p>
<p>Lorsque les décisions semblent trop axées sur les intérêts de l'entreprise, la communauté risque de se sentir exclue, ce qui peut réduire son engagement et limiter ses contributions. Pour éviter ce désengagement, les entreprises doivent partager clairement leurs objectifs et échanger régulièrement avec leur communauté pour garantir la pérennité et le succès à long terme des projets open source.</p>
<h3>Maintenir la sécurité des logiciels</h3>
<p>Les logiciels open source sont exposés à certains défis en matière de sécurité. La transparence du code, bien qu'étant l'un de leurs plus grands atouts, peut aussi les exposer à des attaques ciblées, ce qui peut devenir un risque majeur si l'entreprise à l’origine du projet open source ne corrige pas rapidement les failles identifiées.</p>
<p>Les utilisateurs comptent ainsi sur la réactivité de l'entreprise pour garantir la sécurité de leurs systèmes et de leurs données.</p>
<h2>GitLab : un partenaire incontournable pour les projets open source</h2>
<p>Les projets open source sont un moteur d'innovation technologique, et choisir la bonne plateforme pour les héberger est essentiel. Grâce à son système de gestion de versions basé sur <a href="https://about.gitlab.com/fr-fr/blog/what-is-git/" title="Qu'est-ce que Git ? ">Git</a>, GitLab permet aux équipes de développement de collaborer efficacement, de suivre les modifications de code et de conserver un historique complet de leurs projets.</p>
<h3>Une suite complète de fonctionnalités collaboratives</h3>
<p>GitLab met à disposition de ses utilisateurs une suite complète de fonctionnalités adaptées au développement et à la gestion de projets open source. Parmi ces fonctionnalités figurent le <a href="https://docs.gitlab.com/ee/user/project/issues/" title="Tickets GitLab">suivi des tickets</a>, les <a href="https://docs.gitlab.com/ee/user/project/merge_requests/" title="merge requests">merge requests</a>, la <a href="https://about.gitlab.com/fr-fr/topics/version-control/what-is-code-review/" title="Qu'est-ce qu'une revue de code ? ">revue de code</a>, les <a href="https://about.gitlab.com/fr-fr/blog/get-to-know-the-gitlab-wiki-for-effective-knowledge-management/" title="GitLab Wiki">wikis</a> et les <a href="https://about.gitlab.com/fr-fr/blog/build-a-new-website-in-a-few-easy-steps-with-gitlab-pages/" title="GitLab Pages">GitLab Pages</a>. Ces fonctionnalités permettent aux équipes de suivre l'évolution des projets, de collaborer, de proposer des améliorations, de corriger des bogues et de documenter leurs progrès en temps réel.</p>
<h3>Des pratiques CI/CD au service des projets open source</h3>
<p>Les fonctionnalités <a href="https://about.gitlab.com/fr-fr/blog/how-to-keep-up-with-ci-cd-best-practices/" title="Meilleures pratiques CI/CD">CI/CD</a> de GitLab sont un atout majeur pour les projets open source. Elles automatisent des étapes clés du développement logiciel, comme les <a href="https://docs.gitlab.com/ee/ci/testing/">tests</a>, la validation du code et le déploiement de nouvelles versions, assurant ainsi une meilleure fiabilité des logiciels open source et un développement accéléré. Chaque contribution est automatiquement testée dans un environnement dédié, ce qui permet de détecter rapidement les erreurs et de corriger les bogues. Cela réduit les risques de défaillances tout en assurant la stabilité des projets.</p>
<h3>Un cycle de développement logiciel sécurisé</h3>
<p>GitLab propose une suite complète de fonctionnalités conçues pour aider les développeurs de projets open source à sécuriser leurs logiciels. Parmi ces fonctionnalités, nous retrouvons :</p>
<ul>
<li><strong>Le test statique de sécurité des applications (<a href="https://docs.gitlab.com/ee/user/application_security/sast/" title="SAST">SAST</a>)</strong> qui examine le code source à la recherche de failles de sécurité en amont de la mise en service des logiciels.</li>
<li><strong>Le test dynamique de sécurité des applications (<a href="https://docs.gitlab.com/ee/user/application_security/dast/" title="DAST">DAST</a>)</strong>* qui teste les applications en cours d'exécution au sein d’un environnement déployé pour détecter d'éventuelles vulnérabilités encore non repérées.</li>
<li><strong>L'<a href="https://docs.gitlab.com/ee/user/application_security/dependency_scanning/" title="Analyse des dépendances">analyse des dépendances</a></strong>* qui envoie des alertes sur les bibliothèques obsolètes ou vulnérables. Des rapports détaillés sont générés à chaque étape du développement, offrant une visibilité claire sur l'état de la sécurité du projet. Grâce à cela, les développeurs peuvent rapidement éviter ou corriger les composants à risque.</li>
</ul>
<p>** Fonctionnalité disponible uniquement pour les utilisateurs de GitLab Ultimate.*</p>
<p>En intégrant ces fonctionnalités directement dans le <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Pipeline CI/CD">pipeline CI/CD</a>, GitLab réduit le risque d'erreurs humaines et accélère l’identification et la correction des vulnérabilités. Cette approche permet ainsi aux développeurs de projets open source de maintenir un niveau élevé de sécurité tout au long du cycle du développement logiciel.</p>
<h3>Une gestion de projet Agile</h3>
<p>GitLab met à disposition des équipes de développement un certain nombre de fonctionnalités pour faciliter la gestion des projets open source comme les <a href="https://docs.gitlab.com/ee/user/project/issue_board.html" title="Tableaux de tickets">tableaux de tickets</a>, les <a href="https://docs.gitlab.com/ee/user/project/milestones/" title="Listes des jalons">listes des jalons</a> ou encore le <a href="https://docs.gitlab.com/ee/user/project/time_tracking.html" title="Suivi du temps">suivi du temps</a>. Ces dernières permettent de voir facilement les tâches à réaliser, de suivre l'avancement des projets en fixant des échéances claires, mais aussi d’évaluer la charge de travail en vue d'optimiser l'utilisation des ressources. En combinant ces fonctionnalités, GitLab permet aux équipes de mieux coordonner leurs efforts, de maintenir un processus de travail fluide et de progresser efficacement dans la réalisation de leurs projets open source.</p>
<h3>Des contributions simplifiées</h3>
<p>Les équipes de développement peuvent facilement contribuer au développement de projets open source en les dupliquant (<a href="https://docs.gitlab.com/ee/user/project/repository/forking_workflow.html" title="fork">fork</a>) et en créant des merge requests. Elles peuvent créer leurs propres copies du code, travailler sur des améliorations ou des correctifs dans des branches distinctes, puis soumettre leurs changements via des merge requests. Ce processus permet aux équipes de réviser et de valider chaque modification avant son intégration dans la branche principale, favorisant ainsi une amélioration continue des logiciels, tout en renforçant la qualité et la stabilité du code.</p>
<h3>Une intégration facilité avec d’autres outils</h3>
<p>GitLab facilite considérablement son intégration avec d’autres outils et workflows , permettant aux équipes de développement de créer un environnement personnalisé en fonction des exigences spécifiques de leur projet. Pour en savoir plus, <a href="https://docs.gitlab.com/ee/api/">consultez notre documentation</a>.</p>
<h2>Développez des logiciels open source avec GitLab</h2>
<p>L’open source continue de s'imposer dans le monde du développement logiciel. Avec des plateformes <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que DevSecOps ?">DevSecOps</a> comme GitLab, les équipes de développement disposent de tous les outils et ressources nécessaires au bon développement de leurs logiciels open source.</p>
<p>En plus d’aider les entreprises à développer des logiciels performants et sécurisés, GitLab fait évoluer continuellement sa plateforme grâce aux contributions et aux retours de ses utilisateurs. En écoutant sa communauté en permanence, GitLab s'adapte aux transformations du développement logiciel, renforçant ainsi sa présence au sein de l'écosystème open source.</p>
<blockquote>
<p><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/" title="Essai gratuit de GitLab Ultimate">
Essayez GitLab Ultimate gratuitement pendant 60 jours</a> et commencez à développer des logiciels open source dès aujourd'hui.</p>
</blockquote>
]]></content>
        <author>
            <name>GitLab France Team</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab-france team</uri>
        </author>
        <published>2025-04-16T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Git : 20 ans d'histoire]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/journey-through-gits-20-year-history/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/journey-through-gits-20-year-history/"/>
        <updated>2025-04-14T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Le projet <a href="https://about.gitlab.com/fr-fr/blog/what-is-git/" title="Qu'est-ce que Git ? ">Git</a> vient de fêter ses 20 ans et depuis, bien des choses ont changé : si le design conceptuel de Git est resté globalement le même, la manière dont les utilisateurs s'en servent, elle, a considérablement évolué. Git est au cœur de notre travail chez GitLab et nous sommes fiers d'être liés à son histoire.</p>
<p>Remontez le temps avec nous pour retracer les grandes étapes de son évolution.</p>
<h2>Le premier commit</h2>
<p>Le premier commit a été effectué le 7 avril 2005 par Linus Torvalds, le créateur du noyau Linux : <code>e83c5163316 (Initial revision of &quot;git&quot;, the information manager from hell, 2005-04-07)</code>.</p>
<p>Comme vous pouvez le constater, ce commit ne contient pas beaucoup de fichiers :</p>
<pre><code class="language-shell">$ git ls-tree e83c5163316
100644 blob a6bba79ba1f46a1bbf7773449c3bd2bb9bf48e8b	Makefile
100644 blob 27577f76849c09d3405397244eb3d8ae1d11b0f3	README
100644 blob 98a32a9ad39883c6d05a000a68511d4b1ee2b3c7	cache.h
100644 blob 74a0a234dd346fff51c773aa57d82fc4b83a8557	cat-file.c
100644 blob 840307af0cfaab31555795ce7175d5e9c9f981a0	commit-tree.c
100644 blob 25dc13fe101b219f74007f3194b787dd99e863da	init-db.c
100644 blob c924a6e0fc4c36bad6f23cb87ee59518c771f936	read-cache.c
100644 blob 1b47742d8cbc0d98903777758b7b519980e7499e	read-tree.c
100644 blob b8522886a15db861508fb6d03d4d88d6de912a4b	show-diff.c
100644 blob 5085a5cb53ee52e1886ff6d46c609bdb2fc6d6cd	update-cache.c
100644 blob 921f981353229db0c56103a52609d35aff16f41b	write-tree.c
</code></pre>
<p>Outre l'infrastructure de compilation, le premier commit fournit sept commandes principales :</p>
<ul>
<li><code>init-db</code> pour initialiser un nouveau dépôt Git</li>
<li><code>update-cache</code> pour ajouter des fichiers à l'index</li>
<li><code>write-tree</code> pour créer un nouvel arbre à partir des éléments de l'index</li>
<li><code>read-tree</code> pour lire un objet arbre</li>
<li><code>commit-tree</code> pour créer un commit à partir d'un arbre</li>
<li><code>cat-file</code> pour lire un objet spécifique dans un fichier temporaire</li>
</ul>
<p>Notez que la commande <code>git</code> n'existait pas encore à ce moment-là. Il fallait dès lors les exécuter directement.</p>
<p>Pour vous montrer un exemple concret, créons un nouveau dépôt :</p>
<pre><code class="language-shell">$ mkdir repo
$ cd repo
$ init-db
defaulting to private storage area
$ ls -a
.  ..  .dircache
</code></pre>
<p>Cela peut surprendre : il n'y a pas de répertoire <code>.git</code>, mais un répertoire <code>.dircache</code>. Ce dernier représentait une zone de stockage privée.</p>
<p>Git distinguait alors deux types d'espaces de stockage des objets : un espace « privé » et un espace « partagé ». Ceux-ci regroupaient tous vos objets Git : vos commits et vos blobs, par exemple.</p>
<p>Par défaut, <code>init-db</code> créait un espace de stockage des objets privé qui n'était utilisé que pour le répertoire géré dans lequel il avait été créé. L'espace de stockage des objets « partagé », quant à lui, permettait de centraliser les objets communs à plusieurs répertoires, ce qui évitait d'avoir à les stocker deux fois.</p>
<h3>Créer un commit</h3>
<p>Nous disposons maintenant d'un dépôt, mais comment procéder pour créer un commit ? Autant vous dire que ce n'est pas aussi simple qu'avec la commande actuelle <code>git add . &amp;&amp; git commit</code>. À l'époque, vous deviez :</p>
<ol>
<li>Mettre à jour l'index en appelant <code>update-cache</code> pour chaque fichier que vous souhaitiez ajouter.</li>
<li>Écrire un nouvel arbre en appelant <code>write-tree</code> pour prendre le contenu que vous aviez
ajouté à l'index.</li>
<li>Configurer les variables d'environnement pour indiquer à Git que vous en étiez l'auteur.</li>
<li>Créer un objet de commit en appelant <code>commit-tree</code>.</li>
</ol>
<p>Créons un commit dans le dépôt pour illustrer ce processus :</p>
<pre><code class="language-shell">$ echo content-1 &gt;file-a
$ update-cache file-a
$ echo content-2 &gt;file-b
$ update-cache file-b
$ write-tree
3f143dfb48f2d84936626e2e5402e1f10c2050fb
$ export COMMITTER_NAME=&quot;Patrick Steinhardt&quot;
$ export COMMITER_EMAIL=ps@pks.im
$ echo &quot;commit message&quot; | commit-tree 3f143dfb48f2d84936626e2e5402e1f10c2050fb
Committing initial tree 3f143dfb48f2d84936626e2e5402e1f10c2050fb
5f8e928066c03cebe5fd0a0cc1b93d058155b969
</code></pre>
<p>Certes, ce processus n'est pas très pratique, mais il fonctionne ! Découvrons maintenant le commit généré :</p>
<pre><code class="language-shell">$ cat-file 5f8e928066c03cebe5fd0a0cc1b93d058155b969
temp_git_file_rlTXtE: commit
$ cat temp_git_file_rlTXtE
tree 3f143dfb48f2d84936626e2e5402e1f10c2050fb
author Patrick Steinhardt &lt;ps@pks.im&gt; Wed Mar 26 13:10:16 2025
committer Patrick Steinhardt &lt;ps@pks.im&gt; Wed Mar 26 13:10:16 2025

commit message
</code></pre>
<p>Notez que <code>cat-file</code> n'a pas affiché le contenu directement, mais l'a d'abord écrit
dans un fichier temporaire. Toutefois, le contenu du fichier ressemblait déjà en tous points à
celui des commits actuels.</p>
<h3>Apporter des modifications</h3>
<p>Maintenant que nous avons des fichiers, comment pouvons-nous obtenir leur statut ? Vous l'aviez peut-être deviné, en utilisant <code>show-diff</code> :</p>
<pre><code class="language-shell">$ show-diff
file-a: ok
file-b: ok

$ echo modified-content &gt;file-a
$ show-diff
--- -	2025-03-26 13:14:53.457611094 +0100
+++ file-a	2025-03-26 13:14:52.230085756 +0100
@@ -1 +1 @@
-content-1
+modified-content
file-a:  46d8be14cdec97aac6a769fdbce4db340e888bf8
file-b: ok
</code></pre>
<p>Étonnamment, la commande <code>show-diff</code> permettait déjà de générer des diffs entre l'ancien et le nouvel état des fichiers modifiés ! Et pour l'anecdote, Git accomplissait cette tâche en exécutant simplement l'outil Unix diff(1).</p>
<p>En somme, tout était encore rudimentaire, mais suffisant pour assurer le suivi de l'historique. À ce stade, Git était encore très limité :</p>
<ul>
<li>Il était impossible de passer facilement d'un commit à un autre.</li>
<li>Il était impossible d'afficher les logs.</li>
<li>Il n'y avait pas de branches, de tags ou même de références. Les utilisateurs devaient manuellement conserver une trace des ID d'objet.</li>
<li>Il était impossible de synchroniser deux dépôts. Par conséquent,
les utilisateurs devaient utiliser rsync(1) pour synchroniser les répertoires <code>.dircache</code>.</li>
<li>Il était impossible de fusionner des modifications.</li>
</ul>
<h2>Git 0.99</h2>
<p>La version 0.99 de Git a été la première à entrer en phase de test. Celle-ci a été publiée seulement deux mois après le commit initial, mais contenait déjà 1 076 commits. Près de 50 développeurs différents ont participé à son développement. À ce stade, Linus Torvalds était encore le principal contributeur, talonné de près par Junio Hamano, qui est aujourd'hui le chargé de maintenance.</p>
<p>De nombreuses améliorations avaient été mises en place depuis le premier commit :</p>
<ul>
<li>Git avait commencé à suivre différentes branches de développement à l'aide de références, ce qui, dans la grande majorité des cas, dispensait les utilisateurs de suivre les ID d'objets manuellement.</li>
<li>Un nouveau protocole distant permettait désormais à deux dépôts d'échanger
des objets entre eux.</li>
<li>Le répertoire <code>.dircache</code> avait été renommé <code>.git</code>.</li>
<li>Il était désormais possible de fusionner des fichiers uniques entre eux.</li>
</ul>
<p>Mais le changement le plus marquant a sans doute été l'arrivée de
la commande principale <code>git</code> et de ses nombreuses sous-commandes. C'est aussi à cette occasion
qu'est née la distinction entre les commandes dites de « plomberie » (plumbing) et de « porcelaine » (porcelain) :</p>
<ul>
<li>Les outils de « plomberie » sont les commandes de bas niveau qui accèdent au dépôt Git
sous-jacent.</li>
<li>Les outils de « porcelaine » sont des scripts shell qui encapsulent les commandes de « plomberie » pour fournir une interface utilisateur plus conviviale et performante.</li>
</ul>
<p>Cette distinction existe encore aujourd'hui, comme expliqué dans
<a href="https://git-scm.com/docs/git/fr#_commandes_de_haut_niveau_porcelaine"><code>git(1)</code></a>, mais avec
la réécriture en C de nombreuses commandes de « porcelaine » initialement en shell, la frontière entre ces deux catégories a commencé à s'estomper significativement.</p>
<h2>Linus Torvalds passe la main</h2>
<p>Linus Torvalds n'a jamais créé Git par passion pour les systèmes de <a href="https://about.gitlab.com/fr-fr/topics/version-control/" title="Qu'est-ce que le contrôle de version">contrôle de version</a>, mais parce qu'il était nécessaire de remplacer BitKeeper pour le développement du noyau Linux. Dès le départ, il n'avait pas l'intention d'en assurer la maintenance indéfiniment, mais juste le temps de trouver quelqu'un de confiance pour reprendre le flambeau.</p>
<p>Et cette personne fut Junio Hamano. Junio a rejoint Git une semaine à peine après le premier  commit de Linus Torvalds et comptait déjà plusieurs centaines de commits dans l'historique au moment de la sortie de la version 0.99. Ainsi, le 26 juillet 2005, <a href="https://lore.kernel.org/git/Pine.LNX.4.58.0507262004320.3227@g5.osdl.org/">Linus Torvalds l'a désigné comme nouveau chargé de maintenance du projet Git</a>. Même si Linus Torvalds a continué à contribuer à Git, son implication s'est progressivement réduite, ce qui n'a rien de surprenant, vu ses responsabilités à la tête du projet Linux.</p>
<p>A ce jour, Junio Hamano dirige toujours le projet Git.</p>
<h2>Git 1.0</h2>
<p>La première version majeure de Git est sortie le 21 décembre 2005 par Junio Hamano. Fait intéressant : pas moins de 34 nouvelles versions ont été publiées entre la version 0.99 et la version 1.0 : 0.99.1 à 0.99.7, 0.99.7a à 0.99.7d, 0.99.8 à 0.99.8g, et 0.99.9 jusqu'à 0.99.9n.</p>
<p>Parmi les évolutions majeures depuis la version 0.99, l'une des plus importantes a sans doute été l'introduction de la commande <code>git-merge(1)</code> pour fusionner deux arbres. Un changement radical par rapport à la version précédente, dans laquelle chaque merge devait être effectuée manuellement, fichier par fichier.</p>
<h3>Dépôts distants</h3>
<p>Un autre changement majeur a été l'introduction de la notation abrégée pour
les dépôts distants. Git savait déjà communiquer avec eux, mais jusque-là,
les utilisateurs devaient entrer l'URL complète à chaque
récupération de modifications. Ce processus était plutôt contraignant, car dans la grande majorité des cas, les utilisateurs interagissaient toujours avec le même dépôt distant.</p>
<p>Aujourd'hui, vous connaissez probablement le fonctionnement des dépôts distants,
mais à l'époque, le mécanisme était encore très différent. Il n'existait pas de commande <code>git-remote(1)</code><br>
pour les gérer. Ils n'étaient même pas stockés<br>
dans votre fichier<code>.git/config</code> file. À vrai dire, lorsque les dépôts distants ont fait leur apparition dans
la version 0.99.2, Git ne <em>disposait</em> même pas encore de fichiers de configuration.</p>
<p>Pour les configurer, il fallait créer un fichier dans le
répertoire <code>.git/branches</code>, un mécanisme qui semble aujourd'hui plutôt contre-intuitif. Mais<br>
il fonctionne encore aujourd'hui :</p>
<pre><code class="language-shell">$ git init repo --
Initialized empty Git repository in /tmp/repo/.git/
$ cd repo
$ mkdir .git/branches
$ echo https://gitlab.com/git-scm/git.git &gt;.git/branches/origin
$ git fetch origin refs/heads/master
</code></pre>
<p>Et ce n'est pas tout ! Le répertoire a été renommé en « dépôts distants » dès la version 0.99.5 de Git. Aujourd'hui, il existe donc trois méthodes distinctes pour configurer des dépôts distants dans un client Git actuel.</p>
<p>Mais soyons honnêtes : la plupart d'entre vous n'ont sans doute jamais eu à utiliser <code>.git/branches</code> ni <code>.git/remotes</code>,
deux mécanismes devenus obsolètes en 2005 et 2011,
respectivement. Ces répertoires seront d'ailleurs définitivement supprimés dans la version Git 3.0.</p>
<h2>Image de marque de Git</h2>
<p>En 2007, Git créé son premier logo. Le terme « logo » est peut-être un peu excessif : il ne s'agissait en réalité que de trois signes moins rouges au-dessus de trois signes plus verts, une référence visuelle directement inspirée de la sortie de <code>git diff</code> :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097388/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097387927.png" alt="trois signes moins rouges au-dessus de trois signes plus verts, référence visuelle inspirée de la sortie de "></p>
<p>Le site web <a href="https://git-scm.com">git-scm.com</a> voit quant à lui le jour en 2008 :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097388/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097387930.png" alt="page de destination pour git-scm.com en 2006"></p>
<p>En 2012, le site web de Git est <a href="https://lore.kernel.org/git/CAP2yMaJy=1c3b4F72h6jL_454+0ydEQNXYiC6E-ZeQQgE0PcVA@mail.gmail.com/">remanié</a> par Scott Chacon et Jason Long et son design ne changera que très peu par la suite :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097388/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097387932.png" alt="site web git remanié en 2012"></p>
<p>Cette refonte du site arbore le nouveau logo rouge-orange conçu par Jason Long, qui est encore utilisé aujourd'hui :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097388/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097387934.png" alt="logo git"></p>
<h2>Git 2.0</h2>
<p>Dès la version 1.0, Git ressemblait déjà fortement à la version d'aujourd'hui,
c'est pourquoi nous allons faire un grand saut dans le temps et passer directement à une autre étape clé de son histoire : Git 2.0. Publiée environ dix ans après Git 1.0,
cette version a été la première à
introduire délibérément des changements non compatibles avec les versions précédentes dans les workflows principaux.</p>
<h3>Comportement par défaut de <code>git-push(1)</code></h3>
<p>Le changement le plus déroutant de cette version a sans doute été
l'ajustement du comportement par défaut de la commande  <code>git-push(1)</code>.</p>
<p>Si vous réalisiez un push dans un dépôt distant sans en indiquer explicitement l'objet,
Git pouvait réagir de plusieurs façons :</p>
<ul>
<li>Refuser d'agir et vous inviter à préciser l'objet de votre push.</li>
<li>Effectuer un push de la branche actuellement extraite.</li>
<li>Effectuer un push de la branche actuellement extraite, mais uniquement s'il détectait une branche correspondante dans le dépôt distant.</li>
<li>Effectuer un push de toutes vos branches disposant d'un équivalent dans le dépôt distant.</li>
</ul>
<p>Aujourd’hui, le comportement par défaut de Git suit la stratégie dite « simple », c'est-à-dire la
troisième option mentionnée ci-dessus. Mais avant Git 2.0, le comportement par défaut était la stratégie de « correspondance », soit la dernière option.</p>
<p>La stratégie de « correspondance » était nettement plus risquée. Avant le push, vous deviez toujours vous assurer que vous vouliez vraiment effectuer un push de toutes vos branches locales disposant d'un équivalent dans le dépôt distant. Dans le cas contraire, vous risquiez d'envoyer des modifications par erreur. C'est pourquoi Git a opté pour la stratégie dite « simple », afin de limiter les risques et de faciliter la prise en main pour les nouveaux utilisateurs.</p>
<h3><code>git-add(1)</code></h3>
<p>Le comportement par défaut de <code>git-add(1)</code> vis-à-vis des fichiers supprimés
a lui aussi connu une évolution importante. Avant Git 2.0, la commande <code>git-add(1)</code> ne
prenait pas en compte les fichiers supprimés : il fallait les ajouter manuellement
avec <code>git-rm(1)</code> pour qu'ils soient inclus dans un commit. À partir de la version 2.0, la commande <code>git-add(1)</code> détecte également les suppressions de fichiers et les ajoute à l’index.</p>
<h2>La communauté Git à l'honneur</h2>
<p>Nous n'allons pas entrer dans les détails du fonctionnement actuel de Git : vous l'utilisez probablement déjà au quotidien, et dans le cas contraire, de nombreux tutoriels existent pour bien débuter. Prenons plutôt un moment pour célébrer et remercier la communauté Git, qui a permis à ce système de rester aussi performant après deux décennies.</p>
<p>Au fil du temps, Git a :</p>
<ul>
<li>Accumulé 56 721 commits depuis <a href="https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-49-0/" title="Git 2.49.0">Git 2.49.0</a></li>
<li>Reçu des contributions de plus de 2 000 personnes différentes.</li>
<li>Publié 60 nouvelles versions majeures.</li>
</ul>
<p>Le projet Git continue aussi de se renouveler grâce à l'arrivée régulière de nouveaux contributeurs, notamment par le biais des programmes <a href="https://summerofcode.withgoogle.com/">Google Summer of Code</a> et <a href="https://www.outreachy.org/">Outreachy</a>. Ce sont eux qui assurent la pérennité du projet Git.</p>
<h2>L'avenir de Git</h2>
<p>Git s'est clairement imposé comme le grand gagnant dans la course aux systèmes de contrôle de version. Il domine largement le marché et il est rare aujourd'hui de voir un projet <a href="https://about.gitlab.com/fr-fr/blog/what-is-open-source/" title="Qu'est-ce que l'open source ?">open source</a> qui n'utilise pas Git. C'est bien la preuve que Git a su faire les bons choix.</p>
<p>Cela dit, le développement de Git est loin d'être terminé et de nombreux défis restent à relever. Sur le plan technique :</p>
<ul>
<li>la modernisation d'un code base vieillissant</li>
<li>la mise à l'échelle face à la croissance continue des monorepos</li>
<li>la gestion plus efficace des fichiers binaires volumineux</li>
</ul>
<p>Sur le plan communautaire :</p>
<ul>
<li>l'amélioration de la convivialité de Git</li>
<li>la promotion de la communauté Git pour garantir la pérennité du
projet</li>
</ul>
<p>Le travail ne s'arrête pas là et chez GitLab, nous sommes fiers de contribuer activement à faire en sorte que Git reste un système de contrôle de version de référence pour les vingt années à venir.</p>
<h2>En savoir plus sur Git</h2>
<ul>
<li><a href="https://about.gitlab.com/fr-fr/blog/celebrating-gits-20th-anniversary-with-creator-linus-torvalds/">Git fête ses 20 ans : entretien avec son créateur Linus Torvalds</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/a-beginners-guide-to-the-git-reftable-format/">Format reftable de Git : guide pour les débutants</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/git-pull-vs-git-fetch-whats-the-difference/" title="Git fetch vs git pull ">Git fetch vs git pull : quelle est la différence entre ces deux commandes Git ?</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/keeping-git-commit-history-clean/" title="Commits Git">Commits Git : comment et pourquoi maintenir un historique propre</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/git-bash/" title="Git Bash">Git en ligne de commande sous Windows avec Git Bash</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/take-advantage-of-git-rebase/" title="Git rebase">Améliorez votre workflow avec Git rebase</a></li>
</ul>
]]></content>
        <author>
            <name>Patrick Steinhardt</name>
            <uri>https://about.gitlab.com/blog/authors/patrick-steinhardt</uri>
        </author>
        <published>2025-04-14T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Duo Workflow : améliorez l'assurance qualité de vos applications ]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/use-gitlab-duo-workflow-to-improve-application-quality-assurance/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/use-gitlab-duo-workflow-to-improve-application-quality-assurance/"/>
        <updated>2025-04-10T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Garantir la qualité de vos applications en vous appuyant sur une approche de conception pilotée par les tests, une bonne couverture de code et une détection précoce des anomalies est essentiel pour vos clients et pour votre réputation. Pourtant, ces processus peuvent rapidement devenir chronophages. Avec <a href="https://about.gitlab.com/fr-fr/gitlab-duo/workflow/">GitLab Duo Workflow</a>, l'IA agentique développée sur la plateforme <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSecOps ? ">DevSecOps</a> la plus complète, vous pouvez réaliser rapidement des tâches clés au cours de votre cycle de développement logiciel. Découvrez dans ce tutoriel comment ajouter des tests unitaires à une application Java sur la base de ce <a href="https://gitlab.com/gitlab-da/playground/csaavedra/gdw/prodmgr-gdw">projet Java</a> qui nous servira d'exemple.</p>
<blockquote>
<p>GitLab Duo Workflow est actuellement proposé en version bêta privée. Inscrivez-vous sur la <a href="https://about.gitlab.com/fr-fr/gitlab-duo/workflow/">liste d'attente</a> pour découvrir ce qu'il est possible de faire avec des agents d'IA qui comprennent l'ensemble de votre cycle de développement logiciel.</p>
</blockquote>
<h2>Ouverture de votre projet dans VS Code</h2>
<ol>
<li>
<p>Commencez par cloner votre projet Java sur votre ordinateur local, puis ouvrez-le dans Visual Studio Code. Assurez-vous d'utiliser une branche de fonctionnalité (et non pas la branche principale ou par défaut). Si vous travaillez déjà sur une merge request, celle-ci doit être associée à sa propre branche de fonctionnalité.</p>
</li>
<li>
<p>(Étape facultative.) Accédez au fichier contenant la classe Java pour laquelle vous souhaitez que GitLab Duo Workflow crée des tests unitaires. Inspectez-le afin de pouvoir confirmer ultérieurement que les tests unitaires générés couvrent bien les éléments de cette classe. Voici ce que vous verrez :</p>
</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097627/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097627482.png" alt="Fichier qui définit la classe Java pour laquelle vous souhaitez que GitLab Duo Workflow crée des tests unitaires"></p>
<p><strong>Remarque</strong> : ce tutoriel suppose que vous avez déjà installé l'extension GitLab Duo Workflow et que vous l'avez activée dans votre VS Code. Si ce n'est pas le cas, veuillez vous référer à la <a href="https://docs.gitlab.com/user/duo_workflow/#use-workflow-in-vs-code">documentation d'installation</a>.</p>
<ol start="3">
<li>Lancez GitLab Duo Workflow en ouvrant la palette de commandes de VS Code [Ctrl + Shift + P]. Saisissez « GitLab Duo Workflow », puis sélectionnez <strong>GitLab : afficher GitLab Duo Workflow</strong>. Un onglet apparaîtra alors, comme suit :</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097628/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097627483.png" alt="Lancement de GitLab Duo Workflow avec VS Code"></p>
<ol start="4">
<li>L'étape suivante consiste à ajouter des tests pour tester le constructeur par défaut, vérifier la création de l'objet et tester l'état initial des propriétés de la classe « Product » Java. Pour ce faire, saisissez le prompt suivant dans la zone de texte de GitLab Duo Workflow :</li>
</ol>
<pre><code class="language-unset">Create unit tests for class defined in the Product.java file and store the unit tests in its own file titled ProductTest.java
</code></pre>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097628/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097627484.png" alt="Zone du prompt dans GitLab Duo Workflow"></p>
<ol start="5">
<li>Cliquez sur le bouton <strong>Démarrer</strong> dans la fenêtre GitLab Duo Workflow. Deux nouvelles fenêtres apparaissent alors : une au centre de l'écran et une à droite. Celle de droite affiche l'analyse que GitLab Duo Workflow a effectuée pour proposer un plan d'action qui permettra d'atteindre l'objectif spécifié dans votre prompt. Le plan d'action détaillé est affiché dans la fenêtre centrale. Une fois l'analyse terminée et le plan d'action élaboré, vous obtenez les données de sortie suivantes :</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097627/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750097627486.png" alt="Analyse et plan d'action générés par GitLab Duo Workflow"></p>
<ol start="6">
<li>
<p>Si l'analyse et le plan d'action vous conviennent, cliquez sur <strong>Approuver le plan</strong> en bas de la fenêtre.</p>
</li>
<li>
<p>Une fois votre plan d'action approuvé, GitLab Duo Workflow exécute les modifications nécessaires dans votre projet.</p>
</li>
<li>
<p>Vous voyez alors s'afficher un nouveau répertoire <code>src/test/java/csaa/jspring/ProductManager</code> contenant un nouveau fichier nommé <code>ProductTest.java</code>, lequel regroupe tous les tests unitaires pour la classe <code>Product.java</code>.</p>
</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097628/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750097627488.png" alt="Nouveau répertoire dans le projet avec un nouveau nom de fichier "></p>
<ol start="9">
<li>En consultant ce fichier <code>ProductTest.java</code>, vous remarquerez qu'il contient des déclarations d'importation soulignées en rouge indiquant des erreurs d'importation :</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097628/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097627489.png" alt=" inclut des déclarations d'importation en rouge indiquant des erreurs"></p>
<p>Demandons alors à GitLab Duo Workflow de les corriger à notre place.</p>
<p><strong>Remarque</strong> : nous aurions également pu demander à GitLab Duo Workflow dans notre premier prompt de mettre à jour le fichier <code>pom.xml</code>. Comme nous ne l'avons pas fait, nous allons donc corriger ces erreurs dans un nouveau workflow.</p>
<h2>Correction des erreurs dans le code généré avec GitLab Duo Workflow</h2>
<ol start="10">
<li>Démarrez un nouveau workflow en cliquant sur le bouton <strong>Nouveau workflow</strong> en bas de la fenêtre d'analyse sur le côté droit de votre écran.</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097628/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097627491.png" alt="Bouton Nouveau workflow"></p>
<ol start="11">
<li>Saisissez le prompt suivant :</li>
</ol>
<pre><code class="language-unset">The file ProductTest.java has an error “The import org.junit cannot be resolved”. Please fix it
</code></pre>
<ol start="12">
<li>Approuvez le plan d'action proposé pour que GitLab Duo Workflow commence son analyse en lisant votre fichier <code>pom.xml</code> actuel, puis l'édite et supprime la dépendance JUnit obsolète en la remplaçant par la dépendance et la version correctes de JUnit. Enfin, GitLab Duo Workflow élimine toutes les erreurs de dépendance dans le fichier <code>ProductTest.java</code>.</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097627/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097627492.png" alt="GitLab Duo Workflow effectuant une analyse en lisant le fichier pom.xml"></p>
<h2>Tutoriel vidéo</h2>
<p>En exécutant le plan d'action proposé, GitLab Duo Workflow met concrètement à jour votre projet afin de réaliser ce que vous lui avez demandé dans le prompt. Il vous aide à gagner un temps précieux, en toute simplicité, et augmente la productivité de votre équipe : vos équipes de développement peuvent ainsi consacrer plus de temps à innover et à créer de la valeur.</p>
<p>Pour découvrir ce guide étape par étape en action, regardez la vidéo du tutoriel :</p>
<p>&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/Tuj7TgqY81Q?si=RReuL1pUsLafvAzs&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<blockquote>
<p>Inscrivez-vous à la <a href="https://about.gitlab.com/fr-fr/gitlab-duo/workflow/" title="Version bêta privée de GitLab Duo Workflow">version bêta privée de GitLab Duo Workflow</a> pour découvrir ce qu'il est possible de faire avec des agents d'IA qui comprennent l'ensemble de votre cycle de développement logiciel.</p>
</blockquote>
<h2>En savoir plus sur GitLab Duo Workflow et l'IA agentique</h2>
<ul>
<li><a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai/">GitLab Duo Workflow : une IA agentique offrant visibilité et contrôle à l'échelle de l'entreprise</a></li>
<li><a href="https://docs.gitlab.com/user/duo_workflow/">Documentation GitLab Duo Workflow</a></li>
<li><a href="https://about.gitlab.com/fr-fr/gitlab-duo/">GitLab Duo</a></li>
<li><a href="https://about.gitlab.com/the-source/ai/agentic-ai-unlocking-developer-potential-at-scale/">IA agentique : libérez le potentiel des développeurs à grande échelle (The Source)</a></li>
</ul>
]]></content>
        <author>
            <name>Cesar Saavedra</name>
            <uri>https://about.gitlab.com/blog/authors/cesar-saavedra</uri>
        </author>
        <published>2025-04-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Scaled Agile Framework : adoptez le framework SAFe avec GitLab ]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/safe-without-silos-in-gitlab/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/safe-without-silos-in-gitlab/"/>
        <updated>2025-04-08T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Lorsqu'une entreprise décide d'adopter le Scaled Agile Framework (SAFe) pour s'adapter à ses nouveaux besoins, coordonner les équipes qui travaillent sur des produits complexes devient rapidement un enjeu de taille. Elle doit couramment faire face à un défi majeur : la planification s'effectue dans un outil, tandis que le travail de développement proprement dit est géré dans un autre.</p>
<p>Cette séparation crée des silos entre les équipes et entraîne une multitude de problèmes au quotidien : les équipes de développement passent constamment d'un système à l'autre, les chefs de produit peinent à obtenir une image précise de l'avancement des projets, et au final, ce sont tous les contributeurs aux projets qui perdent un temps précieux à transférer manuellement des informations entre les différents systèmes. Or, SAFe a précisément été conçu pour résoudre ce type d'expérience fragmentée.</p>
<p>Si vos équipes de développement utilisent déjà GitLab pour la <a href="https://about.gitlab.com/fr-fr/solutions/source-code-management/" title="Gestion du code source">gestion du code source</a>, les processus <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" title="Qu'est-ce que le CI/CD ?">CI/CD</a> et la sécurité des logiciels, vous vous demandez peut-être s'il est possible d'y intégrer également la planification SAFe. La réponse est oui. Grâce à ses solides capacités de gestion de projets Agile, GitLab prend en charge le framework SAFe à chaque étape du développement logiciel.</p>
<p>Dans cet article, découvrez comment GitLab vous aide à mettre en place les concepts et les cérémonies SAFe, le tout au sein d'une seule et même plateforme <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que DevSecOps ?">DevSecOps</a>.</p>
<h2>Qu'est-ce que le Scaled Agile Framework (SAFe) ?</h2>
<p>Le Scaled Agile Framework (SAFe) est une approche de gestion conçue pour appliquer les principes Agile à l'échelle des grandes entreprises. Il optimise la livraison de valeur, assure un alignement constant entre les équipes et se concentre sur les besoins des clients.</p>
<p>SAFe transpose le modèle collaboratif et itératif des petites équipes aux environnements complexes des grandes entreprises impliquant de nombreuses équipes, parties prenantes et roadmaps.</p>
<p>Cette approche permet d'harmoniser tous les efforts de planification et d'exécution vers un objectif commun. Pour les chefs de produit, le Scaled Agile Framework (SAFe) fait le lien entre la stratégie et l'exécution : il ne s'agit pas uniquement de livrer rapidement, mais de livrer les bons produits, en s'appuyant sur des priorités claires et une coordination transversales entre les différentes équipes.</p>
<p>SAFe réduit les silos, encourage la collaboration et aide les équipes à se mobiliser autour des résultats attendus par les clients, et non plus uniquement autour des tâches à accomplir. Une fois intégré à GitLab, la magie opère : visibilité, traçabilité et livraison sont réunies au sein d'une seule et même plateforme.</p>
<h2>Correspondance de la terminologie SAFe dans GitLab</h2>
<p>Voici un aperçu des concepts SAFe et leur correspondance dans GitLab :</p>
<table>
<thead>
<tr>
<th style="text-align:left">SAFe</th>
<th style="text-align:left">GitLab</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">Epic</td>
<td style="text-align:left">Epic principal</td>
</tr>
<tr>
<td style="text-align:left">Capability</td>
<td style="text-align:left">Sous-epic (niveau 1)</td>
</tr>
<tr>
<td style="text-align:left">Feature</td>
<td style="text-align:left">Sous-epic (niveau 2)</td>
</tr>
<tr>
<td style="text-align:left">User story</td>
<td style="text-align:left">Ticket</td>
</tr>
<tr>
<td style="text-align:left">Task</td>
<td style="text-align:left">Tâche</td>
</tr>
<tr>
<td style="text-align:left">Team</td>
<td style="text-align:left">Champ personnalisé / Label à portée limitée</td>
</tr>
<tr>
<td style="text-align:left">Sprint</td>
<td style="text-align:left">Itération</td>
</tr>
<tr>
<td style="text-align:left">Program Increment (PI)</td>
<td style="text-align:left">Jalon</td>
</tr>
<tr>
<td style="text-align:left">Value Stream</td>
<td style="text-align:left">Groupe principal</td>
</tr>
<tr>
<td style="text-align:left">Agile Release Train (ART)</td>
<td style="text-align:left">Groupe principal</td>
</tr>
</tbody>
</table>
<p>&lt;br&gt;&lt;/br&gt;</p>
<p>En vous basant sur cette correspondance, vous pouvez configurer GitLab pour refléter fidèlement votre implémentation SAFe. La structure des groupes vous permet d'organiser vos équipes autour de vos chaînes de valeur (Value Stream) et de vos Agile Release Trains (ART), tandis que la hiérarchie des éléments de travail (avec jusqu'à sept niveaux d'epics imbriqués) vous offre toute la profondeur nécessaire pour gérer des portefeuilles produits complexes. Que vous travailliez au niveau du portefeuille (groupes principaux), du programme (sous-groupes) ou de l'équipe (projets), la structure organisationnelle de GitLab s'aligne parfaitement avec la hiérarchie SAFe.</p>
<h2>Les cérémonies SAFe dans GitLab</h2>
<p>Découvrez maintenant comment organiser vos cérémonies SAFe dans GitLab. Voici comment procéder, étape par étape.</p>
<h3>Planification PI (Program Increment)</h3>
<p>Pour faciliter l'alignement entre les équipes et la gestion des dépendances qui font le succès de la planification PI, GitLab offre plusieurs fonctionnalités :</p>
<ul>
<li>La vue <a href="https://docs.gitlab.com/user/group/roadmap/">Roadmap</a> :  visualisez les fonctionnalités par équipe et sur plusieurs périodes.</li>
<li>Les <a href="https://docs.gitlab.com/user/project/milestones/">jalons</a> : associez chaque fonctionnalité au jalon correspondant à votre PI.</li>
<li>Les <a href="https://docs.gitlab.com/user/project/issues/related_issues/#blocking-issues">dépendances</a> : documentez et visualisez les dépendances entre équipes dès qu'elles sont identifiées.</li>
</ul>
<p>GitLab vous offre une grande flexibilité pour la planification PI grâce à deux vues principales : les tableaux des epics (qui peuvent être configurés pour afficher les affectations par équipe) et la vue Roadmap (qui affiche les fonctionnalités au fil du temps, façon diagramme de Gantt). Vous pouvez facilement passer d'une vue à l'autre pendant votre session de planification, selon que vous souhaitez vous concentrer sur la chronologie ou l'organisation des équipes.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097576746.gif" alt="Vue Roadmap et tableau des epics"></p>
<p>&lt;br&gt;&lt;/br&gt;</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097576747.png" alt="Vue Roadmap avec diagramme de Gantt"></p>
<h3>Affinement</h3>
<p>En tant que chef de produit, animer des sessions d'affinement efficaces repose sur une visibilité complète de votre backlog de fonctionnalités. Vous pouvez exécuter votre session d'affinement directement dans GitLab. Il n'est plus nécessaire de mettre à jour un outil pendant la réunion, puis un autre après coup.</p>
<p>GitLab facilite les sessions d'affinement grâce aux éléments suivants :</p>
<ul>
<li>Les <a href="https://docs.gitlab.com/user/group/epics/epic_boards/">tableaux des epics</a> : regroupez les fonctionnalités en fonction de leur statut.</li>
<li>Les story points : visualisez-les directement dans l'<a href="https://docs.gitlab.com/user/group/epics/epic_boards/#view-count-of-issues-weight-and-progress-of-an-epic">aperçu</a>.</li>
<li>Les <a href="https://docs.gitlab.com/user/group/epics/manage_epics/#open-epics-in-a-drawer">vues dans un volet latéral</a> : interagissez avec vos éléments de travail sans jamais perdre de vue le contexte.</li>
<li>Les <a href="https://docs.gitlab.com/user/group/epics/manage_epics/#add-an-issue-to-an-epic">tickets enfants</a> : créez et associez des tickets directement à partir des epics.</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097576749.gif" alt="SAFe - image 3"></p>
<h3>Planification de sprint</h3>
<p>GitLab vous offre tous les outils nécessaires pour planifier vos sprints sans frictions :</p>
<ul>
<li>Les <a href="https://docs.gitlab.com/user/project/issue_board/">tableaux des tickets</a> : visualisez clairement l'ensemble de votre backlog.</li>
<li>Le <a href="https://docs.gitlab.com/user/project/issue_board/#sum-of-issue-weights">poids total</a> des user stories : visualisez-le directement dans les tableaux.</li>
<li>L'ordonnancement des tickets : déplacez les tickets entre les différentes itérations, par simple glisser-déposer.</li>
<li>Une vue repliable : simplifiez le réordonnancement des stories d'un sprint à l'autre.</li>
</ul>
<p>Plus besoin de jongler entre plusieurs outils, toute la planification se fait dans GitLab. Vous pouvez ainsi consacrer vos réunions de planification à prendre les bonnes décisions.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097576751.gif" alt="Planification de sprint avec GitLab"></p>
<p><em>💡 Consultez <a href="https://docs.gitlab.com/tutorials/scrum_events/">ce tutoriel dédié à la mise en œuvre de la méthode Scrum avec GitLab</a> et découvrez en détail la puissance de GitLab dans la planification Agile et le suivi des sprints.</em></p>
<h3>Points quotidiens</h3>
<p>Votre équipe peut se réunir autour du tableau de bord lors de vos points quotidiens, plus besoin de naviguer entre plusieurs outils ou de deviner l'avancement des projets : tout est visible en un clin d'œil dans GitLab. Votre équipe voit instantanément qui travaille sur quoi, ce qui bloque, et ce qui est prêt pour la revue. GitLab vous permet d'effectuer les actions suivantes lors de vos points quotidiens :</p>
<ul>
<li>Les tableaux <a href="https://docs.gitlab.com/user/project/issue_board/#iteration-lists">filtrés par itération</a> : affichez le travail du sprint en cours.</li>
<li>Les story points : affichez le poids des stories directement sur les cartes.</li>
<li>La <a href="https://docs.gitlab.com/user/project/issues/managing_issues/#open-issues-in-a-drawer">vue du volet latéral</a> : accédez aux détails sans quitter le contexte.</li>
<li>Les <a href="https://docs.gitlab.com/user/project/issues/managing_issues/#health-status">indicateurs de progression</a> : mettez en évidence les tâches à risque.</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097576755.png" alt="Tableau de réunions debout quotidiennes"></p>
<h3>Revue de sprint</h3>
<p>Pour avoir une vision claire des performances de votre équipe au fil des sprints, GitLab met à votre disposition des indicateurs puissants avec les éléments suivants :</p>
<ul>
<li>Des <a href="https://docs.gitlab.com/user/group/iterations/#iteration-burndown-and-burnup-charts">graphiques d'avancement burndown et burnup</a> : visualisez facilement l'avancement des itérations.</li>
<li>Le suivi de la vélocité : mesurez l'efficacité de votre équipe.</li>
<li>Les <a href="https://docs.gitlab.com/user/group/value_stream_analytics/#lifecycle-metrics">délais d'exécution et la durée de cycle</a> : obtenez des indicateurs précis pour évaluer vos workflows.</li>
<li>Des tableaux de bord personnalisables : créez des vues adaptées à chaque équipe.</li>
</ul>
<p>Ces indicateurs vous aident à comprendre si votre équipe gagne en rapidité, à détecter les goulots d'étranglement et les points de friction à aborder lors de votre prochaine rétrospective.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097576758.png" alt="Graphiques d'avancement burndown et burnup"></p>
<h2>5 bonnes raisons d'adopter une plateforme unifiée</h2>
<p>Il existe de nombreux outils de planification capables de gérer les cérémonies SAFe. Mais GitLab se distingue véritablement de ses concurrents pour les raisons suivantes :</p>
<ol>
<li><strong>Plus de changement de contexte</strong> : la planification, le développement, les tests et la sécurité s'effectuent tous sur une seule plateforme.</li>
<li><strong>Une traçabilité totale</strong> : de l'épic stratégique et prioritaire jusqu'au déploiement, en passant par l'écriture du code, chaque élément est relié et facile à suivre.</li>
<li><strong>Une collaboration efficace</strong> : toutes les équipes (développement, produit, sécurité) collaborent dans le même outil.</li>
<li><strong>Une visibilité instantanée</strong> : toutes les parties prenantes accèdent aux informations clés mises à jour, sur une seule plateforme.</li>
<li><strong>Une vue d'ensemble</strong> : les indicateurs de planification et de développement sont regroupés pour comprendre exactement où en est le projet.</li>
</ol>
<p>Si vos équipes de développement apprécient déjà GitLab, pourquoi leur imposer un nouvel outil de planification ou créer des intégrations complexes et disparates ? En intégrant votre planification SAFe à GitLab, vous offrez à tous les contributeurs une expérience unifiée, cohérente et bien plus efficace.</p>
<h2>Principes de mise en œuvre</h2>
<p>Après avoir accompagné plusieurs équipes dans leur transition depuis des outils SAFe traditionnels vers GitLab, voici ce qu'il faut retenir : concentrez-vous sur <strong>les objectifs propres à chaque cérémonie SAFe</strong> plutôt que d'essayer de reproduire les processus de vos anciens outils.</p>
<p>Les équipes qui tirent pleinement parti des fonctionnalités natives de GitLab sont plus performantes que celles qui essaient de les contourner. Cela demande un peu de travail au départ pour comprendre comment associer vos concepts SAFe et configurer vos workflows. Mais une fois cette étape franchie, vous constaterez rapidement que vos processus sont en réalité bien plus simples.</p>
<p>La clé du succès réside dans la définition de conventions partagées entre tous les contributeurs : quels labels utiliser ? Comment suivre les équipes ? Quelle différence entre un epic et un ticket ? En investissant un minimum d'effort dans cette phase de clarification, vous créez un système intuitif qui éliminera toute la charge de travail liée à la coordination entre les différents outils.</p>
<h2>Mise en place du framework SAFe dans GitLab</h2>
<p>Envie de vous lancer ? Voici les étapes pour mettre en œuvre un Scaled Agile Framework (SAFe) dans GitLab :</p>
<ol>
<li><strong>Structurez votre environnement</strong> : créez des groupes et des sous-groupes qui <a href="https://about.gitlab.com/fr-fr/blog/best-practices-to-set-up-organizational-hierarchies-that-scale/">s'alignent sur l'organisation de vos équipes</a>.</li>
<li><strong>Définissez la répartition de votre travail</strong> : décidez comment vous allez utiliser les <a href="https://about.gitlab.com/fr-fr/blog/unlocking-agile-excellence-gitlab-epics-for-seamless-portfolio-management/">epics</a>, les <a href="https://docs.gitlab.com/user/project/issues/managing_issues/">tickets</a> et les <a href="https://docs.gitlab.com/user/tasks/">tâches</a>.</li>
<li><strong>Créez vos itérations</strong> : configurez votre <a href="https://docs.gitlab.com/user/group/iterations/#create-an-iteration-cadence">calendrier de sprints</a>.</li>
<li><strong>Ajoutez vos jalons</strong> : les <a href="https://docs.gitlab.com/user/project/milestones/#create-a-milestone">jalons</a> représentent vos Program Increments (PI) SAFe dans GitLab.</li>
<li><strong>Personnalisez vos tableaux</strong> : créez des vues dédiées à chaque cérémonie SAFe.</li>
<li><strong>Accordez-vous sur des conventions</strong> : documentez la façon dont vous utiliserez les labels et les champs personnalisés.</li>
</ol>
<p>Prendre le temps de bien poser ces bases dès le départ vous évitera bien des tracas par la suite. Votre configuration n'a pas besoin d'être parfaite dès le premier jour : vous pourrez faire des ajustements au fur et à mesure.</p>
<h2>Rassemblez toutes les pièces du puzzle</h2>
<p>GitLab vous offre une base solide pour exécuter le Scaled Agile Framework (SAFe), en particulier si vos équipes de développement sont déjà adeptes de GitLab. En centralisant la planification et le développement dans un seul et même outil, vous éliminez les silos et les transferts fastidieux, facilitez la collaboration et accélérez la livraison de vos produits.</p>
<p>La flexibilité des outils de planification de GitLab vous permet d'adapter l'approche SAFe à vos besoins spécifiques. Vos équipes ne sont pas soumises à des workflows rigides : vous pouvez faire évoluer votre approche à mesure que vos équipes gagnent en maturité et que vos besoins changent.</p>
<blockquote>
<p>Découvrez à quel point la planification sans effet de silo peut être plus simple et plus efficace. <a href="https://about.gitlab.com/fr-fr/free-trial/?hosted=saas">Essayez GitLab Ultimate gratuitement pendant 60 jours</a> et simplifiez l'implémentation de votre approche SAFe.</p>
</blockquote>
<p><em>💡 Pour en savoir plus à ce sujet, n'hésitez pas à consulter également cet article : <a href="https://about.gitlab.com/fr-fr/blog/gitlab-for-agile-software-development/">Comment utiliser GitLab pour le développement logiciel agile</a></em></p>
]]></content>
        <author>
            <name>Amanda Rueda</name>
            <uri>https://about.gitlab.com/blog/authors/amanda-rueda</uri>
        </author>
        <published>2025-04-08T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Git fête ses 20 ans : entretien avec son créateur Linus Torvalds]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/celebrating-gits-20th-anniversary-with-creator-linus-torvalds/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/celebrating-gits-20th-anniversary-with-creator-linus-torvalds/"/>
        <updated>2025-04-07T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Le système de <a href="https://about.gitlab.com/fr-fr/topics/version-control/" title="Qu'est-ce que le contrôle de version ?">contrôle de version</a> Git a été introduit pour la première fois le 7 avril 2005 par Linus Torvalds, le créateur du noyau Linux. À l'occasion du 20e anniversaire de ce projet majeur, désormais adopté par la quasi-majorité des équipes de développement, nous nous sommes entretenus avec Linus sur l'histoire de <a href="https://about.gitlab.com/fr-fr/blog/what-is-git/" title="Qu'est-ce que Git ? ">Git</a>. Nous lui avons notamment demandé pourquoi il en a délégué la maintenance et quelles sont les étapes clés du projet qu'il considère comme les plus importantes.</p>
<p><strong>En 2005, vous étiez déjà le chargé de maintenance du noyau Linux, qui était alors en plein essor. Pourquoi avez-vous décidé de créer un nouveau système de contrôle de version ?</strong></p>
<p>Je me suis lancé dans cette aventure précisément parce que je détestais profondément les outils de contrôle de version existants.</p>
<p>J'avais utilisé des systèmes de contrôle de version traditionnels (CVS/RCS/SCCS) à la fois en tant qu'utilisateur final (pour suivre des projets <a href="https://about.gitlab.com/fr-fr/blog/what-is-open-source/" title="Qu'est-ce que l'open source ?">open source</a> comme <a href="https://gcc.gnu.org/">GCC</a>) et en tant que développeur (quand je travaillais chez Transmeta, nous utilisions exclusivement CVS) et j'en avais une aversion profonde.</p>
<p>&lt;img src=&quot;https://about.gitlab.com/images/blogimages/linustorvalds.png&quot; align=&quot;left&quot; width=&quot;200px&quot; style=&quot;padding-right: 20px; padding-bottom: 10px&quot;/&gt;</p>
<p>À l'époque, la plupart des projets qui utilisaient CVS étaient passés à <a href="https://subversion.apache.org/">SVN</a>, mais en vérité, j'ai toujours pensé que SVN n'était qu'une pâle copie de CVS malgré les quelques améliorations apportées à l'interface utilisateur ; aucun des défauts fondamentaux n'avaient été corrigés et de nouveaux problèmes étaient même apparus.</p>
<p>Impossible d'énumérer ici tous les problèmes rencontrés avec CVS et les autres systèmes du même type. Ils sont de toute façon devenus obsolètes. Les développeurs les plus jeunes n'ont même probablement jamais eu à les utiliser. J'ai toujours refusé de m'en servir pour le noyau Linux, même si quelques sous-systèmes (notamment le côté mise en réseau) utilisaient CVS pour gérer leur code dans les années 1990.</p>
<p>À l'époque, je vivais dans la région de la baie de San Francisco, et Larry McVoy, qui était à l'origine notamment du projet <a href="https://www.usenix.org/legacy/publications/library/proceedings/sd96/full_papers/mcvoy.pdf">lmbench</a>, avait lancé la société BitMover, qui proposait un nouveau modèle de contrôle de version appelé BitKeeper (BK).</p>
<p>BK n'était pas open source, mais Larry appréciait les projets open source et pensait que l'absence d'un système de contrôle de version pertinent freinait le développement du noyau Linux. Il n'avait pas tort, mais les systèmes de <a href="https://about.gitlab.com/fr-fr/solutions/source-code-management/" title="Gestion du code source">gestion du code source (SCM)</a> traditionnels ne me convenaient absolument pas. Larry a pris le temps de nous montrer, à David Miller (chargé de maintenance réseau et utilisateur de CVS) et à moi, les avantages de BitKeeper.</p>
<p>BK n'était pas parfait. Il s'appuyait sur Source Code Control System (SCCS) comme tant d'autres SCM traditionnels et souffrait donc du même modèle restrictif d'« historique par fichier », qui pose un réel problème, notamment lors du renommage et de la suppression de fichiers.</p>
<p>BK présentait tout de même quelques avantages. Même s'il utilisait SCCS de base, il corrigeait des problèmes vraiment essentiels et gérait le développement distribué convenablement. Il offrait par ailleurs un véritable historique global (et non par fichier). Par conséquent, le merge de code provenant de différents arbres fonctionnait réellement.</p>
<p>Avec CVS, créer une branche et la fusionner était un événement majeur que vous deviez planifier et discuter en équipe. Avec BK, chaque dépôt correspondait à une branche. C'est une pratique courante à présent. Bien évidemment, Git l'a encore améliorée en proposant plusieurs branches <em>par</em> dépôt, mais même le modèle BK beaucoup plus limité représentait déjà une avancée majeure à l'époque.</p>
<p>Encore une fois, BK n'était pas parfait. Son modèle basé sur un historique par fichier posait de réels problèmes, car les opérations de renommage et de merge de fichiers n'étaient tout simplement pas fiables, entraînant inévitablement des dysfonctionnements comparables à ceux rencontrés avec Attic pour les utilisateurs de CVS. Par ailleurs, BK manquait de robustesse en matière d’évolutivité, des limites qui ne devenaient toutefois réellement problématiques qu’à mesure que le projet gagnait en ampleur ou en complexité.</p>
<p>Mais la nécessité d'acquérir une licence pour pouvoir l'utiliser constituait un véritable obstacle. Bien que de nombreux chargés de maintenance du noyau avaient fini par l'adopter (nous l'avons d'ailleurs utilisé de 2002 à 2005), cette contrainte restait une source de frictions qui a atteint son paroxysme fin 2004, rendant l'utilisation de BK pour le développement du noyau intenable quelques mois plus tard.</p>
<p>Ainsi, pendant trois ans, j'ai enfin pu utiliser un contrôle de version qui fonctionnait et qui m'aidait à résoudre de nombreux problèmes. Je ne pouvais plus me passer d'un système de contrôle de version. Entretemps, aucun outil open source plus performant n’avait vu le jour au sein de la communauté open source.</p>
<p>Bien sûr, il était de notoriété publique que CVS et SVN ne fonctionnaient pas bien. Certaines équipes ont même tenté d'autres approches, parfois encore pires (comme un suivi de correctifs sophistiqué) ; d'autres ont eu de bonnes idées, mais qui aboutissaient pourtant à de nouvelles erreurs de conception (comme <a href="https://www.monotone.ca/">Monotone</a>).</p>
<p>Après un certain temps et des recherches infructueuses, j'ai finalement décidé de créer mon propre système.</p>
<p>Techniquement, il ne m'a fallu que quelques jours pour créer la première version de Git, comme le prouve l'historique des commits. Dès que celle-ci a atteint un niveau de fonctionnalité suffisant, j'ai pu commencer à appliquer les correctifs proposés par d'autres contributeurs. Quelques jours plus tard, ma version était activement utilisée pour le développement du noyau.</p>
<p>Mais cette rapidité apparente cache un travail préparatoire de plusieurs mois de <em>réflexion</em>. Écrire du code est relativement facile. Le plus important, c'est la conception initiale. L'historique des commits que j'évoquais plus tôt ne montre pas tout le travail de fond effectué en amont.</p>
<p>Et pour être honnête, cette première version était ultra rudimentaire et relativement basique par rapport aux nombreuses fonctionnalités que Git propose aujourd'hui. Mais elle incluait déjà les éléments clés de la structure fondamentale de Git.</p>
<p><strong>Pouvez-vous nous donner un bref aperçu des débuts du projet Git ?</strong></p>
<p>En somme, j'avais décidé de suspendre le développement du noyau tant que je n'aurais pas d'alternative qui me convenait : un système distribué, performant et capable de garantir la détection de toute corruption de fichiers.</p>
<p>Je tiens cependant à souligner que je n'étais pas intéressé par les SCM en tant que tels. Ce qui m'importait, c'était le résultat final, pas le processus. Pour moi, Git n'avait pas le même intérêt que le noyau Linux : j'utilise Linux parce que je trouve que le fonctionnement des noyaux est fascinant, mais j'ai créé Git par obligation, pas par passion.</p>
<p>D'où le fait que j'en ai délégué la maintenance.</p>
<p><strong>Pourquoi avez-vous confié la maintenance de Git à Junio Hamano après quelques mois ? Pourquoi avez-vous choisi Junio ?</strong></p>
<p>Transmettre la maintenance de Git était un choix évident. Je savais dès le départ que je me concentrerais de nouveau uniquement sur le noyau dès que j'aurais trouvé une personne de confiance à qui déléguer la maintenance.</p>
<p>Cela ne signifie pas pour autant que j'ai tout laissé tomber en priant pour que tout se passe bien. J'ai assuré la maintenance de Git pendant environ quatre mois, car je sentais que je devais trouver la perle rare qui s'investirait sur le long terme.</p>
<p>Junio a été l'une des toutes premières personnes impliquées dans ce projet, dès la première semaine de développement. Mais je ne lui ai pas attribué ce rôle dès le départ. Il m'a fallu un certain temps pour voir qui restait, qui écrivait du code pertinent et qui prenait des décisions stratégiques.</p>
<p>Junio s'est montré exceptionnel. On me donne bien trop de crédit pour les quelques mois que j’ai passés sur Git, notamment pour la célébration du 20e anniversaire de l’existence du projet. Je revendique avoir optimisé la conception centrale et lancé le projet, mais c'est vraiment grâce à Junio (et à des centaines d’autres contributeurs) que Git est ce qu’il est aujourd’hui.</p>
<p><strong>La version initiale du système de contrôle de version Mercurial est sortie seulement 12 jours après la version initiale de Git, le 19 avril 2005. Beaucoup prétendent que l'expérience utilisateur de Mercurial était supérieure à celle de Git, mais de nos jours, Git est nettement plus populaire. Pour quelles raisons d'après vous ?</strong></p>
<p>C'est en grande partie dû aux effets de réseau des SCM qui ont permis à CVS de survivre aussi longtemps malgré ses limites.</p>
<p>Le fait que le noyau Linux utilise Git a joué un rôle majeur. Plus tard, la communauté Ruby on Rails a largement contribué à sa popularité, avant que l'utilisation de Git ne se généralise dans toutes les communautés de développeurs.</p>
<p>Mais je pense aussi que la conception de Git est fondamentalement supérieure. Son architecture est à la fois très simple et extrêmement puissante, ce qui, selon moi, a facilité son adaptation à d'autres environnements, comme JGit et des implémentations plus récentes telles que le système de fichiers virtuel MSgit, et bien d'autres encore.</p>
<p>Bien que Git avait la réputation d’être un outil difficile à prendre en main, les utilisateurs habitués à d'autres systèmes SCM le trouvaient contre-intuitif. Cette complexité provenait en partie du fait que Git avait adopté certains choix audacieux que jamais un utilisateur habitué aux systèmes traditionnels n'aurait osé faire.</p>
<p><strong>Le projet Git a toujours été actif depuis que vous en avez confié la maintenance à Junio, et sa communauté développe en permanence de nouvelles fonctionnalités. Selon vous, quelles ont été les étapes clés depuis que vous avez quitté le projet ?</strong></p>
<p>Difficile pour moi de répondre à cette question. J'ai évidemment tout fait pour que Git convienne à mes propres besoins. Les fonctionnalités que j'utilisais <em>moi-même</em> étaient opérationnelles dès le premier jour. Faire en sorte que Git fonctionne sur Windows était évidemment une étape importante pour beaucoup de développeurs, mais cela n'a eu absolument aucun impact sur <em>moi</em> ;)</p>
<p>Il est évident que Git possède toute l'infrastructure nécessaire pour le rendre beaucoup plus facile à utiliser, mais je pense que les étapes majeures ont surtout concerné les projets construits autour de l'infrastructure Git. Ces développements sont par la suite souvent intégrés aux fonctionnalités de Git, mais, en réalité, les étapes clés sont souvent liées à des projets externes.</p>
<p>Par exemple, les grandes plateformes d'hébergement Git ont constitué des étapes importantes. Le modèle distribué de Git a grandement facilité leur création, mais la véritable <em>étape</em> a été la façon dont elles ont rendu Git tellement plus accessible et pratique pour les utilisateurs et les équipes travaillant sur divers projets.</p>
<p><strong>Si vous aviez la possibilité de travailler à nouveau sur Git à plein temps, qu'aimeriez-vous implémenter ?</strong></p>
<p>Absolument rien. Git me convenait parfaitement dès le début. Mon utilisation est en fait assez limitée et je ne m'intéresse vraiment qu'à un seul projet.</p>
<p>Comme je l'ai expliqué précédemment, je n'ai jamais vraiment été passionné par les SCM. Git a fini par se différencier positivement des autres SCM, car je l'ai traité comme un système de fichiers distribué basé sur les logs, et non comme un SCM traditionnel.</p>
<p><strong>Y a-t-il une fonctionnalité ou une décision de conception dans Git que vous regrettez avec le recul ?</strong></p>
<p>Des décisions de conception ? Non. Je suis convaincu que la conception globale est excellente, et vous pouvez discuter des concepts fondamentaux de Git sans jamais vous perdre dans les détails complexes de son implémentation.</p>
<p>Il est essentiel dans un projet d'avoir un certain nombre de principes de conception générale pour guider sa direction conceptuelle.</p>
<p>Les gens pensent parfois que l'étape de mise en œuvre doit suivre aveuglément les principes fondamentaux de la conception générale. Et c'est faux. La <em>mise en œuvre</em> aura son lot de cas particuliers compliqués parce les utilisateurs ont des besoins parfois étranges. L'essentiel est de définir une conception générale claire qui servira de référence au projet et à laquelle vous pourrez réfléchir avant de vous confronter à la réalité.</p>
<p>Et je pense que Git offre un équilibre parfait avec un système basique de stockage d'objets (que les experts en contrôle de version appellent  « arbres de Merkle structurés » et que les spécialistes des systèmes de fichiers appellent « stockage avec adressage par contenu »). Cette conception centrale est très simple, mais elle ne représente en réalité qu'une infime partie de la totalité du code du projet. La majeure partie du <em>code</em> de Git concerne en effet toutes les opérations et fonctionnalités que l'on peut construire autour de ce modèle central. Malgré cela, cette simplicité et cette clarté fondamentales offrent au projet une structure d'ensemble solide, compréhensible et cohérente.</p>
<p>C'est une structure semblable à celle d'Unix dont le principe est que « tout est un fichier » ou à sa gestion de processus. Ces « concepts » guident la conception, mais 99 % du code a pour objectif de créer des fonctionnalités utiles pour des utilisations concrètes.</p>
<p>J'ai deux mantras en technologie : « Si j'ai pu voir aussi loin, c'est parce que j'étais juché sur les épaules de géants » (Newton) et « Le génie, c'est 1 % d'inspiration et 99 % de transpiration » (Edison).</p>
<p>Bien que je sois très satisfait des grandes lignes de la conception, avec le recul, si je devais développer Git aujourd'hui, je changerais certains détails.</p>
<p>Mais honnêtement, ce sont des détails mineurs comparés à toutes les fonctionnalités <em>de qualité</em> qui ont été créées par la communauté au cours des deux dernières décennies.</p>
<p><strong>Le noyau Linux a commencé à utiliser Rust comme langage de programmation pour certains de ses sous-systèmes. Pensez-vous qu'il soit logique de commencer à utiliser des langages de programmation aussi récents que celui-ci dans Git ?</strong></p>
<p>En ce qui concerne Git, mélanger les langages n'est pas une bonne idée, car cela reste toujours un processus complexe.</p>
<p>Dans le noyau Linux, le résultat final est un binaire unique, même si une grande partie peut être chargée dynamiquement sous forme de modules.</p>
<p>Et cela rend plus difficile l'utilisation de plusieurs langages. En revanche, le noyau doit prendre en compte la sécurité de la mémoire et, par conséquent, envisager d'utiliser des langages plus récents.</p>
<p>Si un développeur veut écrire certaines parties de Git en Rust ou dans un autre langage, il est beaucoup plus logique d'opter pour une mise en œuvre séparée plutôt que de mélanger les différents langages dans un seul binaire.</p>
<p>La conception du noyau Git est suffisamment simple pour autoriser des implémentations parallèles. Vous pouvez ensuite cibler des cas spécifiques pour lesquels l'utilisation d'un langage différent fait sens.</p>
<p>JGit en est un parfait exemple. L'utilisation d'un autre langage était motivée par la présence d'un environnement web différent pour lequel ce choix de langage était beaucoup plus naturel.</p>
<p>Il existe déjà des implémentations de certaines fonctionnalités Git de base en Rust qui font sens dans des contextes spécifiques, mais je doute que cela justifie une approche globale du type « convertissons tout en Rust ».</p>
<p>Je recommande aux équipes qui souhaitent travailler avec Rust de cibler des domaines où ses avantages sont plus évidents. Je ne pense pas que C ait été si problématique dans le code source standard de Git.</p>
<p><strong>De nouveaux systèmes de contrôle de version voient le jour tous les deux ou trois ans. Pensez-vous que Git restera pertinent à l'avenir ?</strong></p>
<p>J'ai déjà mentionné les effets de réseau dans les SCM. Selon moi, seul un système bien meilleur que Git sera en mesure de le remplacer. Ou alors il sera tellement compatible qu'il s'agira tout simplement d'une nouvelle implémentation de Git.</p>
<p>De plus, la situation des SCM a beaucoup évolué : Git n'a pas les énormes failles fondamentales des SCM qui l'ont précédé. Il est donc assez difficile de le surpasser.</p>
<p>Je m'attends donc à ce que Git reste pertinent à l'avenir : les développeurs travailleront sur des améliorations <em>autour</em> de Git plutôt que de le remplacer par de nouveaux systèmes.</p>
<p><em>Remarque : cet entretien a été édité pour en raccourcir la longueur et améliorer la clarté.</em></p>
<h2>En savoir plus sur Git</h2>
<ul>
<li><a href="https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-49-0/">Nouveautés de Git 2.49.0</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-48-0/">Nouveautés de Git 2.48.0</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/a-beginners-guide-to-the-git-reftable-format/">Format « reftable » de Git : guide pour les débutants</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/keeping-git-commit-history-clean/" title="Commits Git">Commits Git : comment et pourquoi maintenir un historique propre</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/git-pull-vs-git-fetch-whats-the-difference/" title="Git fetch vs git pull">Git fetch vs git pull : quelle est la différence entre ces deux commandes Git ?</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/git-bash/" title="Git Bash">Git en ligne de commande sous Windows avec Git Bash</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/take-advantage-of-git-rebase/" title="Git rebase">Améliorez votre workflow avec Git rebase</a></li>
<li><a href="https://git-scm.com/">Projet Git</a></li>
</ul>
]]></content>
        <author>
            <name>Patrick Steinhardt</name>
            <uri>https://about.gitlab.com/blog/authors/patrick-steinhardt</uri>
        </author>
        <published>2025-04-07T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab + HackerOne : pour une sécurité applicative renforcée]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/enhance-application-security-with-gitlab-hackerone/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/enhance-application-security-with-gitlab-hackerone/"/>
        <updated>2025-04-03T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>La sécurité doit désormais être intégrée dès le début du processus de développement. Les entreprises ont besoin de solutions robustes qui intègrent la sécurité à chaque étape du cycle de développement logiciel. Le partenariat entre HackerOne et GitLab offre une combinaison gagnante pour les équipes de développement d'applications modernes.</p>
<p>GitLab, la plateforme <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que l'approche DevSecOps ? ">DevSecOps</a> complète et alimentée par l'IA, s'associe à HackerOne, leader de la sécurité collaborative, pour combiner le meilleur des deux univers : les workflows DevSecOps rationalisés de GitLab et les puissantes capacités de gestion des vulnérabilités de HackerOne.</p>
<p>Découvrez dans ce tutoriel comment améliorer la productivité de vos équipes de développement et renforcer votre posture de sécurité grâce à l'intégration de GitLab à HackerOne.</p>
<h2>Une intégration pensée pour les développeurs</h2>
<p>L'intégration de GitLab à la plateforme de cybersécurité HackerOne est aussi simple à mettre en œuvre que puissante. Lorsqu'un chercheur en cybersécurité détecte une vulnérabilité via la plateforme HackerOne, celle-ci est automatiquement convertie en un ticket GitLab.</p>
<p>Ce workflow permet de :</p>
<ul>
<li>détecter les vulnérabilités sur la plateforme HackerOne</li>
<li>créer automatiquement des tickets GitLab à partir des vulnérabilités validées</li>
<li>permettre aux équipes de développement de traiter ces tickets directement dans leur workflow existant</li>
<li>synchroniser le statut de résolution de ces vulnérabilités entre les deux plateformes</li>
</ul>
<p>Vous pouvez tirer parti de cette <a href="https://docs.hackerone.com/en/articles/8571227-gitlab-integration">intégration</a> en liant les tickets GitLab aux rapports HackerOne comme références. Cette synchronisation bidirectionnelle et fluide des données entre vos rapports HackerOne et les tickets GitLab améliore ainsi la coordination entre les équipes de développement et de sécurité tout en rationalisant le traitement des failles de sécurité.</p>
<p>Pour configurer cette intégration, référez-vous aux instructions détaillées de la <a href="https://docs.hackerone.com/en/articles/10394699-gitlab-setup">documentation HackerOne dédiée à l'intégration GitLab</a>, dont voici les principales étapes :</p>
<ol>
<li><a href="https://docs.gitlab.com/ee/integration/oauth_provider.html">Créez une application OAuth 2.0</a> pour votre instance GitLab à l'aide des paramètres fournis par HackerOne</li>
<li>Connectez la plateforme HackerOne à votre instance GitLab en utilisant cette application OAuth 2.0</li>
<li>Autorisez HackerOne à accéder à l'API GitLab</li>
<li>Configurez le projet GitLab vers lequel vous souhaitez transférer les rapports HackerOne</li>
<li>Sélectionnez les champs HackerOne à mapper aux champs GitLab correspondants</li>
<li>Définissez les événements à synchroniser, de GitLab vers HackerOne et de HackerOne vers GitLab</li>
</ol>
<p>Une fois l'intégration mise en place, la synchronisation bidirectionnelle des données entre GitLab et HackerOne devient fluide, réduisant les changements de contexte et facilitant le suivi des vulnérabilités sur les deux systèmes.</p>
<p>Les principales fonctionnalités de cette intégration sont les suivantes :</p>
<ul>
<li><strong>Création de tickets GitLab depuis HackerOne</strong> : créez de nouveaux tickets GitLab à partir des rapports que vous recevez dans HackerOne.</li>
<li><strong>Connexion des rapports HackerOne aux tâches GitLab existantes.</strong></li>
<li><strong>Synchronisation des mises à jour apportées aux rapports HackerOne vers GitLab</strong> : les informations suivantes sont envoyées sous forme de commentaires dans le ticket GitLab correspondant.
<ul>
<li>Commentaires du rapport</li>
<li>Changements d'état</li>
<li>Récompenses</li>
<li>Changements d'assignation</li>
<li>Divulgation publique</li>
<li>Fermeture du ticket GitLab</li>
</ul>
</li>
<li><strong>Synchronisation des mises à jour de GitLab vers HackerOne</strong> : lorsque certaines actions sont effectuées dans un ticket GitLab, ces mises à jour sont reprises automatiquement dans le rapport correspondant sur HackerOne, sous forme de commentaire interne :
<ul>
<li>Commentaires</li>
<li>Changements d'état</li>
</ul>
</li>
<li><strong>Mappage des niveaux de gravité HackerOne avec les labels GitLab</strong> : définissez une priorité personnalisée lorsque vous transférez un rapport HackerOne vers GitLab.</li>
<li><strong>Mappage des dates d'échéance</strong> : définissez automatiquement une date d'échéance personnalisée dans GitLab en fonction du niveau de gravité du rapport HackerOne.</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097510/Blog/Content%20Images/Blog/Content%20Images/sync_aHR0cHM6_1750097509644.png" alt="GitLab + HackerOne : Ajouter des commentaires ou modifier l'état du rapport dans GitLab"></p>
<p>Ces fonctionnalités renforcent la coordination entre les équipes de développement et de sécurité et rationalisent le traitement des failles de sécurité. Pour en savoir plus sur le fonctionnement de l'intégration, consultez la <a href="https://docs.hackerone.com/en/articles/8571227-gitlab-integration">documentation</a> fournie par HackerOne.</p>
<h2>Aperçu des programmes de bug bounty de HackerOne</h2>
<p>HackerOne propose des programmes de bug bounty, c'est-à-dire des initiatives en matière de cybersécurité qui récompensent la découverte et le signalement de vulnérabilités dans les systèmes logiciels, les sites web ou les applications de ses clients. Ces programmes contribuent à renforcer la sécurité des applications en :</p>
<ul>
<li>identifiant les failles de sécurité avant que des acteurs malveillants ne puissent les exploiter</li>
<li>tirant parti de l'expertise diversifiée d'une communauté mondiale de chercheurs en cybersécurité</li>
<li>offrant un moyen rentable d'améliorer la cybersécurité</li>
<li>complétant les efforts de sécurité internes et les tests de pénétration traditionnels</li>
</ul>
<p>GitLab s'appuie sur le programme de bug bounty de HackerOne pour permettre aux chercheurs en cybersécurité de signaler les vulnérabilités présentes dans ses applications ou son infrastructure. Cette approche collaborative aide GitLab à identifier et à résoudre plus efficacement les potentielles failles de sécurité.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097510/Blog/Content%20Images/Blog/Content%20Images/hackerone_gitlab_bug_bounty_page_aHR0cHM6_1750097509645.png" alt="Page du programme de bug bounty de GitLab de HackerOne"></p>
<p>En tirant parti de la plateforme HackerOne et de la communauté mondiale de hackers éthiques, les entreprises peuvent considérablement renforcer leur posture de sécurité, identifier plus rapidement les vulnérabilités et garder une longueur d'avance sur les menaces potentielles.</p>
<h2>Sécurisez vos applications et améliorez votre productivité avec GitLab</h2>
<p>GitLab offre une plateforme DevSecOps complète, qui intègre des fonctionnalités couvrant l'ensemble du cycle de développement logiciel, y compris des outils de <a href="https://about.gitlab.com/fr-fr/solutions/security-compliance/" title="Sécurité et conformité GitLab">sécurité et de conformité</a>. GitLab prend en charge les types de scanners de sécurité suivants :</p>
<ul>
<li>Tests statiques de sécurité des applications (SAST)</li>
<li>Tests dynamiques de sécurité des applications (DAST)</li>
<li>Analyse des conteneurs</li>
<li>Analyse des dépendances</li>
<li>Analyse de l'Infrastructure as Code (IaC)</li>
<li>Fuzzing guidé par la couverture de code</li>
<li>Test de l’API web par injection de données aléatoires</li>
</ul>
<p>Avec GitLab, vous pouvez simplement appliquer un template à votre fichier de définition de <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline CI/CD ?">pipeline CI/CD</a> pour activer un scanning de sécurité. Par exemple, l'activation de SAST ne nécessite que quelques lignes de code dans le fichier <code>.gitlab-ci.yml</code> :</p>
<pre><code class="language-yaml">stage:
  - test

include:
  - template: Jobs/SAST.gitlab-ci.yml
</code></pre>
<p>Cela exécutera SAST à l'étape de test et <a href="https://docs.gitlab.com/ee/user/application_security/sast/#supported-languages-and-frameworks">détectera automatiquement les langages utilisés</a> dans votre application. Ainsi, chaque fois que vous créez une merge request, SAST analyse les différences entre la branche de fonctionnalité et la branche cible pour détecter les vulnérabilités et fournit des données précises sur chaque faille de sécurité afin d'en faciliter la correction.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097510/Blog/Content%20Images/Blog/Content%20Images/no_sql_injection_vulnerability_mr_view_aHR0cHM6_1750097509647.png" alt="Vulnérabilité d'injection NoSQL détectée dans une MR"></p>
<p>Les résultats du scanner SAST peuvent bloquer le merge du code si des stratégies de sécurité sont appliquées. Les utilisateurs natifs de GitLab peuvent être définis comme approbateurs, ce qui permet d'effectuer les revues requises avant de fusionner du code non sécurisé. Cela garantit que toutes les vulnérabilités sont surveillées par les parties concernées.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097510/Blog/Content%20Images/Blog/Content%20Images/merge_request_approval_policy_aHR0cHM6_1750097509649.png" alt="Stratégie d'approbation des merge requests"></p>
<p>HackerOne a intégré GitLab à ses processus opérationnels et à ses processus de développement de manière stratégique, ce qui lui a permis de les rendre plus fluides et plus efficaces, à grande échelle, et de renforcer la collaboration entre les équipes. Parmi ces améliorations, HackerOne profite désormais de déploiements plus rapides et d'une planification inter-équipes performante.</p>
<h2>Principaux avantages d'intégrer GitLab à HackerOne</h2>
<p>L'utilisation conjointe de HackerOne et GitLab offre les avantages suivants :</p>
<ul>
<li><strong>Visibilité accrue en matière de sécurité</strong> : les équipes de développement bénéficient d'un accès immédiat aux failles de sécurité sans quitter leur environnement de workflow principal. Cette visibilité en temps réel aide les équipes à prioriser les problèmes de sécurité parallèlement au développement des fonctionnalités.</li>
<li><strong>Processus de correction rationalisé</strong> : en convertissant automatiquement les rapports HackerOne en tickets GitLab, le processus de correction des vulnérabilités s'intègre naturellement au cycle de développement standard. Cela évite les changements de contexte entre les plateformes et garantit des correctifs de sécurité en parallèle des autres tâches de développement.</li>
<li><strong>Temps de correction réduit</strong> : l'intégration raccourcit considérablement le délai entre la détection d'une vulnérabilité et sa résolution. Les soumissions de vulnérabilités dans HackerOne étant immédiatement disponibles dans GitLab, les équipes de développement peuvent réagir sans délai et renforcer ainsi la posture de sécurité globale.</li>
<li><strong>Collaboration améliorée</strong> : cette intégration fluidifie les échanges entre les chercheurs en cybersécurité, les équipes de sécurité et de développement. Les commentaires et mises à jour circulent entre les deux plateformes, créant ainsi un environnement collaboratif axé sur le renforcement de la sécurité.</li>
<li><strong>Impact réel</strong> : les entreprises qui ont opté pour l'intégration HackerOne + GitLab ont constaté les améliorations suivantes :
<ul>
<li>Une réduction pouvant atteindre 70 % du temps nécessaire entre l'identification d'une vulnérabilité et sa correction</li>
<li>Une satisfaction accrue des équipes de développement, qui peuvent continuer à travailler dans leur environnement préféré</li>
<li>Une visibilité accrue de la sécurité à l'échelle de l'entreprise</li>
<li>Une allocation plus efficace des ressources de sécurité</li>
</ul>
</li>
</ul>
<h2>En savoir plus sur GitLag + HackerOne</h2>
<p>Pour en savoir plus sur GitLab et HackerOne, et découvrir comment nous pouvons vous aider à renforcer votre posture de sécurité, consultez les ressources suivantes :</p>
<ul>
<li><a href="https://docs.hackerone.com/en/articles/8571227-gitlab-integration">Utilisation de l'intégration GitLab sur HackerOne</a></li>
<li><a href="https://hackerone.com/gitlab?type=team">Programme de Bug Bounty de GitLab sur HackerOne</a></li>
<li><a href="https://about.gitlab.com/fr-fr/solutions/security-compliance/">Solutions de sécurité et de conformité de GitLab</a></li>
<li><a href="https://about.gitlab.com/fr-fr/customers/hackerone/">HackerOne réalise des déploiements 5  fois plus rapides avec la sécurité intégrée de GitLab</a></li>
<li><a href="https://docs.gitlab.com/ee/user/application_security/">Documentation sur la sécurité des applications GitLab</a></li>
</ul>
]]></content>
        <author>
            <name>Fernando Diaz</name>
            <uri>https://about.gitlab.com/blog/authors/fernando-diaz</uri>
        </author>
        <published>2025-04-03T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Nouvelles limites de Docker Hub : vos pipelines GitLab CI/CD sont impactés]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/prepare-now-docker-hub-rate-limits-will-impact-gitlab-ci-cd/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/prepare-now-docker-hub-rate-limits-will-impact-gitlab-ci-cd/"/>
        <updated>2025-03-24T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Le 1er avril 2025, Docker va mettre en place de nouvelles <a href="https://docs.docker.com/docker-hub/usage/">limites de débit relatives aux pulls d'images</a> sur Docker Hub, susceptibles d'impacter de manière significative les pipelines CI/CD de développement logiciel, y compris ceux qui s'exécutent sur GitLab. Le changement le plus notable : un plafond fixé à 10 pulls d'images par heure pour les utilisateurs non authentifiés.</p>
<h2>Quels sont les changements attendus ?</h2>
<p>À compter du 1er avril, Docker va appliquer les limites strictes suivantes aux pulls d'images (téléchargements d'images) :</p>
<table>
<thead>
<tr>
<th>Type d'utilisateur</th>
<th>Limite de pulls d'images par heure</th>
<th>Nombre de dépôts publics</th>
<th>Nombre de dépôts privés</th>
</tr>
</thead>
<tbody>
<tr>
<td>Business, Team, Pro (authentifié)</td>
<td>Illimité (utilisation raisonnable)</td>
<td>Illimité</td>
<td>Illimité</td>
</tr>
<tr>
<td>Personal (authentifié)</td>
<td>100</td>
<td>Illimité</td>
<td>Jusqu'à 1</td>
</tr>
<tr>
<td>Utilisateurs non authentifiés</td>
<td>10 par adresse IPv4 ou sous-réseau IPv6/64</td>
<td>Non applicable</td>
<td>Non applicable</td>
</tr>
</tbody>
</table>
<p>Ces nouveaux quotas sont particulièrement importants pour les raisons suivantes :</p>
<ul>
<li>Le proxy de dépendances de GitLab effectue actuellement des pulls à partir de Docker Hub en tant qu'utilisateur non authentifié.</li>
<li>La plupart des pipelines CI/CD qui n'utilisent pas le proxy de dépendances effectuent des pulls directement à partir de Docker Hub en tant qu'utilisateurs non authentifiés.</li>
<li>Pour les runners hébergés sur GitLab.com, le partage d'une même adresse IP ou sous-réseau par plusieurs utilisateurs les soumet collectivement à cette limite.</li>
</ul>
<h2>Quel impact sur les utilisateurs de GitLab ?</h2>
<p><strong>Impact sur les pulls directs depuis Docker Hub</strong></p>
<p>Si vos pipelines CI/CD effectuent des pulls directement depuis Docker Hub sans authentification, ils seront limités à 10 pulls d'images par heure et par adresse IP. Dans le cas de pipelines exécutés fréquemment ou sur plusieurs projets partageant la même infrastructure de runner, cette limite sera rapidement atteinte, ce qui entraînera des échecs de pipeline.</p>
<p><strong>Impact sur le proxy de dépendances de GitLab</strong></p>
<p>La fonctionnalité de proxy de dépendances de GitLab permet de mettre en cache des images Docker dans GitLab pour accélérer les pipelines et réduire la dépendance aux registres externes. Cependant, dans sa version actuelle, ce proxy effectue des pulls d'images depuis Docker Hub en tant qu'utilisateur non authentifié, ce qui signifie qu'il est lui aussi soumis à la limite des 10 pulls d'images par heure.</p>
<p><strong>Impact sur les runners hébergés</strong></p>
<p>Sur GitLab.com, les runners hébergés s'appuient sur le <a href="https://cloud.google.com/artifact-registry/docs/pull-cached-dockerhub-images?hl=fr">cache pull-through de Google Cloud</a>, qui met en miroir les images fréquemment téléchargées. Cela permet d'éviter les limites de débit, comme pour les images de job définies comme <code>image:</code> ou <code>services:</code> dans votre fichier <code>.gitlab-ci.yml</code>.</p>
<p>Tout se complique légèrement lorsque les images sont téléchargées dans l'environnement du runner. Le cas le plus courant de pull d'images pendant l'exécution du runner concerne la création d'une image à l'aide de Docker-in-Docker ou de Kaniko. Dans ce scénario, l'image Docker Hub définie dans votre <code>Dockerfile</code> fait l'objet d'un pull directement depuis Docker Hub. Elle est donc susceptible d'être affectée par les limites de débit.</p>
<h2>Comment GitLab répond à ces nouveaux quotas ?</h2>
<p>Nous travaillons activement à la recherche de solutions pour atténuer les impacts liés à ces nouvelles limites :</p>
<ul>
<li><strong>Authentification du proxy de dépendances :</strong> nous avons ajouté la prise en charge de l'authentification Docker Hub dans la <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/331741">fonctionnalité de proxy de dépendances de GitLab</a>. Cela permettra à ce dernier de télécharger des images depuis Docker Hub en tant qu'utilisateur authentifié, et ainsi d'augmenter considérablement les limites de débit.</li>
<li><strong>Mise à jour de la documentation :</strong> nous avons actualisé notre <a href="https://docs.gitlab.com/user/packages/dependency_proxy/#configure-credentials">documentation</a> afin de fournir des instructions claires sur la configuration de l'authentification des pipelines pour Docker Hub.</li>
<li><strong>Préparation de l'infrastructure interne :</strong> nous préparons notre infrastructure GitLab.com afin de réduire au maximum l'impact de ces limites sur les runners hébergés.</li>
</ul>
<h2>Comment s'y préparer ?</h2>
<p><strong>Option 1 : configurez l'authentification Docker Hub dans vos pipelines</strong></p>
<p>Si vos pipelines effectuent des pulls directement depuis Docker Hub, vous pouvez configurer l'authentification afin d'augmenter votre limite de taux à 100 pulls d'images par heure (ou illimitée avec un abonnement payant à Docker Hub).</p>
<p>Pour cela, ajoutez vos identifiants de connexion Docker Hub aux variables CI/CD de votre projet ou groupe (ne les insérez pas directement dans le fichier <code>.gitlab-ci.yml</code>). Consultez les instructions détaillées de notre <a href="https://docs.gitlab.com/ci/docker/using_docker_images/#use-statically-defined-credentials">documentation sur l'utilisation d'images Docker</a> pour configurer correctement la variable CI/CD <code>DOCKER_AUTH_CONFIG</code>.</p>
<p><strong>Option 2 : utilisez le registre de conteneurs GitLab</strong></p>
<p>Effectuez un push des images Docker que vous utilisez le plus souvent dans votre <a href="https://docs.gitlab.com/user/packages/container_registry/">registre de conteneurs GitLab</a> afin d'éviter de devoir effectuer un pull d'images depuis Docker Hub pendant l'exécution des pipelines CI/CD. Procédez comme suit :</p>
<ol>
<li>Effectuez un pull de l'image depuis Docker Hub.</li>
<li>Attribuez-lui un tag adapté à votre registre de conteneurs GitLab.</li>
<li>Effectuez un push de l'image dans votre registre de conteneurs GitLab.</li>
<li>Mettez à jour vos pipelines pour qu'ils effectuent un pull de l'image depuis le registre de conteneurs GitLab.</li>
</ol>
<pre><code>docker pull busybox:latest
docker tag busybox:latest $CI_REGISTRY_IMAGE/busybox:latest
docker push $CI_REGISTRY_IMAGE/busybox:latest
</code></pre>
<p>Puis ajoutez cette ligne de commande dans votre fichier <code>.gitlab-ci.yml</code> :</p>
<p><code>image: $CI_REGISTRY_IMAGE/busybox:latest</code></p>
<p><strong>Option 3 : utilisez le proxy de dépendances de GitLab</strong></p>
<p>La fonctionnalité de proxy de dépendances de GitLab permet de mettre en cache les images Docker, tout en servant de proxy entre vos pipelines CI/CD et les registres Docker Hub, réduisant ainsi la dépendance aux registres externes et les risques liés aux limites de débit.</p>
<p>Options d'authentification actuelles :</p>
<ul>
<li>GitLab 17.10 : configurez l'authentification Docker Hub pour le proxy de dépendances à l'aide de l'<a href="https://docs.gitlab.com/user/packages/dependency_proxy/#configure-credentials-using-the-graphql-api">API GraphQL</a>.</li>
<li>GitLab 17.11 : utilisez la nouvelle interface de configuration dans les paramètres de votre groupe (déjà disponible sur GitLab.com).</li>
</ul>
<p>Une fois l'authentification correctement configurée, vous pouvez procéder comme suit :</p>
<ol>
<li>Configurez les identifiants de connexion Docker Hub dans les paramètres du proxy de dépendances de votre groupe :</li>
</ol>
<ul>
<li>Pour GitLab 17.11+ (ou la version actuelle de GitLab.com) : accédez aux paramètres de votre groupe &gt; Paquets et registres &gt; Proxy de dépendances.</li>
<li>Pour GitLab 17.10 : utilisez l'API GraphQL afin de configurer l'authentification.</li>
</ul>
<ol start="2">
<li>Mettez à jour vos pipelines de façon à ce qu'ils utilisent les URL du proxy de dépendances pour la configuration de votre pipeline CI/CD :
<code>image:${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/busybox:latest</code></li>
</ol>
<p><strong>Option 4 : envisagez d'acheter un abonnement payant à Docker Hub</strong></p>
<p>Pour les équipes qui utilisent Docker Hub de manière intensive, la mise à niveau vers un abonnement Docker payant (Team ou Business) permet d'accéder à un nombre illimité de pulls, ce qui peut s'avérer la solution la plus simple.</p>
<h2>Comment limiter l'impact des nouveaux quotas de Docker Hub ?</h2>
<p>Quelle que soit l'option que vous choisissez, tenez compte de ces bonnes pratiques pour réduire au maximum l'impact des nouvelles limites de débit imposées par Docker Hub :</p>
<ul>
<li>Utilisez des tags d'image spécifiques au lieu de <code>latest</code> pour éviter les pulls inutiles.</li>
<li>Consolidez vos fichiers Docker de façon à ce qu'ils réutilisent les mêmes images de base dans tous vos projets.</li>
<li>Planifiez l'exécution des pipelines les moins critiques en dehors des heures de pointe.</li>
<li>Tirez parti intelligemment de la mise en cache pour éviter d'effectuer maintes fois un pull des mêmes images.</li>
</ul>
<p><strong>Remarque :</strong> selon la <a href="https://docs.docker.com/docker-hub/usage/pulls/#pull-definition">documentation</a> de Docker Hub, le nombre de pulls augmente dès que vous effectuez le pull d'un manifeste d'image, et non en fonction de la taille de l'image ou du nombre de couches.</p>
<h2>Calendrier et prochaines étapes</h2>
<p><strong>Dès maintenant</strong></p>
<ul>
<li>Mettez en œuvre l'authentification pour les pulls directs depuis Docker Hub.</li>
<li>Les utilisateurs de GitLab.com peuvent déjà configurer l'authentification Docker Hub pour le proxy de dépendances en utilisant :
<ul>
<li>l'API GraphQL, ou</li>
<li>l'interface utilisateur dans les paramètres de groupe.</li>
</ul>
</li>
<li>Les utilisateurs de GitLab Self-Managed 17.10 peuvent configurer l'authentification du proxy de dépendances à l'aide de l'API GraphQL.</li>
</ul>
<p><strong>1er avril 2025</strong></p>
<ul>
<li>Les limites de débit de Docker Hub entrent en vigueur.</li>
</ul>
<p><strong>17 avril 2025</strong></p>
<ul>
<li>Sortie de GitLab 17.11 qui prendra en charge l'authentification du proxy de dépendances via l'interface utilisateur pour les instances GitLab Self-Managed.</li>
</ul>
<p>Nous vous recommandons d'appliquer ces mesures bien dès maintenant pour éviter des échecs de pipelines inattendus. Pour la plupart des utilisateurs, configurer le proxy de dépendances avec l'authentification Docker Hub est la solution la plus efficace à long terme.</p>
<blockquote>
<p>Vous avez des questions ou besoin d'aide pour la mise en œuvre ? Consultez <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/526605">ce ticket</a> dans lequel notre équipe fournit une assistance dédiée à ces changements.</p>
</blockquote>
]]></content>
        <author>
            <name>Tim Rizzi</name>
            <uri>https://about.gitlab.com/blog/authors/tim-rizzi</uri>
        </author>
        <published>2025-03-24T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Nouveautés de Git 2.49.0]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-49-0/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-49-0/"/>
        <updated>2025-03-14T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Le projet <a href="https://about.gitlab.com/fr-fr/blog/what-is-git/" title="Qu'est-ce que Git ? ">Git</a> a récemment publié sa version <a href="https://lore.kernel.org/git/xmqqfrjfilc8.fsf@gitster.g/">Git 2.49.0</a>. Jetons un coup d'œil aux points forts de cette nouvelle version, comprenant des contributions de l'équipe Git de GitLab et de la communauté Git au sens large.</p>
<h2>Commande git-backfill(1) associée à la nouvelle API path-walk</h2>
<p>Lorsque vous exécutez un <a href="https://git-scm.com/docs/git-clone/fr"><code>git-clone(1)</code></a> d'un dépôt Git, l'option <a href="https://git-scm.com/docs/git-clone/fr#git-clone-code--filterltspcdufiltregtcode"><code>--filter</code></a> vous permet de créer un <em>clone partiel</em>. Dans ce type de clonage, le serveur n'envoie qu'un sous-ensemble des objets accessibles, en fonction du filtre d'objets spécifié. Par exemple, la création d'un clone avec <code> --filter=blob:none</code> signifie que Git ne récupérera pas les blobs (ou contenus de fichiers) auprès du serveur et créera ainsi un <em>clone blobless</em>.</p>
<p>Les <em>clones blobless</em> sont des clones très légers qui contiennent l'ensemble des commits et des arbres accessibles, mais aucun blob. Lorsque vous effectuez une opération comme <a href="https://git-scm.com/docs/git-checkout/fr"><code>git-checkout(1)</code></a>, Git télécharge les blobs manquants pour exécuter la commande. Cependant, certaines opérations comme <a href="https://git-scm.com/docs/git-blame/fr"><code>git-blame(1)</code></a> peuvent entraîner un téléchargement séquentiel des objets, ce qui ralentit considérablement leur exécution. Cette dégradation des performances se produit parce que la commande <code>git-blame(1)</code> doit parcourir l'historique des commits pour identifier les blobs spécifiques requis, puis les demander un par un au serveur.</p>
<p>Pour remédier à cela, Git 2.49.0 introduit une nouvelle sous-commande : <code>git-backfill(1)</code>. Elle permet de télécharger les blobs manquants dans un clone partiel blobless.</p>
<p>En arrière-plan, la commande <code>git-backfill(1)</code> tire parti de la nouvelle API path-walk, qui est différente de la méthode traditionnelle d'itération de Git sur les commits. Plutôt que d'itérer sur les commits en les parcourant un par un et de consulter de façon récursive les arbres et les blobs associés à chaque commit, l'API path-walk procède par chemin d'accès. Pour chaque chemin de fichier, elle accumule la liste des objets d'arbre associés à une pile, et cette dernière est ensuite traitée en suivant un parcours en profondeur. Ainsi, plutôt que de traiter chaque objet du commit <code>1</code> avant de passer au commit <code>2</code>, elle traite toutes les versions du fichier <code>A</code> à travers tous les commits avant de passer au fichier <code>B</code>. Cette approche améliore considérablement les performances dans les scénarios où le regroupement par chemin est essentiel.</p>
<p>En guise d'exemple, nous allons créer un clone blobless du dépôt <a href="https://gitlab.com/gitlab-org/git"><code>gitlab-org/git</code></a> :</p>
<pre><code class="language-shell">$ git clone --filter=blob:none --bare --no-tags git@gitlab.com:gitlab-org/git.git
Cloning into bare repository 'git.git'...
remote: Enumerating objects: 245904, done.
remote: Counting objects: 100% (1736/1736), done.
remote: Compressing objects: 100% (276/276), done.
remote: Total 245904 (delta 1591), reused 1547 (delta 1459), pack-reused 244168 (from 1)
Receiving objects: 100% (245904/245904), 59.35 MiB | 15.96 MiB/s, done.
Resolving deltas: 100% (161482/161482), done.
</code></pre>
<p>Dans l'exemple ci-dessus, nous utilisons l'option <code>--bare</code> pour nous assurer que Git n'a pas besoin de télécharger de blobs pour effectuer
le checkout d'une branche initiale. Nous pouvons ensuite vérifier que ce clone ne contient effectivement aucun blob :</p>
<pre><code>$ git cat-file --batch-all-objects --batch-check='%(objecttype)' | sort | uniq -c
  83977 commit
 161927 tree
</code></pre>
<p>Si vous souhaitez afficher le contenu d'un fichier dans le dépôt, Git doit le télécharger :</p>
<pre><code>$ git cat-file -p HEAD:README.md
remote: Enumerating objects: 1, done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 1 (from 1)
Receiving objects: 100% (1/1), 1.64 KiB | 1.64 MiB/s, done.

[![Build status](https://github.com/git/git/workflows/CI/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)

Git - fast, scalable, distributed revision control system
=========================================================

Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
and full access to internals.

[snip]
</code></pre>
<p>Comme vous pouvez le voir ci-dessus, Git interroge d'abord le dépôt distant pour télécharger le blob avant de pouvoir l'afficher.</p>
<p>Mais si vous souhaitez effectuer une opération <code>git-blame(1)</code> sur ce fichier, Git devra télécharger de nombreux autres fichiers :</p>
<pre><code class="language-sh">$ git blame HEAD README.md
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (1/1), 1.64 KiB | 1.64 MiB/s, done.
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (1/1), 1.64 KiB | 1.64 MiB/s, done.
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (1/1), 1.64 KiB | 1.64 MiB/s, done.
remote: Enumerating objects: 1, done.

[snip]

df7375d772 README.md (Ævar Arnfjörð Bjarmason 2021-11-23 17:29:09 +0100  1) [![Build status](https://github.com/git/git/workflows/CI/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)
5f7864663b README.md (Johannes Schindelin 	2019-01-29 06:19:32 -0800  2)
28513c4f56 README.md (Matthieu Moy        	2016-02-25 09:37:29 +0100  3) Git - fast, scalable, distributed revision control system
28513c4f56 README.md (Matthieu Moy        	2016-02-25 09:37:29 +0100  4) =========================================================
556b6600b2 README	(Nicolas Pitre       	2007-01-17 13:04:39 -0500  5)
556b6600b2 README	(Nicolas Pitre       	2007-01-17 13:04:39 -0500  6) Git is a fast, scalable, distributed revision control system with an
556b6600b2 README	(Nicolas Pitre       	2007-01-17 13:04:39 -0500  7) unusually rich command set that provides both high-level operations
556b6600b2 README	(Nicolas Pitre       	2007-01-17 13:04:39 -0500  8) and full access to internals.
556b6600b2 README	(Nicolas Pitre       	2007-01-17 13:04:39 -0500  9)

[snip]
</code></pre>
<p>Nous avons tronqué la sortie, mais comme vous pouvez le constater, Git interroge le serveur séparément pour chaque révision de ce fichier. Ce processus est loin d'être optimal. Avec la commande <code>git-backfill(1)</code>, nous pouvons demander à Git de télécharger tous les blobs en une seule fois :</p>
<pre><code class="language-shell">$ git backfill
remote: Enumerating objects: 50711, done.
remote: Counting objects: 100% (15438/15438), done.
remote: Compressing objects: 100% (708/708), done.
remote: Total 50711 (delta 15154), reused 14730 (delta 14730), pack-reused 35273 (from 1)
Receiving objects: 100% (50711/50711), 11.62 MiB | 12.28 MiB/s, done.
Resolving deltas: 100% (49154/49154), done.
remote: Enumerating objects: 50017, done.
remote: Counting objects: 100% (10826/10826), done.
remote: Compressing objects: 100% (634/634), done.
remote: Total 50017 (delta 10580), reused 10192 (delta 10192), pack-reused 39191 (from 1)
Receiving objects: 100% (50017/50017), 12.17 MiB | 12.33 MiB/s, done.
Resolving deltas: 100% (48301/48301), done.
remote: Enumerating objects: 47303, done.
remote: Counting objects: 100% (7311/7311), done.
remote: Compressing objects: 100% (618/618), done.
remote: Total 47303 (delta 7021), reused 6693 (delta 6693), pack-reused 39992 (from 1)
Receiving objects: 100% (47303/47303), 40.84 MiB | 15.26 MiB/s, done.
Resolving deltas: 100% (43788/43788), done.
</code></pre>
<p>Cette commande permet de télécharger l'ensemble des blobs, transformant ainsi le clone blobless en un clone complet :</p>
<pre><code class="language-shell">$ git cat-file --batch-all-objects --batch-check='%(objecttype)' | sort | uniq -c
 148031 blob
  83977 commit
 161927 tree
</code></pre>
<p>Ce <a href="https://lore.kernel.org/git/pull.1820.v3.git.1738602667.gitgitgadget@gmail.com/">projet</a>
a été mené par <a href="https://stolee.dev/">Derrick Stolee</a> et a été fusionné via le commit
<a href="https://gitlab.com/gitlab-org/git/-/commit/e565f3755342caf1d21e22359eaf09ec11d8c0ae">e565f37553</a>.</p>
<h2>Intégration de zlib-ng</h2>
<p>Tous les objets contenus dans le dossier <code>.git/</code> sont compressés par Git à l'aide de <a href="https://zlib.net/"><code>zlib</code></a>, la bibliothèque de référence implémentant la spécification <a href="https://datatracker.ietf.org/doc/html/rfc1950">RFC 1950</a> : ZLIB Compressed Data Format. Créée en 1995, <code>zlib</code> bénéficie d'une longue histoire et d'une portabilité incroyable. Elle prend même en charge de nombreux systèmes antérieurs à Internet. En raison de sa compatibilité étendue avec une grande diversité d'architectures et de compilateurs, elle s'accompagne de certaines limites techniques.</p>
<p>Pour pallier ces contraintes, une bifurcation nommée <a href="https://github.com/zlib-ng/zlib-ng"><code>zlib-ng</code></a> a été créée. <code>zlib-ng</code> est une version optimisée pour les systèmes modernes. Cette bifurcation abandonne la prise en charge d'anciens systèmes au profit d'optimisations Intel, de certaines optimisations Cloudflare et de quelques autres correctifs plus ciblés.</p>
<p>La bibliothèque <code>zlib-ng</code> elle-même inclut une couche de compatibilité avec <code>zlib</code>, permettant
d'utiliser <code>zlib-ng</code> en remplacement immédiat de <code>zlib</code>. Toutefois,
cette couche de compatibilité n'est pas encore disponible sur toutes les distributions Linux. Dans Git 2.49.0 :</p>
<ul>
<li>Une couche de compatibilité a été intégrée directement au projet Git.</li>
<li>Des options de compilation ont été ajoutées à la fois au fichier <a href="https://gitlab.com/gitlab-org/git/-/blob/b9d6f64393275b505937a8621a6cc4875adde8e0/Makefile#L186-187"><code>Makefile</code></a> et au <a href="https://gitlab.com/gitlab-org/git/-/blob/b9d6f64393275b505937a8621a6cc4875adde8e0/meson.build#L795-811">fichier de compilation Meson</a>.</li>
</ul>
<p>Grâce à ces ajouts, il est plus facile de tirer parti des gains de performances procurés par
<code>zlib-ng</code>.</p>
<p>Lors de benchmarks en local, nous avons constaté une accélération d'environ 25 % en utilisant <code>zlib-ng</code> au lieu de <code>zlib</code>. Nous sommes d'ailleurs en train de déployer progressivement ces améliorations sur
GitLab.com.</p>
<p>Si vous souhaitez bénéficier des améliorations apportées par <code>zlib-ng</code>, vérifiez d'abord si Git
sur votre machine l'utilise déjà en exécutant la
commande <code>git version --build-options</code> :</p>
<pre><code class="language-shell">$ git version --build-options
git version 2.47.1
cpu: x86_64
no commit associated with this build
sizeof-long: 8
sizeof-size_t: 8
shell-path: /bin/sh
libcurl: 8.6.0
OpenSSL: OpenSSL 3.2.2 4 Jun 2024
zlib: 1.3.1.zlib-ng
</code></pre>
<p>Si la dernière ligne contient <code>zlib-ng</code>, votre instance Git est déjà créée
à l'aide de la variante optimisée de <code>zlib</code>. Sinon, vous pouvez :</p>
<ul>
<li>Soit demander au chargé de maintenance du paquet Git que vous utilisez d'inclure la prise en charge de <code>zlib-ng</code>.</li>
<li>Soit compiler Git vous-même à partir de la source.</li>
</ul>
<p>Ces <a href="https://gitlab.com/gitlab-org/git/-/commit/9d0e81e2ae3bd7f6d8a655be53c2396d7af3d2b0">améliorations</a>
ont été <a href="https://lore.kernel.org/git/20250128-b4-pks-compat-drop-uncompress2-v4-0-129bc36ae8f5@pks.im/">introduites</a>
par <a href="https://gitlab.com/pks-gitlab">Patrick Steinhardt</a>.</p>
<h2>Améliorations itératives autour de Meson</h2>
<p>Dans notre article sur la <a href="https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-48-0/#syst%C3%A8me-de-compilation-meson" title="version 2.48.0 de Git">version 2.48.0 de Git</a>, nous avons évoqué l'introduction du système de compilation Meson. <a href="https://fr.wikipedia.org/wiki/Meson_(logiciel)">Meson</a> est un outil d'automatisation de compilation utilisé par le projet Git qui, à terme, pourrait remplacer <a href="https://fr.wikipedia.org/wiki/Autoconf">Autoconf</a>, <a href="https://fr.wikipedia.org/wiki/CMake">CMake</a> et peut-être même <a href="https://fr.wikipedia.org/wiki/Make">Make</a>.</p>
<p>Au cours du cycle de développement de la version 2.49.0, nous avons poursuivi notre travail sur l'utilisation de Meson, en ajoutant diverses fonctionnalités manquantes
et des correctifs de stabilisation :</p>
<ul>
<li><a href="https://lore.kernel.org/git/20250122-b4-pks-meson-additions-v3-0-5a51eb5d3dcd@pks.im/">L'amélioration de la couverture de test dans le cadre des
pratiques CI</a> a été fusionnée dans le commit <a href="https://gitlab.com/gitlab-org/git/-/commit/72f1ddfbc95b47c6011bb423e6947418d1d72709">72f1ddfbc9</a>.</li>
<li><a href="https://lore.kernel.org/git/20250219-b4-pks-meson-contrib-v2-0-1ba5d7fde0b9@pks.im/">Des ajustements pour permettre l'utilisation de Meson dans <code>contrib/</code></a>
ont été fusionnés dans le commit <a href="https://gitlab.com/gitlab-org/git/-/commit/2a1530a953cc4d2ae62416db86c545c7ccb73ace">2a1530a953</a>.</li>
<li><a href="https://lore.kernel.org/git/20250226-b4-pks-meson-improvements-v3-0-60c77cf673ae@pks.im/">Des correctifs et améliorations diverses de la procédure de compilation basée sur
Meson</a> ont été fusionnées dans le commit <a href="https://gitlab.com/gitlab-org/git/-/commit/ab09eddf601501290b5c719574fbe6c02314631f">ab09eddf60</a>.</li>
<li><a href="https://lore.kernel.org/git/20250117-b4-pks-build-subtree-v1-0-03c2ed6cc42e@pks.im/">La prise en charge par Meson de la compilation
de <code>git-subtree(1)</code></a> a été fusionnée dans le commit <a href="https://gitlab.com/gitlab-org/git/-/commit/3ddeb7f3373ae0e309d9df62ada24375afa456c7">3ddeb7f337</a>.</li>
<li><a href="https://lore.kernel.org/git/20241227-b4-pks-meson-docs-v2-0-f61e63edbfa1@pks.im/">L'apprentissage par Meson de la génération des pages de la documentation
HTML</a>
a été fusionné dans le commit <a href="https://gitlab.com/gitlab-org/git/-/commit/1b4e9a5f8b5f048972c21fe8acafe0404096f694">1b4e9a5f8b</a>.</li>
</ul>
<p>L'ensemble de ces contributions a été mené par <a href="https://gitlab.com/pks-gitlab">Patrick Steinhardt</a>.</p>
<h2>Retrait définitif des sous-répertoires .git/branches/ et .git/remotes/</h2>
<p>Vous connaissez probablement l'existence du répertoire <code>.git</code> et de son
contenu. Mais avez-vous déjà entendu parler des sous-répertoires <code>.git/branches/</code> et
<code>.git/remotes/</code> ? Comme vous le savez peut-être, les références aux branches sont stockées dans
<code>.git/refs/heads/</code>, ce n'est donc pas à cela que sert <code>.git/branches/</code>, et qu'en est-il de
<code>.git/remotes/</code> ?</p>
<p>En 2005, le sous-répertoire <a href="https://git-scm.com/docs/git-fetch/fr#_fichier_nomm%C3%A9_dans_git_dirbranches"><code>.git/branches/</code></a> a été introduit afin de stocker le nom abrégé de dépôts distants, et quelques mois plus tard, ces informations ont été déplacées vers <a href="https://git-scm.com/docs/git-fetch/fr#_fichier_nomm%C3%A9_dans_git_dirremotes"><code>.git/remotes/</code></a>.
Puis, en <a href="https://lore.kernel.org/git/Pine.LNX.4.63.0604301520460.2646@wbgn013.biozentrum.uni-wuerzburg.de/">2006</a>,
à l'aide de la commande <a href="https://git-scm.com/docs/git-config"><code>git-config(1)</code></a>, il a été possible de gérer
les <a href="https://git-scm.com/docs/git-config#Documentation/git-config.txt-remoteltnamegturl">dépôts distants</a> de la même façon que les paramètres de configuration,
ce qui est devenu la méthode standard de configuration des dépôts distants. En 2011, les
sous-répertoires <code>.git/branches/</code> et <code>.git/remotes/</code> ont été
<a href="https://gitlab.com/git-scm/git/-/commit/3d3d282146e13f2d7f055ad056956fd8e5d7ed29#e615263aaf131d42be8b0d0888ebd3fec954c6c9_132_124">documentés</a>
comme étant obsolètes. Ils ne sont plus utilisés dans les dépôts modernes.</p>
<p>Enfin en 2024, la documentation <a href="https://git-scm.com/docs/BreakingChanges">BreakingChanges</a> a été créée pour répertorier les changements cassants de la prochaine version majeure de Git (v3.0). Bien que cette nouvelle version ne soit pas encore planifiée dans un avenir proche, cette documentation permet de suivre les modifications significatives à venir.</p>
<p>Dans le commit <a href="https://gitlab.com/git-scm/git/-/commit/8ccc75c2452b5814d2445d60d54266293ca48674">8ccc75c245</a>, l'utilisation des sous-répertoires <code>.git/branches/</code> et <code>.git/remotes/</code> a été ajoutée à cette liste, en les marquant officiellement comme obsolètes et voués à être supprimés dans Git 3.0.</p>
<p>Merci à <a href="https://gitlab.com/pks-gitlab">Patrick Steinhardt</a>
<a href="https://lore.kernel.org/git/20250122-pks-remote-branches-deprecation-v4-5-5cbf5b28afd5@pks.im/">d'avoir formalisé ce retrait définitif</a>.</p>
<h2>Ajout de liaisons en Rust pour libgit</h2>
<p>Lors de la compilation de Git, une bibliothèque interne nommée <code>libgit.a</code> est créée. Elle contient certaines des fonctionnalités centrales de Git.</p>
<p>Bien que cette bibliothèque (comme la majeure partie de Git) soit écrite en C, la version Git 2.49.0 introduit des liaisons
pour que certaines de ces fonctions deviennent disponibles en langage Rust. Pour ce faire, deux
nouveaux paquets Cargo ont été créés : <code>libgit-sys</code> et <code>libgit-rs</code>. Ils
se trouvent dans le sous-répertoire <a href="https://gitlab.com/gitlab-org/git/-/tree/master/contrib"><code>contrib/</code></a> de l'arbre source de Git.</p>
<p>C'est une pratique assez
<a href="https://doc.rust-lang.org/cargo/reference/build-scripts.html#-sys-packages">courante</a>
de diviser une bibliothèque en deux paquets lorsqu'une <a href="https://en.wikipedia.org/wiki/Foreign_function_interface">interface de fonction
étrangère</a> est utilisée.
Le paquet <code>libgit-sys</code> fournit l'interface directe et minimaliste vers les fonctions en C et effectue le lien avec la bibliothèque native <code>libgit.a</code>. Le paquet <code>libgit-rs</code> fournit une interface de haut niveau plus idiomatique pour Rust vers les fonctions de <code>libgit-sys</code>.</p>
<p>Jusqu'à présent, les fonctionnalités de ces paquets Rust sont très limitées : ils fournissent uniquement
une interface d'interaction avec la commande <code>git-config(1)</code>.</p>
<p>Cette initiative a été menée par <a href="https://lore.kernel.org/git/8793ff64a7f6c4c04dd03b71162a85849feda944.1738187176.git.steadmon@google.com/">Josh Steadmon</a> et a été fusionnée via le commit <a href="https://gitlab.com/gitlab-org/git/-/commit/a4af0b6288e25eb327ae9018cee09def9e43f1cd">a4af0b6288</a>.</p>
<h2>Nouvel algorithme de hachage de noms</h2>
<p>La base de données d'objets Git dans <code>.git/</code> stocke la plupart de ses données sous forme d'archives empaquetées («packfile»). Ces derniers  sont également utilisés pour transférer des objets entre le serveur et le client Git par le biais du réseau.</p>
<p>Pour en savoir plus sur le format de ces fichiers, consultez la documentation <a href="https://git-scm.com/docs/gitformat-pack"><code>gitformat-pack(5)</code></a>. D'autre part, les archives empaquetées
utilisent une technique de compression qui a son importance, appelée la compression delta. Avec ce type de compression, tous les objets ne sont pas stockés dans leur intégralité : certains sont enregistrés en tant que <em>delta</em> d'une autre <em>base</em>. Ainsi, au lieu d'enregistrer le contenu complet des objets, ce sont les modifications par rapport à un autre objet de référence qui sont stockées.</p>
<p>Sans détailler la façon dont ces deltas sont calculés ou stockés, vous vous doutez bien qu'il est essentiel de regrouper les fichiers très similaires pour optimiser la compression. Jusqu'à la
version v2.48.0, Git examinait les 16 derniers caractères du nom du chemin d'accès au fichier pour déterminer si les blobs semblaient similaires, à l'aide d'un algorithme nommé « version <code>1</code> ».</p>
<p>Dans Git 2.49.0, l'algorithme « version <code>2</code> » a été introduit. Il s'agit d'une itération de l'algorithme version <code>1</code>, mais modifié, de sorte que l'impact du répertoire parent dans le calcul est réduit. Vous pouvez spécifier la version de l'algorithme de hachage de noms à utiliser à l'aide de l'option <code>--name-hash-version</code> de la commande <a href="https://git-scm.com/docs/git-repack/fr"><code>git-repack(1)</code></a>.</p>
<p><a href="https://stolee.dev/">Derrick Stolee</a>, qui a mené ce projet, a effectué une
comparaison de la taille des archives empaquetées après exécution de <code>git repack -adf --name-hash-version=&lt;n&gt;</code> :</p>
<table>
<thead>
<tr>
<th>Dépôt</th>
<th>Taille avec la version 1</th>
<th>Taille avec la version 2</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/microsoft/fluentui">fluentui</a></td>
<td>440 Mo</td>
<td>161 Mo</td>
</tr>
<tr>
<td>Dépôt B</td>
<td>6 248 Mo</td>
<td>856 Mo</td>
</tr>
<tr>
<td>Dépôt C</td>
<td>37 278 Mo</td>
<td>6 921 Mo</td>
</tr>
<tr>
<td>Dépôt D</td>
<td>131 204 Mo</td>
<td>7 463 Mo</td>
</tr>
</tbody>
</table>
<p>Pour en savoir plus, consultez l'<a href="https://lore.kernel.org/git/pull.1823.v4.git.1738004554.gitgitgadget@gmail.com/">ensemble de
correctifs</a>,
qui a été fusionné dans le commit
<a href="https://gitlab.com/gitlab-org/git/-/commit/aae91a86fb2a71ff89a71b63ccec3a947b26ca51">aae91a86fb</a>.</p>
<h2>Capacité de promisor remote</h2>
<p>Il est de notoriété publique que Git ne sait pas très bien gérer les fichiers volumineux. Des solutions comme <a href="https://git-lfs.com/">Git LFS</a> existent pour résoudre ce problème, mais celles-ci comportent malgré tout certaines lacunes. En voici quelques exemples :</p>
<ul>
<li>Avec Git LFS, l'utilisateur doit configurer les fichiers à placer dans LFS. Le serveur n'a
aucun contrôle sur ce choix et doit donc servir tous les fichiers.</li>
<li>Chaque fois qu'un fichier est validé dans le dépôt, il est impossible de l’enlever du dépôt sans réécrire l'historique. C'est un vrai problème, surtout pour les fichiers volumineux qui sont bloqués pour toujours.</li>
<li>Les utilisateurs ne peuvent pas changer d'avis sur quels fichiers sont à placer dans Git LFS.</li>
<li>Configurer, apprendre et utiliser de manière optimale un outil comme Git LFS est
fastidieux.</li>
</ul>
<p>Depuis un certain temps, Git a adopté le concept de « promisor remotes ». Cette fonctionnalité pouvant être utilisée pour gérer des fichiers volumineux a été améliorée dans Git 2.49.0.</p>
<p>L'idée de la capacité « promisor remote » est relativement simple : au lieu d'envoyer lui-même tous les objets, un serveur Git peut indiquer au client Git de télécharger ces
objets à partir d'un « promisor remote ».</p>
<p>Git 2.49.0 permet désormais au serveur de transmettre les informations du « promisor remote »
au client. Cette amélioration est une extension du protocole
<a href="https://git-scm.com/docs/gitprotocol-v2"><code>gitprotocol-v2</code></a>. Pendant l'échange
de données, le serveur peut ainsi envoyer au client les noms et les URL des « promisor remotes » dont il a connaissance.</p>
<p>Jusqu'à présent, le client n'utilise pas les informations du « promisor remote » qu'il reçoit du serveur lors d'un clonage, de sorte que tous les objets sont toujours transmis depuis le dépôt distant à partir duquel le clonage a été initié. Nous envisageons de poursuivre l'optimisation de cette fonctionnalité pour faire en sorte de permettre au client d'utiliser les informations du « promisor remote » du serveur, ainsi que pour simplifier son utilisation.</p>
<p>Cet <a href="https://lore.kernel.org/git/20250218113204.2847463-1-christian.couder@gmail.com/">ensemble de correctifs</a> a été soumis par <a href="https://gitlab.com/chriscool">Christian Couder</a> et fusionné via le commit <a href="https://gitlab.com/gitlab-org/git/-/commit/2c6fd30198187c928cbf927802556908c381799c">2c6fd30198</a>.</p>
<h2>Clone léger utilisant <code>--revision</code></h2>
<p>Une nouvelle option <code>--revision</code> a été ajoutée à la commande <a href="https://git-scm.com/docs/git-clone/fr"><code>git-clone(1)</code></a>. Elle vous permet de créer un clone léger d'un dépôt ne contenant que l'historique associé à une révision donnée. Elle fonctionne de manière similaire à <code>--branch</code>, mais accepte un nom de référence (comme <code>refs/heads/main</code>, <code>refs/tags/v1.0</code> et <code>refs/merge-requests/123</code>) ou un ID d'objet en hexadécimal d'un commit. La différence avec <code>--branch</code> est qu'elle ne crée pas de branche de suivi et le pointeur <code>HEAD</code> est détaché. Cette option n'est donc pas adaptée si vous souhaitez contribuer à cette branche.</p>
<p>Vous pouvez combiner <code>--revision</code> avec <code>--depth</code> pour créer un clone minimal, par exemple dans le cadre de tests automatisés. Lorsque vous disposez d'un système CI qui doit effectuer le checkout d'une branche (ou toute autre référence) pour exécuter des tests autonomes sur le code source, un clone minimal suffit largement.</p>
<p>Ce <a href="https://gitlab.com/gitlab-org/git/-/commit/5785d9143bcb3ef19452a83bc2e870ff3d5ed95a">changement</a> a été <a href="https://lore.kernel.org/git/20250206-toon-clone-refs-v7-0-4622b7392202@iotcl.com/">mené</a> par <a href="https://gitlab.com/toon">Toon Claes</a>.</p>
<h1>En savoir plus</h1>
<ul>
<li><a href="https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-48-0/">Nouveautés de Git 2.48.0</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-47-0/">Nouveautés de Git 2.47.0</a></li>
<li><a href="https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-46-0/">Nouveautés de Git 2.46.0</a></li>
</ul>
]]></content>
        <author>
            <name>Toon Claes</name>
            <uri>https://about.gitlab.com/blog/authors/toon-claes</uri>
        </author>
        <published>2025-03-14T00:00:00.000Z</published>
    </entry>
</feed>