[{"data":1,"prerenderedAt":1887},["ShallowReactive",2],{"/fr-fr/blog/categories/ai":3,"navigation-fr-fr":21,"banner-fr-fr":448,"footer-fr-fr":457,"ai-category-page-total-items-fr-fr":697,"ai-category-page-featured-fr-fr":698,"ai-category-page-1-fr-fr":1821},{"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/ai.yml","Ai",null,{"template":8,"slug":9,"hide":10},"BlogCategory","ai",false,{"name":12},"IA","yml",{},true,"/fr-fr/blog/categories/ai",{"title":12,"description":18},"Browse articles related to IA on the GitLab Blog","fr-fr/blog/categories/ai","TgtrwCYtRQH0nt40P9C5N3qdizbg3cE4MvTzFywRo9g",{"logo":22,"freeTrial":27,"sales":32,"login":37,"items":42,"search":363,"minimal":399,"duo":418,"switchNav":427,"pricingDeployment":438},{"config":23},{"href":24,"dataGaName":25,"dataGaLocation":26},"/fr-fr/","gitlab logo","header",{"text":28,"config":29},"Commencer un essai gratuit",{"href":30,"dataGaName":31,"dataGaLocation":26},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":33,"config":34},"Contacter l’équipe commerciale",{"href":35,"dataGaName":36,"dataGaLocation":26},"/fr-fr/sales/","sales",{"text":38,"config":39},"Connexion",{"href":40,"dataGaName":41,"dataGaLocation":26},"https://gitlab.com/users/sign_in/","sign in",[43,72,174,179,282,343],{"text":44,"config":45,"menu":47},"Plateforme",{"dataNavLevelOne":46},"platform",{"type":48,"columns":49},"cards",[50,56,64],{"title":44,"description":51,"link":52},"La plateforme d’orchestration intelligente pour le DevSecOps",{"text":53,"config":54},"Explorer notre plateforme",{"href":55,"dataGaName":46,"dataGaLocation":26},"/fr-fr/platform/",{"title":57,"description":58,"link":59},"GitLab Duo Agent Platform","L’IA agentique pour l’ensemble du cycle de développement logiciel",{"text":60,"config":61},"Découvrir GitLab Duo",{"href":62,"dataGaName":63,"dataGaLocation":26},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":65,"description":66,"link":67},"Pourquoi GitLab ?","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":68,"config":69},"En savoir plus",{"href":70,"dataGaName":71,"dataGaLocation":26},"/fr-fr/why-gitlab/","why gitlab",{"text":73,"left":15,"config":74,"menu":76},"Produit",{"dataNavLevelOne":75},"solutions",{"type":77,"link":78,"columns":82,"feature":153},"lists",{"text":79,"config":80},"Voir toutes les solutions",{"href":81,"dataGaName":75,"dataGaLocation":26},"/fr-fr/solutions/",[83,108,131],{"title":84,"description":85,"link":86,"items":91},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":87},{"icon":88,"href":89,"dataGaName":90,"dataGaLocation":26},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[92,96,99,104],{"text":93,"config":94},"CI/CD",{"href":95,"dataGaLocation":26,"dataGaName":93},"/fr-fr/solutions/continuous-integration/",{"text":57,"config":97},{"href":62,"dataGaLocation":26,"dataGaName":98},"gitlab duo agent platform - product menu",{"text":100,"config":101},"Gestion du code source",{"href":102,"dataGaLocation":26,"dataGaName":103},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":105,"config":106},"Livraison de logiciels automatisée",{"href":89,"dataGaLocation":26,"dataGaName":107},"Automated software delivery",{"title":109,"description":110,"link":111,"items":116},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":112},{"href":113,"dataGaName":114,"dataGaLocation":26,"icon":115},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[117,121,126],{"text":118,"config":119},"Tests de sécurité des applications",{"href":113,"dataGaName":120,"dataGaLocation":26},"Application security testing",{"text":122,"config":123},"Sécurité de la chaîne d’approvisionnement logicielle",{"href":124,"dataGaLocation":26,"dataGaName":125},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":127,"config":128},"Conformité logicielle",{"href":129,"dataGaName":130,"dataGaLocation":26},"/fr-fr/solutions/software-compliance/","software compliance",{"title":132,"link":133,"items":138},"Mesures",{"config":134},{"icon":135,"href":136,"dataGaName":137,"dataGaLocation":26},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[139,143,148],{"text":140,"config":141},"Visibilité et mesures",{"href":136,"dataGaLocation":26,"dataGaName":142},"Visibility and Measurement",{"text":144,"config":145},"Gestion de la chaîne de valeur",{"href":146,"dataGaLocation":26,"dataGaName":147},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":149,"config":150},"Analyses et informations",{"href":151,"dataGaLocation":26,"dataGaName":152},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":154,"type":77,"items":155},"GitLab",[156,162,168],{"text":157,"config":158},"Pour les entreprises",{"icon":159,"href":160,"dataGaLocation":26,"dataGaName":161},"Building","/fr-fr/enterprise/","enterprise",{"text":163,"config":164},"Pour les PME",{"icon":165,"href":166,"dataGaLocation":26,"dataGaName":167},"Work","/fr-fr/small-business/","small business",{"text":169,"config":170},"Pour le secteur public",{"icon":171,"href":172,"dataGaLocation":26,"dataGaName":173},"Organization","/fr-fr/solutions/public-sector/","public sector",{"text":175,"config":176},"Tarifs",{"href":177,"dataGaName":178,"dataGaLocation":26,"dataNavLevelOne":178},"/fr-fr/pricing/","pricing",{"text":180,"config":181,"menu":183},"Ressources",{"dataNavLevelOne":182},"resources",{"type":77,"link":184,"columns":188,"feature":272},{"text":185,"config":186},"Afficher toutes les ressources",{"href":187,"dataGaName":182,"dataGaLocation":26},"/fr-fr/resources/",[189,222,244],{"title":190,"items":191},"Premiers pas",[192,197,202,207,212,217],{"text":193,"config":194},"Installation",{"href":195,"dataGaName":196,"dataGaLocation":26},"/fr-fr/install/","install",{"text":198,"config":199},"Guides de démarrage",{"href":200,"dataGaName":201,"dataGaLocation":26},"/fr-fr/get-started/","quick setup checklists",{"text":203,"config":204},"Apprentissage",{"href":205,"dataGaLocation":26,"dataGaName":206},"https://university.gitlab.com/","learn",{"text":208,"config":209},"Documentation",{"href":210,"dataGaName":211,"dataGaLocation":26},"https://docs.gitlab.com/","product documentation",{"text":213,"config":214},"Vidéos sur les bonnes pratiques",{"href":215,"dataGaName":216,"dataGaLocation":26},"/fr-fr/getting-started-videos/","best practice videos",{"text":218,"config":219},"Intégrations",{"href":220,"dataGaName":221,"dataGaLocation":26},"/fr-fr/integrations/","integrations",{"title":223,"items":224},"Découvrir",[225,230,235,239],{"text":226,"config":227},"Témoignages clients",{"href":228,"dataGaName":229,"dataGaLocation":26},"/fr-fr/customers/","customer success stories",{"text":231,"config":232},"Blog",{"href":233,"dataGaName":234,"dataGaLocation":26},"/fr-fr/blog/","blog",{"text":236,"config":237},"The Source",{"href":238,"dataGaName":234,"dataGaLocation":26},"/fr-fr/the-source/",{"text":240,"config":241},"Travail à distance",{"href":242,"dataGaName":243,"dataGaLocation":26},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":245,"items":246},"Connecter",[247,252,257,262,267],{"text":248,"config":249},"Services GitLab",{"href":250,"dataGaName":251,"dataGaLocation":26},"/fr-fr/services/","services",{"text":253,"config":254},"Communauté",{"href":255,"dataGaName":256,"dataGaLocation":26},"/community/","community",{"text":258,"config":259},"Forum",{"href":260,"dataGaName":261,"dataGaLocation":26},"https://forum.gitlab.com/","forum",{"text":263,"config":264},"Événements",{"href":265,"dataGaName":266,"dataGaLocation":26},"/events/","events",{"text":268,"config":269},"Partenaires",{"href":270,"dataGaName":271,"dataGaLocation":26},"/fr-fr/partners/","partners",{"config":273,"title":276,"text":277,"link":278},{"background":274,"textColor":275},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Nouveautés de GitLab","Restez informé des dernières fonctionnalités et améliorations.",{"text":279,"config":280},"Lire les articles les plus récents",{"href":238,"dataGaName":281,"dataGaLocation":26},"the source",{"text":283,"config":284,"menu":286},"Société",{"dataNavLevelOne":285},"company",{"type":77,"columns":287},[288],{"items":289},[290,295,301,303,308,313,318,323,328,333,338],{"text":291,"config":292},"À propos",{"href":293,"dataGaName":294,"dataGaLocation":26},"/fr-fr/company/","about",{"text":296,"config":297,"footerGa":300},"Carrières",{"href":298,"dataGaName":299,"dataGaLocation":26},"/jobs/","jobs",{"dataGaName":299},{"text":263,"config":302},{"href":265,"dataGaName":266,"dataGaLocation":26},{"text":304,"config":305},"Leadership",{"href":306,"dataGaName":307,"dataGaLocation":26},"/company/team/e-group/","leadership",{"text":309,"config":310},"Équipe",{"href":311,"dataGaName":312,"dataGaLocation":26},"/company/team/","team",{"text":314,"config":315},"Manuel",{"href":316,"dataGaName":317,"dataGaLocation":26},"https://handbook.gitlab.com/","handbook",{"text":319,"config":320},"Relations avec les investisseurs",{"href":321,"dataGaName":322,"dataGaLocation":26},"https://ir.gitlab.com/","investor relations",{"text":324,"config":325},"Trust Center",{"href":326,"dataGaName":327,"dataGaLocation":26},"/fr-fr/security/","trust center",{"text":329,"config":330},"Centre pour la transparence de l’IA",{"href":331,"dataGaName":332,"dataGaLocation":26},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":334,"config":335},"Newsletter",{"href":336,"dataGaName":337,"dataGaLocation":26},"/company/contact/#contact-forms","newsletter",{"text":339,"config":340},"Presse",{"href":341,"dataGaName":342,"dataGaLocation":26},"/press/","press",{"text":344,"config":345,"menu":346},"Nous contacter",{"dataNavLevelOne":285},{"type":77,"columns":347},[348],{"items":349},[350,353,358],{"text":33,"config":351},{"href":35,"dataGaName":352,"dataGaLocation":26},"talk to sales",{"text":354,"config":355},"Portail d'assistance",{"href":356,"dataGaName":357,"dataGaLocation":26},"https://support.gitlab.com","support portal",{"text":359,"config":360},"Portail clients GitLab",{"href":361,"dataGaName":362,"dataGaLocation":26},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":364,"login":365,"suggestions":372},"Fermer",{"text":366,"link":367},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":368,"config":369},"GitLab.com",{"href":40,"dataGaName":370,"dataGaLocation":371},"search login","search",{"text":373,"default":374},"Suggestions",[375,378,383,385,390,395],{"text":57,"config":376},{"href":62,"dataGaName":377,"dataGaLocation":371},"GitLab Duo Agent Platform",{"text":379,"config":380},"Suggestions de code (IA)",{"href":381,"dataGaName":382,"dataGaLocation":371},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":93,"config":384},{"href":95,"dataGaName":93,"dataGaLocation":371},{"text":386,"config":387},"GitLab sur AWS",{"href":388,"dataGaName":389,"dataGaLocation":371},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":391,"config":392},"GitLab sur Google Cloud",{"href":393,"dataGaName":394,"dataGaLocation":371},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":396,"config":397},"Pourquoi utiliser GitLab ?",{"href":70,"dataGaName":398,"dataGaLocation":371},"Why GitLab?",{"freeTrial":400,"mobileIcon":405,"desktopIcon":410,"secondaryButton":413},{"text":401,"config":402},"Commencer votre essai gratuit",{"href":403,"dataGaName":31,"dataGaLocation":404},"https://gitlab.com/-/trials/new/","nav",{"altText":406,"config":407},"Icône GitLab",{"src":408,"dataGaName":409,"dataGaLocation":404},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":406,"config":411},{"src":412,"dataGaName":409,"dataGaLocation":404},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":414,"config":415},"Commencer",{"href":416,"dataGaName":417,"dataGaLocation":404},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":419,"mobileIcon":423,"desktopIcon":425},{"text":420,"config":421},"En savoir plus sur GitLab Duo",{"href":62,"dataGaName":422,"dataGaLocation":404},"gitlab duo",{"altText":406,"config":424},{"src":408,"dataGaName":409,"dataGaLocation":404},{"altText":406,"config":426},{"src":412,"dataGaName":409,"dataGaLocation":404},{"button":428,"mobileIcon":433,"desktopIcon":435},{"text":429,"config":430},"/switch",{"href":431,"dataGaName":432,"dataGaLocation":404},"#contact","switch",{"altText":406,"config":434},{"src":408,"dataGaName":409,"dataGaLocation":404},{"altText":406,"config":436},{"src":437,"dataGaName":409,"dataGaLocation":404},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":439,"mobileIcon":444,"desktopIcon":446},{"text":440,"config":441},"Retour aux tarifs",{"href":177,"dataGaName":442,"dataGaLocation":404,"icon":443},"back to pricing","GoBack",{"altText":406,"config":445},{"src":408,"dataGaName":409,"dataGaLocation":404},{"altText":406,"config":447},{"src":412,"dataGaName":409,"dataGaLocation":404},{"title":449,"button":450,"config":455},"Découvrez comment l'IA agentique transforme la livraison logicielle",{"text":451,"config":452},"S'inscrire à GitLab Transcend le 10 juin",{"href":453,"dataGaName":454,"dataGaLocation":26},"/fr-fr/events/transcend/virtual/","transcend event",{"layout":456,"disabled":10},"release",{"data":458},{"text":459,"source":460,"edit":466,"contribute":471,"config":476,"items":481,"minimal":688},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":461,"config":462},"Afficher le code source de la page",{"href":463,"dataGaName":464,"dataGaLocation":465},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":467,"config":468},"Modifier cette page",{"href":469,"dataGaName":470,"dataGaLocation":465},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":472,"config":473},"Veuillez contribuer",{"href":474,"dataGaName":475,"dataGaLocation":465},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":477,"facebook":478,"youtube":479,"linkedin":480},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[482,529,582,626,653],{"title":175,"links":483,"subMenu":498},[484,488,493],{"text":485,"config":486},"Voir les forfaits",{"href":177,"dataGaName":487,"dataGaLocation":465},"view plans",{"text":489,"config":490},"GitLab Premium",{"href":491,"dataGaName":492,"dataGaLocation":465},"/fr-fr/pricing/premium/","why premium",{"text":494,"config":495},"GitLab Ultimate",{"href":496,"dataGaName":497,"dataGaLocation":465},"/fr-fr/pricing/ultimate/","why ultimate",[499],{"title":344,"links":500},[501,504,507,509,514,519,524],{"text":502,"config":503},"Contacter l'équipe commerciale",{"href":35,"dataGaName":36,"dataGaLocation":465},{"text":505,"config":506},"Assistance GitLab",{"href":356,"dataGaName":357,"dataGaLocation":465},{"text":359,"config":508},{"href":361,"dataGaName":362,"dataGaLocation":465},{"text":510,"config":511},"Statut",{"href":512,"dataGaName":513,"dataGaLocation":465},"https://status.gitlab.com/","status",{"text":515,"config":516},"Conditions d'utilisation",{"href":517,"dataGaName":518,"dataGaLocation":465},"/terms/","terms of use",{"text":520,"config":521},"Politique de confidentialité",{"href":522,"dataGaName":523,"dataGaLocation":465},"/fr-fr/privacy/","privacy statement",{"text":525,"config":526},"Gérer vos cookies",{"dataGaName":527,"dataGaLocation":465,"id":528,"isOneTrustButton":15},"cookie preferences","ot-sdk-btn",{"title":73,"links":530,"subMenu":539},[531,535],{"text":532,"config":533},"Plateforme DevSecOps",{"href":55,"dataGaName":534,"dataGaLocation":465},"devsecops platform",{"text":536,"config":537},"Développement assisté par l'IA",{"href":62,"dataGaName":538,"dataGaLocation":465},"ai-assisted development",[540],{"title":541,"links":542},"Thèmes",[543,547,552,557,562,567,572,577],{"text":93,"config":544},{"href":545,"dataGaName":546,"dataGaLocation":465},"/fr-fr/topics/ci-cd/","cicd",{"text":548,"config":549},"GitOps",{"href":550,"dataGaName":551,"dataGaLocation":465},"/fr-fr/topics/gitops/","gitops",{"text":553,"config":554},"DevOps",{"href":555,"dataGaName":556,"dataGaLocation":465},"/fr-fr/topics/devops/","devops",{"text":558,"config":559},"Contrôle de version",{"href":560,"dataGaName":561,"dataGaLocation":465},"/fr-fr/topics/version-control/","version control",{"text":563,"config":564},"DevSecOps",{"href":565,"dataGaName":566,"dataGaLocation":465},"/fr-fr/topics/devsecops/","devsecops",{"text":568,"config":569},"Cloud-native",{"href":570,"dataGaName":571,"dataGaLocation":465},"/fr-fr/topics/cloud-native/","cloud native",{"text":573,"config":574},"IA pour la programmation",{"href":575,"dataGaName":576,"dataGaLocation":465},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":578,"config":579},"IA agentique",{"href":580,"dataGaName":581,"dataGaLocation":465},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":583,"links":584},"Solutions",[585,588,590,595,598,601,604,607,610,613,616,621],{"text":118,"config":586},{"href":113,"dataGaName":587,"dataGaLocation":465},"Application Security Testing",{"text":105,"config":589},{"href":89,"dataGaName":90,"dataGaLocation":465},{"text":591,"config":592},"Développement Agile",{"href":593,"dataGaName":594,"dataGaLocation":465},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":100,"config":596},{"href":102,"dataGaName":597,"dataGaLocation":465},"source code management",{"text":93,"config":599},{"href":95,"dataGaName":600,"dataGaLocation":465},"continuous integration & delivery",{"text":144,"config":602},{"href":146,"dataGaName":603,"dataGaLocation":465},"value stream management",{"text":548,"config":605},{"href":606,"dataGaName":551,"dataGaLocation":465},"/fr-fr/solutions/gitops/",{"text":608,"config":609},"Entreprises",{"href":160,"dataGaName":161,"dataGaLocation":465},{"text":611,"config":612},"PME",{"href":166,"dataGaName":167,"dataGaLocation":465},{"text":614,"config":615},"Secteur public",{"href":172,"dataGaName":173,"dataGaLocation":465},{"text":617,"config":618},"Éducation",{"href":619,"dataGaName":620,"dataGaLocation":465},"/fr-fr/solutions/education/","education",{"text":622,"config":623},"Services financiers",{"href":624,"dataGaName":625,"dataGaLocation":465},"/fr-fr/solutions/finance/","financial services",{"title":180,"links":627},[628,630,632,634,637,639,641,643,645,647,649,651],{"text":193,"config":629},{"href":195,"dataGaName":196,"dataGaLocation":465},{"text":198,"config":631},{"href":200,"dataGaName":201,"dataGaLocation":465},{"text":203,"config":633},{"href":205,"dataGaName":206,"dataGaLocation":465},{"text":208,"config":635},{"href":210,"dataGaName":636,"dataGaLocation":465},"docs",{"text":231,"config":638},{"href":233,"dataGaName":234,"dataGaLocation":465},{"text":226,"config":640},{"href":228,"dataGaName":229,"dataGaLocation":465},{"text":240,"config":642},{"href":242,"dataGaName":243,"dataGaLocation":465},{"text":248,"config":644},{"href":250,"dataGaName":251,"dataGaLocation":465},{"text":253,"config":646},{"href":255,"dataGaName":256,"dataGaLocation":465},{"text":258,"config":648},{"href":260,"dataGaName":261,"dataGaLocation":465},{"text":263,"config":650},{"href":265,"dataGaName":266,"dataGaLocation":465},{"text":268,"config":652},{"href":270,"dataGaName":271,"dataGaLocation":465},{"title":283,"links":654},[655,657,659,661,663,665,667,672,677,679,681,683],{"text":291,"config":656},{"href":293,"dataGaName":285,"dataGaLocation":465},{"text":296,"config":658},{"href":298,"dataGaName":299,"dataGaLocation":465},{"text":304,"config":660},{"href":306,"dataGaName":307,"dataGaLocation":465},{"text":309,"config":662},{"href":311,"dataGaName":312,"dataGaLocation":465},{"text":314,"config":664},{"href":316,"dataGaName":317,"dataGaLocation":465},{"text":319,"config":666},{"href":321,"dataGaName":322,"dataGaLocation":465},{"text":668,"config":669},"Développement durable",{"href":670,"dataGaName":671,"dataGaLocation":465},"/sustainability/","Sustainability",{"text":673,"config":674},"Diversité, inclusion et appartenance (DIB)",{"href":675,"dataGaName":676,"dataGaLocation":465},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":324,"config":678},{"href":326,"dataGaName":327,"dataGaLocation":465},{"text":334,"config":680},{"href":336,"dataGaName":337,"dataGaLocation":465},{"text":339,"config":682},{"href":341,"dataGaName":342,"dataGaLocation":465},{"text":684,"config":685},"Déclaration de transparence sur l'esclavage moderne",{"href":686,"dataGaName":687,"dataGaLocation":465},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":689},[690,692,695],{"text":515,"config":691},{"href":517,"dataGaName":518,"dataGaLocation":465},{"text":693,"config":694},"Gestion des cookies",{"dataGaName":527,"dataGaLocation":465,"id":528,"isOneTrustButton":15},{"text":520,"config":696},{"href":522,"dataGaName":523,"dataGaLocation":465},73,{"id":699,"title":700,"authors":701,"body":703,"category":9,"date":1805,"description":1806,"extension":1807,"externalUrl":6,"featured":10,"heroImage":1808,"meta":1809,"navigation":15,"path":1810,"seo":1811,"slug":1814,"stem":1815,"tags":1816,"template":1819,"updatedDate":6,"__hash__":1820},"blogPosts/fr-fr/blog/secure-and-fast-deployments-to-google-agent-engine-with-gitlab.md","Déploiements sécurisés et rapides vers Google Agent Engine avec GitLab",[702],"Regnard Raquedan",{"type":704,"value":705,"toc":1792},"minimark",[706,730,735,738,742,751,754,777,781,784,806,809,813,816,819,864,867,873,886,889,1037,1041,1048,1405,1408,1414,1420,1425,1446,1450,1453,1473,1476,1493,1497,1500,1524,1692,1695,1699,1702,1728,1732,1741,1755,1758,1771,1788],[707,708,709,710,716,717,722,723,729],"p",{},"Dans ce tutoriel, vous apprendrez à déployer un agent d'IA créé avec l'Agent Development Kit de Google (",[711,712,715],"a",{"href":713,"rel":714},"https://google.github.io/adk-docs/",[],"ADK",") sur ",[711,718,721],{"href":719,"rel":720},"https://docs.cloud.google.com/agent-builder/agent-engine/overview?hl=fr",[],"Agent Engine"," en utilisant l'intégration native de GitLab avec Google Cloud et des ",[711,724,728],{"href":725,"rel":726,"title":727},"https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/",[],"Qu'est-ce qu'un pipeline CI/CD ?","pipelines CI/CD",". Nous aborderons la configuration de l'Identity and Access Management (IAM), la mise en place des pipelines et le test de votre agent déployé.",[731,732,734],"h2",{"id":733},"quest-ce-que-google-agent-engine","Qu'est-ce que Google Agent Engine ?",[707,736,737],{},"Agent Engine est l'environnement d'exécution géré de Google Cloud, spécialement conçu pour les agents d'IA. Il s'agit de l'environnement de production de vos agents : l'endroit où ils vivent, s'exécutent et évoluent sans que vous ayez à gérer l'infrastructure sous-jacente. Agent Engine prend en charge l'infrastructure, la mise à l'échelle, la gestion des sessions et le stockage en mémoire, afin que vous puissiez vous concentrer sur la création de votre agent plutôt que sur la gestion des serveurs. Il s'intègre également de manière native avec les outils de journalisation, de surveillance et d'IAM de Google Cloud.",[731,739,741],{"id":740},"pourquoi-utiliser-gitlab-pour-déployer-sur-agent-engine","Pourquoi utiliser GitLab pour déployer sur Agent Engine ?",[707,743,744,745,750],{},"Le déploiement d'agents d'IA est généralement difficile à configurer correctement. Les considérations de sécurité, l'orchestration ",[711,746,93],{"href":747,"rel":748,"title":749},"https://about.gitlab.com/fr-fr/topics/ci-cd/",[],"Qu'est-ce que le CI/CD ?"," et les autorisations cloud créent des frictions qui ralentissent les cycles de développement.",[707,752,753],{},"GitLab simplifie l'ensemble de ce processus tout en renforçant la sécurité :",[755,756,757,765,771],"ul",{},[758,759,760,764],"li",{},[761,762,763],"strong",{},"Scans de sécurité intégrés :"," chaque déploiement est automatiquement analysé afin de rechercher des vulnérabilités, sans configuration supplémentaire.",[758,766,767,770],{},[761,768,769],{},"Intégration native avec Google Cloud :"," la fédération d'identité de charge de travail élimine le recours aux clés de compte de service.",[758,772,773,776],{},[761,774,775],{},"CI/CD simplifié :"," les templates GitLab gèrent la logique de déploiement complexe.",[731,778,780],{"id":779},"prérequis","Prérequis",[707,782,783],{},"Avant de commencer, assurez-vous de disposer des éléments suivants :",[755,785,786,797,800,803],{},[758,787,788,789],{},"Un projet Google Cloud avec les API suivantes activées :",[755,790,791,794],{},[758,792,793],{},"API Cloud Storage",[758,795,796],{},"API Vertex AI",[758,798,799],{},"Un projet GitLab pour votre code source et votre pipeline CI/CD",[758,801,802],{},"Un bucket Google Cloud Storage pour les déploiements dans l'environnement de préproduction",[758,804,805],{},"L'intégration IAM Google Cloud configurée dans GitLab (voir l'étape 1)",[707,807,808],{},"Voici les étapes à suivre.",[731,810,812],{"id":811},"_1-configurer-lintégration-iam","1. Configurer l'intégration IAM",[707,814,815],{},"La base d'un déploiement sécurisé repose sur une configuration IAM appropriée entre GitLab et Google Cloud via la fédération d'identité de charge de travail.",[707,817,818],{},"Dans votre projet GitLab :",[820,821,822,829,835],"ol",{},[758,823,824,825,828],{},"Accédez à ",[761,826,827],{},"Paramètres > Intégrations",".",[758,830,831,832,828],{},"Recherchez l'intégration ",[761,833,834],{},"Google Cloud IAM",[758,836,837,838],{},"Renseignez les informations suivantes :",[755,839,840,846,852,858],{},[758,841,842,845],{},[761,843,844],{},"ID de projet :"," l'identifiant de votre projet Google Cloud",[758,847,848,851],{},[761,849,850],{},"Numéro du projet :"," disponible dans votre console Google Cloud",[758,853,854,857],{},[761,855,856],{},"ID du pool d'identités de charge de travail :"," un identifiant unique pour votre pool d'identités",[758,859,860,863],{},[761,861,862],{},"ID du fournisseur :"," un identifiant unique pour votre fournisseur d'identité",[707,865,866],{},"GitLab génère un script pour vous. Copiez et exécutez ce script dans Google Cloud Shell pour établir la fédération d'identité de charge de travail entre les deux plateformes.",[707,868,869,872],{},[761,870,871],{},"Important :"," ajoutez ces rôles supplémentaires à votre\nidentité de service de compte principal pour le déploiement sur Agent Engine :",[755,874,875,881],{},[758,876,877],{},[878,879,880],"code",{},"roles/aiplatform.user",[758,882,883],{},[878,884,885],{},"roles/storage.objectAdmin",[707,887,888],{},"Vous pouvez ajouter ces rôles à l'aide des commandes gcloud suivantes :",[890,891,896],"pre",{"className":892,"code":893,"language":894,"meta":895,"style":895},"language-bash shiki shiki-themes github-light","GCP_PROJECT_ID=\"\u003Cyour-project-id>\"\nGCP_PROJECT_NUMBER=\"\u003Cyour-project-number>\"\nGCP_WORKLOAD_IDENTITY_POOL=\"\u003Cyour-pool-id>\"\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/aiplatform.user'\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/storage.objectAdmin'\n","bash","",[878,897,898,915,926,937,943,963,985,994,999,1012,1029],{"__ignoreMap":895},[899,900,903,907,911],"span",{"class":901,"line":902},"line",1,[899,904,906],{"class":905},"sgsFI","GCP_PROJECT_ID",[899,908,910],{"class":909},"sD7c4","=",[899,912,914],{"class":913},"sYBdl","\"\u003Cyour-project-id>\"\n",[899,916,918,921,923],{"class":901,"line":917},2,[899,919,920],{"class":905},"GCP_PROJECT_NUMBER",[899,922,910],{"class":909},[899,924,925],{"class":913},"\"\u003Cyour-project-number>\"\n",[899,927,929,932,934],{"class":901,"line":928},3,[899,930,931],{"class":905},"GCP_WORKLOAD_IDENTITY_POOL",[899,933,910],{"class":909},[899,935,936],{"class":913},"\"\u003Cyour-pool-id>\"\n",[899,938,940],{"class":901,"line":939},4,[899,941,942],{"emptyLinePlaceholder":15},"\n",[899,944,946,950,953,956,959],{"class":901,"line":945},5,[899,947,949],{"class":948},"s7eDp","gcloud",[899,951,952],{"class":913}," projects",[899,954,955],{"class":913}," add-iam-policy-binding",[899,957,958],{"class":905}," ${GCP_PROJECT_ID} ",[899,960,962],{"class":961},"sYu0t","\\\n",[899,964,966,969,972,974,977,979,982],{"class":901,"line":965},6,[899,967,968],{"class":961},"  --member=",[899,970,971],{"class":913},"\"principalSet://iam.googleapis.com/projects/${",[899,973,920],{"class":905},[899,975,976],{"class":913},"}/locations/global/workloadIdentityPools/${",[899,978,931],{"class":905},[899,980,981],{"class":913},"}/attribute.developer_access/true\"",[899,983,984],{"class":961}," \\\n",[899,986,988,991],{"class":901,"line":987},7,[899,989,990],{"class":961},"  --role=",[899,992,993],{"class":913},"'roles/aiplatform.user'\n",[899,995,997],{"class":901,"line":996},8,[899,998,942],{"emptyLinePlaceholder":15},[899,1000,1002,1004,1006,1008,1010],{"class":901,"line":1001},9,[899,1003,949],{"class":948},[899,1005,952],{"class":913},[899,1007,955],{"class":913},[899,1009,958],{"class":905},[899,1011,962],{"class":961},[899,1013,1015,1017,1019,1021,1023,1025,1027],{"class":901,"line":1014},10,[899,1016,968],{"class":961},[899,1018,971],{"class":913},[899,1020,920],{"class":905},[899,1022,976],{"class":913},[899,1024,931],{"class":905},[899,1026,981],{"class":913},[899,1028,984],{"class":961},[899,1030,1032,1034],{"class":901,"line":1031},11,[899,1033,990],{"class":961},[899,1035,1036],{"class":913},"'roles/storage.objectAdmin'\n",[731,1038,1040],{"id":1039},"_2-créer-le-pipeline-cicd","2. Créer le pipeline CI/CD",[707,1042,1043,1044,1047],{},"Passons maintenant au cœur du déploiement : le pipeline CI/CD. Créez un fichier ",[878,1045,1046],{},".gitlab-ci.yml"," à la racine de votre projet :",[890,1049,1053],{"className":1050,"code":1051,"language":1052,"meta":895,"style":895},"language-yaml shiki shiki-themes github-light","stages:\n  - test\n  - deploy\n\ncache:\n  paths:\n    - .cache/pip\n  key: ${CI_COMMIT_REF_SLUG}\n\nvariables:\n  GCP_PROJECT_ID: \"\u003Cyour-project-id>\"\n  GCP_REGION: \"us-central1\"\n  STORAGE_BUCKET: \"\u003Cyour-staging-bucket>\"\n  AGENT_NAME: \"Canada City Advisor\"\n  AGENT_ENTRY: \"canada_city_advisor\"\n\nimage: google/cloud-sdk:slim\n\n# Security scanning templates\ninclude:\n  - template: Jobs/Dependency-Scanning.gitlab-ci.yml\n  - template: Jobs/SAST.gitlab-ci.yml\n  - template: Jobs/Secret-Detection.gitlab-ci.yml\n\ndeploy-agent:\n  stage: deploy\n  identity: google_cloud\n  rules:\n    - if: $CI_COMMIT_BRANCH == \"main\"\n  before_script:\n    - gcloud config set core/disable_usage_reporting true\n    - gcloud config set component_manager/disable_update_check true\n    - pip install -q --no-cache-dir --upgrade pip google-genai google-cloud-aiplatform -r requirements.txt --break-system-packages\n  script:\n    - gcloud config set project $GCP_PROJECT_ID\n    - adk deploy agent_engine \n        --project=$GCP_PROJECT_ID \n        --region=$GCP_REGION \n        --staging_bucket=gs://$STORAGE_BUCKET \n        --display_name=\"$AGENT_NAME\" \n        $AGENT_ENTRY\n","yaml",[878,1054,1055,1064,1072,1079,1083,1090,1097,1105,1116,1120,1127,1136,1147,1158,1169,1180,1185,1196,1201,1208,1216,1229,1241,1253,1258,1266,1276,1287,1295,1308,1316,1324,1332,1340,1348,1356,1367,1375,1383,1391,1399],{"__ignoreMap":895},[899,1056,1057,1061],{"class":901,"line":902},[899,1058,1060],{"class":1059},"shJU0","stages",[899,1062,1063],{"class":905},":\n",[899,1065,1066,1069],{"class":901,"line":917},[899,1067,1068],{"class":905},"  - ",[899,1070,1071],{"class":913},"test\n",[899,1073,1074,1076],{"class":901,"line":928},[899,1075,1068],{"class":905},[899,1077,1078],{"class":913},"deploy\n",[899,1080,1081],{"class":901,"line":939},[899,1082,942],{"emptyLinePlaceholder":15},[899,1084,1085,1088],{"class":901,"line":945},[899,1086,1087],{"class":1059},"cache",[899,1089,1063],{"class":905},[899,1091,1092,1095],{"class":901,"line":965},[899,1093,1094],{"class":1059},"  paths",[899,1096,1063],{"class":905},[899,1098,1099,1102],{"class":901,"line":987},[899,1100,1101],{"class":905},"    - ",[899,1103,1104],{"class":913},".cache/pip\n",[899,1106,1107,1110,1113],{"class":901,"line":996},[899,1108,1109],{"class":1059},"  key",[899,1111,1112],{"class":905},": ",[899,1114,1115],{"class":913},"${CI_COMMIT_REF_SLUG}\n",[899,1117,1118],{"class":901,"line":1001},[899,1119,942],{"emptyLinePlaceholder":15},[899,1121,1122,1125],{"class":901,"line":1014},[899,1123,1124],{"class":1059},"variables",[899,1126,1063],{"class":905},[899,1128,1129,1132,1134],{"class":901,"line":1031},[899,1130,1131],{"class":1059},"  GCP_PROJECT_ID",[899,1133,1112],{"class":905},[899,1135,914],{"class":913},[899,1137,1139,1142,1144],{"class":901,"line":1138},12,[899,1140,1141],{"class":1059},"  GCP_REGION",[899,1143,1112],{"class":905},[899,1145,1146],{"class":913},"\"us-central1\"\n",[899,1148,1150,1153,1155],{"class":901,"line":1149},13,[899,1151,1152],{"class":1059},"  STORAGE_BUCKET",[899,1154,1112],{"class":905},[899,1156,1157],{"class":913},"\"\u003Cyour-staging-bucket>\"\n",[899,1159,1161,1164,1166],{"class":901,"line":1160},14,[899,1162,1163],{"class":1059},"  AGENT_NAME",[899,1165,1112],{"class":905},[899,1167,1168],{"class":913},"\"Canada City Advisor\"\n",[899,1170,1172,1175,1177],{"class":901,"line":1171},15,[899,1173,1174],{"class":1059},"  AGENT_ENTRY",[899,1176,1112],{"class":905},[899,1178,1179],{"class":913},"\"canada_city_advisor\"\n",[899,1181,1183],{"class":901,"line":1182},16,[899,1184,942],{"emptyLinePlaceholder":15},[899,1186,1188,1191,1193],{"class":901,"line":1187},17,[899,1189,1190],{"class":1059},"image",[899,1192,1112],{"class":905},[899,1194,1195],{"class":913},"google/cloud-sdk:slim\n",[899,1197,1199],{"class":901,"line":1198},18,[899,1200,942],{"emptyLinePlaceholder":15},[899,1202,1204],{"class":901,"line":1203},19,[899,1205,1207],{"class":1206},"sAwPA","# Security scanning templates\n",[899,1209,1211,1214],{"class":901,"line":1210},20,[899,1212,1213],{"class":1059},"include",[899,1215,1063],{"class":905},[899,1217,1219,1221,1224,1226],{"class":901,"line":1218},21,[899,1220,1068],{"class":905},[899,1222,1223],{"class":1059},"template",[899,1225,1112],{"class":905},[899,1227,1228],{"class":913},"Jobs/Dependency-Scanning.gitlab-ci.yml\n",[899,1230,1232,1234,1236,1238],{"class":901,"line":1231},22,[899,1233,1068],{"class":905},[899,1235,1223],{"class":1059},[899,1237,1112],{"class":905},[899,1239,1240],{"class":913},"Jobs/SAST.gitlab-ci.yml\n",[899,1242,1244,1246,1248,1250],{"class":901,"line":1243},23,[899,1245,1068],{"class":905},[899,1247,1223],{"class":1059},[899,1249,1112],{"class":905},[899,1251,1252],{"class":913},"Jobs/Secret-Detection.gitlab-ci.yml\n",[899,1254,1256],{"class":901,"line":1255},24,[899,1257,942],{"emptyLinePlaceholder":15},[899,1259,1261,1264],{"class":901,"line":1260},25,[899,1262,1263],{"class":1059},"deploy-agent",[899,1265,1063],{"class":905},[899,1267,1269,1272,1274],{"class":901,"line":1268},26,[899,1270,1271],{"class":1059},"  stage",[899,1273,1112],{"class":905},[899,1275,1078],{"class":913},[899,1277,1279,1282,1284],{"class":901,"line":1278},27,[899,1280,1281],{"class":1059},"  identity",[899,1283,1112],{"class":905},[899,1285,1286],{"class":913},"google_cloud\n",[899,1288,1290,1293],{"class":901,"line":1289},28,[899,1291,1292],{"class":1059},"  rules",[899,1294,1063],{"class":905},[899,1296,1298,1300,1303,1305],{"class":901,"line":1297},29,[899,1299,1101],{"class":905},[899,1301,1302],{"class":1059},"if",[899,1304,1112],{"class":905},[899,1306,1307],{"class":913},"$CI_COMMIT_BRANCH == \"main\"\n",[899,1309,1311,1314],{"class":901,"line":1310},30,[899,1312,1313],{"class":1059},"  before_script",[899,1315,1063],{"class":905},[899,1317,1319,1321],{"class":901,"line":1318},31,[899,1320,1101],{"class":905},[899,1322,1323],{"class":913},"gcloud config set core/disable_usage_reporting true\n",[899,1325,1327,1329],{"class":901,"line":1326},32,[899,1328,1101],{"class":905},[899,1330,1331],{"class":913},"gcloud config set component_manager/disable_update_check true\n",[899,1333,1335,1337],{"class":901,"line":1334},33,[899,1336,1101],{"class":905},[899,1338,1339],{"class":913},"pip install -q --no-cache-dir --upgrade pip google-genai google-cloud-aiplatform -r requirements.txt --break-system-packages\n",[899,1341,1343,1346],{"class":901,"line":1342},34,[899,1344,1345],{"class":1059},"  script",[899,1347,1063],{"class":905},[899,1349,1351,1353],{"class":901,"line":1350},35,[899,1352,1101],{"class":905},[899,1354,1355],{"class":913},"gcloud config set project $GCP_PROJECT_ID\n",[899,1357,1359,1361,1364],{"class":901,"line":1358},36,[899,1360,1101],{"class":905},[899,1362,1363],{"class":913},"adk deploy agent_engine",[899,1365,1366],{"class":905}," \n",[899,1368,1370,1373],{"class":901,"line":1369},37,[899,1371,1372],{"class":913},"        --project=$GCP_PROJECT_ID",[899,1374,1366],{"class":905},[899,1376,1378,1381],{"class":901,"line":1377},38,[899,1379,1380],{"class":913},"        --region=$GCP_REGION",[899,1382,1366],{"class":905},[899,1384,1386,1389],{"class":901,"line":1385},39,[899,1387,1388],{"class":913},"        --staging_bucket=gs://$STORAGE_BUCKET",[899,1390,1366],{"class":905},[899,1392,1394,1397],{"class":901,"line":1393},40,[899,1395,1396],{"class":913},"        --display_name=\"$AGENT_NAME\"",[899,1398,1366],{"class":905},[899,1400,1402],{"class":901,"line":1401},41,[899,1403,1404],{"class":913},"        $AGENT_ENTRY\n",[707,1406,1407],{},"Le pipeline se compose de deux étapes :",[707,1409,1410,1413],{},[761,1411,1412],{},"Étape de test :"," les scanners de sécurité de GitLab s'exécutent automatiquement. Les templates inclus fournissent l'analyse des dépendances, les tests statiques de sécurité des applications (SAST) et la détection des secrets, sans aucune configuration supplémentaire.",[707,1415,1416,1419],{},[761,1417,1418],{},"Étape de déploiement :"," cette étape utilise l'interface de ligne de commande ADK pour déployer votre agent directement sur Agent Engine. Le bucket d'environnement de préproduction stocke temporairement votre charge de travail applicative avant qu'Agent Engine ne la récupère pour le déploiement.",[1421,1422,1424],"h3",{"id":1423},"points-clés-de-configuration","Points clés de configuration",[755,1426,1427,1434,1437,1443],{},[758,1428,1429,1430,1433],{},"Le paramètre ",[878,1431,1432],{},"identity: google_cloud"," active l'authentification sans clé via la fédération d'identité de charge de travail.",[758,1435,1436],{},"Les scanners de sécurité sont inclus sous forme de templates : ils s'exécutent par défaut sans aucune configuration requise.",[758,1438,1439,1440,1442],{},"La commande ",[878,1441,1363],{}," gère toute la complexité de l'empaquetage et du déploiement de votre agent.",[758,1444,1445],{},"La mise en cache du pipeline accélère les déploiements suivants en préservant les dépendances pip.",[731,1447,1449],{"id":1448},"_3-déployer-et-vérifier","3. Déployer et vérifier",[707,1451,1452],{},"Une fois votre pipeline configuré :",[820,1454,1455,1461,1467,1470],{},[758,1456,1457,1458,1460],{},"Validez votre code d'agent et le fichier ",[878,1459,1046],{}," dans GitLab.",[758,1462,824,1463,1466],{},[761,1464,1465],{},"Complication > Pipelines"," pour suivre l'exécution.",[758,1468,1469],{},"Observez l'étape de test effectuer les scans de sécurité.",[758,1471,1472],{},"Observez l'étape de déploiement envoyer votre agent sur Agent Engine.",[707,1474,1475],{},"Une fois le pipeline terminé avec succès, vérifiez votre déploiement dans la console Google Cloud :",[820,1477,1478,1483,1486],{},[758,1479,824,1480,828],{},[761,1481,1482],{},"Vertex AI > Agent Engine",[758,1484,1485],{},"Localisez votre agent déployé.",[758,1487,1488,1489,1492],{},"Notez le ",[761,1490,1491],{},"nom de la ressource"," : vous en aurez besoin pour les tests.",[731,1494,1496],{"id":1495},"_4-tester-votre-agent-déployé","4. Tester votre agent déployé",[707,1498,1499],{},"Testez votre agent à l'aide d'une commande curl. Vous aurez besoin des trois informations suivantes :",[755,1501,1502,1508,1514],{},[758,1503,1504,1507],{},[761,1505,1506],{},"L'ID de l'agent :"," depuis la console Agent Engine (l'identifiant numérique du nom de la ressource)",[758,1509,1510,1513],{},[761,1511,1512],{},"L'ID du projet :"," votre projet Google Cloud",[758,1515,1516,1519,1520,1523],{},[761,1517,1518],{},"L'emplacement :"," la région où vous avez effectué le déploiement (par ex., ",[878,1521,1522],{},"us-central1",")",[890,1525,1527],{"className":892,"code":1526,"language":894,"meta":895,"style":895},"PROJECT_ID=\"\u003Cyour-project-id>\"\nLOCATION=\"us-central1\"\nAGENT_ID=\"\u003Cyour-agent-id>\"\nTOKEN=$(gcloud auth print-access-token)\n\ncurl -X POST \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  \"https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/reasoningEngines/${AGENT_ID}:streamQuery\" \\\n  -d '{\n    \"input\": {\n      \"message\": \"I make $85,000 per year and I prefer cities with mild winters and a vibrant cultural scene. I also want to be near the coast if possible. What Canadian cities would you recommend?\",\n      \"user_id\": \"demo-user\"\n    }\n  }' | jq -r '.content.parts[0].text'\n",[878,1528,1529,1538,1547,1557,1578,1582,1595,1611,1620,1647,1655,1660,1665,1670,1675],{"__ignoreMap":895},[899,1530,1531,1534,1536],{"class":901,"line":902},[899,1532,1533],{"class":905},"PROJECT_ID",[899,1535,910],{"class":909},[899,1537,914],{"class":913},[899,1539,1540,1543,1545],{"class":901,"line":917},[899,1541,1542],{"class":905},"LOCATION",[899,1544,910],{"class":909},[899,1546,1146],{"class":913},[899,1548,1549,1552,1554],{"class":901,"line":928},[899,1550,1551],{"class":905},"AGENT_ID",[899,1553,910],{"class":909},[899,1555,1556],{"class":913},"\"\u003Cyour-agent-id>\"\n",[899,1558,1559,1562,1564,1567,1569,1572,1575],{"class":901,"line":939},[899,1560,1561],{"class":905},"TOKEN",[899,1563,910],{"class":909},[899,1565,1566],{"class":905},"$(",[899,1568,949],{"class":948},[899,1570,1571],{"class":913}," auth",[899,1573,1574],{"class":913}," print-access-token",[899,1576,1577],{"class":905},")\n",[899,1579,1580],{"class":901,"line":945},[899,1581,942],{"emptyLinePlaceholder":15},[899,1583,1584,1587,1590,1593],{"class":901,"line":965},[899,1585,1586],{"class":948},"curl",[899,1588,1589],{"class":961}," -X",[899,1591,1592],{"class":913}," POST",[899,1594,984],{"class":961},[899,1596,1597,1600,1603,1606,1609],{"class":901,"line":987},[899,1598,1599],{"class":961},"  -H",[899,1601,1602],{"class":913}," \"Authorization: Bearer ",[899,1604,1605],{"class":905},"$TOKEN",[899,1607,1608],{"class":913},"\"",[899,1610,984],{"class":961},[899,1612,1613,1615,1618],{"class":901,"line":996},[899,1614,1599],{"class":961},[899,1616,1617],{"class":913}," \"Content-Type: application/json\"",[899,1619,984],{"class":961},[899,1621,1622,1625,1627,1630,1632,1635,1637,1640,1642,1645],{"class":901,"line":1001},[899,1623,1624],{"class":913},"  \"https://${",[899,1626,1542],{"class":905},[899,1628,1629],{"class":913},"}-aiplatform.googleapis.com/v1/projects/${",[899,1631,1533],{"class":905},[899,1633,1634],{"class":913},"}/locations/${",[899,1636,1542],{"class":905},[899,1638,1639],{"class":913},"}/reasoningEngines/${",[899,1641,1551],{"class":905},[899,1643,1644],{"class":913},"}:streamQuery\"",[899,1646,984],{"class":961},[899,1648,1649,1652],{"class":901,"line":1014},[899,1650,1651],{"class":961},"  -d",[899,1653,1654],{"class":913}," '{\n",[899,1656,1657],{"class":901,"line":1031},[899,1658,1659],{"class":913},"    \"input\": {\n",[899,1661,1662],{"class":901,"line":1138},[899,1663,1664],{"class":913},"      \"message\": \"I make $85,000 per year and I prefer cities with mild winters and a vibrant cultural scene. I also want to be near the coast if possible. What Canadian cities would you recommend?\",\n",[899,1666,1667],{"class":901,"line":1149},[899,1668,1669],{"class":913},"      \"user_id\": \"demo-user\"\n",[899,1671,1672],{"class":901,"line":1160},[899,1673,1674],{"class":913},"    }\n",[899,1676,1677,1680,1683,1686,1689],{"class":901,"line":1171},[899,1678,1679],{"class":913},"  }'",[899,1681,1682],{"class":909}," |",[899,1684,1685],{"class":948}," jq",[899,1687,1688],{"class":961}," -r",[899,1690,1691],{"class":913}," '.content.parts[0].text'\n",[707,1693,1694],{},"Si tout est correctement configuré, votre agent répondra avec des recommandations de villes personnalisées en fonction du budget et des préférences de style de vie fournis.",[731,1696,1698],{"id":1697},"avantages-de-cette-approche-en-matière-de-sécurité","Avantages de cette approche en matière de sécurité",[707,1700,1701],{},"Ce modèle de déploiement offre plusieurs avantages en matière de sécurité :",[755,1703,1704,1710,1716,1722],{},[758,1705,1706,1709],{},[761,1707,1708],{},"Aucune information d'identification de longue durée :"," la fédération d'identité de charge de travail élimine totalement les clés de compte de service.",[758,1711,1712,1715],{},[761,1713,1714],{},"Analyse automatisée des vulnérabilités :"," chaque déploiement est analysé avant d'atteindre la production.",[758,1717,1718,1721],{},[761,1719,1720],{},"Traçabilité complète :"," GitLab assure une visibilité totale sur qui a déployé quoi et quand.",[758,1723,1724,1727],{},[761,1725,1726],{},"Principe du moindre privilège :"," les rôles IAM granulaires limitent l'accès au strict nécessaire.",[731,1729,1731],{"id":1730},"résumé","Résumé",[707,1733,1734,1735,1740],{},"Déployer des agents d'IA en production ne doit pas nécessairement être complexe. En combinant la plateforme ",[711,1736,563],{"href":1737,"rel":1738,"title":1739},"https://about.gitlab.com/fr-fr/topics/devsecops/",[],"Qu'est-ce que le DevSecOps ?"," de GitLab avec Agent Engine de Google Cloud, vous bénéficiez :",[755,1742,1743,1746,1749,1752],{},[758,1744,1745],{},"D'un environnement d'exécution géré qui prend en charge la mise à l'échelle et l'infrastructure",[758,1747,1748],{},"De scans de sécurité intégrés sans outils supplémentaires",[758,1750,1751],{},"D'une authentification sans clé via l'intégration native avec le cloud",[758,1753,1754],{},"D'un processus de déploiement simplifié, adapté aux workflows de développement d'IA modernes",[707,1756,1757],{},"Visionnez la démonstration complète :",[1759,1760,1763],"figure",{"className":1761},[1762],"video_container",[1764,1765,1770],"iframe",{"src":1766,"frameBorder":1767,"allowFullScreen":1768,"title":1769},"https://www.youtube.com/embed/sxVFa2Mk-x4?si=Oi3cUjhgd7FT2yEd","0","true","Déployer des agents d'IA sur Agent Engine avec GitLab"," ",[1772,1773,1774],"blockquote",{},[707,1775,1776,1777,1782,1783,828],{},"Prêt à essayer ? Utilisez l'",[711,1778,1781],{"href":1779,"rel":1780},"https://gitlab.com/gitlab-partners-public/google-cloud/demos/agent-engine-demo",[],"exemple de code complet"," de ce tutoriel pour démarrer dès maintenant. Vous n'êtes pas encore client GitLab ? Commencez un ",[711,1784,1787],{"href":1785,"rel":1786},"https://about.gitlab.com/fr-fr/free-trial/?utm_medium=blog&utm_source=blog&utm_campaign=eg_emea_x_trial_x_fr_blog_fr",[],"essai gratuit",[1789,1790,1791],"style",{},"html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}",{"title":895,"searchDepth":917,"depth":917,"links":1793},[1794,1795,1796,1797,1798,1801,1802,1803,1804],{"id":733,"depth":917,"text":734},{"id":740,"depth":917,"text":741},{"id":779,"depth":917,"text":780},{"id":811,"depth":917,"text":812},{"id":1039,"depth":917,"text":1040,"children":1799},[1800],{"id":1423,"depth":928,"text":1424},{"id":1448,"depth":917,"text":1449},{"id":1495,"depth":917,"text":1496},{"id":1697,"depth":917,"text":1698},{"id":1730,"depth":917,"text":1731},"2026-05-04","Découvrez comment créer un agent d'IA avec l'Agent Development Kit de Google et le déployer sur Agent Engine à l'aide de GitLab.","md","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1772111172/mwhgbjawn62kymfwrhle.png",{},"/fr-fr/blog/secure-and-fast-deployments-to-google-agent-engine-with-gitlab",{"config":1812,"title":1813,"description":1806},{"noIndex":10},"Déploiements sécurisés vers Agent Engine avec GitLab","secure-and-fast-deployments-to-google-agent-engine-with-gitlab","fr-fr/blog/secure-and-fast-deployments-to-google-agent-engine-with-gitlab",[1817,1818,93,563],"AI","google","BlogPost","lraol2JwUjyQleXCsWqgt81i-0I_bI9TLophFmfzvbc",[1822,1829,1836,1843,1851,1858,1866,1873,1880],{"title":1823,"heroImage":1824,"category":9,"description":1825,"authors":1826,"slug":1828,"externalUrl":6},"GitLab et Anthropic : l'IA gouvernée pour le développement en entreprise","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776457632/llddiylsgwuze0u1rjks.png","GitLab renforce son intégration d'Anthropic Claude avec une IA gouvernée, de nouveaux modèles et une flexibilité cloud pour le développement logiciel en entreprise.",[1827],"Stuart Moncada","gitlab-and-anthropic-governed-ai-for-enterprise-development",{"title":1830,"heroImage":1831,"category":9,"description":1832,"authors":1833,"slug":1835,"externalUrl":6},"GitLab et Vertex AI sur Google Cloud : vers un développement logiciel agentique","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663121/Blog/Hero%20Images/LogoLockupPlusLight.png","Découvrez comment les clients Google Cloud adoptent GitLab et Vertex AI pour les modèles de base, les contrôles d'entreprise et la richesse de Model Garden.\n",[702,1834],"Rajesh Agadi","gitlab-and-vertex-ai-on-google-cloud",{"title":1837,"heroImage":1838,"category":9,"description":1839,"authors":1840,"slug":1842,"externalUrl":6},"Accélérez votre développement avec GitLab Duo Agent Platform et Claude","https://res.cloudinary.com/about-gitlab-com/image/upload/v1772058602/epl3sinfezlzxnppxak6.png","Découvrez comment tirer parti des modèles d'IA externes comme Claude d'Anthropic pour automatiser la génération de code et la création de pipelines directement dans GitLab.",[1841],"Cesar Saavedra","gitlab-duo-agent-platform-with-claude-accelerates-development",{"title":1844,"heroImage":1845,"category":9,"description":1846,"authors":1847,"slug":1850,"externalUrl":6},"Accélérer l'innovation dans la chaîne de développement logiciel avec GitLab Duo Agent Platform et AWS Bedrock","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1751464636/htrk5th3q0tq1rcfntkp.png","Enjeux actuels, vision de GitLab et cas d'usage concrets : découvrez comment une orchestration intelligente des agents d'IA peut transformer votre organisation.",[1848,1849],"Olivier Dupré","Charlotte Delbosc","gitlab-duo-agent-platform-and-aws-bedrock",{"title":1852,"heroImage":1853,"category":9,"description":1854,"authors":1855,"slug":1857,"externalUrl":6},"Vulnérabilités détectées par l'IA : qui gouverne les risques ?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1772195014/ooezwusxjl1f7ijfmbvj.png","La détection des vulnérabilités assistée par l'IA évolue rapidement, mais les défis plus complexes liés à l'application, à la gouvernance et à la sécurité de la chaîne d'approvisionnement nécessitent une plateforme avec une approche globale.",[1856],"Omer Azaria","ai-can-detect-vulnerabilities-but-who-governs-risk",{"title":1859,"heroImage":1860,"category":9,"description":1861,"authors":1862,"slug":1865,"externalUrl":6},"Comment utiliser GitLab Duo Agent Platform pour développer, déployer et débugger vos applications","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774626763/l3ttq79pitna0el8ivlt.png","GitLab Duo Agent Platform est la plateforme d'orchestration intelligente de GitLab pour le DevSecOps. En disponibilité générale depuis janvier 2026, GitLab Duo Agent Platform intègre des agents spécialisés capables de planifier, coder, relire, débugger et sécuriser des applications de manière autonome.",[1863,1864],"Chloe Cartron","Chloe Liban","how-to-use-gitlab-duo-agent-platform-in-the-sdlc",{"title":1867,"heroImage":1868,"category":9,"description":1869,"authors":1870,"slug":1872,"externalUrl":6},"GitLab Duo Agent Platform et MCP : connectez tous vos outils","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1772643639/sapu29gmlgtwvhggmj6k.png","Découvrez comment connecter des outils externes à GitLab Duo Agent Platform via le MCP avec une configuration pas à pas et trois démonstrations pratiques.",[1871],"Albert Rabassa","extend-gitlab-duo-agent-platform-connect-any-tool-with-mcp",{"title":1874,"heroImage":1875,"category":9,"description":1876,"authors":1877,"slug":1879,"externalUrl":6},"SDLC agentique : orchestration intelligente avec GitLab et TCS","https://res.cloudinary.com/about-gitlab-com/image/upload/v1771866240/l16gpgupgz8uelyc8jfy.png","Déployez une approche DevSecOps à grande échelle grâce aux agents d'IA qui collaborent avec les équipes pour automatiser les workflows, appliquer la conformité et accélérer la livraison logicielle.",[1878],"GitLab France Team","agentic-sdlc-gitlab-and-tcs-deliver-intelligent-orchestration-across-the-enterprise",{"title":1881,"heroImage":1882,"category":9,"description":1883,"authors":1884,"slug":1886,"externalUrl":6},"10 prompts IA pour accélérer votre livraison logicielle","https://res.cloudinary.com/about-gitlab-com/image/upload/v1772632341/duj8vaznbhtyxxhodb17.png","Éliminez les backlogs de révision, les délais de sécurité et la coordination manuelle grâce à des invites IA prêtes à l'emploi couvrant chaque étape du cycle de développement logiciel.\n",[1885],"Chandler Gibbons","10-ai-prompts-to-speed-your-teams-software-delivery",1778622485048]