[{"data":1,"prerenderedAt":789},["ShallowReactive",2],{"/fr-fr/blog/categories/devsecops":3,"navigation-fr-fr":21,"banner-fr-fr":437,"footer-fr-fr":447,"devsecops-category-page-total-items-fr-fr":683,"devsecops-category-page-featured-fr-fr":684,"devsecops-category-page-1-fr-fr":712},{"id":4,"title":5,"body":6,"category":6,"config":7,"content":11,"description":6,"extension":13,"meta":14,"navigation":15,"path":16,"seo":17,"slug":6,"stem":19,"testContent":6,"type":6,"__hash__":20},"blogCategories/fr-fr/blog/categories/devsecops.yml","Devsecops",null,{"template":8,"slug":9,"hide":10},"BlogCategory","devsecops",false,{"name":12},"DevSecOps","yml",{},true,"/fr-fr/blog/categories/devsecops",{"title":12,"description":18},"Browse articles related to DevSecOps on the GitLab Blog","fr-fr/blog/categories/devsecops","5CrNSdWz8mAe8HviC-_hzouJyiY3I5xVJekmz-uuxvM",{"data":22},{"logo":23,"freeTrial":28,"sales":33,"login":38,"items":43,"search":353,"minimal":388,"duo":407,"switchNav":416,"pricingDeployment":427},{"config":24},{"href":25,"dataGaName":26,"dataGaLocation":27},"/fr-fr/","gitlab logo","header",{"text":29,"config":30},"Commencer un essai gratuit",{"href":31,"dataGaName":32,"dataGaLocation":27},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":34,"config":35},"Contacter l'équipe commerciale",{"href":36,"dataGaName":37,"dataGaLocation":27},"/fr-fr/sales/","sales",{"text":39,"config":40},"Connexion",{"href":41,"dataGaName":42,"dataGaLocation":27},"https://gitlab.com/users/sign_in/","sign in",[44,71,168,173,274,334],{"text":45,"config":46,"cards":48},"Plateforme",{"dataNavLevelOne":47},"platform",[49,55,63],{"title":45,"description":50,"link":51},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":52,"config":53},"Explorer notre plateforme",{"href":54,"dataGaName":47,"dataGaLocation":27},"/fr-fr/platform/",{"title":56,"description":57,"link":58},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":59,"config":60},"Découvrir GitLab Duo",{"href":61,"dataGaName":62,"dataGaLocation":27},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":64,"description":65,"link":66},"Pourquoi GitLab ?","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":67,"config":68},"En savoir plus",{"href":69,"dataGaName":70,"dataGaLocation":27},"/fr-fr/why-gitlab/","why gitlab",{"text":72,"left":15,"config":73,"link":75,"lists":79,"footer":150},"Produit",{"dataNavLevelOne":74},"solutions",{"text":76,"config":77},"Voir toutes les solutions",{"href":78,"dataGaName":74,"dataGaLocation":27},"/fr-fr/solutions/",[80,105,128],{"title":81,"description":82,"link":83,"items":88},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":84},{"icon":85,"href":86,"dataGaName":87,"dataGaLocation":27},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[89,93,96,101],{"text":90,"config":91},"CI/CD",{"href":92,"dataGaLocation":27,"dataGaName":90},"/fr-fr/solutions/continuous-integration/",{"text":56,"config":94},{"href":61,"dataGaLocation":27,"dataGaName":95},"gitlab duo agent platform - product menu",{"text":97,"config":98},"Gestion du code source",{"href":99,"dataGaLocation":27,"dataGaName":100},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":102,"config":103},"Livraison de logiciels automatisée",{"href":86,"dataGaLocation":27,"dataGaName":104},"Automated software delivery",{"title":106,"description":107,"link":108,"items":113},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":109},{"href":110,"dataGaName":111,"dataGaLocation":27,"icon":112},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[114,118,123],{"text":115,"config":116},"Tests de sécurité des applications",{"href":110,"dataGaName":117,"dataGaLocation":27},"Application security testing",{"text":119,"config":120},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":121,"dataGaLocation":27,"dataGaName":122},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":124,"config":125},"Conformité logicielle",{"href":126,"dataGaName":127,"dataGaLocation":27},"/fr-fr/solutions/software-compliance/","software compliance",{"title":129,"link":130,"items":135},"Mesures",{"config":131},{"icon":132,"href":133,"dataGaName":134,"dataGaLocation":27},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[136,140,145],{"text":137,"config":138},"Visibilité et mesures",{"href":133,"dataGaLocation":27,"dataGaName":139},"Visibility and Measurement",{"text":141,"config":142},"Gestion de la chaîne de valeur",{"href":143,"dataGaLocation":27,"dataGaName":144},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":146,"config":147},"Données d'analyse et informations clés",{"href":148,"dataGaLocation":27,"dataGaName":149},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":151,"items":152},"GitLab",[153,158,163],{"text":154,"config":155},"Pour les entreprises",{"href":156,"dataGaLocation":27,"dataGaName":157},"/fr-fr/enterprise/","enterprise",{"text":159,"config":160},"Pour les PME",{"href":161,"dataGaLocation":27,"dataGaName":162},"/fr-fr/small-business/","small business",{"text":164,"config":165},"Pour le secteur public",{"href":166,"dataGaLocation":27,"dataGaName":167},"/fr-fr/solutions/public-sector/","public sector",{"text":169,"config":170},"Tarifs",{"href":171,"dataGaName":172,"dataGaLocation":27,"dataNavLevelOne":172},"/fr-fr/pricing/","pricing",{"text":174,"config":175,"link":177,"lists":181,"feature":261},"Ressources",{"dataNavLevelOne":176},"resources",{"text":178,"config":179},"Afficher toutes les ressources",{"href":180,"dataGaName":176,"dataGaLocation":27},"/fr-fr/resources/",[182,215,233],{"title":183,"items":184},"Premiers pas",[185,190,195,200,205,210],{"text":186,"config":187},"Installation",{"href":188,"dataGaName":189,"dataGaLocation":27},"/fr-fr/install/","install",{"text":191,"config":192},"Guides de démarrage",{"href":193,"dataGaName":194,"dataGaLocation":27},"/fr-fr/get-started/","quick setup checklists",{"text":196,"config":197},"Apprentissage",{"href":198,"dataGaLocation":27,"dataGaName":199},"https://university.gitlab.com/","learn",{"text":201,"config":202},"Documentation",{"href":203,"dataGaName":204,"dataGaLocation":27},"https://docs.gitlab.com/","product documentation",{"text":206,"config":207},"Vidéos sur les bonnes pratiques",{"href":208,"dataGaName":209,"dataGaLocation":27},"/fr-fr/getting-started-videos/","best practice videos",{"text":211,"config":212},"Intégrations",{"href":213,"dataGaName":214,"dataGaLocation":27},"/fr-fr/integrations/","integrations",{"title":216,"items":217},"Découvrir",[218,223,228],{"text":219,"config":220},"Témoignages clients",{"href":221,"dataGaName":222,"dataGaLocation":27},"/fr-fr/customers/","customer success stories",{"text":224,"config":225},"Blog",{"href":226,"dataGaName":227,"dataGaLocation":27},"/fr-fr/blog/","blog",{"text":229,"config":230},"Travail à distance",{"href":231,"dataGaName":232,"dataGaLocation":27},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":234,"items":235},"Connecter",[236,241,246,251,256],{"text":237,"config":238},"Services GitLab",{"href":239,"dataGaName":240,"dataGaLocation":27},"/fr-fr/services/","services",{"text":242,"config":243},"Communauté",{"href":244,"dataGaName":245,"dataGaLocation":27},"/community/","community",{"text":247,"config":248},"Forum",{"href":249,"dataGaName":250,"dataGaLocation":27},"https://forum.gitlab.com/","forum",{"text":252,"config":253},"Événements",{"href":254,"dataGaName":255,"dataGaLocation":27},"/events/","events",{"text":257,"config":258},"Partenaires",{"href":259,"dataGaName":260,"dataGaLocation":27},"/fr-fr/partners/","partners",{"backgroundColor":262,"textColor":263,"text":264,"image":265,"link":269},"#2f2a6b","#fff","L'avenir du développement logiciel. Tendances et perspectives.",{"altText":266,"config":267},"carte promo The Source",{"src":268},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":270,"config":271},"Lire les articles les plus récents",{"href":272,"dataGaName":273,"dataGaLocation":27},"/fr-fr/the-source/","the source",{"text":275,"config":276,"lists":278},"Société",{"dataNavLevelOne":277},"company",[279],{"items":280},[281,286,292,294,299,304,309,314,319,324,329],{"text":282,"config":283},"À propos",{"href":284,"dataGaName":285,"dataGaLocation":27},"/fr-fr/company/","about",{"text":287,"config":288,"footerGa":291},"Carrières",{"href":289,"dataGaName":290,"dataGaLocation":27},"/jobs/","jobs",{"dataGaName":290},{"text":252,"config":293},{"href":254,"dataGaName":255,"dataGaLocation":27},{"text":295,"config":296},"Leadership",{"href":297,"dataGaName":298,"dataGaLocation":27},"/company/team/e-group/","leadership",{"text":300,"config":301},"Équipe",{"href":302,"dataGaName":303,"dataGaLocation":27},"/company/team/","team",{"text":305,"config":306},"Manuel",{"href":307,"dataGaName":308,"dataGaLocation":27},"https://handbook.gitlab.com/","handbook",{"text":310,"config":311},"Relations avec les investisseurs",{"href":312,"dataGaName":313,"dataGaLocation":27},"https://ir.gitlab.com/","investor relations",{"text":315,"config":316},"Trust Center",{"href":317,"dataGaName":318,"dataGaLocation":27},"/fr-fr/security/","trust center",{"text":320,"config":321},"Centre pour la transparence de l'IA",{"href":322,"dataGaName":323,"dataGaLocation":27},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":325,"config":326},"Newsletter",{"href":327,"dataGaName":328,"dataGaLocation":27},"/company/contact/#contact-forms","newsletter",{"text":330,"config":331},"Presse",{"href":332,"dataGaName":333,"dataGaLocation":27},"/press/","press",{"text":335,"config":336,"lists":337},"Nous contacter",{"dataNavLevelOne":277},[338],{"items":339},[340,343,348],{"text":34,"config":341},{"href":36,"dataGaName":342,"dataGaLocation":27},"talk to sales",{"text":344,"config":345},"Assistance GitLab",{"href":346,"dataGaName":347,"dataGaLocation":27},"https://support.gitlab.com","support portal",{"text":349,"config":350},"Portail clients GitLab",{"href":351,"dataGaName":352,"dataGaLocation":27},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":354,"login":355,"suggestions":362},"Fermer",{"text":356,"link":357},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":358,"config":359},"GitLab.com",{"href":41,"dataGaName":360,"dataGaLocation":361},"search login","search",{"text":363,"default":364},"Suggestions",[365,367,372,374,379,384],{"text":56,"config":366},{"href":61,"dataGaName":56,"dataGaLocation":361},{"text":368,"config":369},"Suggestions de code (IA)",{"href":370,"dataGaName":371,"dataGaLocation":361},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":90,"config":373},{"href":92,"dataGaName":90,"dataGaLocation":361},{"text":375,"config":376},"GitLab sur AWS",{"href":377,"dataGaName":378,"dataGaLocation":361},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":380,"config":381},"GitLab sur Google Cloud",{"href":382,"dataGaName":383,"dataGaLocation":361},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":385,"config":386},"Pourquoi utiliser GitLab ?",{"href":69,"dataGaName":387,"dataGaLocation":361},"Why GitLab?",{"freeTrial":389,"mobileIcon":394,"desktopIcon":399,"secondaryButton":402},{"text":390,"config":391},"Commencer votre essai gratuit",{"href":392,"dataGaName":32,"dataGaLocation":393},"https://gitlab.com/-/trials/new/","nav",{"altText":395,"config":396},"Icône GitLab",{"src":397,"dataGaName":398,"dataGaLocation":393},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":395,"config":400},{"src":401,"dataGaName":398,"dataGaLocation":393},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":403,"config":404},"Commencer",{"href":405,"dataGaName":406,"dataGaLocation":393},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":408,"mobileIcon":412,"desktopIcon":414},{"text":409,"config":410},"En savoir plus sur GitLab Duo",{"href":61,"dataGaName":411,"dataGaLocation":393},"gitlab duo",{"altText":395,"config":413},{"src":397,"dataGaName":398,"dataGaLocation":393},{"altText":395,"config":415},{"src":401,"dataGaName":398,"dataGaLocation":393},{"button":417,"mobileIcon":422,"desktopIcon":424},{"text":418,"config":419},"/switch",{"href":420,"dataGaName":421,"dataGaLocation":393},"#contact","switch",{"altText":395,"config":423},{"src":397,"dataGaName":398,"dataGaLocation":393},{"altText":395,"config":425},{"src":426,"dataGaName":398,"dataGaLocation":393},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":428,"mobileIcon":433,"desktopIcon":435},{"text":429,"config":430},"Retour aux tarifs",{"href":171,"dataGaName":431,"dataGaLocation":393,"icon":432},"back to pricing","GoBack",{"altText":395,"config":434},{"src":397,"dataGaName":398,"dataGaLocation":393},{"altText":395,"config":436},{"src":401,"dataGaName":398,"dataGaLocation":393},{"title":438,"button":439,"config":444},"Découvrez comment l'IA agentique transforme la livraison logicielle",{"text":440,"config":441},"Regarder GitLab Transcend maintenant",{"href":442,"dataGaName":443,"dataGaLocation":27},"/fr-fr/events/transcend/virtual/","transcend event",{"layout":445,"icon":446,"disabled":15},"release","AiStar",{"data":448},{"text":449,"source":450,"edit":456,"contribute":461,"config":466,"items":471,"minimal":674},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":451,"config":452},"Afficher le code source de la page",{"href":453,"dataGaName":454,"dataGaLocation":455},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":457,"config":458},"Modifier cette page",{"href":459,"dataGaName":460,"dataGaLocation":455},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":462,"config":463},"Veuillez contribuer",{"href":464,"dataGaName":465,"dataGaLocation":455},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":467,"facebook":468,"youtube":469,"linkedin":470},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[472,517,568,612,639],{"title":169,"links":473,"subMenu":488},[474,478,483],{"text":475,"config":476},"Voir les forfaits",{"href":171,"dataGaName":477,"dataGaLocation":455},"view plans",{"text":479,"config":480},"GitLab Premium",{"href":481,"dataGaName":482,"dataGaLocation":455},"/fr-fr/pricing/premium/","why premium",{"text":484,"config":485},"GitLab Ultimate",{"href":486,"dataGaName":487,"dataGaLocation":455},"/fr-fr/pricing/ultimate/","why ultimate",[489],{"title":335,"links":490},[491,493,495,497,502,507,512],{"text":34,"config":492},{"href":36,"dataGaName":37,"dataGaLocation":455},{"text":344,"config":494},{"href":346,"dataGaName":347,"dataGaLocation":455},{"text":349,"config":496},{"href":351,"dataGaName":352,"dataGaLocation":455},{"text":498,"config":499},"Statut",{"href":500,"dataGaName":501,"dataGaLocation":455},"https://status.gitlab.com/","status",{"text":503,"config":504},"Conditions d'utilisation",{"href":505,"dataGaName":506,"dataGaLocation":455},"/terms/","terms of use",{"text":508,"config":509},"Politique de confidentialité",{"href":510,"dataGaName":511,"dataGaLocation":455},"/fr-fr/privacy/","privacy statement",{"text":513,"config":514},"Gérer vos cookies",{"dataGaName":515,"dataGaLocation":455,"id":516,"isOneTrustButton":15},"cookie preferences","ot-sdk-btn",{"title":72,"links":518,"subMenu":527},[519,523],{"text":520,"config":521},"Plateforme DevSecOps",{"href":54,"dataGaName":522,"dataGaLocation":455},"devsecops platform",{"text":524,"config":525},"Développement assisté par l'IA",{"href":61,"dataGaName":526,"dataGaLocation":455},"ai-assisted development",[528],{"title":529,"links":530},"Thèmes",[531,535,540,545,550,553,558,563],{"text":90,"config":532},{"href":533,"dataGaName":534,"dataGaLocation":455},"/fr-fr/topics/ci-cd/","cicd",{"text":536,"config":537},"GitOps",{"href":538,"dataGaName":539,"dataGaLocation":455},"/fr-fr/topics/gitops/","gitops",{"text":541,"config":542},"DevOps",{"href":543,"dataGaName":544,"dataGaLocation":455},"/fr-fr/topics/devops/","devops",{"text":546,"config":547},"Contrôle de version",{"href":548,"dataGaName":549,"dataGaLocation":455},"/fr-fr/topics/version-control/","version control",{"text":12,"config":551},{"href":552,"dataGaName":9,"dataGaLocation":455},"/fr-fr/topics/devsecops/",{"text":554,"config":555},"Cloud-native",{"href":556,"dataGaName":557,"dataGaLocation":455},"/fr-fr/topics/cloud-native/","cloud native",{"text":559,"config":560},"IA pour la programmation",{"href":561,"dataGaName":562,"dataGaLocation":455},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":564,"config":565},"IA agentique",{"href":566,"dataGaName":567,"dataGaLocation":455},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":569,"links":570},"Solutions",[571,574,576,581,584,587,590,593,596,599,602,607],{"text":115,"config":572},{"href":110,"dataGaName":573,"dataGaLocation":455},"Application Security Testing",{"text":102,"config":575},{"href":86,"dataGaName":87,"dataGaLocation":455},{"text":577,"config":578},"Développement Agile",{"href":579,"dataGaName":580,"dataGaLocation":455},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":97,"config":582},{"href":99,"dataGaName":583,"dataGaLocation":455},"source code management",{"text":90,"config":585},{"href":92,"dataGaName":586,"dataGaLocation":455},"continuous integration & delivery",{"text":141,"config":588},{"href":143,"dataGaName":589,"dataGaLocation":455},"value stream management",{"text":536,"config":591},{"href":592,"dataGaName":539,"dataGaLocation":455},"/fr-fr/solutions/gitops/",{"text":594,"config":595},"Entreprises",{"href":156,"dataGaName":157,"dataGaLocation":455},{"text":597,"config":598},"PME",{"href":161,"dataGaName":162,"dataGaLocation":455},{"text":600,"config":601},"Secteur public",{"href":166,"dataGaName":167,"dataGaLocation":455},{"text":603,"config":604},"Éducation",{"href":605,"dataGaName":606,"dataGaLocation":455},"/fr-fr/solutions/education/","education",{"text":608,"config":609},"Services financiers",{"href":610,"dataGaName":611,"dataGaLocation":455},"/fr-fr/solutions/finance/","financial services",{"title":174,"links":613},[614,616,618,620,623,625,627,629,631,633,635,637],{"text":186,"config":615},{"href":188,"dataGaName":189,"dataGaLocation":455},{"text":191,"config":617},{"href":193,"dataGaName":194,"dataGaLocation":455},{"text":196,"config":619},{"href":198,"dataGaName":199,"dataGaLocation":455},{"text":201,"config":621},{"href":203,"dataGaName":622,"dataGaLocation":455},"docs",{"text":224,"config":624},{"href":226,"dataGaName":227,"dataGaLocation":455},{"text":219,"config":626},{"href":221,"dataGaName":222,"dataGaLocation":455},{"text":229,"config":628},{"href":231,"dataGaName":232,"dataGaLocation":455},{"text":237,"config":630},{"href":239,"dataGaName":240,"dataGaLocation":455},{"text":242,"config":632},{"href":244,"dataGaName":245,"dataGaLocation":455},{"text":247,"config":634},{"href":249,"dataGaName":250,"dataGaLocation":455},{"text":252,"config":636},{"href":254,"dataGaName":255,"dataGaLocation":455},{"text":257,"config":638},{"href":259,"dataGaName":260,"dataGaLocation":455},{"title":275,"links":640},[641,643,645,647,649,651,653,658,663,665,667,669],{"text":282,"config":642},{"href":284,"dataGaName":277,"dataGaLocation":455},{"text":287,"config":644},{"href":289,"dataGaName":290,"dataGaLocation":455},{"text":295,"config":646},{"href":297,"dataGaName":298,"dataGaLocation":455},{"text":300,"config":648},{"href":302,"dataGaName":303,"dataGaLocation":455},{"text":305,"config":650},{"href":307,"dataGaName":308,"dataGaLocation":455},{"text":310,"config":652},{"href":312,"dataGaName":313,"dataGaLocation":455},{"text":654,"config":655},"Développement durable",{"href":656,"dataGaName":657,"dataGaLocation":455},"/sustainability/","Sustainability",{"text":659,"config":660},"Diversité, inclusion et appartenance (DIB)",{"href":661,"dataGaName":662,"dataGaLocation":455},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":315,"config":664},{"href":317,"dataGaName":318,"dataGaLocation":455},{"text":325,"config":666},{"href":327,"dataGaName":328,"dataGaLocation":455},{"text":330,"config":668},{"href":332,"dataGaName":333,"dataGaLocation":455},{"text":670,"config":671},"Déclaration de transparence sur l'esclavage moderne",{"href":672,"dataGaName":673,"dataGaLocation":455},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":675},[676,678,681],{"text":503,"config":677},{"href":505,"dataGaName":506,"dataGaLocation":455},{"text":679,"config":680},"Gestion des cookies",{"dataGaName":515,"dataGaLocation":455,"id":516,"isOneTrustButton":15},{"text":508,"config":682},{"href":510,"dataGaName":511,"dataGaLocation":455},22,{"id":685,"title":686,"authorSlugs":687,"body":6,"categorySlug":9,"config":690,"content":693,"description":6,"extension":13,"isFeatured":10,"meta":703,"navigation":15,"path":704,"publishedDate":699,"seo":705,"stem":709,"tagSlugs":710,"__hash__":711},"blogPosts/fr-fr/blog/what-is-gitlab-ci-cd.yml","What Is Gitlab Ci Cd",[688,689],"charlotte-delbosc","maud-leuenberger",{"featured":10,"template":691,"slug":692},"BlogPost","what-is-gitlab-ci-cd",{"title":694,"description":695,"authors":696,"date":699,"body":700,"category":9,"tags":701,"heroImage":702},"Automatisez les étapes de votre cycle de développement avec GitLab CI/CD","GitLab CI/CD automatise vos builds, tests et déploiements depuis une plateforme DevSecOps unifiée. Découvrez son fonctionnement, ses composants clés et ses fonctionnalités avancées pour des cycles de livraison plus rapides et fiables.",[697,698],"Charlotte Delbosc","Maud Leuenberger","2026-04-22","Les équipes les plus performantes déploient leur code plusieurs fois par jour, avec un délai de mise en production inférieur à une heure, contre plusieurs jours voire plusieurs semaines pour les équipes moins avancées. Cette performance repose sur quelques principes fondamentaux : détecter les erreurs le plus tôt dans le processus de développement, tester en continu et éviter d’accumuler des modifications difficiles à stabiliser.\n\nC'est là qu'intervient **[GitLab CI/CD](https://docs.gitlab.com/ci/)** : en automatisant les builds, les tests et les déploiements dans un même environnement, les équipes peuvent livrer plus vite, avec moins de risques et une meilleure visibilité sur chaque étape du cycle de développement logiciel.\n\nDans cet article, nous explorerons comment GitLab CI/CD fonctionne et comment le mettre en place pour des cycles de livraison plus rapides, plus fiables et mieux structurés.\n\n> **[&rarr; Commencez un essai gratuit de GitLab Ultimate.](https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&utm_source=blog&utm_campaign=eg_emea_x_trial_x_fr_blog_fr)**\n\n## Qu’est-ce que GitLab CI/CD ?\n\nLe **[CI/CD](https://about.gitlab.com/fr-fr/topics/ci-cd/ \"Qu'est-ce que le CI/CD ?\")** regroupe deux pratiques complémentaires : \n\n- **CI pour « continuous integration » (intégration continue)** : intégrer régulièrement des modifications de code pour détecter les erreurs le plus tôt possible dans le cycle de développement logiciel.\n- **CD pour « continuous delivery/deployment » (livraison continue/déploiement continu)** : préparer automatiquement chaque modification pour qu'elle soit prête à être déployée en production à tout moment. Le déploiement continu va plus loin en déclenchant automatiquement la mise en production, sans intervention humaine.\n\nEnsemble, ces pratiques évitent l’accumulation de changements difficiles à stabiliser et réduisent le délai entre un commit et son déploiement.\n\n**GitLab intègre nativement le CI/CD dans sa plateforme où résident déjà le code, les merge requests, la sécurité et les déploiements.** Les pipelines s’exécutent sans nécessiter de plugins ni d’outils externes, ce qui simplifie la configuration et offre une vue centralisée sur l’ensemble du workflow de développement. Sur GitLab.com, des **runners partagés Linux, Windows et macOS** sont également **disponibles sans configuration initiale**, ce qui facilite le démarrage.\n\nConcrètement, **chaque modification déclenche un pipeline qui construit le logiciel, exécute les tests, analyse la sécurité et prépare une version déployable.** Les équipes obtiennent des retours immédiats, ce qui leur permet d'identifier les erreurs tôt et de travailler de manière itérative. \n\nGrâce à cette centralisation, la collaboration est facilitée et l'état du logiciel reste visible et compréhensible à chaque étape de son cycle de développement.\n\n## Pourquoi GitLab CI/CD est devenu une référence dans le développement logiciel ?\n\nDans de nombreuses organisations, l'adoption du CI/CD se heurte à un obstacle récurrent : la fragmentation des outils. Une chaîne de développement qui repose sur des solutions trop nombreuses et disparates devient rapidement lente, difficile à maintenir et propice aux erreurs de configuration.\n\nFace à cette fragmentation, GitLab apporte une réponse concrète : une plateforme qui **réunit le code, les pipelines, la sécurité et le déploiement dans un seul et même environnement.** Les équipes n'ont plus à gérer de multiples outils, ce qui réduit la complexité et fluidifie l'ensemble du workflow de développement logiciel.\n\nAinsi, **les logs, artefacts, résultats de tests et statuts de déploiement cohabitent dans le même espace que le code**, ce qui offre un gain de visibilité significatif aux équipes. Les pipelines se déclenchent directement depuis les merge requests pour obtenir des retours plus rapidement et limiter les régressions tardives.\n\nCette cohérence, alliée à la possibilité d’intégrer dès le départ l’analyse de sécurité ou la gestion des dépendances, explique pourquoi **GitLab CI/CD est aujourd’hui largement adopté par les organisations qui cherchent à fluidifier leurs cycles de livraison logicielle.**\n\n> **Radio France déploie 5 fois plus rapidement avec GitLab CI/CD**\n>\n> Radio France, la société nationale de radiodiffusion française, compte sept stations dans tout le pays. Radio France conçoit, développe et exploite des sites web, des applications mobiles, des API, des podcasts, des assistants vocaux et des plateformes de streaming audio.\n>\n> Avant d'adopter GitLab CI/CD, les équipes utilisaient GitLab pour le code source et Jenkins pour tous les builds en production, ce qui les obligeait à basculer constamment entre les deux outils.\n>\n> Après avoir migré l'ensemble de leurs pipelines vers GitLab CI/CD, les résultats ont été immédiats :\n>\n> - **5x plus rapide de déployer**\n>\n> - **82 % de réduction de la durée de cycle**\n>\n> - **70 % d'économies annuelles sur les coûts CI/CD**\n>\n> *« Nous étions à 10 déploiements par jour avant la migration. Maintenant, avec GitLab, nous effectuons 50 déploiements par jour en production. Nous n'avons plus à basculer entre GitLab et Jenkins. »* — Julien Vey, Operational Excellence Manager, Radio France\n>\n> [Lire le cas client complet >](https://about.gitlab.com/fr-fr/customers/radiofrance/)\n\n## Comment fonctionne un pipeline GitLab CI/CD ?\n\nDans GitLab, **un pipeline est une suite d’étapes exécutées automatiquement à chaque modification du code.** Il se déclenche lors d’un commit, d’une merge request ou d’un événement planifié. Son rôle est de valider la modification et de produire les artefacts nécessaires. Si tout est conforme, il prépare ou déclenche directement le déploiement. \n\n### Les étapes et les jobs\n\nUn pipeline GitLab est composé d'**étapes** (build, test, déploiement…), chacune regroupant un ou plusieurs **jobs**. Les jobs indiquent les actions à exécuter, comme compiler le code ou lancer une suite de tests. **GitLab exécute les jobs d'une même étape en parallèle (en fonction de la disponibilité des runners), gère les dépendances et passe automatiquement à l'étape suivante lorsque tous les jobs de la précédente sont terminés.** Les logs associés à chaque job permettent de suivre l'exécution en détail.\n\nPar défaut, GitLab attend que tous les jobs d'une étape soient terminés avant de passer à la suivante. Pour les pipelines où cette séquence stricte n'est pas nécessaire, le mot-clé `needs:` permet de définir des dépendances directes entre jobs, indépendamment de leur étape. Un job peut ainsi démarrer dès qu'un job précis est terminé, sans avoir à attendre la fin de toute l'étape. Cette approche, appelée **DAG (Directed Acyclic Graph)**, peut réduire considérablement la durée totale d'un pipeline en parallélisant davantage l'exécution. Dans l’interface, ces pipelines apparaissent sous forme de graphe de dépendances, ce qui facilite la compréhension de l’ordre réel d’exécution.\n\n### Les artefacts et le cache : transfert et réutilisation\n\nLes artefacts et le cache sont deux mécanismes de persistance de fichiers entre jobs, souvent confondus.\n\nLes **artefacts** sont les **fichiers générés par un job**, comme un binaire, un rapport de test ou un paquet. Ils peuvent être transmis aux jobs suivants ou conservés pendant une durée définie. Cette gestion intégrée évite les transferts manuels et facilite la **reproductibilité des pipelines.**\n\nLe **cache**, quant à lui, **permet de réutiliser des fichiers entre plusieurs exécutions d'un même pipeline**, typiquement les dépendances (node_modules, packages Maven, gems Ruby…). \n\nLà où les artefacts transfèrent des fichiers d'un job au suivant au sein d'un même pipeline, le cache évite de re-télécharger les mêmes ressources à chaque nouvelle exécution. C'est souvent l'une des premières optimisations à mettre en place pour réduire significativement la durée des pipelines.\n\nEn pratique : les artefacts sont obligatoires pour le job suivant, alors que le cache est optionnel et uniquement là pour aller plus vite.\n\n### Les runners : là où s’exécutent réellement les jobs\n\nLes runners sont les **machines qui exécutent réellement les jobs.** GitLab propose des runners hébergés sur GitLab.com (Linux, Windows, macOS) ou permet d’en installer sur ses propres serveurs ou environnements cloud, notamment en s’appuyant sur la [conteneurisation](https://about.gitlab.com/fr-fr/blog/what-is-containerization/ \"Qu'est-ce que la conteneurisation ?\").\n\nLorsqu'on installe son propre runner, il faut également choisir un executor, c'est-à-dire le mécanisme par lequel le runner exécute les jobs. \n\nLes [executors](https://docs.gitlab.com/runner/executors/) les plus courants sont :\n\n- **Docker** : il exécute chaque job dans un conteneur isolé. Il est rapide, flexible et recommandé pour la majorité des projets.\n\n- **Shell** : il exécute directement les jobs sur la machine hôte. Il est simple, mais sans isolation.\n\n- **[Kubernetes](https://about.gitlab.com/fr-fr/blog/kubernetes-the-container-orchestration-solution/ \"Qu'est-ce que Kubernetes ?\")** : il exécute les jobs dans des pods Kubernetes, avec une scalabilité native.\n\nLe choix de l'executor conditionne directement l'isolation, la reproductibilité et les performances des jobs. Il est indépendant du runner lui-même et se configure au moment de l'installation.\n\nLes tags associés aux runners permettent de cibler un environnement spécifique et d’adapter l’exécution aux besoins du pipeline.\n\nPour en savoir plus sur les runners de GitLab, consultez notre article de blog « [GitLab Runner : installation, configuration et bonnes pratiques pour vos pipelines CI/CD](https://about.gitlab.com/fr-fr/blog/what-is-gitlab-runner/ \"Qu'est-ce qu'un GitLab Runner ?\") ».\n\n### Configuration d’un pipeline GitLab CI/CD\n\nTout pipeline GitLab prend forme dans un fichier **.gitlab-ci.yml** placé à la racine du projet. Ce fichier définit les étapes, les jobs, les scripts à exécuter, les variables, les dépendances ou encore les artefacts à conserver. GitLab lit ce fichier à chaque modification de code et déclenche un pipeline conforme à sa configuration.\n\nIl est utile de distinguer deux types de pipelines selon leur contexte de déclenchement : \n- Le **pipeline de branche** s'exécute lors d'un push direct sur une branche. \n- Le **pipeline de merge request** se déclenche dès qu'une merge request est ouverte ou mise à jour. Il peut s’exécuter soit sur le contenu de la branche source, soit sur le résultat simulé du merge avec la branche cible (grâce aux [pipelines de résultats de merge](https://docs.gitlab.com/ci/pipelines/merged_results_pipelines/)), avant même que celle-ci ne soit effectuée.\n\nCette distinction est importante en pratique : elle permet de réserver certains jobs coûteux ou sensibles (comme les scans de sécurité approfondis ou les déploiements) à un contexte précis, et d'obtenir un retour sur la qualité du code fusionné le plus tôt possible. C'est l'un des leviers concrets pour détecter les régressions avant qu'elles n'atteignent la branche principale.\n\nVoici un exemple de fichier `.gitlab-ci.yml` illustrant la structure d'un pipeline GitLab :\n\n```yaml\nstages:          # Définit l'ordre d'exécution des étapes du pipeline\n  - build\n  - test\n  - deploy\n\nvariables:       # Variables accessibles par tous les jobs du pipeline\n  APP_ENV: \"production\"\n\nbuild-job:\n  stage: build\n  image: node:20                    # Image Docker utilisée pour exécuter ce job\n  cache:\n    key: $CI_COMMIT_REF_SLUG        # Cache propre à chaque branche\n    paths:\n      - node_modules/               # Dossier de dépendances mis en cache\n  script:\n    - echo \"Compilation du code...\"\n  artifacts:\n    paths:\n      - dist/                       # Fichiers générés transmis aux jobs suivants\n    expire_in: 1 hour               # Durée de conservation de l'artefact\n\ntest-job:\n  stage: test\n  image: node:20\n  needs: [\"build-job\"]             # Démarre dès que build-job est terminé (DAG)\n  script:\n    - echo \"Exécution des tests...\"\n\ndeploy-job:\n  stage: deploy\n  script:\n    - echo \"Déploiement en production...\"\n  rules:\n    - if: $CI_COMMIT_BRANCH == \"main\"  # S'exécute uniquement sur la branche principale\n```\n\nCe pipeline illustre plusieurs mécanismes clés de GitLab CI/CD : \n\n- La variable `APP_ENV` est accessible par l'ensemble des jobs. \n\n- Le `build-job` utilise une image Docker Node.js 20, met en cache les dépendances pour accélérer les exécutions suivantes, et produit un artefact, le dossier `dist/`, transmis automatiquement aux jobs suivants. \n\n- Le `test-job` démarre dès que le build est terminé grâce au mot-clé `needs:`, sans attendre la fin de l'étape entière. \n\n- Le `deploy-job` ne s'exécute que sur la branche principale, via une règle `rules:`.\n\nPour les équipes qui débutent avec le CI/CD, GitLab propose également la fonctionnalité d’**[Auto DevOps](https://docs.gitlab.com/topics/autodevops/)** qui détecte automatiquement le langage de votre projet et configure un pipeline prêt à l'emploi, sans fichier `.gitlab-ci.yml`. Auto DevOps couvre les étapes de build, de test, d'analyse de sécurité et de déploiement, et peut être personnalisé progressivement selon vos besoins.\n\n**Bon à savoir** : Comme montré dans l’exemple, GitLab peut exécuter un job à partir d’une image [Docker](https://about.gitlab.com/fr-fr/blog/what-is-docker-comprehensive-guide/ \"Qu'est-ce que Docker ?\") spécifique, définie via le mot-clé `image:` dans le fichier `.gitlab-ci.yml`. Une image par défaut peut être configurée pour l’ensemble du pipeline, tandis que chaque job peut utiliser sa propre image si nécessaire. Cette flexibilité permet d’adapter l’environnement d’exécution à chaque étape, sans maintenance manuelle de serveurs. Les images peuvent provenir du Docker Hub ou du registre de conteneurs de GitLab ([GitLab Container Registry](https://docs.gitlab.com/user/packages/container_registry/)), ce qui permet de choisir rapidement l’environnement adapté.\n\n## Les fonctionnalités avancées de GitLab CI/CD\n\n### Les variables pour personnaliser et sécuriser un pipeline\n\nLes **[variables CI/CD](https://docs.gitlab.com/ci/variables/)** permettent de **transmettre des valeurs aux jobs sans les inscrire directement dans le code.** Elles peuvent contenir des paramètres techniques, des clés d’API ou des informations sensibles.\n\n**GitLab distingue plusieurs types de variables** : personnalisées, prédéfinies, protégées, masquées ou de type fichier. Cette granularité **facilite la configuration et limite l’exposition d’informations critiques dans les logs.**\n\n### Les règles CI/CD pour rendre les pipelines dynamiques\n\nLes règles (`rules:`) permettent d'adapter la logique du pipeline en fonction du contexte d'exécution. Elles s'appuient sur des conditions comme `if:`, `changes:` ou `exists:` pour contrôler quand un job doit s'exécuter.\n\nElles permettent par exemple d'activer certaines étapes selon la branche ou de déclencher des comportements différents selon le type de pipeline exécuté. C'est un moyen d'alléger la configuration et de conserver un pipeline adaptable.\n\n### Les composants et le catalogue CI/CD pour construire des pipelines réutilisables\n\nLes **composants CI/CD ([CI/CD components](https://docs.gitlab.com/ci/components/))** sont des **blocs de configuration réutilisables**. Ils peuvent représenter un ensemble de jobs, une intégration, une logique de test ou un processus de déploiement.\n\nCes composants peuvent être publiés dans le **catalogue CI/CD ([CI/CD catalog](https://docs.gitlab.com/ci/components/#cicd-catalog))**, une spécificité de GitLab qui permet de les partager à l’échelle d’une équipe ou de l’organisation. Cela réduit la duplication des tâches et rend la maintenance des pipelines beaucoup plus souple.\n\n**Bon à savoir** : Le catalogue CI/CD inclut des composants publiés par GitLab et la communauté pour des environnements courants comme Java/Maven, ce qui évite de recréer des configurations complexes pour chaque projet.\n\n### Les groupes de ressources pour contrôler les déploiements concurrents\n\nLes **groupes de ressources** permettent de **limiter l’exécution simultanée de certains jobs.** Ils sont particulièrement utiles pour les déploiements, afin d’**éviter que deux pipelines ne modifient un même environnement au même moment.** GitLab met en file d’attente les jobs qui partagent un même groupe et n’en exécute qu'un seul à la fois.\n\n### Les environnements pour gérer et suivre les déploiements\n\nLes environnements de GitLab permettent de définir et de suivre les cibles de déploiement, comme la préproduction ou la production. Chaque déploiement est associé à un environnement, ce qui offre une traçabilité complète : qui a déployé quoi, quand et depuis quel pipeline.\n\nLes environnements peuvent être protégés pour restreindre les déploiements à certaines branches ou à certains utilisateurs, ce qui réduit les risques d'erreurs en production. GitLab affiche également l'état de chaque environnement en temps réel, directement depuis l'interface.\n\n### Les Review Apps pour tester chaque merge request dans un environnement dédié\n\nLes **environnements éphémères (ou [Review Apps](https://docs.gitlab.com/ci/review_apps/))** poussent la logique des environnements un cran plus loin : GitLab peut déployer automatiquement un environnement éphémère pour chaque merge request, accessible via un lien directement depuis l'interface. Chaque modification devient ainsi testable dans des conditions réelles, sans attendre une intégration dans la branche principale.\n\nL'environnement est détruit automatiquement à la fermeture de la merge request, ce qui évite toute accumulation de ressources inutiles. Pour les équipes qui impliquent des profils non techniques dans le processus de validation (product managers, designers, équipes QA) c'est un levier concret pour raccourcir les cycles de revue et détecter les régressions plus tôt.\n\n### Pipelines parent-enfant et multi-projets\n\nGitLab peut **déclencher un pipeline depuis un autre pipeline (modèle parent-enfant) ou orchestrer plusieurs projets dans un workflow commun (pipelines multi-projets).**\n\nCes mécanismes sont utilisés pour les architectures modulaires, les [monorepos](https://about.gitlab.com/fr-fr/blog/building-a-gitlab-ci-cd-pipeline-for-a-monorepo-the-easy-way/), les écosystèmes multicomposants ou les déploiements distribués. Ils permettent de découper les pipelines tout en conservant une coordination centralisée.\n\n## Comment GitLab CI/CD s’intègre dans votre démarche DevSecOps ?\n\nGitLab CI/CD ne se limite pas à automatiser les livraisons : il relie aussi naturellement le développement, la sécurité et les opérations ([DevSecOps](https://about.gitlab.com/fr-fr/topics/devsecops/ \"Qu'est-ce que le DevSecOps ?\")) au sein d'un même workflow.\n\n### Build, test, sécurité et déploiement dans un même environnement\n\n**GitLab CI/CD s’exécute directement là où se trouvent déjà le code, les merge requests, la sécurité et les déploiements.** Cela réduit les frictions entre équipes : les développeurs disposent d’un pipeline qui teste, analyse et prépare les déploiements, tandis que les équipes sécurité et opérations visualisent les effets de chaque modification dans un même espace.\n\n### Sécurité intégrée dans les pipelines de GitLab\n\nLes scans SAST, DAST, l’analyse des dépendances ou l’analyse des conteneurs peuvent être ajoutés comme jobs standard du pipeline, selon votre abonnement GitLab.\n\n**Comme ces fonctionnalités sont intégrées nativement, elles ne nécessitent ni outils externes ni configuration lourde.** Les résultats s’affichent dans les merge requests, ce qui permet d’aborder la sécurité en amont, sans ralentir les cycles de développement.\n\nAu-delà des scans intégrés, un job peut aussi invoquer un outil tiers comme SonarQube pour compléter l’analyse de qualité du code et détecter la dette technique.\n\n### Retour continu entre les équipes\n\nChaque pipeline fournit des logs, des rapports de tests, des alertes de sécurité et des informations sur les déploiements, consultables dans une seule interface.\n\nLes **retours sont donc immédiats** : une erreur de test, un échec de build ou une alerte de vulnérabilité apparaît directement dans la merge request. Cela **facilite les arbitrages et favorise des décisions rapides et éclairées à chaque étape du cycle de développement**.\n\n## L'IA au cœur du cycle DevSecOps avec GitLab Duo Agent Platform\n\nGitLab intègre des capacités d'IA à chaque étape du cycle de développement logiciel via **[GitLab Duo Agent Platform](https://about.gitlab.com/fr-fr/gitlab-duo-agent-platform/ \"GitLab Duo Agent Platform\")**, une plateforme d’agents spécialisés qui collaborent autour du code, des pipelines et des outils existants. L’objectif n’est pas de remplacer les équipes, mais de leur fournir des agents qui automatisent les tâches répétitives, orchestrent les workflows et accélèrent les décisions tout au long du pipeline.\n\n### Agents pour l’écriture, la revue et l’industrialisation du code \n\nAvec **GitLab Duo Agent Platform**, les capacités d’IA ne se limitent plus à de simples complétions : elle se matérialise sous forme d’**agents GitLab Duo disponibles par défaut (Foundational agents)** (proposés par GitLab, prêts à l’emploi) et d’**agents GitLab Duo personnalisés** (configurés par vos équipes) que vous pouvez adapter à vos propres projets.\n\n- **L’agent GitLab Duo orienté code (Foundational agent).** Cet agent s’appuie sur les capacités natives de GitLab Duo (complétion, génération et refactorisation de code) dans l’[IDE](https://about.gitlab.com/fr-fr/blog/what-is-an-ide/ \"Qu'est-ce qu'un IDE ?\") et le Web IDE. Il aide les équipes à écrire, adapter ou moderniser le code tout en respectant les standards et conventions de vos projets.\n\n- **L’agent GitLab Duo CI/CD personnalisé.** Avec GitLab Duo Agent Platform, il est possible de définir un agent spécialisé CI/CD : il peut générer ou corriger un fichier `.gitlab-ci.yml`, expliquer un pipeline existant, proposer des optimisations (cache, parallélisation, stratégie de runners) et diagnostiquer les erreurs de jobs. Cet agent est personnalisé par les équipes, en fonction de leurs patterns et de leurs contraintes.\n\n- **L’agent GitLab Duo Doc & Connaissance personnalisé.** En s’appuyant sur GitLab Duo Chat connecté au contexte de GitLab, un agent “Connaissance projet” permet d’interroger en langage naturel le code, les merge requests, les tickets et la configuration CI/CD pour comprendre rapidement l’état d’un projet ou la cause probable d’un échec de build. Cet agent exploite les mêmes fondations que GitLab Duo Chat, mais est spécialisé sur votre périmètre (projets, groupes) et vos règles internes.\n\nPour en savoir plus sur les agents d’IA par défaut, personnalisables et externes disponibles sur GitLab Duo Agent Platform, [consultez notre documentation](https://docs.gitlab.com/user/duo_agent_platform/agents/).  \n\n### Analyse proactive des merge requests par des agents \n\nPlutôt qu’un simple résumé automatique, GitLab Duo Agent Platform permet de confier la merge request à un **agent dédié GitLab** (par exemple l’*[agent CI Expert](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/ci_expert_agent/)*) ou à un **flow par défaut (Foundational flow) spécialisé dans la revue de code** (par exemple le flow *[Code Review](https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/code_review/)*) qui :\n\n- Synthétise les changements (fonctionnels, sécurité, performance) et met en avant les impacts majeurs.\n- Signale les risques potentiels (endroits sensibles du code, dettes techniques aggravées, modifications de contrats d’API).\n- Propose des points d’attention ciblés pour les relecteurs, voire des suggestions de corrections ou de tests manquants.\n\nCes capacités aident à réduire le temps de revue, à standardiser la qualité des merge requests et à impliquer des profils moins techniques dans l’évaluation des changements.\n\n### IA et sécurité : agents pour expliquer, corriger et gouverner les vulnérabilités \n\nAvec GitLab Duo Agent Platform, la sécurité est prise en charge par un ou plusieurs **agents orientés AppSec** (par exemple l’*[agent Security Analyst](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/security_analyst_agent/)*) qui :\n\n- Consomment les résultats des scans de sécurité (SAST, DAST, analyse des dépendances, analyse des conteneurs, etc.).\n- Expliquent chaque vulnérabilité dans le langage de l’équipe (contexte, scénario d’attaque probable, impact métier).\n- Proposent des patchs concrets ou des refactorings, que les équipes de développement peuvent appliquer et ajuster.\n- Aident à prioriser les vulnérabilités en croisant criticité, surface d’exposition, historique du projet et politiques internes.\n\nCes agents permettent de passer d’une gestion réactive des vulnérabilités à une **gouvernance continue de la posture de sécurité**, directement intégrée dans les pipelines et les merge requests.\n\n### GitLab Duo Agent Platform : vers des pipelines autonomes \n\n**GitLab Duo Agent Platform** représente l'étape suivante : non plus seulement déclencher des jobs prévus à l’avance, mais **confier des tâches complètes à des agents d’IA** capables de raisonner sur l’état du projet et du pipeline. \n\nUn agent peut par exemple analyser un échec de build, proposer un correctif, ouvrir ou mettre à jour une merge request, relancer les jobs nécessaires, ou encore alerter les bonnes personnes avec un résumé exploitable. Cette approche commence à transformer la notion même de pipeline CI/CD : nous passons d’une **automatisation statique** (des scripts fixés dans `.gitlab-ci.yml`) à une **orchestration adaptative**, où des agents spécialisés et des flows agentiques collaborent autour du pipeline pour diagnostiquer, corriger et optimiser en continu.\n\n## Pourquoi choisir GitLab CI/CD ?\n\n### Une plateforme qui simplifie le CI/CD\n\nLa plupart des outils CI reposent sur une logique d'assemblage : un outil pour le code, un autre pour les tests, un autre pour la sécurité, puis un outil de déploiement. Cette fragmentation complique la maintenance et disperse les informations entre plusieurs interfaces.\n\nGitLab adopte une **approche unifiée** : le code, les pipelines, la sécurité, la revue et les déploiements reposent sur une seule plateforme, pour des workflows plus simples et plus cohérents.\n\n### Des fonctionnalités propres à GitLab\n\nGitLab CI/CD dispose de capacités propres à la plateforme et difficiles à reproduire avec une chaîne d'outils fragmentée :\n\n- le catalogue CI/CD (CI/CD Catalog) et les composants (CI/CD components) pour standardiser les pipelines,\n- les runners hébergés par GitLab sur GitLab.com (Linux, Windows, macOS),\n- l’intégration native de la sécurité dans les pipelines,\n- l'éditeur de pipeline ([Pipeline Editor](https://docs.gitlab.com/ci/pipeline_editor/)), un éditeur intégré avec validation en temps réel et visualisation du graphe du pipeline,\n- la gestion complète des merge requests et des protections de branches intégrée au cycle CI/CD,\n- l’IA intégrée à chaque étape du cycle de développement logiciel avec GitLab Duo Agent Platform. \n\nCes éléments permettent de **construire des pipelines complets sans dépendre d’extensions ou de services externes**.\n\n### Une expérience DevSecOps unifiée\n\nComme **l’ensemble du workflow de développement repose sur un environnement unique**, chaque modification bénéficie automatiquement des tests, des analyses de sécurité, des logs de déploiement et des retours dans les merge requests.\n\n**Les équipes travaillent donc sur un cycle continu**, avec moins de ruptures contextuelles et une vue consolidée de la qualité du logiciel à chaque étape.\n\n## Par où commencer avec GitLab CI/CD ?\n\nGitLab CI/CD est conçu pour s'adapter à tous les niveaux de maturité. \n\nLes équipes qui débutent peuvent s'appuyer sur la fonctionnalité Auto DevOps pour obtenir un premier pipeline fonctionnel sans configuration, puis affiner progressivement leur fichier `.gitlab-ci.yml` au fur et à mesure que leurs besoins évoluent.\n\nPour les équipes déjà avancées, les composants du catalogue CI/CD, les pipelines DAG, les Review Apps et l'intégration native de la sécurité permettent de construire des workflows robustes, reproductibles et adaptés à des architectures complexes.\n\nGitLab Duo Agent Platform vient compléter cet ensemble en apportant une couche d'intelligence à chaque étape : assistance à la configuration, analyse des vulnérabilités, résumé des merge requests et, progressivement, des agents capables d'agir de manière autonome dans les pipelines.\n\nDans les deux cas, l'objectif reste le même : réduire le délai entre un commit et sa mise en production, tout en maintenant un niveau de qualité et de fiabilité élevé à chaque étape.\n\n> **[&rarr; Prêt à franchir le pas ? Commencez un essai gratuit de GitLab Ultimate](https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&utm_source=blog&utm_campaign=eg_emea_x_trial_x_fr_blog_fr) et explorez l'ensemble des fonctionnalités CI/CD dans votre propre environnement.**\n\n> ### GitLab CI/CD en résumé\n> GitLab CI/CD réunit dans une même plateforme l’ensemble du cycle DevSecOps : le code, les pipelines, les tests, la sécurité, les artefacts et les déploiements. Cette intégration évite la multiplication d’outils et permet de suivre chaque modification de code jusqu’à sa mise en production dans un environnement cohérent.\n>\n> Un pipeline GitLab s’appuie sur plusieurs éléments clés :\n> - un fichier `.gitlab-ci.yml` qui définit les étapes et les jobs,\n> - des runners qui exécutent les tâches,\n> - des artefacts pour transmettre ou conserver les fichiers produits,\n> - le cache pour accélérer les exécutions en évitant de re-télécharger les dépendances à chaque pipeline,\n> - des variables pour adapter le comportement du pipeline en toute sécurité,\n> - le catalogue CI/CD et les composants pour standardiser les configurations à l’échelle d’un projet ou d’une organisation.\n>\n> Cette structure offre un espace unique pour analyser les résultats des tests, vérifier les analyses de sécurité et suivre les déploiements.\n>\n> GitLab Duo Agent Platform vient enrichir cette structure en y apportant une couche d'intelligence : des agents capables d'assister la configuration, d'analyser les vulnérabilités et d'orchestrer des actions correctives de manière autonome.",[90,12,541],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1775561395/bhe1as7ttjvzltxwgo5m.png",{},"/fr-fr/blog/what-is-gitlab-ci-cd",{"config":706,"title":707,"ogTitle":707,"description":708,"ogDescription":708},{"noIndex":10},"Qu'est-ce que GitLab CI/CD ? Guide complet","Découvrez comment GitLab CI/CD automatise vos builds, tests et déploiements dans une plateforme unifiée pour des cycles de livraison plus rapides et fiables.","fr-fr/blog/what-is-gitlab-ci-cd",[534,9,544],"Hs_qfORqeBcUXbVCuXclJ_LMTAtYxWVLM2K0RLQPJJ8",[713,722,731,739,747,756,764,772,780],{"content":714,"config":720},{"title":715,"heroImage":716,"category":9,"description":717,"authors":718},"Conteneurs et machines virtuelles : quelle différence ?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1763646158/crdpd8lt5fndfzbcl9ln.jpg","Les conteneurs et les machines virtuelles sont deux approches de virtualisation aux architectures différentes. Découvrez-en davantage sur leur fonctionnement et leurs principales différences.  ",[719],"GitLab France Team",{"externalUrl":-1,"slug":721},"containers-vs-virtual-machines",{"content":723,"config":729},{"title":724,"heroImage":725,"category":9,"description":726,"authors":727},"[Rapport] Comment l'IA redéfinit le DevSecOps en 2026 ?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1768217269/rnpqe3mbm3b8unj8ksrk.png","Découvrez dans notre dernier rapport DevSecOps dédié à « L'ère du développement logiciel intelligent » comment concilier gains de productivité avec qualité, fiabilité et sécurité.",[728],"Manav Khurana",{"externalUrl":-1,"slug":730},"devsecops-report-france",{"content":732,"config":737},{"title":733,"heroImage":734,"category":9,"description":735,"authors":736},"Quels sont les avantages du DevOps ?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1767978731/pvpg5siho29b1nrgnmea.jpg","Le DevOps est une approche qui unifie Dev et Ops pour accélérer les livraisons de logiciels, automatiser les pipelines CI/CD et améliorer la fiabilité, la qualité et la collaboration des équipes à chaque étape du cycle de développement logiciel.",[719],{"externalUrl":-1,"slug":738},"devops-benefits",{"content":740,"config":745},{"title":741,"heroImage":742,"category":9,"description":743,"authors":744},"SDLC (cycle de vie du développement logiciel) : le guide complet","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098843/Blog/Hero%20Images/Blog/Hero%20Images/securitylifecycle-light_securitylifecycle-light.png_1750098843047.png","Le SDLC est une approche qui structure chaque étape du développement logiciel de la planification au déploiement pour livrer plus vite, de la manière la plus sûre et avec une qualité constante.",[719],{"externalUrl":-1,"slug":746},"what-is-sdlc",{"content":748,"config":754},{"title":749,"heroImage":750,"category":9,"description":751,"authors":752},"Maîtriser rapidement l'approche CI/CD","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756989645/fojzxakmfdea6jfqjkrl.png","L'intégration continue et la livraison continue (CI/CD) sont essentielles pour accélérer les déploiements de logiciels. Découvrez notre guide pour vous lancer.",[753],"Itzik Gan Baruch",{"externalUrl":-1,"slug":755},"how-to-learn-ci-cd-fast",{"content":757,"config":762},{"title":758,"heroImage":759,"category":9,"description":760,"authors":761},"Qu’est-ce que la conteneurisation ? Définition, avantages, usages et bonnes pratiques","https://res.cloudinary.com/about-gitlab-com/image/upload/v1763465774/wxqbtknw6fdkpg24lby0.jpg","Découvrez la conteneurisation : une technologie clé pour déployer plus vite, de manière plus stable et en toute sécurité avec GitLab.",[719],{"externalUrl":-1,"slug":763},"what-is-containerization",{"content":765,"config":770},{"title":766,"heroImage":767,"category":9,"description":768,"authors":769},"Qu’est-ce qu’un IDE ?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1761923895/ecwteacjzugixrifisoz.jpg","Découvrez les environnements de développement intégré conçus pour coder, déboguer et optimiser votre développement logiciel.",[719],{"externalUrl":-1,"slug":771},"what-is-an-ide",{"content":773,"config":778},{"title":774,"heroImage":775,"category":9,"description":776,"authors":777},"Qu'est-ce que l'approche FinOps ?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1760520341/suhp5cpbgzqikafvl7p1.jpg","Découvrez l’approche FinOps avec Gitlab : pour maîtriser vos coûts cloud, aligner IT et finance et gagner en performance.",[719],{"externalUrl":-1,"slug":779},"what-is-finops",{"content":781,"config":787},{"title":782,"heroImage":783,"category":9,"description":784,"authors":785},"Atlassian met fin à son offre Data Center tandis que GitLab maintient ses options de déploiement","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098354/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%281%29_5XrohmuWBNuqL89BxVUzWm_1750098354056.png","Atlassian fait migrer ses clients Data Center vers une solution exclusivement cloud. Découvrez les options de déploiement de GitLab adaptées aux besoins des entreprises.",[786],"Emilio Salvador",{"externalUrl":-1,"slug":788},"atlassian-ending-data-center-as-gitlab-maintains-deployment-choice",1777394084925]