[{"data":1,"prerenderedAt":867},["ShallowReactive",2],{"/fr-fr/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab":3,"navigation-fr-fr":51,"banner-fr-fr":465,"footer-fr-fr":475,"blog-post-authors-fr-fr-Tsukasa Komatsubara|Darwin Sanoy|Samer Akkoub|Bart Zhang":712,"blog-related-posts-fr-fr-ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab":764,"blog-promotions-fr-fr":805,"next-steps-fr-fr":858},{"id":4,"title":5,"authorSlugs":6,"body":11,"categorySlug":12,"config":13,"content":17,"description":11,"extension":36,"isFeatured":15,"meta":37,"navigation":15,"path":38,"publishedDate":26,"seo":39,"stem":44,"tagSlugs":45,"__hash__":50},"blogPosts/fr-fr/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab.yml","Ultimate Guide To Migrating From Aws Codecommit To Gitlab",[7,8,9,10],"tsukasa-komatsubara","darwin-sanoy","samer-akkoub","bart-zhang",null,"product",{"slug":14,"featured":15,"template":16},"ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab",true,"BlogPost",{"title":18,"description":19,"authors":20,"heroImage":25,"date":26,"body":27,"category":12,"tags":28,"updatedDate":35},"Migrer d'AWS CodeCommit vers GitLab : le guide complet ","Ce tutoriel vous explique comment migrer depuis les services Amazon Web Services (AWS) vers la plateforme DevSecOps de GitLab.",[21,22,23,24],"Tsukasa Komatsubara","Darwin Sanoy","Samer Akkoub","Bart Zhang","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097810/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2828%29_4mi0l4wzUa5VI4wtf8gInx_1750097810027.png","2024-08-26","Le 25 juillet 2024, AWS a communiqué une annonce importante concernant son service CodeCommit : AWS a décidé de fermer l'accès des nouveaux clients à CodeCommit. Bien que les clients existants puissent continuer à utiliser ce service, AWS n'introduira pas de nouvelles fonctionnalités, concentrant uniquement son attention sur la sécurité, la disponibilité et l'amélioration des performances.\n\nÀ la suite de cette annonce, les équipes de développement ont commencé à envisager de migrer leurs dépôts vers d'autres fournisseurs Git. En réponse à ces changements, nous avons rédigé ce guide complet dans le but d'aider les équipes à migrer vers GitLab et à s'intégrer avec d'autres services AWS.\n\n**Remarque :** pour en savoir plus sur les recommandations officielles d'AWS en matière de migration, veuillez consulter [leur article de blog](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider/ \"Article de blog d'AWS annonçant l’arrêt d'AWS CodeCommit\").\n\n## À propos de ce guide\n\nCe guide contient des informations complètes destinées aux équipes de développement qui utilisent GitLab et qui envisagent une intégration avec les services AWS, ou à celles qui envisagent de migrer des dépôts [Git](https://about.gitlab.com/fr-fr/blog/what-is-git/ \"Qu'est-ce que Git ? \") hébergés sur AWS vers GitLab.com.\nNotre guide est composé de quatre sections principales :\n\n- __Migration en parallèle vers GitLab :__ nous vous expliquons comment migrer progressivement des dépôts existants hébergés sur AWS vers GitLab.com, tout en minimisant les risques.\n\n- __Intégration avec AWS CodeBuild :__ nous détaillons les étapes à suivre pour intégrer les dépôts GitLab avec AWS CodeBuild, et mettre en place un environnement d'[intégration continue (CI)](https://about.gitlab.com/fr-fr/topics/ci-cd/benefits-continuous-integration/ \"Qu'est-ce que l'intégration continue (CI) ?\") puissant.\n\n- __Intégration avec AWS CodePipeline :__ nous décrivons comment connecter les dépôts GitLab avec AWS CodePipeline pour construire des pipelines de [livraison continue (CD)](https://about.gitlab.com/fr-fr/topics/continuous-delivery/ \"Qu'est-ce que la livraison continue (CD) ?\") efficaces.\n\n- __Intégrations downstream pour AWS CodePipeline et CodeStar Connections :__ nous expliquons comment tirer parti des connexions entre GitLab et AWS pour disposer d'un accès étendu aux services, ce qui vous ouvre différentes possibilités d'intégration dans l'écosystème AWS.\n\nGrâce à ce guide, vous apprendrez à construire un workflow de développement efficace et flexible en combinant les puissantes fonctionnalités de [GitLab et AWS](https://about.gitlab.com/fr-fr/partners/technology-partners/aws/ \"GitLab et AWS\").\n\n## Section 1 : migration en parallèle vers GitLab\nSi vous envisagez de migrer des dépôts Git hébergés sur AWS vers GitLab.com, cette section présente des méthodes pour réaliser la migration progressivement tout en minimisant les risques. En mettant à profit les capacités de mise en miroir de GitLab, vous pouvez maintenir les flux de développement existants tout en testant le nouvel environnement.\n\n### Pourquoi la migration en parallèle est-elle importante ?\n\nLes migrations de systèmes à grande échelle comportent toujours des risques, en particulier des impacts potentiels sur les projets de développement en cours, les intégrations existantes et les processus automatisés. L'adoption d'une approche de migration en parallèle offre les avantages suivants :\n\n1. __Une minimisation des risques :__ testez le nouvel environnement tout en maintenant les systèmes existants opérationnels 2. __Une transition fluide :__ les équipes de développement peuvent s'habituer progressivement au nouveau système.\n3. __Des tests d'intégration :__ testez minutieusement toutes les intégrations et l'automatisation dans le nouvel environnement.\n4. __Une pérennité :__ donnez aux équipes les moyens de migrer progressivement vers GitLab [CI/CD](https://about.gitlab.com/fr-fr/topics/ci-cd/ \"Qu'est-ce que le CI/CD ?\"), tout en continuant à utiliser le CI existant.\n\nLa migration en parallèle n'est pas nécessaire si vous savez déjà que vous souhaitez passer directement à GitLab.\n\n### Quelles sont les étapes pour migrer vers GitLab.com ?\n#### Étape 1 : configurez GitLab.com\n\n- Vérifiez si votre entreprise utilise déjà un groupe sur GitLab.com et si elle a mis en place une authentification unique (SSO). Si c'est le cas, vous vous servirez des deux.\n- Si votre entreprise n'a pas de compte sur GitLab.com, accédez au [site de GitLab](https://www.gitlab.com/fr-fr) et créez un nouveau compte ou connectez-vous à votre compte existant.\n- Créez un nouvel espace de nommage pour l'entreprise (un groupe au niveau racine sur GitLab.com).\n- Choisissez un nom disponible qui reflète l'ensemble de votre entreprise.\n\n#### Étape 2 : importez le dépôt\nPour effectuer la migration en parallèle, utilisez la fonctionnalité de mise en miroir de type « pull » de GitLab. Elle vous permet de synchroniser automatiquement les modifications des dépôts hébergés sur AWS vers GitLab.com.\n\n1. Accédez au groupe cible GitLab.com.\n2. En haut à droite, cliquez sur « Nouveau projet ».\n3. Sur la page « Créer un nouveau projet », cliquez sur « Importer un projet ».\n4. Sur la page « Importer un projet », cliquez sur « Dépôt par URL ».\n5. Saisissez l'URL de votre dépôt hébergé sur AWS dans le champ « URL du dépôt Git ».\n6. Sous le champ URL du dépôt Git, cochez « Dépôt miroir ».\n7. Configurez ensuite l'authentification. Dans la console AWS CodeCommit, sélectionnez l'URL du clone du dépôt que vous allez migrer. Si vous prévoyez d'importer des dépôts CodeCommit dans GitLab, vous pouvez utiliser l'URL HTTPS de CodeCommit pour cloner le dépôt en utilisant la fonctionnalité de mise en miroir du dépôt de GitLab. Vous devrez également fournir vos identifiants de connexion Git d'AWS pour votre utilisateur IAM (Identity and Access Management) dans GitLab. Reportez-vous à ce [guide](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html) pour créer des identifiants de connexion Git pour AWS CodeCommit.\n\n![URL du clone](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/clone-url-screenshot__1__aHR0cHM6_1750097822121.png)\n\nCette configuration effectuera automatiquement un pull des modifications du dépôt hébergé sur AWS vers GitLab.com. La fréquence par défaut est de cinq minutes.\n\nPour plus d'informations, consultez notre [documentation sur la fonctionnalité de mise en miroir du dépôt de GitLab](https://docs.gitlab.com/user/project/repository/mirror/).\n\n#### Étape 3 : testez et validez les intégrations\n\n1. __[Pipelines CI/CD](https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/ \"Qu'est-ce qu'un pipeline CI/CD ?\") :__ configurez le fichier `.gitlab-ci.yml` dans [GitLab CI](https://about.gitlab.com/fr-fr/blog/ci-deployment-and-environments/ \"Comment déployer du code dans des environnements multiples avec GitLab CI\") pour répliquer les pipelines existants. Plus d'informations sur [la planification d'une migration vers GitLab CI/CD à partir d'autres outils CI](https://docs.gitlab.com/ci/migration/plan_a_migration/) sont à votre disposition dans notre documentation.\n2. Gestion des tickets : importez les tickets du projet et testez les workflows.\n3. Revue de code : configurez le processus de merge request et testez les workflows de revue.\n#### Étape 4 : migrez progressivement\n\n1. Commencez par des projets de petite envergure ou non critiques pour vous habituer à travailler sur GitLab.com.\n2. Proposez une formation aux membres de votre équipe et laissez-leur le temps de s'adapter aux nouveaux workflows.\n3. Migrez les projets progressivement en vous assurant que les intégrations et les workflows fonctionnent correctement.\n\nPour plus d'informations, consultez la section [Automatisation des migrations de CodeCommit vers GitLab](https://gitlab.com/guided-explorations/aws/migrating-from-codecommit-to-gitlab/-/blob/main/migrating_codecommit_to_gitlab.md).\n\n#### Étape 5 : finalisez la migration\nUne fois que vous avez terminé tous les tests et validations et que votre équipe s'est habituée au nouvel environnement, planifiez une migration complète. Pour chaque projet :\n\n1. Fixez une date de migration et informez toutes les parties prenantes.\n2. Effectuez la synchronisation finale des données.\n3. Supprimez les paramètres de mise en miroir du projet GitLab.\n4. Passez les dépôts hébergés sur AWS en lecture seule et transférez tous les projets de développement vers GitLab.com.\n\n#### Étape 6 : évaluez l'adoption de nouvelles capacités\n\nAvec GitLab, la collaboration et l'automatisation des workflows offrent aux équipes de développement beaucoup plus d'opportunités qu’avec CodeCommit. Comme le processus de merge request est particulièrement sophistiqué par rapport à CodeCommit, cela peut prendre un peu de temps pour comprendre les capacités des fonctionnalités.\nUne fois que les dépôts sont stables sur GitLab, il est très facile d'expérimenter GitLab CI/CD en parallèle d'une solution existante. Les équipes peuvent prendre le temps de perfectionner leur automatisation GitLab CI/CD sans affecter les workflows de production.\n\nLa gestion des artefacts GitLab est également très performante, notamment la fonctionnalité Releases et les nombreux registres de paquet.\n\n### En résumé\nEn adoptant une approche de migration en parallèle vers GitLab, vous pouvez réaliser une transition en douceur tout en minimisant les risques. Ce processus permet aux équipes de s'adapter progressivement au nouvel environnement et de s'assurer que toutes les intégrations et automatisations fonctionnent correctement.\n## Section 2 : intégrez GitLab avec AWS CodeBuild\n\nSi vous souhaitez compiler et tester du code à partir de dépôts GitLab à l'aide d'AWS CodeBuild, notre guide complet vous aidera à mettre en place un pipeline CI efficace.\n\n### Prérequis\n\n- Compte GitLab.com\n- Compte AWS\n- AWS CLI (configurée)\n\n### Étape 1 : créez une connexion entre GitLab et AWS CodeStar Connections\n\n1. Connectez-vous à la console de gestion AWS et accédez au service AWS CodeBuild.\n2. Sélectionnez « Paramètres » > « Connexions » dans le panneau de navigation de gauche.\n3. Cliquez sur le bouton « Créer une connexion ».\n4. Choisissez « GitLab » comme fournisseur.\n5. Donnez un nom à la connexion et cliquez sur « Connecter à GitLab ».\n6. Vous serez redirigé vers la page d'authentification de GitLab.\n7. Approuvez les autorisations nécessaires.\n8. Une fois la connexion effectuée, son statut passera à « Disponible ».\n\n![Configuration de CodeStar Connect](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/codestar-connections-setup_aHR0cHM6_1750097822122.png)\n\n### Étape 2 : créez un projet AWS CodeBuild\n\n1. Cliquez sur « Créer un projet de construction » dans le tableau de bord d'AWS CodeBuild.\n2. Saisissez le nom du projet et une description.\n3. Pour les paramètres source, sélectionnez « GitLab » comme fournisseur.\n4. Choisissez la connexion que vous venez de créer, puis indiquez la branche et le dépôt GitLab.\n\n![Ajout d'un projet CodeBuild](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/codepipeline_step_3_add_codebuild_aHR0cHM6_1750097822123.png)\n\n**Remarque : à partir de l'étape 3, veuillez configurer les paramètres en fonction de votre environnement et de vos besoins spécifiques.**\n\n### En résumé\nCette section détaille comment intégrer les dépôts GitLab avec AWS CodeBuild. Cette configuration met en place un pipeline d'[intégration continue](https://about.gitlab.com/fr-fr/topics/ci-cd/benefits-continuous-integration/ \"Qu'est-ce que l'intégration continue (CI) ?\") où les modifications de code effectuées dans GitLab sont automatiquement compilées et testées à l'aide d'AWS CodeBuild.\n\n## Section 3 : intégrez GitLab avec AWS CodePipeline\n\nCe guide détaillé vous apportera les informations nécessaires si vous souhaitez mettre en œuvre la livraison continue à partir de dépôts GitLab à l'aide d'AWS CodePipeline. L'intégration est encore plus facile maintenant que GitLab est un fournisseur AWS CodeStar Connections.\n\n### Prérequis\n\n- Compte GitLab.com\n- Compte AWS\n- AWS CLI (configurée)\n\n### Étape 1 : créez une connexion entre GitLab et AWS CodeStar Connections\n\n1. Connectez-vous à la console de gestion AWS et accédez au service AWS CodePipeline.\n2. Sélectionnez « Paramètres » > « Connexions » dans le panneau de navigation de gauche.\n3. Cliquez sur le bouton « Créer une connexion ».\n4. Choisissez « GitLab » comme fournisseur.\n5. Donnez un nom à la connexion et cliquez sur « Connecter à GitLab ».\n6. Vous serez redirigé vers la page d'authentification de GitLab.\n7. Approuvez les autorisations nécessaires.\n8. Une fois la connexion effectuée, son statut passera à « Disponible ».\n\n![Configuration de CodeStar Connections](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/codestar-connections-setup_aHR0cHM6_1750097822122.png)\n\n### Étape 2 : créez un pipeline AWS CodePipeline\n\n1. Cliquez sur « Créer un pipeline » dans le tableau de bord d'AWS CodePipeline.\n2. Donnez un nom au pipeline et cliquez sur « Suivant ».\n3. Sélectionnez « GitLab » comme fournisseur source.\n4. Choisissez la connexion que vous venez de créer, puis indiquez la branche et le dépôt GitLab.\n5. Sélectionnez le type de déclencheur : vous pouvez déclencher l'exécution du pipeline AWS CodePipeline en fonction d'événements pull ou push pour des branches et des types de fichiers spécifiques au sein de votre dépôt.\n\n![Ajout du fournisseur source](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/codestar-connections-setup_aHR0cHM6_1750097822125.png)\n\n![Ajout d'une configuration source](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/codepipeline_step_2_source_provider_aHR0cHM6_1750097822127.png)\n\n**Remarque : à partir de l'étape 3, veuillez configurer les paramètres en fonction de votre environnement et de vos besoins spécifiques.**\n\n### En résumé Cette section explique comment intégrer les dépôts GitLab avec AWS CodePipeline. Cette configuration crée un pipeline de livraison continue où les modifications de code effectuées dans GitLab sont automatiquement déployées dans votre environnement AWS.\n\n## Section 4 : migrez vers GitLab\n\nL'intégration de GitLab avec AWS vous donne accès à de puissantes fonctionnalités pour optimiser vos workflows de développement et de déploiement. Elle vous aide aussi à résoudre vos problèmes de gestion du code source. Cette intégration peut être réalisée de plusieurs manières, qui offrent chacune des avantages uniques :\n\n- L'utilisation d'AWS CodeStar Connections pour associer GitLab aux services AWS favorise la cohérence du workflow en permettant la connexion de dépôts Git externes, comme GitLab, à divers services AWS. Cette configuration prend en charge les compilations automatisées, les déploiements et d'autres actions essentielles directement à partir de votre dépôt GitLab, ce qui optimise l'intégration de votre processus de développement.\n\n- La connexion de GitLab avec AWS CodePipeline à l'aide de AWS CodeStar Connections fait passer l'automatisation au niveau supérieur en vous permettant de créer un pipeline CI/CD complet. Cette approche intègre GitLab avec AWS CodePipeline. Vous pouvez ainsi automatiser l'ensemble du processus (du contrôle des sources et des compilations, aux tests et déploiement) en utilisant des services AWS tels que AWS CodeBuild et AWS CodeDeploy. Vous bénéficiez ainsi d'un processus de livraison robuste, évolutif et efficace.\n\n![Tableau des nouvelles technologies et solutions pour associer GitLab et AWS](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097822/Blog/Content%20Images/Blog/Content%20Images/codepipeline_step_2_source_configured_aHR0cHM6_1750097822129.png)\n\n### 1. Connectez GitLab aux services AWS à l'aide d'AWS CodeStar Connections\n\nLe service AWS CodeStar Connections vous permet de connecter des dépôts Git externes (tels que GitHub ou Bitbucket) aux services AWS. Vous pouvez également utiliser CodeStar Connections pour connecter GitLab aux services AWS. Si vous utilisez GitLab, vous devrez peut-être configurer une connexion personnalisée en tant que serveur HTTP Git.\nCette méthode permet de connecter les services AWS suivants à GitLab :\n\n- **AWS Service Catalog**\n\nAWS Service Catalog aide les entreprises à standardiser et à gérer les ressources AWS. Son intégration à GitLab améliore la transparence de la gestion des ressources et simplifie le suivi des changements. Plus précisément, vous pouvez automatiser les mises à jour du catalogue en fonction des validations GitLab, ce qui améliore l'efficacité opérationnelle.\n\n- __AWS CodeBuild__\n\nAWS CodeBuild est un service qui compile votre code source, exécute des tests et produit des packages logiciels prêts à être déployés. L'intégration de GitLab avec AWS CodeBuild lance des processus de compilation automatisés à chaque fois qu'un push de modifications de code sur GitLab est effectué. La cohérence des compilations est ainsi garantie, tandis que la collaboration et le [contrôle des versions](https://about.gitlab.com/fr-fr/topics/version-control/ \"Qu'est-ce que le contrôle de version ?\") sont facilités.\n\n- __AWS Glue__\n\nLe service de blocs-notes intégrés à AWS Glue vous permet de développer et d'exécuter de manière interactive des tâches de préparation de données et ETL (processus d'extraction, de transformation et de chargement). L'intégration de GitLab avec les blocs-notes intégrés à AWS Glue vous permet de contrôler les versions des blocs-notes et des scripts ETL, de favoriser la collaboration entre les membres de l'équipe et d'améliorer la gestion de la qualité des pipelines de traitement des données.\n\n- __AWS Proton__\n\nAWS Proton automatise le développement et le déploiement de [microservices](https://about.gitlab.com/fr-fr/blog/what-are-the-benefits-of-a-microservices-architecture/ \"Architecture de microservices\") et d'applications [serverless](https://about.gitlab.com/fr-fr/topics/serverless/ \"Qu'est-ce que le serverless ?\"). En intégrant GitLab à AWS Proton, vous pouvez gérer l'[Infrastructure as Code](https://about.gitlab.com/fr-fr/topics/gitops/infrastructure-as-code/ \"Qu'est-ce que l'infrastructure en tant que code (IaC) ?\"), automatiser les déploiements et gérer l'environnement de façon cohérente. L'efficacité des processus de développement s'en trouve améliorée.\n\nAWS CodeStar Connections prend en charge davantage de services, ce qui facilite la connexion de GitLab avec d'autres services AWS. Nous vous conseillons de vérifier régulièrement si de nouveaux services prennent en charge CodeStar Connections.\n\n### 2. Connectez AWS CodePipeline à GitLab à l'aide AWS CodeStar Connections (y compris CodeDeploy)\n\nAWS CodePipeline est un service de livraison continue qui automatise le processus de livraison de logiciels. Pour connecter GitLab à AWS CodePipeline, vous devez utiliser AWS CodeStar Connections. Cette configuration vous permet de désigner un dépôt GitLab comme source et d'automatiser l'ensemble du pipeline CI/CD.\n\nAWS CodePipeline prend en charge les actions principales suivantes :\n- **Contrôle de version :** Amazon AWS CodeCommit, GitHub, Bitbucket, GitLab\n- **Compilations et tests :** AWS CodeBuild, Jenkins\n- **Déploiement :** AWS CodeDeploy, Elastic Beanstalk, ECS, S3\n- **Approbation :** approbation manuelle\n- **Gestion de l'infrastructure :** AWS CloudFormation\n- **Serverless :** AWS Lambda\n- **Tests :** AWS Device Farm\n- **Actions personnalisées :** AWS Step Functions\n\nEn intégrant GitLab avec AWS CodePipeline, vous pouvez automatiquement déclencher le pipeline chaque fois qu'un push de modifications de code sur GitLab est effectué, ce qui garantit la cohérence à chaque étape du processus, de la compilation au déploiement. De plus, avec les capacités de contrôle de version de GitLab, il est plus facile de suivre l'historique et les statuts de déploiement, ce qui permet une livraison de logiciels plus flexible et plus fiable.\n\n## Conclusion\n\nCe guide complet vous a expliqué comment effectuer la migration et l'intégration de GitLab avec AWS. La stratégie d'hébergement et d'intégration de code est propre à chaque entreprise. C’est pourquoi nous vous invitons à utiliser ce tutoriel comme point de départ pour établir votre propre stratégie d'intégration et de mise en œuvre de GitLab + AWS.\n\nPour consulter des informations plus détaillées et des configurations avancées, reportez-vous aux ressources suivantes :\n\n- [Documentation GitLab](https://docs.gitlab.com/)\n- [Guide de l'utilisateur AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)\n- [Guide de l'utilisateur AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)\n- [Documentation GitLab CI/CD](https://docs.gitlab.com/ci/)\n- [Intégration avec AWS](https://docs.gitlab.com/solutions/cloud/aws/gitlab_aws_integration./ html)\n\nSi vous avez des questions ou si vous avez besoin d'aide, contactez [l'assistance GitLab](https://support.gitlab.com/hc/en-us/articles/11626483177756-GitLab-Support) ou l'assistance AWS. Nous espérons que ce guide complet vous aidera à progresser dans votre parcours d'intégration AWS-GitLab.",[29,30,31,32,33,12,34],"CI/CD","AWS","DevSecOps platform","tutorial","solutions architecture","integrations","2024-09-05","yml",{},"/fr-fr/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab",{"title":18,"description":19,"ogTitle":18,"ogDescription":19,"noIndex":40,"ogImage":25,"ogUrl":41,"ogSiteName":42,"ogType":43,"canonicalUrls":41},false,"https://about.gitlab.com/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab","https://about.gitlab.com","article","fr-fr/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab",[46,47,48,32,49,12,34],"cicd","aws","devsecops-platform","solutions-architecture","9Aa4kGfUqxk2kn0Ilpz4GxvVUKazF2-cGchTUxaO8QQ",{"data":52},{"logo":53,"freeTrial":58,"sales":63,"login":68,"items":73,"search":381,"minimal":416,"duo":435,"switchNav":444,"pricingDeployment":455},{"config":54},{"href":55,"dataGaName":56,"dataGaLocation":57},"/fr-fr/","gitlab logo","header",{"text":59,"config":60},"Commencer un essai gratuit",{"href":61,"dataGaName":62,"dataGaLocation":57},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":64,"config":65},"Contacter l'équipe commerciale",{"href":66,"dataGaName":67,"dataGaLocation":57},"/fr-fr/sales/","sales",{"text":69,"config":70},"Connexion",{"href":71,"dataGaName":72,"dataGaLocation":57},"https://gitlab.com/users/sign_in/","sign in",[74,101,197,202,302,362],{"text":75,"config":76,"cards":78},"Plateforme",{"dataNavLevelOne":77},"platform",[79,85,93],{"title":75,"description":80,"link":81},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":82,"config":83},"Explorer notre plateforme",{"href":84,"dataGaName":77,"dataGaLocation":57},"/fr-fr/platform/",{"title":86,"description":87,"link":88},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":89,"config":90},"Découvrir GitLab Duo",{"href":91,"dataGaName":92,"dataGaLocation":57},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":94,"description":95,"link":96},"Pourquoi GitLab ?","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":97,"config":98},"En savoir plus",{"href":99,"dataGaName":100,"dataGaLocation":57},"/fr-fr/why-gitlab/","why gitlab",{"text":102,"left":15,"config":103,"link":105,"lists":109,"footer":179},"Produit",{"dataNavLevelOne":104},"solutions",{"text":106,"config":107},"Voir toutes les solutions",{"href":108,"dataGaName":104,"dataGaLocation":57},"/fr-fr/solutions/",[110,134,157],{"title":111,"description":112,"link":113,"items":118},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":114},{"icon":115,"href":116,"dataGaName":117,"dataGaLocation":57},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[119,122,125,130],{"text":29,"config":120},{"href":121,"dataGaLocation":57,"dataGaName":29},"/fr-fr/solutions/continuous-integration/",{"text":86,"config":123},{"href":91,"dataGaLocation":57,"dataGaName":124},"gitlab duo agent platform - product menu",{"text":126,"config":127},"Gestion du code source",{"href":128,"dataGaLocation":57,"dataGaName":129},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":131,"config":132},"Livraison de logiciels automatisée",{"href":116,"dataGaLocation":57,"dataGaName":133},"Automated software delivery",{"title":135,"description":136,"link":137,"items":142},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":138},{"href":139,"dataGaName":140,"dataGaLocation":57,"icon":141},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[143,147,152],{"text":144,"config":145},"Tests de sécurité des applications",{"href":139,"dataGaName":146,"dataGaLocation":57},"Application security testing",{"text":148,"config":149},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":150,"dataGaLocation":57,"dataGaName":151},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":153,"config":154},"Conformité logicielle",{"href":155,"dataGaName":156,"dataGaLocation":57},"/fr-fr/solutions/software-compliance/","software compliance",{"title":158,"link":159,"items":164},"Mesures",{"config":160},{"icon":161,"href":162,"dataGaName":163,"dataGaLocation":57},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[165,169,174],{"text":166,"config":167},"Visibilité et mesures",{"href":162,"dataGaLocation":57,"dataGaName":168},"Visibility and Measurement",{"text":170,"config":171},"Gestion de la chaîne de valeur",{"href":172,"dataGaLocation":57,"dataGaName":173},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":175,"config":176},"Données d'analyse et informations clés",{"href":177,"dataGaLocation":57,"dataGaName":178},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":180,"items":181},"GitLab",[182,187,192],{"text":183,"config":184},"Pour les entreprises",{"href":185,"dataGaLocation":57,"dataGaName":186},"/fr-fr/enterprise/","enterprise",{"text":188,"config":189},"Pour les PME",{"href":190,"dataGaLocation":57,"dataGaName":191},"/fr-fr/small-business/","small business",{"text":193,"config":194},"Pour le secteur public",{"href":195,"dataGaLocation":57,"dataGaName":196},"/fr-fr/solutions/public-sector/","public sector",{"text":198,"config":199},"Tarifs",{"href":200,"dataGaName":201,"dataGaLocation":57,"dataNavLevelOne":201},"/fr-fr/pricing/","pricing",{"text":203,"config":204,"link":206,"lists":210,"feature":289},"Ressources",{"dataNavLevelOne":205},"resources",{"text":207,"config":208},"Afficher toutes les ressources",{"href":209,"dataGaName":205,"dataGaLocation":57},"/fr-fr/resources/",[211,243,261],{"title":212,"items":213},"Premiers pas",[214,219,224,229,234,239],{"text":215,"config":216},"Installation",{"href":217,"dataGaName":218,"dataGaLocation":57},"/fr-fr/install/","install",{"text":220,"config":221},"Guides de démarrage",{"href":222,"dataGaName":223,"dataGaLocation":57},"/fr-fr/get-started/","quick setup checklists",{"text":225,"config":226},"Apprentissage",{"href":227,"dataGaLocation":57,"dataGaName":228},"https://university.gitlab.com/","learn",{"text":230,"config":231},"Documentation",{"href":232,"dataGaName":233,"dataGaLocation":57},"https://docs.gitlab.com/","product documentation",{"text":235,"config":236},"Vidéos sur les bonnes pratiques",{"href":237,"dataGaName":238,"dataGaLocation":57},"/fr-fr/getting-started-videos/","best practice videos",{"text":240,"config":241},"Intégrations",{"href":242,"dataGaName":34,"dataGaLocation":57},"/fr-fr/integrations/",{"title":244,"items":245},"Découvrir",[246,251,256],{"text":247,"config":248},"Témoignages clients",{"href":249,"dataGaName":250,"dataGaLocation":57},"/fr-fr/customers/","customer success stories",{"text":252,"config":253},"Blog",{"href":254,"dataGaName":255,"dataGaLocation":57},"/fr-fr/blog/","blog",{"text":257,"config":258},"Travail à distance",{"href":259,"dataGaName":260,"dataGaLocation":57},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":262,"items":263},"Connecter",[264,269,274,279,284],{"text":265,"config":266},"Services GitLab",{"href":267,"dataGaName":268,"dataGaLocation":57},"/fr-fr/services/","services",{"text":270,"config":271},"Communauté",{"href":272,"dataGaName":273,"dataGaLocation":57},"/community/","community",{"text":275,"config":276},"Forum",{"href":277,"dataGaName":278,"dataGaLocation":57},"https://forum.gitlab.com/","forum",{"text":280,"config":281},"Événements",{"href":282,"dataGaName":283,"dataGaLocation":57},"/events/","events",{"text":285,"config":286},"Partenaires",{"href":287,"dataGaName":288,"dataGaLocation":57},"/fr-fr/partners/","partners",{"backgroundColor":290,"textColor":291,"text":292,"image":293,"link":297},"#2f2a6b","#fff","L'avenir du développement logiciel. Tendances et perspectives.",{"altText":294,"config":295},"carte promo The Source",{"src":296},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":298,"config":299},"Lire les articles les plus récents",{"href":300,"dataGaName":301,"dataGaLocation":57},"/fr-fr/the-source/","the source",{"text":303,"config":304,"lists":306},"Société",{"dataNavLevelOne":305},"company",[307],{"items":308},[309,314,320,322,327,332,337,342,347,352,357],{"text":310,"config":311},"À propos",{"href":312,"dataGaName":313,"dataGaLocation":57},"/fr-fr/company/","about",{"text":315,"config":316,"footerGa":319},"Carrières",{"href":317,"dataGaName":318,"dataGaLocation":57},"/jobs/","jobs",{"dataGaName":318},{"text":280,"config":321},{"href":282,"dataGaName":283,"dataGaLocation":57},{"text":323,"config":324},"Leadership",{"href":325,"dataGaName":326,"dataGaLocation":57},"/company/team/e-group/","leadership",{"text":328,"config":329},"Équipe",{"href":330,"dataGaName":331,"dataGaLocation":57},"/company/team/","team",{"text":333,"config":334},"Manuel",{"href":335,"dataGaName":336,"dataGaLocation":57},"https://handbook.gitlab.com/","handbook",{"text":338,"config":339},"Relations avec les investisseurs",{"href":340,"dataGaName":341,"dataGaLocation":57},"https://ir.gitlab.com/","investor relations",{"text":343,"config":344},"Trust Center",{"href":345,"dataGaName":346,"dataGaLocation":57},"/fr-fr/security/","trust center",{"text":348,"config":349},"Centre pour la transparence de l'IA",{"href":350,"dataGaName":351,"dataGaLocation":57},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":353,"config":354},"Newsletter",{"href":355,"dataGaName":356,"dataGaLocation":57},"/company/contact/#contact-forms","newsletter",{"text":358,"config":359},"Presse",{"href":360,"dataGaName":361,"dataGaLocation":57},"/press/","press",{"text":363,"config":364,"lists":365},"Nous contacter",{"dataNavLevelOne":305},[366],{"items":367},[368,371,376],{"text":64,"config":369},{"href":66,"dataGaName":370,"dataGaLocation":57},"talk to sales",{"text":372,"config":373},"Assistance GitLab",{"href":374,"dataGaName":375,"dataGaLocation":57},"https://support.gitlab.com","support portal",{"text":377,"config":378},"Portail clients GitLab",{"href":379,"dataGaName":380,"dataGaLocation":57},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":382,"login":383,"suggestions":390},"Fermer",{"text":384,"link":385},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":386,"config":387},"GitLab.com",{"href":71,"dataGaName":388,"dataGaLocation":389},"search login","search",{"text":391,"default":392},"Suggestions",[393,395,400,402,407,412],{"text":86,"config":394},{"href":91,"dataGaName":86,"dataGaLocation":389},{"text":396,"config":397},"Suggestions de code (IA)",{"href":398,"dataGaName":399,"dataGaLocation":389},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":29,"config":401},{"href":121,"dataGaName":29,"dataGaLocation":389},{"text":403,"config":404},"GitLab sur AWS",{"href":405,"dataGaName":406,"dataGaLocation":389},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":408,"config":409},"GitLab sur Google Cloud",{"href":410,"dataGaName":411,"dataGaLocation":389},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":413,"config":414},"Pourquoi utiliser GitLab ?",{"href":99,"dataGaName":415,"dataGaLocation":389},"Why GitLab?",{"freeTrial":417,"mobileIcon":422,"desktopIcon":427,"secondaryButton":430},{"text":418,"config":419},"Commencer votre essai gratuit",{"href":420,"dataGaName":62,"dataGaLocation":421},"https://gitlab.com/-/trials/new/","nav",{"altText":423,"config":424},"Icône GitLab",{"src":425,"dataGaName":426,"dataGaLocation":421},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":423,"config":428},{"src":429,"dataGaName":426,"dataGaLocation":421},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":431,"config":432},"Commencer",{"href":433,"dataGaName":434,"dataGaLocation":421},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":436,"mobileIcon":440,"desktopIcon":442},{"text":437,"config":438},"En savoir plus sur GitLab Duo",{"href":91,"dataGaName":439,"dataGaLocation":421},"gitlab duo",{"altText":423,"config":441},{"src":425,"dataGaName":426,"dataGaLocation":421},{"altText":423,"config":443},{"src":429,"dataGaName":426,"dataGaLocation":421},{"button":445,"mobileIcon":450,"desktopIcon":452},{"text":446,"config":447},"/switch",{"href":448,"dataGaName":449,"dataGaLocation":421},"#contact","switch",{"altText":423,"config":451},{"src":425,"dataGaName":426,"dataGaLocation":421},{"altText":423,"config":453},{"src":454,"dataGaName":426,"dataGaLocation":421},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":456,"mobileIcon":461,"desktopIcon":463},{"text":457,"config":458},"Retour aux tarifs",{"href":200,"dataGaName":459,"dataGaLocation":421,"icon":460},"back to pricing","GoBack",{"altText":423,"config":462},{"src":425,"dataGaName":426,"dataGaLocation":421},{"altText":423,"config":464},{"src":429,"dataGaName":426,"dataGaLocation":421},{"title":466,"button":467,"config":472},"Découvrez comment l'IA agentique transforme la livraison logicielle",{"text":468,"config":469},"Regarder GitLab Transcend maintenant",{"href":470,"dataGaName":471,"dataGaLocation":57},"/fr-fr/events/transcend/virtual/","transcend event",{"layout":473,"icon":474,"disabled":15},"release","AiStar",{"data":476},{"text":477,"source":478,"edit":484,"contribute":489,"config":494,"items":499,"minimal":703},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":479,"config":480},"Afficher le code source de la page",{"href":481,"dataGaName":482,"dataGaLocation":483},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":485,"config":486},"Modifier cette page",{"href":487,"dataGaName":488,"dataGaLocation":483},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":490,"config":491},"Veuillez contribuer",{"href":492,"dataGaName":493,"dataGaLocation":483},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":495,"facebook":496,"youtube":497,"linkedin":498},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[500,545,597,641,668],{"title":198,"links":501,"subMenu":516},[502,506,511],{"text":503,"config":504},"Voir les forfaits",{"href":200,"dataGaName":505,"dataGaLocation":483},"view plans",{"text":507,"config":508},"GitLab Premium",{"href":509,"dataGaName":510,"dataGaLocation":483},"/fr-fr/pricing/premium/","why premium",{"text":512,"config":513},"GitLab Ultimate",{"href":514,"dataGaName":515,"dataGaLocation":483},"/fr-fr/pricing/ultimate/","why ultimate",[517],{"title":363,"links":518},[519,521,523,525,530,535,540],{"text":64,"config":520},{"href":66,"dataGaName":67,"dataGaLocation":483},{"text":372,"config":522},{"href":374,"dataGaName":375,"dataGaLocation":483},{"text":377,"config":524},{"href":379,"dataGaName":380,"dataGaLocation":483},{"text":526,"config":527},"Statut",{"href":528,"dataGaName":529,"dataGaLocation":483},"https://status.gitlab.com/","status",{"text":531,"config":532},"Conditions d'utilisation",{"href":533,"dataGaName":534,"dataGaLocation":483},"/terms/","terms of use",{"text":536,"config":537},"Politique de confidentialité",{"href":538,"dataGaName":539,"dataGaLocation":483},"/fr-fr/privacy/","privacy statement",{"text":541,"config":542},"Gérer vos cookies",{"dataGaName":543,"dataGaLocation":483,"id":544,"isOneTrustButton":15},"cookie preferences","ot-sdk-btn",{"title":102,"links":546,"subMenu":555},[547,551],{"text":548,"config":549},"Plateforme DevSecOps",{"href":84,"dataGaName":550,"dataGaLocation":483},"devsecops platform",{"text":552,"config":553},"Développement assisté par l'IA",{"href":91,"dataGaName":554,"dataGaLocation":483},"ai-assisted development",[556],{"title":557,"links":558},"Thèmes",[559,562,567,572,577,582,587,592],{"text":29,"config":560},{"href":561,"dataGaName":46,"dataGaLocation":483},"/fr-fr/topics/ci-cd/",{"text":563,"config":564},"GitOps",{"href":565,"dataGaName":566,"dataGaLocation":483},"/fr-fr/topics/gitops/","gitops",{"text":568,"config":569},"DevOps",{"href":570,"dataGaName":571,"dataGaLocation":483},"/fr-fr/topics/devops/","devops",{"text":573,"config":574},"Contrôle de version",{"href":575,"dataGaName":576,"dataGaLocation":483},"/fr-fr/topics/version-control/","version control",{"text":578,"config":579},"DevSecOps",{"href":580,"dataGaName":581,"dataGaLocation":483},"/fr-fr/topics/devsecops/","devsecops",{"text":583,"config":584},"Cloud-native",{"href":585,"dataGaName":586,"dataGaLocation":483},"/fr-fr/topics/cloud-native/","cloud native",{"text":588,"config":589},"IA pour la programmation",{"href":590,"dataGaName":591,"dataGaLocation":483},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":593,"config":594},"IA agentique",{"href":595,"dataGaName":596,"dataGaLocation":483},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":598,"links":599},"Solutions",[600,603,605,610,613,616,619,622,625,628,631,636],{"text":144,"config":601},{"href":139,"dataGaName":602,"dataGaLocation":483},"Application Security Testing",{"text":131,"config":604},{"href":116,"dataGaName":117,"dataGaLocation":483},{"text":606,"config":607},"Développement Agile",{"href":608,"dataGaName":609,"dataGaLocation":483},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":126,"config":611},{"href":128,"dataGaName":612,"dataGaLocation":483},"source code management",{"text":29,"config":614},{"href":121,"dataGaName":615,"dataGaLocation":483},"continuous integration & delivery",{"text":170,"config":617},{"href":172,"dataGaName":618,"dataGaLocation":483},"value stream management",{"text":563,"config":620},{"href":621,"dataGaName":566,"dataGaLocation":483},"/fr-fr/solutions/gitops/",{"text":623,"config":624},"Entreprises",{"href":185,"dataGaName":186,"dataGaLocation":483},{"text":626,"config":627},"PME",{"href":190,"dataGaName":191,"dataGaLocation":483},{"text":629,"config":630},"Secteur public",{"href":195,"dataGaName":196,"dataGaLocation":483},{"text":632,"config":633},"Éducation",{"href":634,"dataGaName":635,"dataGaLocation":483},"/fr-fr/solutions/education/","education",{"text":637,"config":638},"Services financiers",{"href":639,"dataGaName":640,"dataGaLocation":483},"/fr-fr/solutions/finance/","financial services",{"title":203,"links":642},[643,645,647,649,652,654,656,658,660,662,664,666],{"text":215,"config":644},{"href":217,"dataGaName":218,"dataGaLocation":483},{"text":220,"config":646},{"href":222,"dataGaName":223,"dataGaLocation":483},{"text":225,"config":648},{"href":227,"dataGaName":228,"dataGaLocation":483},{"text":230,"config":650},{"href":232,"dataGaName":651,"dataGaLocation":483},"docs",{"text":252,"config":653},{"href":254,"dataGaName":255,"dataGaLocation":483},{"text":247,"config":655},{"href":249,"dataGaName":250,"dataGaLocation":483},{"text":257,"config":657},{"href":259,"dataGaName":260,"dataGaLocation":483},{"text":265,"config":659},{"href":267,"dataGaName":268,"dataGaLocation":483},{"text":270,"config":661},{"href":272,"dataGaName":273,"dataGaLocation":483},{"text":275,"config":663},{"href":277,"dataGaName":278,"dataGaLocation":483},{"text":280,"config":665},{"href":282,"dataGaName":283,"dataGaLocation":483},{"text":285,"config":667},{"href":287,"dataGaName":288,"dataGaLocation":483},{"title":303,"links":669},[670,672,674,676,678,680,682,687,692,694,696,698],{"text":310,"config":671},{"href":312,"dataGaName":305,"dataGaLocation":483},{"text":315,"config":673},{"href":317,"dataGaName":318,"dataGaLocation":483},{"text":323,"config":675},{"href":325,"dataGaName":326,"dataGaLocation":483},{"text":328,"config":677},{"href":330,"dataGaName":331,"dataGaLocation":483},{"text":333,"config":679},{"href":335,"dataGaName":336,"dataGaLocation":483},{"text":338,"config":681},{"href":340,"dataGaName":341,"dataGaLocation":483},{"text":683,"config":684},"Développement durable",{"href":685,"dataGaName":686,"dataGaLocation":483},"/sustainability/","Sustainability",{"text":688,"config":689},"Diversité, inclusion et appartenance (DIB)",{"href":690,"dataGaName":691,"dataGaLocation":483},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":343,"config":693},{"href":345,"dataGaName":346,"dataGaLocation":483},{"text":353,"config":695},{"href":355,"dataGaName":356,"dataGaLocation":483},{"text":358,"config":697},{"href":360,"dataGaName":361,"dataGaLocation":483},{"text":699,"config":700},"Déclaration de transparence sur l'esclavage moderne",{"href":701,"dataGaName":702,"dataGaLocation":483},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":704},[705,707,710],{"text":531,"config":706},{"href":533,"dataGaName":534,"dataGaLocation":483},{"text":708,"config":709},"Gestion des cookies",{"dataGaName":543,"dataGaLocation":483,"id":544,"isOneTrustButton":15},{"text":536,"config":711},{"href":538,"dataGaName":539,"dataGaLocation":483},[713,726,740,752],{"id":714,"title":21,"body":11,"config":715,"content":717,"description":11,"extension":36,"meta":721,"navigation":15,"path":722,"seo":723,"stem":724,"__hash__":725},"blogAuthors/en-us/blog/authors/tsukasa-komatsubara.yml",{"template":716},"BlogAuthor",{"name":21,"config":718},{"headshot":719,"ctfId":720},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659784/Blog/Author%20Headshots/gitlab_tsukasa.jpg","31YQLiBRrJPn35BBhY69ly",{},"/en-us/blog/authors/tsukasa-komatsubara",{},"en-us/blog/authors/tsukasa-komatsubara","O5IhL3DQ7MAo8yzVzaeGvidF81OrGBrv7DgR3C9ySBc",{"id":727,"title":22,"body":11,"config":728,"content":729,"description":11,"extension":36,"meta":735,"navigation":15,"path":736,"seo":737,"stem":738,"__hash__":739},"blogAuthors/en-us/blog/authors/darwin-sanoy.yml",{"template":716},{"role":730,"name":22,"config":731},"Field Chief Cloud Architect",{"headshot":732,"linkedin":733,"ctfId":734},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659751/Blog/Author%20Headshots/Darwin-Sanoy-headshot-395-square-gitlab-teampage-avatar.png","https://linkedin.com/in/darwinsanoy","DarwinJS",{},"/en-us/blog/authors/darwin-sanoy",{},"en-us/blog/authors/darwin-sanoy","UkMMwmU5o2e6Y-wBltA9E_z96LvHuB-bG6VW9DsLzIY",{"id":741,"title":23,"body":11,"config":742,"content":743,"description":11,"extension":36,"meta":747,"navigation":15,"path":748,"seo":749,"stem":750,"__hash__":751},"blogAuthors/en-us/blog/authors/samer-akkoub.yml",{"template":716},{"name":23,"config":744},{"headshot":745,"ctfId":746},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664173/Blog/Author%20Headshots/SamerAkkoub.png","BekAzK0RFux30pt6dvtWh",{},"/en-us/blog/authors/samer-akkoub",{},"en-us/blog/authors/samer-akkoub","jYGC9dZbBzwlu9_I_Kp6z98wpaytDJkFaSAxvBwsxuU",{"id":753,"title":24,"body":11,"config":754,"content":755,"description":11,"extension":36,"meta":759,"navigation":15,"path":760,"seo":761,"stem":762,"__hash__":763},"blogAuthors/en-us/blog/authors/bart-zhang.yml",{"template":716},{"name":24,"config":756},{"headshot":757,"ctfId":758},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664177/Blog/Author%20Headshots/bartzhang-headshot.jpg","bartzhang",{},"/en-us/blog/authors/bart-zhang",{},"en-us/blog/authors/bart-zhang","b7CFRNFezC9yhgQ3GRiTZ4joQAY5dZB2u6FIo2bo1Xs",[765,778,792],{"content":766,"config":776},{"title":767,"description":768,"authors":769,"heroImage":771,"date":772,"category":12,"tags":773,"body":775},"Feature flags en Python sur GitLab : guide de démarrage","Découvrez comment intégrer les feature flags GitLab dans une application Flask en Python avec le SDK Unleash pour contrôler le déploiement progressif de fonctionnalités sans avoir à redéployer.",[770],"Omid Khan","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-27",[774,32,12],"features","Imaginez le scénario suivant : vous avez passé des semaines à développer une nouvelle fonctionnalité. Elle passe tous les tests, la revue de code est terminée, et elle est prête à être livrée. Vous la déployez donc en production et, en moins d'une heure, votre boîte de réception déborde de rapports de bogues. La fonctionnalité fonctionne parfaitement pour la plupart des utilisateurs, mais un comportement du trafic de production que vous n’aviez pas anticipé provoque des échecs pour une partie d'entre eux. Vous voilà en train de vous démener pour effectuer un retour à la version précédente, rédiger des rapports d'incident et gérer les retombées en termes de relations publiques.\n\n\nLes feature flags empêchent précisément ce genre de scénarios. Ils vous permettent de dissocier le déploiement de la release : vous effectuez un push de votre code en production dès qu'il est prêt, puis contrôlez qui voit réellement la nouvelle fonctionnalité en activant un bouton bascule sur GitLab. Commencez par votre équipe QA à l'aide d'une stratégie « identifiants des utilisateurs », passez ensuite à un « déploiement progressif à 10 % », puis basculez sur « tous les utilisateurs » lorsque vous êtes sûr de vous. Si quelque chose ne se déroule pas comme prévu à un moment donné, il vous suffit de désactiver la fonctionnalité en quelques secondes. Aucun redéploiement, aucun correctif d'urgence, aucun impact sur votre réputation.\n\n\nCe tutoriel vous guide à travers une application Flask fonctionnelle qui lit les feature flags GitLab via le SDK Unleash en Python. Une version complète et exécutable du code est disponible sur [gitlab.com/omid-blogs/gitlab-feature-flags-demo](https://gitlab.com/omid-blogs/gitlab-feature-flags-demo). Clonez-la dans votre propre groupe ou workspace pour disposer d'un contrôle en temps réel avec des feature flags en quelques minutes.\n\n\nÀ la fin de ce tutoriel, vous comprendrez le fonctionnement de l'intégration et disposerez d'un template pour vos propres projets.\n\n\n## Ce dont vous aurez besoin\n\n\n* Un projet GitLab (version gratuite, GitLab Premium ou GitLab Ultimate) avec les feature flags activés. C'est ici que vous créerez et gérerez vos feature flags. Pour les activer, accédez à votre projet et naviguez vers **Paramètres > Général > Visibilité, fonctionnalités du projet, autorisations**, puis vérifiez que l'option **Feature flags** est activée.\n\n* Le [dépôt de démonstration](https://gitlab.com/omid-blogs/gitlab-feature-flags-demo) dupliqué dans votre propre espace de nommage GitLab, puis cloné localement.\n\n\n## Fonctionnement des feature flags GitLab en coulisses\n\n\nGitLab expose une API compatible avec [Unleash](https://github.com/Unleash/unleash) pour chaque projet. Cela signifie que n'importe quel SDK de client Unleash (Go, Ruby, Python, JavaScript, et bien d'autres) peut se connecter directement à GitLab sans serveur Unleash séparé.\n\n\nAu démarrage, le SDK récupère toutes les définitions des feature flags, puis les actualise selon un intervalle configurable (15 secondes dans la démo). Chaque appel à `is_enabled()` s'évalue localement à partir de la configuration en cache, sans appel réseau par vérification de feature flag. L'évaluation des feature flags est donc quasi instantanée et résiliente face aux problèmes réseau transitoires.\n\n\nVoici les étapes à suivre pour intégrer les feature flags GitLab dans une application Flask en Python à l'aide du SDK Unleash.\n\n\n## 1. Configurer votre projet GitLab et cloner la démo\n\n\nVous aurez besoin des éléments suivants :\n\n\n* Votre propre projet GitLab pour héberger les feature flags\n\n\n* Le dépôt de démonstration cloné localement pour exécuter l'application\n\n\n### Dupliquer ou cloner le dépôt de démonstration\n\n\nAccédez à [gitlab.com/omid-blogs/gitlab-feature-flags-demo](https://gitlab.com/omid-blogs/gitlab-feature-flags-demo) et dupliquez-le dans votre propre espace de nommage GitLab. Vous obtiendrez ainsi une copie personnelle du projet où vous pourrez gérer vos propres feature flags. Clonez-le ensuite localement et ouvrez-le dans votre IDE préféré :\n\n\n\n```shell\ngit clone https://gitlab.com/\u003Cyour-namespace>/gitlab-feature-flags-demo.git\ncd gitlab-feature-flags-demo\n```\n\n\n### Contenu du dépôt\n\n```\n.\n├── app.py                # Flask app + Unleash SDK integration\n├── requirements.txt      # Python dependencies\n├── .env.example          # Template for required environment variables\n├── .gitignore\n├── templates/\n│   └── index.html        # Web UI template\n└── static/\n    └── styles.css        # Styling\n```\n\n## 2. Créer vos feature flags dans GitLab\n\n\nOuvrez votre propre projet GitLab et naviguez vers **Déploiement > Feature flags**, puis cliquez sur **Nouveau feature flag**. Créez les quatre feature flags suivants, en définissant le statut de chacun sur **Actif** avec une stratégie **Tous les utilisateurs**.\n\n\n* **dark_mode :** bascule la page vers un schéma de couleurs sombre.\n\n* **holiday_banner :** affiche une bannière festive en haut de la page.\n\n* **new_layout :** passe la grille de cartes à une disposition en une seule colonne.\n\n* **fun_fonts :** remplace la police du corps de texte par un style manuscrit ludique.\n\n\n\n\u003Cfigure>\u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1774466322/pifymwd6senqz3nzcyxa.png\" alt=\"Les quatre feature flags dans l'interface GitLab\">\u003Cfigcaption>\u003Cem>Les quatre feature flags dans l'interface GitLab\u003C/em>\u003C/figcaption>\u003C/figure>\n\n\n**Conseil :** un feature flag doit être actif et disposer d'au moins une stratégie pour être considéré comme activé. Sans stratégie, le SDK considère le feature flag comme désactivé même s'il est marqué comme « Actif ».\n\n\n### Comprendre les stratégies\n\n\n« Tous les utilisateurs » est un simple bouton bascule, mais GitLab prend en charge plusieurs autres stratégies prêtes à l'emploi :\n\n\n* **Pourcentage de déploiement** *(recommandé)* : déploiement progressif vers un pourcentage d'utilisateurs, basé sur l'identifiant de l'utilisateur, l'identifiant de session ou de manière aléatoire. C'est l'option la plus flexible et celle à privilégier en premier.\n\n* **Pourcentage d'utilisateurs :** activation pour un pourcentage d'utilisateurs authentifiés. Moins flexible que le pourcentage de déploiement, car elle ne fonctionne qu'avec les utilisateurs connectés.\n\n* **ID des utilisateurs :** activation pour des identifiants d'utilisateurs spécifiques uniquement, idéale pour les tests internes avec un groupe nommé.\n\n* **Listes d'utilisateurs :** activation pour une liste prédéfinie d'utilisateurs.\n\n* **Tous les utilisateurs :** activation pour tout le monde.\n\n\nLes stratégies font la force des feature flags. Commencez par votre équipe QA avec une stratégie basée sur les ID des utilisateurs, passez à un déploiement progressif à 10 %, puis basculez sur tous les utilisateurs lorsque vous êtes sûr de vous. Tout est paramétrable depuis l'interface utilisateur GitLab, sans aucune modification de code.\n\n\n## 3. Obtenir vos identifiants Unleash\n\n\nSur la page Feature flags, cliquez sur **Configurer** dans le coin supérieur droit. Vous verrez deux valeurs :\n\n\n* **URL de l'API :** `https://gitlab.com/api/v4/feature_flags/unleash/\u003Cyour-project-id>`\n\n* **Identifiant d'instance :** un jeton unique limité à votre projet\n\n\nCopiez les deux valeurs. Vous les transmettrez à l'application en tant que variables d'environnement. Notez que l'identifiant d'instance est en lecture seule. Il ne peut que récupérer l'état des feature flags, pas le modifier, mais traitez tout de même l'identifiant d'instance comme un secret afin d'éviter toute divulgation d'informations.\n\n\n\u003Cfigure>\u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1774466322/bxkn0xkpe4xude0es4zx.png\" alt=\"Le panneau Configurer affichant l'URL de l'API et votre identifiant d'instance\">\u003Cfigcaption>\u003Cem>Le panneau Configurer affichant l'URL de l'API et votre identifiant d'instance\u003C/em>\u003C/figcaption>\u003C/figure>\n\n\n## 4. Configurer le projet localement\n\n\nLe README contient le guide de configuration complet, mais en résumé :\n\n\n```shell\npip install -r requirements.txt\n```\n\n\nDéfinissez ensuite vos identifiants. Deux options s'offrent à vous :\n\n\n**Option A : utiliser le fichier .env (recommandé)**\n\n\nLe dépôt inclut un fichier `.env.example`. Copiez-le et renseignez vos valeurs :\n\n\n```shell\ncp .env.example .env\n```\n\n\nOuvrez `.env` dans votre éditeur et remplacez les valeurs par défaut par vos identifiants de l'étape 3 :\n\n\n```\nUNLEASH_URL=https://gitlab.com/api/v4/feature_flags/unleash/\u003Cyour-project-id>\nUNLEASH_INSTANCE_ID=\u003Cyour-instance-id>\nUNLEASH_APP_NAME=production\n```\n\n\nEnsuite, exportez-les :\n\n\n```shell\nexport $(grep -v '^#' .env | xargs)\n```\n\n\n**Option B : exporter directement dans votre terminal**\n\n\n```shell\nexport UNLEASH_URL=\"https://gitlab.com/api/v4/feature_flags/unleash/\u003Cyour-project-id>\"\nexport UNLEASH_INSTANCE_ID=\"\u003Cyour-instance-id>\"\nexport UNLEASH_APP_NAME=\"production\"\n```\n\n\nN'effectuez jamais un commit de votre fichier `.env` dans le contrôle de version. Le `.gitignore` du dépôt l'exclut déjà, mais il est utile de savoir pourquoi : votre identifiant d'instance est un secret et ne doit pas figurer dans l'historique Git.\n\n\nTrois variables d'environnement pilotent l'ensemble de l'intégration :\n\n\n| Variable | Requise | Description | Valeur par défaut |\n| ----- | ----- | ----- | ----- |\n| `UNLEASH_URL` | Oui | URL de l'API Unleash GitLab pour votre projet | — |\n| `UNLEASH_INSTANCE_ID` | Oui | Identifiant d'instance du panneau Configurer | — |\n| `UNLEASH_APP_NAME` | Non | Nom de l'environnement, correspond aux stratégies de feature flags | `production` |\n\n\n\n\n`UnleashClient` est la dépendance clé. Il s'agit du SDK Python officiel d'Unleash qui gère l'interrogation périodique, la mise en cache et l'évaluation locale des feature flags afin que vous n'ayez pas à développer tout cela vous-même.\n\n\n## 5. Comprendre l'application\n\n\nAvant de l'exécuter, parcourez `app.py`. Voici les modèles clés à comprendre pour les reproduire dans vos propres projets.\n\n\n**Initialisation du SDK**\n\n\n```py\nunleash_client = UnleashClient(\n    url=UNLEASH_URL,\n    app_name=UNLEASH_APP_NAME,\n    instance_id=UNLEASH_INSTANCE_ID,\n    refresh_interval=15,\n    metrics_interval=60,\n)\n\nunleash_client.initialize_client()\n```\n\nAucun jeton d'accès personnel, aucun identifiant codé en dur dans le code source. L'application s'arrête immédiatement avec un message d'erreur clair si l'une des deux variables requises est manquante.\n\n\n**Vérification d'un feature flag**\n\n\n```py\ndef is_flag_enabled(flag_name):\n    return unleash_client.is_enabled(flag_name)\n```\n\nÉtant donné que le SDK met en cache les définitions des feature flags en mémoire, `is_enabled()` renvoie un résultat instantanément, sans aller-retour réseau.\n\n\n**Contrôler le comportement réel derrière les feature flags**\n\n\nLa route index construit un dictionnaire de fonctionnalités, évalue chaque feature flag et transmet les résultats au template :\n\n\n```py\nfeatures = {}\nfor flag_name, config in feature_configs.items():\n    features[flag_name] = {\n        **config,\n        'enabled': is_flag_enabled(flag_name)\n    }\n\nreturn render_template('index.html', features=features)\n```\n\nLe template utilise ces valeurs pour appliquer conditionnellement des classes CSS et afficher des éléments de l'interface. `dark_mode` bascule une classe sur le corps, `holiday_banner` affiche ou masque entièrement un élément de bannière. Ouvrez `templates/index.html` pour voir comment le tout est connecté.\n\n\nVeuillez noter que `index.html` se rafraîchit également automatiquement toutes les 30 secondes via un petit extrait JavaScript, ce qui vous permet d'observer les changements de feature flags sans recharger manuellement la page.\n\n\n**Transmettre le contexte utilisateur pour les stratégies ciblées**\n\n\nLorsque vous souhaitez aller au-delà de la stratégie Tous les utilisateurs et utiliser des déploiements par pourcentage ou le ciblage par utilisateur, transmettez un objet de contexte à `is_enabled()` :\n\n\n```py\nunleash_client.is_enabled(\n    'new_layout',\n    context={'userId': current_user.id}\n)\n```\n\nLe SDK gère automatiquement le hachage cohérent pour les déploiements par pourcentage, sans calcul de votre côté.\n\n\n## 6. Exécuter l'application\n\n\n```shell\npython3 app.py\n```\n\n\nAccédez à `http://localhost:8080`. Vous devriez voir les quatre cartes de fonctionnalités affichant leur état actuel (activé/désactivé).\n\n\n\u003Cfigure>\u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1774466322/bjc0rp7h43wetefny8cw.png\" alt=\"Application de démonstration avec les quatre feature flags désactivés\">\u003Cfigcaption>\u003Cem>Application de démonstration avec les quatre feature flags désactivés\u003C/em>\u003C/figcaption>\u003C/figure>\n\n\n## 7. Activer les feature flags en temps réel\n\n\nRetournez dans **Déploiement > Feature flags** dans GitLab et activez l'un des feature flags. Essayez `dark_mode` ou `holiday_banner` pour tester l'effet le plus visible. Attendez environ 15 secondes, puis rechargez la page. La carte se met à jour pour refléter le nouvel état, et si vous avez activé `dark_mode`, l'ensemble de la page passe en thème sombre. Désactivez la fonctionnalité, attendez, rechargez, et tout revient instantanément à la normale.\n\n\nC'est le principal atout des feature flags : vous contrôlez le comportement de l'application depuis GitLab sans toucher au code ni effectuer de redéploiement.\n\n\n\u003Cfigure>\u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1774466321/kfbvvazflpta4pt8vtoj.png\" alt=\"Application de démonstration avec deux feature flags désactivés\">\u003Cfigcaption>\u003Cem>Application de démonstration avec deux feature flags désactivés\u003C/em>\u003C/figcaption>\u003C/figure>\n\n\n\n\u003Cfigure>\u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1774466321/rslzfdcpronixcfokfbk.png\" alt=\"Application de démonstration avec deux feature flags désactivés\">\u003Cfigcaption>\u003Cem>Application de démonstration avec deux feature flags désactivés\u003C/em>\u003C/figcaption>\u003C/figure>\n\n\n\n## Pourquoi utiliser le SDK Unleash plutôt que l'API REST GitLab ?\n\n\nPour une application qui évalue des feature flags à chaque requête, le SDK est le choix évident. Il est plus rapide, plus simple, et l'identifiant d'instance qu'il utilise ne dispose d'aucune autorisation au-delà de la lecture de l'état des feature flags. La surface d'exposition est bien plus réduite qu'avec un jeton d'accès personnel.\n\n\n|  | API REST | SDK Unleash |\n| ----- | ----- | ----- |\n| **Authentification** | Nécessite un jeton d'accès personnel avec des autorisations étendues dans le projet | Utilise uniquement l'identifiant d'instance, en lecture seule, limité à l'état des feature flags, aucun jeton d'accès personnel nécessaire |\n| **Évaluation des feature flags** | Appel réseau par vérification | Évaluation locale à partir de la configuration en cache |\n| **Latence par vérification** | Aller-retour réseau | Quasi nulle (en mémoire) |\n| **Prise en charge des stratégies** | Analyse syntaxique manuelle requise | Prise en charge intégrée des déploiements par pourcentage et du ciblage par identifiant d'utilisateur |\n| **Limites de débit** | Limites de débit de l'API GitLab.com | Une seule connexion d'interrogation par instance d'application |\n\n\n## Dépannage\n\n\n| Problème | Solution |\n| ----- | ----- |\n| L'application se ferme avec `ERROR: UNLEASH_URL and UNLEASH_INSTANCE_ID...` | Définissez les deux variables env. Consultez `.env.example`. |\n| Tous les feature flags apparaissent comme désactivés | Vérifiez que les feature flags existent dans GitLab et disposent d'une stratégie active. Attendez ensuite 15 secondes que le SDK se rafraîchisse. |\n| Les modifications dans GitLab n'apparaissent pas | Le SDK interroge le serveur toutes les 15 secondes. Rechargez la page après un court délai. |\n| Une adresse IP locale ne fonctionne pas | Le pare-feu de votre système d'exploitation bloque peut-être le port 8080. Utilisez `localhost:8080` à la place. |\n\n\n## Note sur les limites de débit en production\n\n\nL'intervalle d'interrogation de 15 secondes convient parfaitement au développement et aux petits déploiements. Lorsque tous les clients interrogent depuis la même IP, GitLab.com peut prendre en charge environ 125 clients à un intervalle de 15 secondes avant d'atteindre les limites de débit. Si vous développez une application de production à plus grande échelle, envisagez de placer un proxy Unleash en amont de vos clients. Ce dernier regroupe les requêtes vers GitLab pour l'ensemble de vos instances et réduit considérablement le trafic en amont.\n\n\n## Considérations de sécurité\n\n\n1. **`debug=False` est déjà défini dans la démo :** conservez ce paramètre. Le mode de débogage de Flask expose un débogueur interactif qui permet l'exécution de code à distance.\n\n2. **Maintenez vos dépendances à jour :** le fichier `requirements.txt` fixe des versions spécifiques. Activez l'[analyse des dépendances](https://docs.gitlab.com/user/application_security/dependency_scanning/) de GitLab dans votre pipeline CI/CD pour surveiller les vulnérabilités.\n\n3. **Utilisez des variables d'environnement pour les identifiants :** ne codez jamais l'identifiant d'instance ni aucun jeton en dur dans le code source. Le fichier `.env.example` de la démo illustre cette bonne pratique.\n\n4. **L'identifiant d'instance est en lecture seule :** il ne peut que récupérer l'état des feature flags, pas le modifier. Traitez-le néanmoins comme un secret.\n\n\n## Synthèse\n\n\nCe tutoriel a couvert le cycle complet d'intégration des feature flags GitLab dans une application Python : création des feature flags avec les bonnes stratégies, récupération des identifiants Unleash, initialisation du SDK, évaluation locale des feature flags dans Flask et activation du comportement en temps réel sans redéploiement.\n\n\nL'ensemble de l'intégration nécessite une seule dépendance (`UnleashClient`), trois variables d'environnement et un unique appel de méthode (`is_enabled()`). Aucun serveur Unleash séparé, aucun jeton d'accès personnel, aucune infrastructure complexe.\n\n\nLes feature flags comptent parmi les outils les plus pratiques pour réduire les risques de déploiement. La possibilité de désactiver instantanément une fonctionnalité en échec, ou de la déployer progressivement d'un groupe d'utilisateurs ciblé à un pourcentage puis à l'ensemble des utilisateurs, sans toucher à un pipeline de déploiement, offre une valeur considérable avec une configuration minimale. Le [dépôt de démonstration](https://gitlab.com/omid-blogs/gitlab-feature-flags-demo) fournit une base fonctionnelle à dupliquer et adapter pour n'importe quel projet.\n\n\n## Ressources\n\n\n* [Projet de démonstration sur GitLab](https://gitlab.com/omid-blogs/gitlab-feature-flags-demo)\n\n* [Documentation sur les feature flags GitLab](https://docs.gitlab.com/operations/feature_flags/)\n\n* [SDK Unleash en Python sur GitHub](https://github.com/Unleash/unleash-python-sdk)\n\n* [SDK Unleash (tous les langages)](https://github.com/Unleash/unleash#unleash-sdks)",{"featured":40,"template":16,"slug":777},"getting-started-with-gitlab-feature-flags-in-python",{"content":779,"config":790},{"title":780,"description":781,"body":782,"category":12,"tags":783,"date":785,"authors":786,"heroImage":789},"GitLab + Amazon : l'orchestration de plateforme portée par une IA fiable","Associez GitLab Duo Agent Platform à Amazon Bedrock pour un développement logiciel agentique et une orchestration sécurisée.","Si votre équipe utilise GitLab et dispose d'une solide pratique AWS, la combinaison de GitLab Duo Agent Platform et d'Amazon Bedrock a été conçue pour vous. Le principe est simple : GitLab joue le rôle de couche d'orchestration pour accélérer l'ensemble de votre cycle de vie logiciel grâce à l'[IA agentique](https://about.gitlab.com/fr-fr/topics/agentic-ai/ \"Qu'est-ce que l'IA agentique ?\"), tandis qu'Amazon Bedrock fournit une couche de modèles de fondation sécurisée et conforme, avec l'inférence IA en arrière-plan.\n\nGitLab Duo Agent Platform vous permet de gérer la planification, les merge de pipelines, les scans de sécurité, la remédiation des vulnérabilités et bien plus encore dans le cadre de vos workflows GitLab, tandis que la passerelle d'IA de GitLab achemine les appels de modèles vers Amazon Bedrock (ou vers des points de terminaison gérés par GitLab et adossés à Bedrock, selon votre configuration). Vous pouvez ainsi vous appuyer sur les politiques de gestion des identités et des accès (IAM), les périmètres de cloud privé virtuel (VPC), les contrôles régionaux et les engagements de dépenses cloud que vous avez déjà définis dans AWS.\n\nSi vous utilisez déjà Amazon Bedrock et souhaitez que l'IA intervienne directement dans vos activités GitLab, et non dans un autre outil de chat autonome, cette combinaison est faite pour vous.\n\n\nDans cet article, nous abordons le problème concret auquel de nombreuses équipes sont confrontées aujourd'hui : l'IA est fragmentée, les flux de données sont flous et l'investissement dans Amazon Bedrock est sous-exploité lorsque l'IA se trouve en dehors du cycle de développement logiciel. \n\nNous détaillerons ensuite vos options de déploiement pour GitLab Duo Agent Platform :\n\n* Intégration avec des modèles auto-hébergés sur Amazon Bedrock pour les déploiements GitLab Self-Managed et la passerelle d'IA auto-hébergée\n* Intégration avec des modèles opérés par GitLab sur Amazon Bedrock (avec des clés appartenant à GitLab) pour les déploiements GitLab Self-Managed et la passerelle d'IA hébergée par GitLab\n* Intégration avec des modèles opérés par GitLab sur Amazon Bedrock (avec des clés appartenant à GitLab) pour les instances GitLab.com et la passerelle d'IA hébergée par GitLab\n\nEnfin, nous conclurons par un résumé expliquant comment cette approche permet d'éviter le Shadow AI et la multiplication d'outils spécialisés, sans créer de pile technologique parallèle dédiée à l'IA.\n\n## IA omniprésente, contrôle inexistant\n\nEn ce moment même, des équipes de développement au sein de votre entreprise utilisent peut-être un outil d'IA que votre équipe de sécurité n'a pas approuvé. Des données de prompt quittent peut-être votre environnement par un chemin que personne n'a entièrement cartographié. Et l'investissement de votre organisation dans Amazon Bedrock est peut-être sous-exploité, tandis que d'autres équipes financent séparément des outils d'IA, détournant ainsi les charges de travail et les dépenses cloud des plateformes auxquelles vous vous êtes déjà engagés.\n\nPlutôt qu'un problème humain, il s'agit peut-être d'un problème d'architecture. Et il fait ressortir les trois mêmes contraintes dans presque toutes les entreprises :\n\n**Fragmentation opérationnelle.** Chaque équipe, voire chaque développeur, choisit ses propres outils de développement, y compris les outils d'IA et les modèles. Cette fragmentation rend la gouvernance de bout en bout au sein du cycle de vie du développement logiciel quasiment impossible.\n\n**Sécurité et souveraineté.** Où circulent réellement les données de prompt et de code ? Qui est propriétaire des logs ?\n\n**Optimisation des dépenses cloud.** Les engagements envers des fournisseurs cloud majeurs comme AWS se diluent à mesure que les charges de travail et l'utilisation de l'IA migrent vers des outils ponctuels en dehors des accords existants des clients.\n\nGitLab Duo Agent Platform et Amazon Bedrock contribuent ensemble à résoudre ces problèmes. La répartition des responsabilités est claire : GitLab Duo Agent Platform prend en charge l'orchestration des workflows avec l'IA agentique pour le développement logiciel, Amazon Bedrock gère la couche d'inférence et héberge les modèles de fondation approuvés, et votre organisation conserve un contrôle total sur les périmètres de données et de politiques déjà définis dans AWS. Trois missions, trois responsables, aucune fragmentation.\n\n## GitLab Duo Agent Platform : le plan de contrôle agentique\n\nGitLab Duo Agent Platform est la couche d'IA agentique de GitLab : un framework d'agents et de flows spécialisés qui opèrent simultanément et en parallèle, dépassant les transferts traditionnels par étapes et contribuant à automatiser les tâches sur l'ensemble du cycle de vie logiciel. Plutôt qu'un assistant unique répondant à des prompts, GitLab Duo Agent Platform permet aux équipes d'orchestrer de nombreux agents d'IA de manière asynchrone, en s'appuyant sur des données unifiées et le contexte du projet, tickets, merge requests, pipelines et résultats de sécurité inclus. Les workflows linéaires se transforment en une collaboration coordonnée et continue entre les équipes de développement et leurs agents d'IA, à grande échelle.\n\nUne fois ce plan de contrôle mis en place, la question qui se pose naturellement est de savoir quelle infrastructure d'IA devrait alimenter ces agents. Pour les clients qui exécutent GitLab Self-Managed sur AWS et ont besoin que le trafic d'inférence, les données de prompt et les logs restent également dans leur environnement AWS avec leurs données de cycle de vie logiciel, Amazon Bedrock en tant que couche d'inférence IA est la solution idéale.\n\n## Amazon Bedrock : une base fiable pour l'IA\n\nAmazon Bedrock est une couche de modèles de fondation entièrement gérée et sans serveur, qui s'exécute intégralement dans votre environnement AWS. Les données clients restent dans leur compte AWS : les entrées et sorties sont chiffrées en transit et au repos, ne sont jamais partagées avec les fournisseurs de modèles et ne sont jamais utilisées pour entraîner des modèles de base. Amazon Bedrock est certifié pour la conformité RGPD, HIPAA et FedRAMP High, couvrant de nombreuses exigences des secteurs réglementés sans configuration supplémentaire. Les équipes peuvent également importer des modèles affinés depuis d'autres sources via Custom Model Import et les déployer aux côtés des modèles Amazon Bedrock natifs via la même infrastructure, sans gérer de pipelines de déploiement séparés. Bedrock Guardrails ajoute des protections configurables sur tous les modèles pour le filtrage de contenu, la détection des hallucinations et la protection des données sensibles.\n\nEnsemble, GitLab Duo Agent Platform et Amazon Bedrock consolident l'orchestration [DevSecOps](https://about.gitlab.com/fr-fr/topics/devsecops/ \"Qu'est-ce que le DevSecOps ?\") et la gouvernance des modèles d'IA, contribuant à éliminer la fragmentation qui survient lorsque les équipes déploient des outils d'IA de manière indépendante.\n\n## Choisir votre modèle de déploiement\n\nL'intégration offre les mêmes fonctionnalités principales de GitLab Duo Agent Platform, quel que soit le mode de déploiement. Ce qui varie, c'est qui gère GitLab, qui opère la passerelle d'IA et dans quel compte Amazon Bedrock l'inférence s'exécute. Le bon modèle dépend de l'environnement dans lequel votre organisation opère déjà.\n\nÀ un niveau général, l'intégration comporte trois composants principaux :\n\n* **GitLab Duo Agent Platform :** workflows agentiques intégrés tout au long du cycle de vie du développement logiciel\n* **Passerelle d'IA (gérée par GitLab ou auto-hébergée) :** la couche d'abstraction entre GitLab Duo Agent Platform et le backend de modèles de fondation\n* **Amazon Bedrock :** le substrat de modèles d'IA et d'inférence\n\n![Déploiement de GitLab et AWS Bedrock](https://res.cloudinary.com/about-gitlab-com/image/upload/v1776362365/udmvmv2efpmwtkxgydch.png)\n\nLe choix d'un modèle de déploiement est guidé par l'endroit où une organisation souhaite placer les leviers de contrôle. Les modèles présentés ci-dessous sont conçus pour s'adapter à la situation actuelle des équipes, qu'elles privilégient une approche SaaS, optent pour une gestion autonome à des fins de conformité ou misent entièrement sur AWS en tirant parti de leurs investissements existants dans Amazon Bedrock.\n\n| Modèle de déploiement | Instance GitLab.com avec passerelle d'IA hébergée par GitLab et modèles Amazon Bedrock opérés par GitLab | GitLab Self-Managed avec passerelle d'IA hébergée par GitLab et modèles Bedrock opérés par GitLab | GitLab Self-Managed avec passerelle d'IA auto-hébergée et modèles Bedrock opérés par le client |\n| :---- | :---- | :---- | :---- |\n| **Idéal si vous :** | Utilisez principalement GitLab.com et ne souhaitez pas auto-héberger la passerelle d'IA et les modèles Bedrock | Avez besoin de GitLab Self-Managed pour des raisons de conformité et opérationnelles, mais ne souhaitez pas gérer la couche d'IA | Êtes centré sur AWS avec une utilisation Bedrock existante et des besoins stricts en matière de données et de contrôle |\n| **Principaux avantages** | La solution la plus rapide et clé en main pour accéder aux workflows de GitLab Duo Agent Platform : GitLab gère GitLab.com, la passerelle d'IA, intégrée aux modèles d'IA Bedrock. | Conservez GitLab déployé dans votre propre environnement tout en consommant les modèles Bedrock via une passerelle d'IA gérée par GitLab, alliant contrôle du déploiement et simplification des opérations d'IA. | Exécutez GitLab et la passerelle d'IA dans votre compte AWS, réutilisez vos configurations IAM/VPC/régions existantes, conservez les logs et les données dans votre environnement, et imputez l'utilisation de Bedrock à vos engagements de dépenses AWS existants. |\n\n## Comment les clients utilisent GitLab Duo Agent Platform avec Amazon Bedrock\n\nLes équipes plateforme peuvent utiliser GitLab Duo Agent Platform avec Amazon Bedrock pour standardiser les modèles chargés des suggestions de code, de l'analyse de sécurité et de la remédiation des pipelines. Cela permet d'appliquer des garde-fous et une journalisation de manière centralisée, plutôt que de laisser chaque équipe adopter des outils séparés de façon indépendante.\n\nLes workflows de sécurité bénéficient d'avantages particuliers. Les agents de GitLab Duo Agent Platform peuvent proposer et valider des correctifs pour les résultats de sécurité au sein de GitLab, contribuant à réduire le travail de triage manuel que les développeurs devraient autrement effectuer en dehors de la plateforme.\n\nPour les entreprises déjà engagées envers AWS, le routage des charges de travail d'IA via Bedrock depuis GitLab vous permet de maintenir l'utilisation de l'IA par les développeurs en cohérence avec les accords cloud existants, plutôt que de générer des dépenses séparées et non planifiées.\n\n## En résumé\n\nLes contraintes qui freinent l'adoption de l'IA en entreprise ne sont souvent pas d'ordre technique, elles sont organisationnelles : fragmentation des outils, flux de données non gouvernés et dépenses cloud qui ne se consolident jamais. Ce sont ces problèmes qui peuvent bloquer les programmes d'IA même après la réussite des projets pilotes.\n\nGitLab Duo Agent Platform et Amazon Bedrock permettent de s'attaquer directement à chacun de ces problèmes. Les équipes plateforme bénéficient d'une gouvernance cohérente, d'une auditabilité et de chemins standardisés pour l'utilisation de l'IA tout au long du cycle de vie du développement logiciel. Les équipes de développement disposent de workflows agentiques rationalisés qui s'intègrent naturellement à GitLab. Et les organisations centrées sur AWS peuvent étendre leur investissement Bedrock existant plutôt que de construire une infrastructure d'IA parallèle.\n\nLe résultat est un programme d'IA qui évolue sans se fragmenter. Gouvernance et vélocité sur la même pile, au service des mêmes équipes, sous des politiques que l'organisation maîtrise déjà.\n\n\n> Pour déterminer quel modèle de déploiement convient à votre organisation et comment aligner GitLab Duo Agent Platform et Amazon Bedrock avec votre stratégie AWS existante, [contactez l'équipe commerciale de GitLab](https://about.gitlab.com/sales/?utm_medium=blog&utm_source=blog&utm_campaign=eg_emea_x_trial_x_fr_blog_fr), qui vous aidera à concevoir et à mettre en œuvre la meilleure architecture pour votre environnement. Vous pouvez également [consulter notre page partenaire AWS](https://about.gitlab.com/fr-fr/partners/technology-partners/aws/) pour en savoir plus.",[288,30,784],"AI/ML","2026-04-22",[787,788],"Joe Mann","Mark Kriaf","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776362275/ozbwn9tk0dditpnfddlz.png",{"featured":15,"template":16,"slug":791},"gitlab-amazon-platform-orchestration-on-a-trusted-ai-foundation",{"content":793,"config":803},{"title":794,"description":795,"authors":796,"heroImage":798,"date":799,"body":800,"category":12,"tags":801},"GitLab 18.11 : garde-fous budgétaires pour les GitLab Credits","Découvrez comment les plafonds de dépenses et les limites de crédits par utilisateur offrent aux organisations les garde-fous budgétaires nécessaires pour déployer GitLab Duo Agent Platform à grande échelle.",[797],"Bryan Rothwell","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1776259080/cakqnwo5ecp255lo8lzo.png","2026-04-17","Les équipes qui utilisent GitLab Duo Agent Platform avec des crédits GitLab à la demande livrent plus rapidement, détectent les bogues plus tôt et automatisent des tâches qui mobilisaient auparavant des sprints entiers. Mais à mesure que l'adoption progresse, les équipes finances, achats et plateforme exigent des preuves que les dépenses liées à l'IA sont encadrées, prévisibles et maîtrisables.\n\nL'un des principaux freins à une adoption plus large de l'IA n'est pas le scepticisme vis-à-vis de la technologie : c'est l'incertitude quant à la maîtrise des dépenses. Sans plafond budgétaire, un mois particulièrement chargé pourrait engendrer des dépenses imprévues. Sans limites par utilisateur, une poignée d'utilisateurs intensifs pourrait épuiser les crédits de l'équipe avant la fin du mois. Et sans aucun de ces mécanismes, les responsables techniques qui souhaitent étendre l'utilisation de l'IA agentique pour le développement logiciel doivent multiplier les démarches pour obtenir les validations budgétaires.\n\nDepuis sa [disponibilité générale](https://about.gitlab.com/fr-fr/blog/gitlab-duo-agent-platform-is-generally-available/), GitLab Duo Agent Platform offre des fonctionnalités de gouvernance et de visibilité sur l'utilisation. Avec GitLab 18.11, nous introduisons des contrôles d'utilisation pour [GitLab Credits](https://about.gitlab.com/fr-fr/blog/introducing-gitlab-credits/) : des plafonds de dépenses et des garde-fous budgétaires qui donnent à votre organisation encore plus de contrôle et de transparence sur la consommation des crédits.\n\n## Gestion de GitLab Credits\n\nGitLab 18.11 ajoute trois niveaux de contrôle sur la consommation des GitLab Credits : un plafond de dépenses au niveau de l'abonnement, des limites de crédits par utilisateur et une visibilité sur l'état et l'application des plafonds.\n\n### Plafond de dépenses au niveau de l'abonnement\n\nLes responsables de facturation peuvent désormais définir un plafond mensuel strict pour la consommation de crédits GitLab à la demande sur l'ensemble de leur abonnement.\n\nVoici comment cela fonctionne :\n\n* **Définissez un plafond** dans le `portail clients`, dans les paramètres de votre abonnement relatifs à GitLab Credits.\n\n* **Appliquez automatiquement les limites de dépenses.** Lorsque la consommation à la demande atteint le plafond, l'accès à GitLab Duo Agent Platform est suspendu pour tous les utilisateurs de l'abonnement jusqu'au début de la période mensuelle suivante.\n\n* **Ajustez en cours de route.** Augmentez ou désactivez le plafond en cours de mois pour rétablir l'accès.\n\nLe plafond se réinitialise à chaque période mensuelle et la limite configurée est reconduite automatiquement, sauf si vous la modifiez. Étant donné que les données d'utilisation sont synchronisées périodiquement plutôt qu'en temps réel, un léger dépassement peut survenir après que le plafond est atteint, avant que l'application ne prenne effet. Consultez la [documentation relative à GitLab Credits](https://docs.gitlab.com/subscriptions/gitlab_credits/) pour plus de détails.\n\n### Plafonds de dépenses par utilisateur\n\nIl est naturel que tous les utilisateurs ne consomment pas les crédits au même rythme. Mais lorsqu'un ou deux utilisateurs intensifs consomment une part disproportionnée du pool, le reste de l'équipe peut perdre son accès à l'IA avant la fin du mois.\n\nLes plafonds de crédits par utilisateur empêchent qu'un seul utilisateur consomme plus que la part qui lui est allouée :\n\n* **Plafond forfaitaire par utilisateur.** Définissez une limite de crédits forfaitaire qui s'applique de manière égale à chaque utilisateur de l'abonnement via l'API GraphQL de GitLab. Contrairement au plafond au niveau de l'abonnement, le plafond par utilisateur s'applique à la consommation totale d'un utilisateur, toutes sources de crédits confondues.\n\n* **Limites personnalisées par utilisateur.** Pour les organisations qui ont besoin de limites différenciées, vous pouvez définir des plafonds de crédits individuels pour des utilisateurs spécifiques via l'API GraphQL. Par exemple, vous pourriez accorder une allocation plus élevée à vos staff engineers tout en appliquant une limite standard au reste de l'équipe.\n\n* **Application individuelle.** Lorsqu'un utilisateur atteint son plafond, il conserve un accès complet à GitLab. Seule sa consommation de crédits GitLab Duo Agent Platform est suspendue jusqu'au prochain cycle de facturation. Tous les autres membres de l'équipe continuent à travailler sans interruption jusqu'à atteindre leur propre limite ou le plafond au niveau de l'abonnement, selon la première éventualité.\n\n### Visibilité et notifications\n\nLorsqu'un plafond au niveau de l'abonnement est atteint, GitLab envoie une notification par e-mail aux responsables de facturation afin qu'ils puissent agir : augmenter le plafond, attendre la période suivante ou redistribuer les crédits.\n\nDans GitLab, les propriétaires de groupe (GitLab.com) et les administrateurs d'instance (GitLab Self-Managed) peuvent consulter les utilisateurs bloqués en raison de l'atteinte de leur plafond par utilisateur et rétablir l'accès en ajustant le plafond via l'API GraphQL.\n\n## Comment les garde-fous budgétaires aident les organisations à déployer l'IA à grande échelle\n\nLes garde-fous sont essentiels à mesure que les organisations accélèrent leur adoption de l'IA. Voici pourquoi :\n\n### Des budgets d'IA prévisibles\n\nLes contrôles d'utilisation de GitLab Duo Agent Platform transforment l'IA en un poste budgétaire encadré et prévisible grâce aux crédits GitLab à la demande. Il devient ainsi plus facile de déployer des agents sur l'ensemble du cycle de développement logiciel, d'obtenir la validation des équipes financières, de justifier les renouvellements et de planifier les dépenses trimestrielles.\n\n### Gouvernance et refacturation interne\n\nLes grandes organisations doivent souvent aligner la consommation d'IA sur leurs budgets internes, centres de coûts ou politiques de départements. Les plafonds par utilisateur offrent aux équipes plateforme un mécanisme simple pour répartir les crédits équitablement et suivre la consommation au niveau individuel. Les options d'importation par API facilitent la gestion des plafonds à l'échelle de l'entreprise. En combinant les plafonds par utilisateur aux données d'utilisation par utilisateur du tableau de bord GitLab Credits, les organisations peuvent analyser les tendances de consommation pour alimenter leurs propres processus de refacturation interne ou d'allocation budgétaire.\n\n### La confiance pour passer à l'échelle\n\nDe nombreux clients commencent à utiliser GitLab Duo Agent Platform avec un petit groupe pilote. Les contrôles d'utilisation éliminent les risques associés à l'extension de ce pilote à l'ensemble de l'organisation. Vous pouvez déployer GitLab Duo Agent Platform auprès de centaines, voire de milliers de développeurs, en sachant qu'un plafond strict protège votre budget. Si la consommation augmente plus vite que prévu, vous atteindrez le plafond, sans facture inattendue.\n\n## Dépasser le dilemme de la tarification par siège et du manque de visibilité\n\nDe nombreux outils de programmation assistée par l'IA adoptent une approche par siège pour la gestion des coûts. Vous achetez un nombre fixe de sièges à un prix forfaitaire par utilisateur, et c'est votre budget. L'approche est simple, mais rigide. Vous payez le même montant, qu'un développeur utilise l'outil dix fois par jour ou n'y touche jamais. Et à mesure que les éditeurs introduisent des modèles premium et des dépassements basés sur l'utilisation en plus de la tarification par siège, la prévisibilité des coûts promise par ce modèle commence à s'éroder.\n\nGitLab adopte une approche différente : une tarification à l'usage avec des plafonds stricts et un tableau de bord de gouvernance unifié. Vous profitez d'une véritable flexibilité : vous ne payez que ce que vos équipes consomment réellement et pouvez prévoir un budget grâce aux limites de dépenses appliquées automatiquement.\n\n## Exemples concrets de contrôles d'utilisation\n\n**Prenons l'exemple d'une entreprise cliente SaaS de taille moyenne qui souhaite respecter son budget mensuel.** Une entreprise d'ingénierie de 200 personnes définit un plafond au niveau de l'abonnement correspondant à sa consommation à la demande prévue. Le VP Engineering peut affirmer avec certitude aux équipes financières que les dépenses liées à GitLab Duo Agent Platform ne dépasseront jamais le montant approuvé, même lors de l'intégration de nouvelles équipes. Si l'organisation approche du plafond en cours de mois, le responsable de facturation reçoit une notification et peut décider d'augmenter la limite ou d'attendre la période suivante.\n\n**Chez GitLab, nous travaillons également avec de grandes entreprises qui souhaitent garantir une utilisation équitable entre les équipes.** Une société de services financiers internationale comptant 2 000 développeurs utilise les plafonds par utilisateur pour assurer un accès équitable. Les ingénieurs seniors travaillant sur des projets de refactorisation complexes bénéficient d'une allocation individuelle plus élevée via l'API, tandis que la majorité des développeurs profite d'un plafond forfaitaire standard. Aucun utilisateur ne peut épuiser le pool à lui seul, et l'équipe plateforme utilise les données d'utilisation par utilisateur du tableau de bord GitLab Credits pour analyser les tendances de consommation et concevoir la planification budgétaire trimestrielle.\n\n## Premiers pas\n\nLes contrôles d'utilisation sont disponibles pour les clients GitLab.com et GitLab Self-Managed dès la version GitLab 18.11. Les contrôles sont configurés à différents emplacements selon la portée et votre rôle.\n\n**Plafond au niveau de l'abonnement**\n\nLes responsables de facturation définissent le plafond à la demande au niveau de l'abonnement dans le portail client :\n\n1. Connectez-vous au `Portail clients`.\n\n2. Sur la carte de votre abonnement, accédez aux paramètres de **GitLab Credits**.\n\n3. Activez le plafond mensuel de crédits à la demande et saisissez la limite souhaitée.\n\n**Plafond forfaitaire par utilisateur**\n\nLe plafond forfaitaire par utilisateur peut être défini via l'API GraphQL de GitLab par les propriétaires d'espace de nommage (GitLab.com) ou les administrateurs d'instance (GitLab Self-Managed). Consultez la [documentation relative à GitLab Credits](https://docs.gitlab.com/subscriptions/gitlab_credits/) pour les dernières informations sur les interfaces de configuration disponibles.\n\n**Limites personnalisées par utilisateur**\n\nPour des limites différenciées, les propriétaires d'espace de nommage (GitLab.com) et les administrateurs d'instance (Self-Managed) peuvent définir des plafonds individuels par programmation. Cette option est particulièrement utile pour les workflows d'automatisation et d'Infrastructure as Code.\n\n**Suivi de l'utilisation et de l'état des plafonds**\n\n* **Portail client :** consultez l'utilisation détaillée et l'état des plafonds.\n\n* **GitLab.com :** les propriétaires de groupe peuvent consulter les utilisateurs bloqués sous **Paramètres > GitLab Credits**.\n\n* **GitLab Self-Managed :** les administrateurs d'instance peuvent consulter l'état des plafonds et les utilisateurs bloqués sous **Admin > GitLab Credits**.\n\n## GitLab Duo Agent Platform est prêt à passer à l'échelle\n\nLes contrôles d'utilisation sont disponibles dès maintenant dans GitLab 18.11. Si vous attendiez les bons garde-fous avant de déployer GitLab Duo Agent Platform à l'échelle de votre organisation, c'est le moment. Définissez vos plafonds, déployez GitLab Duo Agent Platform auprès de davantage d'équipes et accélérez vos livraisons !\n\n> [En savoir plus sur GitLab Credits et les contrôles d'utilisation](https://docs.gitlab.com/subscriptions/gitlab_credits/).",[12,784,802],"news",{"featured":40,"template":16,"slug":804},"gitlab-18-11-budget-guardrails-for-gitlab-credits",{"promotions":806},[807,821,832,844],{"id":808,"categories":809,"header":811,"text":812,"button":813,"image":818},"ai-modernization",[810],"ai-ml","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":814,"config":815},"Get your AI maturity score",{"href":816,"dataGaName":817,"dataGaLocation":255},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":819},{"src":820},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":822,"categories":823,"header":824,"text":812,"button":825,"image":829},"devops-modernization",[12,581],"Are you just managing tools or shipping innovation?",{"text":826,"config":827},"Get your DevOps maturity score",{"href":828,"dataGaName":817,"dataGaLocation":255},"/assessments/devops-modernization-assessment/",{"config":830},{"src":831},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":833,"categories":834,"header":836,"text":812,"button":837,"image":841},"security-modernization",[835],"security","Are you trading speed for security?",{"text":838,"config":839},"Get your security maturity score",{"href":840,"dataGaName":817,"dataGaLocation":255},"/assessments/security-modernization-assessment/",{"config":842},{"src":843},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":845,"paths":846,"header":849,"text":850,"button":851,"image":856},"github-azure-migration",[847,848],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":852,"config":853},"See how GitLab compares to GitHub",{"href":854,"dataGaName":855,"dataGaLocation":255},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":857},{"src":831},{"header":859,"blurb":860,"button":861,"secondaryButton":865},"Commencez à développer plus rapidement dès aujourd'hui","Découvrez ce que votre équipe peut accomplir avec la plateforme d'orchestration intelligente pour le DevSecOps.\n",{"text":59,"config":862},{"href":863,"dataGaName":62,"dataGaLocation":864},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":64,"config":866},{"href":66,"dataGaName":67,"dataGaLocation":864},1777379636532]