[{"data":1,"prerenderedAt":733},["ShallowReactive",2],{"/fr-fr/topics/gitops/gitlab-enables-infrastructure-as-code":3,"navigation-fr-fr":99,"banner-fr-fr":505,"footer-fr-fr":515,"next-steps-fr-fr":724},{"id":4,"title":5,"body":6,"category":6,"config":6,"content":7,"description":6,"extension":89,"meta":90,"navigation":91,"path":92,"seo":93,"slug":6,"stem":97,"testContent":6,"type":6,"__hash__":98},"pages/fr-fr/topics/gitops/gitlab-enables-infrastructure-as-code/index.yml","",null,[8,22,30,87],{"type":9,"componentName":9,"componentContent":10},"CommonBreadcrumbs",{"crumbs":11},[12,16,20],{"title":13,"config":14},"Industry topics",{"href":15},"/topics/",{"title":17,"config":18},"GitOps",{"href":19},"/fr-fr/topics/gitops/",{"title":21},"L'Infrastructure as Code avec GitLab et Terraform",{"type":23,"componentName":23,"componentContent":24},"CommonArticleHero",{"title":25,"text":26,"config":27},"Comment utiliser GitLab et Terraform pour déployer l'Infrastructure as Code : démo","Cette démonstration montre comment suivre une bonne pratique GitOps pour déployer l'Infrastructure as Code en utilisant Terraform pour l'automatisation et GitLab comme source unique de vérité.\n",{"id":28,"twoColumns":29},"learn-how-git-lab-enables-infrastructure-as-code",false,{"type":31,"componentName":31,"componentContent":32},"CommonSideNavigationWithTree",{"anchors":33,"components":56},{"text":34,"data":35},"Sommaire",[36,40,44,48,52],{"text":37,"config":38},"Comment GitLab facilite l'Infrastructure as Code ?",{"href":39},"#learn-how-git-lab-enables-infrastructure-as-code",{"text":41,"config":42},"Construisez votre Infrastructure as Code dans GitLab",{"href":43},"#building-your-infrastructure-as-code-in-git-lab",{"text":45,"config":46},"À l'intérieur du sous-groupe de l'infrastructure",{"href":47},"#inside-the-infrastructure-subgroup",{"text":49,"config":50},"Déploiement de code à l'aide de l'intégration continue de GitLab",{"href":51},"#deploying-code-using-git-lab-ci",{"text":53,"config":54},"Vous souhaitez en savoir plus sur GitOps ?",{"href":55},"#ready-to-learn-more-about-git-ops",[57,63,67,72,77,82],{"type":58,"componentName":58,"componentContent":59},"TopicsCopy",{"header":60,"text":61,"config":62},"Qu'est-ce que l'Infrastructure as Code ?","L'Infrastructure as Code (IaC) désigne la pratique consistant à gérer et à provisionner l'infrastructure informatique (serveurs, bases de données et réseaux) à l'aide de fichiers de configuration lisibles par machine, plutôt que par des processus manuels. En définissant l'infrastructure dans le code, les équipes peuvent gérer les versions, effectuer des tests et automatiser les déploiements de manière cohérente et reproductible, exactement comme elles le font pour le code applicatif. \n\n\nL'IaC accélère la livraison, réduit la dérive de configuration et améliore la collaboration entre les équipes de développement, d'exploitation et de sécurité. Associée à des workflows basés sur [Git](https://about.gitlab.com/fr-fr/blog/2024/10/08/what-is-git/ \"Qu'est-ce que Git ?\") comme GitOps, l'IaC devient le socle d'une automatisation d'infrastructure cloud évolutive et sécurisée. \n\n\nLorsque plusieurs équipes utilisent un dépôt Git comme source unique de vérité pour l'ensemble du code d'[infrastructure](https://about.gitlab.com/fr-fr/blog/using-ansible-and-gitlab-as-infrastructure-for-code/) et de déploiement d'applications, elles appliquent une bonne pratique GitOps. Les équipes Infrastructure peuvent collaborer et déployer du code vers plusieurs services cloud en utilisant Terraform pour l'automatisation. Cet article explique comment les équipes peuvent créer un cluster [Kubernetes](https://about.gitlab.com/fr-fr/blog/kubernetes-the-container-orchestration-solution/ \"Qu'est-ce que Kubernetes ?\") en collaborant avec leurs collègues au sein de GitLab.\n",{"id":5},{"type":58,"componentName":58,"componentContent":64},{"header":37,"text":65,"config":66},"Cette démonstration montre comment suivre une bonne pratique GitOps pour déployer l'Infrastructure as Code en utilisant Terraform pour l'automatisation et GitLab comme source unique de vérité et CI.\n",{"id":28},{"type":58,"componentName":58,"componentContent":68},{"header":41,"text":69,"config":70},"### Premiers pas\n\n_Ce [groupe gitops-demo](https://gitlab.com/gitops-demo) illustre les étapes que les équipes Infrastructure peuvent suivre._\n\nCommencez par vous connecter au groupe où se trouve le projet dans GitLab.\n\nL'étape suivante consiste à ouvrir le fichier [README.md](https://gitlab.com/gitops-demo/readme/blob/master/README.md), qui présente la structure sous-jacente du groupe gitops-demo. Il existe quelques projets individuels et deux sous-groupes : **[infrastructure](https://gitlab.com/gitops-demo/infra)** et **[applications](https://gitlab.com/gitops-demo/apps)**.\n",{"id":71},"building-your-infrastructure-as-code-in-git-lab",{"type":58,"componentName":58,"componentContent":73},{"header":45,"text":74,"config":75},"Il existe un dépôt distinct pour chaque cloud : Azure, GCP et AWS, ainsi qu'un dépôt pour les templates. Tous les fichiers sont écrits dans Terraform pour automatiser le processus de déploiement, tandis qu'un fichier `gitlab-ci.yml` est également stocké dans chaque dépôt pour fournir des instructions d'automatisation.\n\n\n### Le fichier backend\n\n\nL'utilisation du [service Terraform Cloud](https://www.hashicorp.com/blog/announcing-terraform-cloud) d'HashiCorp comme emplacement distant pour le fichier d'état permet de sécuriser ce dernier et de le placer dans un emplacement central afin qu'il soit accessible par n'importe quel processus. \n\n\nL'un des avantages de Terraform Cloud est qu'il peut verrouiller l'état pour s'assurer qu'un seul job peut être exécuté à la fois, empêchant ainsi plusieurs jobs d'effectuer des modifications contradictoires. Le code stocke les fichiers d'état de [Terraform Cloud](https://app.terraform.io) dans une organisation appelée `gitops-demo` dans un espace de travail dénommé `aws`. Cela permet de conserver l'état d'exécution dans le fournisseur de services cloud, de sorte que n'importe quel membre de l'équipe peut y accéder à tout moment. \n\n```shell\nterraform {\n  backend \"remote\" {\n    hostname     = \"app.terraform.io\"\n    organization = \"gitops-demo\"\n    workspaces {\n      name = \"aws\"\n    }\n  }\n}\n```\n\n\nLes blocs de données dans la configuration Terraform permettent de récupérer des informations déjà existantes sur AWS lors de l'exécution du plan.\n\n\n### Le fichier EKS.tf\n\n\nEKS est un autre fichier Terraform qui exploite le module EKS pour le cluster Terraform. Les équipes peuvent définir des paramètres tels que le type de sous-réseaux (`subnets`), le nom du cluster (`cluster_name`) et le nombre de nœuds dans le fichier terraform EKS.\n\n```text\nmodule \"eks\" {\n  source           = \"terraform-aws-modules/eks/aws\"\n  cluster_name     = \"gitops-demo-eks\"\n  subnets          = \"${module.vpc.public_subnets}\"\n  write_kubeconfig = \"false\"\n  tags = {\n    Terraform   = \"true\"\n    Environment = \"dev\"\n  }\n  vpc_id = \"${module.vpc.vpc_id}\"\n  worker_groups = [\n    {\n      instance_type = \"m4.large\"\n      asg_max_size  = 5\n      tags = [{\n        key                 = \"Terraform\"\n        value               = \"true\"\n        propagate_at_launch = true\n      }]\n    }\n  ]\n}\n```\n\n### Définir l'administrateur GitLab \n\n\nLe fournisseur Kubernetes peut être utilisé pour créer un utilisateur administrateur GitLab, configuré [automatiquement en tant que code et géré par Terraform](https://gitlab.com/gitops-demo/infra/aws/blob/master/gitlab-admin.tf).\n\n### Enregistrer le cluster avec GitLab \n\n\nMaintenant qu'un cluster Kubernetes a été créé, il est temps de l'enregistrer auprès de GitLab afin de déployer plus de code sur le cluster à l'avenir. La première étape consiste à utiliser le fournisseur GitLab pour créer un cluster de groupe nommé `aws_cluster`.\n\n\n\n```text\ndata \"gitlab_group\" \"gitops-demo-apps\" {\n  full_path = \"gitops-demo/apps\"\n}\n\nprovider \"gitlab\" {\n  alias   = \"use-pre-release-plugin\"\n  version = \"v2.99.0\"\n}\n\nresource \"gitlab_group_cluster\" \"aws_cluster\" {\n  provider           = \"gitlab.use-pre-release-plugin\"\n  group              = \"${data.gitlab_group.gitops-demo-apps.id}\"\n  name               = \"${module.eks.cluster_id}\"\n  domain             = \"eks.gitops-demo.com\"\n  environment_scope  = \"eks/*\"\n  kubernetes_api_url = \"${module.eks.cluster_endpoint}\"\n  kubernetes_token   = \"${data.kubernetes_secret.gitlab-admin-token.data.token}\"\n  kubernetes_ca_cert = \"${trimspace(base64decode(module.eks.cluster_certificate_authority_data))}\"\n}\n```\n\nLe code contient le nom de domaine, la portée de l'environnement et les identifiants Kubernetes. \n\n\nAprès cela, le cluster sera créé dans AWS et automatiquement enregistré dans le groupe [gitops-demo/apps](https://gitlab.com/gitops-demo/apps).\n",{"id":76},"inside-the-infrastructure-subgroup",{"type":58,"componentName":58,"componentContent":78},{"header":49,"text":79,"config":80},"### Template Terraform\n\nAccédez au groupe **infra** et ouvrez le dossier **Templates**. En consultant le [fichier terraform.gitlab-ci.yml](https://gitlab.com/gitops-demo/infra/templates/blob/master/terraform.gitlab-ci.yml), il est possible de voir comment l’intégration continue fonctionne pour déployer le code d'infrastructure dans le cloud à l'aide de Terraform.\n\nDans le fichier terraform.gitlab-ci.yml, les équipes peuvent voir un certain nombre d'étapes : valider, planifier, appliquer et détruire. En utilisant l'image de base Terraform d'Hashicorp, les utilisateurs peuvent exécuter différentes tâches.\n\nLa première étape consiste à initialiser Terraform.\n\n```\nbefore_script:\n  - terraform --version\n  - terraform init\n  - apk add --update curl\n  - curl -o kubectl https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/kubectl\n  - install kubectl /usr/local/bin/ && rm kubectl\n  - curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/aws-iam-authenticator\n  - install aws-iam-authenticator /usr/local/bin/ && rm aws-iam-authenticator\n```\n\n\nL'étape suivante consiste à valider que tout est correct.\n\n```\nvalidate:\n  stage: validate\n  script:\n    - terraform validate\n    - terraform fmt -check=true\n  only:\n    - branches\n```\n\n\nIl est important de se rappeler que les bons workflows GitOps intègrent la création d'une [merge request](/blog/mr-reviews-with-vs-code/){data-ga-name=\"merge request\" data-ga-location=\"body\"} pour les modifications.\n\nCe processus garantit que tout le **code** et les **fichiers** Terraform sont validés avant d'être fusionnés, assurant la cohérence et la qualité du déploiement.\n\n```\nmerge review:\n  stage: plan\n  script:\n    - terraform plan -out=$PLAN\n    - echo \\`\\`\\`diff > plan.txt\n    - terraform show -no-color ${PLAN} | tee -a plan.txt\n    - echo \\`\\`\\` >> plan.txt\n    - sed -i -e 's/  +/+/g' plan.txt\n    - sed -i -e 's/  ~/~/g' plan.txt\n    - sed -i -e 's/  -/-/g' plan.txt\n    - MESSAGE=$(cat plan.txt)\n    - >-\n      curl -X POST -g -H \"PRIVATE-TOKEN: ${GITLAB_TOKEN}\"\n      --data-urlencode \"body=${MESSAGE}\"\n      \"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/merge_requests/${CI_MERGE_REQUEST_IID}/discussions\"\n  artifacts:\n    name: plan\n    paths:\n      - $PLAN\n  only:\n    - merge_requests\n```\n\n\n### La merge request\n\nLa [merge request](https://gitlab.com/gitops-demo/infra/aws/merge_requests/6){data-ga-name=\"MR\" data-ga-location=\"body\"} est l'étape la plus importante dans l'approche GitOps. Il s'agit du processus permettant d'examiner toutes les modifications et de voir leur impact. La merge request est également un [outil de collaboration](/blog/merge-request-reviewers/){data-ga-name = \"collaboration tool\" data-ga-location = \"body\"} où les membres de l'équipe peuvent discuter des modifications et où les parties prenantes peuvent approuver les modifications avant qu’elles ne soient fusionnées dans la branche principale.\n\nLa merge request définit ce qui se produira lors de l'exécution de l'Infrastructure as Code. Le plan Terraform est téléchargé vers la merge request, une fois que celle-ci est créée. Quand toutes les modifications ont été examinées et approuvées, le code peut être fusionné dans la branche principale. Une fois les modifications de code fusionnées, toutes les modifications seront déployées en production.\n",{"id":81},"deploying-code-using-git-lab-ci",{"type":58,"componentName":58,"componentContent":83},{"header":53,"text":84,"config":85},"* [Que signifie Infrastructure as Code ?](/fr-fr/topics/gitops/infrastructure-as-code/){data-ga-name=\"infrastructure as code\" data-ga-location=\"body\"}\n* [Qu'est-ce que GitOps ?](/fr-fr/topics/gitops/){data-ga-name=\"what is gitops\" data-ga-location=\"body\"}\n* [Découvrez comment GitLab rationalise les workflows GitOps](/fr-fr/solutions/gitops/){data-ga-name=\"streamlines workflows\" data-ga-location=\"body\"}\n* [Lisez le guide du débutant sur GitOps](https://page.gitlab.com/resources-ebook-beginner-guide-gitops.html)\n",{"id":86},"ready-to-learn-more-about-git-ops",{"type":88,"componentName":88},"CommonNextSteps","yml",{},true,"/fr-fr/topics/gitops/gitlab-enables-infrastructure-as-code",{"title":94,"description":95,"config":96},"Déployez l’IaC avec GitLab et Terraform","Déployez l'Infrastructure as Code en utilisant Terraform pour l'automatisation et GitLab comme source unique de vérité.",{"ignoreTitleCharLimit":91},"fr-fr/topics/gitops/gitlab-enables-infrastructure-as-code/index","887EyjxqcZnqZiwWNBYk-JIftUrA5TIUkA6F2RgcQcw",{"data":100},{"logo":101,"freeTrial":106,"sales":111,"login":116,"items":121,"search":431,"minimal":466,"duo":485,"pricingDeployment":495},{"config":102},{"href":103,"dataGaName":104,"dataGaLocation":105},"/fr-fr/","gitlab logo","header",{"text":107,"config":108},"Commencer un essai gratuit",{"href":109,"dataGaName":110,"dataGaLocation":105},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":112,"config":113},"Contacter l'équipe commerciale",{"href":114,"dataGaName":115,"dataGaLocation":105},"/fr-fr/sales/","sales",{"text":117,"config":118},"Connexion",{"href":119,"dataGaName":120,"dataGaLocation":105},"https://gitlab.com/users/sign_in/","sign in",[122,149,246,251,352,412],{"text":123,"config":124,"cards":126},"Plateforme",{"dataNavLevelOne":125},"platform",[127,133,141],{"title":123,"description":128,"link":129},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":130,"config":131},"Découvrir notre plateforme",{"href":132,"dataGaName":125,"dataGaLocation":105},"/fr-fr/platform/",{"title":134,"description":135,"link":136},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":137,"config":138},"Découvrir GitLab Duo",{"href":139,"dataGaName":140,"dataGaLocation":105},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":142,"description":143,"link":144},"Choisir GitLab","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":145,"config":146},"En savoir plus",{"href":147,"dataGaName":148,"dataGaLocation":105},"/fr-fr/why-gitlab/","why gitlab",{"text":150,"left":91,"config":151,"link":153,"lists":157,"footer":228},"Produit",{"dataNavLevelOne":152},"solutions",{"text":154,"config":155},"Voir toutes les solutions",{"href":156,"dataGaName":152,"dataGaLocation":105},"/fr-fr/solutions/",[158,183,206],{"title":159,"description":160,"link":161,"items":166},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":162},{"icon":163,"href":164,"dataGaName":165,"dataGaLocation":105},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[167,171,174,179],{"text":168,"config":169},"CI/CD",{"href":170,"dataGaLocation":105,"dataGaName":168},"/fr-fr/solutions/continuous-integration/",{"text":134,"config":172},{"href":139,"dataGaLocation":105,"dataGaName":173},"gitlab duo agent platform - product menu",{"text":175,"config":176},"Gestion du code source",{"href":177,"dataGaLocation":105,"dataGaName":178},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":180,"config":181},"Livraison de logiciels automatisée",{"href":164,"dataGaLocation":105,"dataGaName":182},"Automated software delivery",{"title":184,"description":185,"link":186,"items":191},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":187},{"href":188,"dataGaName":189,"dataGaLocation":105,"icon":190},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[192,196,201],{"text":193,"config":194},"Tests de sécurité des applications",{"href":188,"dataGaName":195,"dataGaLocation":105},"Application security testing",{"text":197,"config":198},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":199,"dataGaLocation":105,"dataGaName":200},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":202,"config":203},"Conformité logicielle",{"href":204,"dataGaName":205,"dataGaLocation":105},"/fr-fr/solutions/software-compliance/","Software Compliance",{"title":207,"link":208,"items":213},"Mesures",{"config":209},{"icon":210,"href":211,"dataGaName":212,"dataGaLocation":105},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[214,218,223],{"text":215,"config":216},"Visibilité et mesures",{"href":211,"dataGaLocation":105,"dataGaName":217},"Visibility and Measurement",{"text":219,"config":220},"Gestion de la chaîne de valeur",{"href":221,"dataGaLocation":105,"dataGaName":222},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":224,"config":225},"Données d'analyse et informations clés",{"href":226,"dataGaLocation":105,"dataGaName":227},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":229,"items":230},"GitLab pour",[231,236,241],{"text":232,"config":233},"Entreprises",{"href":234,"dataGaLocation":105,"dataGaName":235},"/fr-fr/enterprise/","enterprise",{"text":237,"config":238},"PME",{"href":239,"dataGaLocation":105,"dataGaName":240},"/fr-fr/small-business/","small business",{"text":242,"config":243},"Secteur public",{"href":244,"dataGaLocation":105,"dataGaName":245},"/fr-fr/solutions/public-sector/","public sector",{"text":247,"config":248},"Tarifs",{"href":249,"dataGaName":250,"dataGaLocation":105,"dataNavLevelOne":250},"/fr-fr/pricing/","pricing",{"text":252,"config":253,"link":255,"lists":259,"feature":339},"Ressources",{"dataNavLevelOne":254},"resources",{"text":256,"config":257},"Afficher toutes les ressources",{"href":258,"dataGaName":254,"dataGaLocation":105},"/fr-fr/resources/",[260,293,311],{"title":261,"items":262},"Premiers pas",[263,268,273,278,283,288],{"text":264,"config":265},"Installation",{"href":266,"dataGaName":267,"dataGaLocation":105},"/fr-fr/install/","install",{"text":269,"config":270},"Guides de démarrage",{"href":271,"dataGaName":272,"dataGaLocation":105},"/fr-fr/get-started/","quick setup checklists",{"text":274,"config":275},"Apprentissage",{"href":276,"dataGaLocation":105,"dataGaName":277},"https://university.gitlab.com/","learn",{"text":279,"config":280},"Documentation sur le produit",{"href":281,"dataGaName":282,"dataGaLocation":105},"https://docs.gitlab.com/","product documentation",{"text":284,"config":285},"Vidéos sur les bonnes pratiques",{"href":286,"dataGaName":287,"dataGaLocation":105},"/fr-fr/getting-started-videos/","best practice videos",{"text":289,"config":290},"Intégrations",{"href":291,"dataGaName":292,"dataGaLocation":105},"/fr-fr/integrations/","integrations",{"title":294,"items":295},"Découvrir",[296,301,306],{"text":297,"config":298},"Témoignages clients",{"href":299,"dataGaName":300,"dataGaLocation":105},"/fr-fr/customers/","customer success stories",{"text":302,"config":303},"Blog",{"href":304,"dataGaName":305,"dataGaLocation":105},"/fr-fr/blog/","blog",{"text":307,"config":308},"Travail à distance",{"href":309,"dataGaName":310,"dataGaLocation":105},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":312,"items":313},"Connecter",[314,319,324,329,334],{"text":315,"config":316},"Services GitLab",{"href":317,"dataGaName":318,"dataGaLocation":105},"/fr-fr/services/","services",{"text":320,"config":321},"Communauté",{"href":322,"dataGaName":323,"dataGaLocation":105},"/community/","community",{"text":325,"config":326},"Forum",{"href":327,"dataGaName":328,"dataGaLocation":105},"https://forum.gitlab.com/","forum",{"text":330,"config":331},"Événements",{"href":332,"dataGaName":333,"dataGaLocation":105},"/events/","events",{"text":335,"config":336},"Partenaires",{"href":337,"dataGaName":338,"dataGaLocation":105},"/fr-fr/partners/","partners",{"backgroundColor":340,"textColor":341,"text":342,"image":343,"link":347},"#2f2a6b","#fff","L'avenir du développement logiciel. Tendances et perspectives.",{"altText":344,"config":345},"carte promo The Source",{"src":346},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":348,"config":349},"Lire les articles les plus récents",{"href":350,"dataGaName":351,"dataGaLocation":105},"/fr-fr/the-source/","the source",{"text":353,"config":354,"lists":356},"Société",{"dataNavLevelOne":355},"company",[357],{"items":358},[359,364,370,372,377,382,387,392,397,402,407],{"text":360,"config":361},"À propos",{"href":362,"dataGaName":363,"dataGaLocation":105},"/fr-fr/company/","about",{"text":365,"config":366,"footerGa":369},"Carrières",{"href":367,"dataGaName":368,"dataGaLocation":105},"/jobs/","jobs",{"dataGaName":368},{"text":330,"config":371},{"href":332,"dataGaName":333,"dataGaLocation":105},{"text":373,"config":374},"Leadership",{"href":375,"dataGaName":376,"dataGaLocation":105},"/company/team/e-group/","leadership",{"text":378,"config":379},"Équipe",{"href":380,"dataGaName":381,"dataGaLocation":105},"/company/team/","team",{"text":383,"config":384},"Manuel",{"href":385,"dataGaName":386,"dataGaLocation":105},"https://handbook.gitlab.com/","handbook",{"text":388,"config":389},"Relations avec les investisseurs",{"href":390,"dataGaName":391,"dataGaLocation":105},"https://ir.gitlab.com/","investor relations",{"text":393,"config":394},"Centre de confiance",{"href":395,"dataGaName":396,"dataGaLocation":105},"/fr-fr/security/","trust center",{"text":398,"config":399},"Centre pour la transparence de l'IA",{"href":400,"dataGaName":401,"dataGaLocation":105},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":403,"config":404},"Newsletter",{"href":405,"dataGaName":406,"dataGaLocation":105},"/company/contact/#contact-forms","newsletter",{"text":408,"config":409},"Presse",{"href":410,"dataGaName":411,"dataGaLocation":105},"/press/","press",{"text":413,"config":414,"lists":415},"Nous contacter",{"dataNavLevelOne":355},[416],{"items":417},[418,421,426],{"text":112,"config":419},{"href":114,"dataGaName":420,"dataGaLocation":105},"talk to sales",{"text":422,"config":423},"Portail d’assistance",{"href":424,"dataGaName":425,"dataGaLocation":105},"https://support.gitlab.com","support portal",{"text":427,"config":428},"Portail clients GitLab",{"href":429,"dataGaName":430,"dataGaLocation":105},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":432,"login":433,"suggestions":440},"Fermer",{"text":434,"link":435},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":436,"config":437},"gitlab.com",{"href":119,"dataGaName":438,"dataGaLocation":439},"search login","search",{"text":441,"default":442},"Suggestions",[443,445,450,452,457,462],{"text":134,"config":444},{"href":139,"dataGaName":134,"dataGaLocation":439},{"text":446,"config":447},"Suggestions de code (IA)",{"href":448,"dataGaName":449,"dataGaLocation":439},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":168,"config":451},{"href":170,"dataGaName":168,"dataGaLocation":439},{"text":453,"config":454},"GitLab sur AWS",{"href":455,"dataGaName":456,"dataGaLocation":439},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":458,"config":459},"GitLab sur Google Cloud ",{"href":460,"dataGaName":461,"dataGaLocation":439},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":463,"config":464},"Pourquoi utiliser GitLab ?",{"href":147,"dataGaName":465,"dataGaLocation":439},"Why GitLab?",{"freeTrial":467,"mobileIcon":472,"desktopIcon":477,"secondaryButton":480},{"text":468,"config":469},"Commencer votre essai gratuit",{"href":470,"dataGaName":110,"dataGaLocation":471},"https://gitlab.com/-/trials/new/","nav",{"altText":473,"config":474},"Icône GitLab",{"src":475,"dataGaName":476,"dataGaLocation":471},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":473,"config":478},{"src":479,"dataGaName":476,"dataGaLocation":471},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":481,"config":482},"Commencer",{"href":483,"dataGaName":484,"dataGaLocation":471},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/compare/gitlab-vs-github/","get started",{"freeTrial":486,"mobileIcon":491,"desktopIcon":493},{"text":487,"config":488},"En savoir plus sur GitLab Duo",{"href":489,"dataGaName":490,"dataGaLocation":471},"/fr-fr/gitlab-duo/","gitlab duo",{"altText":473,"config":492},{"src":475,"dataGaName":476,"dataGaLocation":471},{"altText":473,"config":494},{"src":479,"dataGaName":476,"dataGaLocation":471},{"freeTrial":496,"mobileIcon":501,"desktopIcon":503},{"text":497,"config":498},"Retour aux tarifs",{"href":249,"dataGaName":499,"dataGaLocation":471,"icon":500},"back to pricing","GoBack",{"altText":473,"config":502},{"src":475,"dataGaName":476,"dataGaLocation":471},{"altText":473,"config":504},{"src":479,"dataGaName":476,"dataGaLocation":471},{"title":506,"button":507,"config":512},"Découvrez comment l'IA agentique transforme la livraison logicielle",{"text":508,"config":509},"Regarder GitLab Transcend maintenant",{"href":510,"dataGaName":511,"dataGaLocation":105},"/fr-fr/events/transcend/virtual/","transcend event",{"layout":513,"icon":514},"release","AiStar",{"data":516},{"text":517,"source":518,"edit":524,"contribute":529,"config":534,"items":539,"minimal":715},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence",{"text":519,"config":520},"Afficher le code source de la page",{"href":521,"dataGaName":522,"dataGaLocation":523},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":525,"config":526},"Modifier cette page",{"href":527,"dataGaName":528,"dataGaLocation":523},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":530,"config":531},"Veuillez contribuer",{"href":532,"dataGaName":533,"dataGaLocation":523},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":535,"facebook":536,"youtube":537,"linkedin":538},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[540,563,616,648,683],{"title":123,"links":541,"subMenu":546},[542],{"text":543,"config":544},"Plateforme DevSecOps",{"href":132,"dataGaName":545,"dataGaLocation":523},"devsecops platform",[547],{"title":247,"links":548},[549,553,558],{"text":550,"config":551},"Voir les forfaits",{"href":249,"dataGaName":552,"dataGaLocation":523},"view plans",{"text":554,"config":555},"Pourquoi choisir GitLab Premium ?",{"href":556,"dataGaName":557,"dataGaLocation":523},"/fr-fr/pricing/premium/","why premium",{"text":559,"config":560},"Pourquoi choisir GitLab Ultimate ?",{"href":561,"dataGaName":562,"dataGaLocation":523},"/fr-fr/pricing/ultimate/","why ultimate",{"title":564,"links":565},"Solutions",[566,571,574,576,581,586,590,593,596,600,602,604,606,611],{"text":567,"config":568},"Transformation digitale",{"href":569,"dataGaName":570,"dataGaLocation":523},"/fr-fr/topics/digital-transformation/","digital transformation",{"text":572,"config":573},"Sécurité et conformité",{"href":188,"dataGaName":195,"dataGaLocation":523},{"text":180,"config":575},{"href":164,"dataGaName":165,"dataGaLocation":523},{"text":577,"config":578},"Développement agile",{"href":579,"dataGaName":580,"dataGaLocation":523},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":582,"config":583},"Transformation cloud",{"href":584,"dataGaName":585,"dataGaLocation":523},"/fr-fr/topics/cloud-native/","cloud transformation",{"text":587,"config":588},"SCM",{"href":177,"dataGaName":589,"dataGaLocation":523},"source code management",{"text":168,"config":591},{"href":170,"dataGaName":592,"dataGaLocation":523},"continuous integration & delivery",{"text":219,"config":594},{"href":221,"dataGaName":595,"dataGaLocation":523},"value stream management",{"text":17,"config":597},{"href":598,"dataGaName":599,"dataGaLocation":523},"/fr-fr/solutions/gitops/","gitops",{"text":232,"config":601},{"href":234,"dataGaName":235,"dataGaLocation":523},{"text":237,"config":603},{"href":239,"dataGaName":240,"dataGaLocation":523},{"text":242,"config":605},{"href":244,"dataGaName":245,"dataGaLocation":523},{"text":607,"config":608},"Formation",{"href":609,"dataGaName":610,"dataGaLocation":523},"/fr-fr/solutions/education/","education",{"text":612,"config":613},"Services financiers",{"href":614,"dataGaName":615,"dataGaLocation":523},"/fr-fr/solutions/finance/","financial services",{"title":252,"links":617},[618,620,623,625,628,630,633,636,638,640,642,644,646],{"text":264,"config":619},{"href":266,"dataGaName":267,"dataGaLocation":523},{"text":621,"config":622},"Guides de démarrage rapide",{"href":271,"dataGaName":272,"dataGaLocation":523},{"text":274,"config":624},{"href":276,"dataGaName":277,"dataGaLocation":523},{"text":279,"config":626},{"href":281,"dataGaName":627,"dataGaLocation":523},"docs",{"text":302,"config":629},{"href":304,"dataGaName":305},{"text":631,"config":632},"Histoires de réussite client",{"href":299,"dataGaLocation":523},{"text":634,"config":635},"Histoires de succès client",{"href":299,"dataGaName":300,"dataGaLocation":523},{"text":307,"config":637},{"href":309,"dataGaName":310,"dataGaLocation":523},{"text":315,"config":639},{"href":317,"dataGaName":318,"dataGaLocation":523},{"text":320,"config":641},{"href":322,"dataGaName":323,"dataGaLocation":523},{"text":325,"config":643},{"href":327,"dataGaName":328,"dataGaLocation":523},{"text":330,"config":645},{"href":332,"dataGaName":333,"dataGaLocation":523},{"text":335,"config":647},{"href":337,"dataGaName":338,"dataGaLocation":523},{"title":353,"links":649},[650,652,655,657,659,661,663,667,672,674,676,678],{"text":360,"config":651},{"href":362,"dataGaName":355,"dataGaLocation":523},{"text":653,"config":654},"Emplois",{"href":367,"dataGaName":368,"dataGaLocation":523},{"text":373,"config":656},{"href":375,"dataGaName":376,"dataGaLocation":523},{"text":378,"config":658},{"href":380,"dataGaName":381,"dataGaLocation":523},{"text":383,"config":660},{"href":385,"dataGaName":386,"dataGaLocation":523},{"text":388,"config":662},{"href":390,"dataGaName":391,"dataGaLocation":523},{"text":664,"config":665},"Sustainability",{"href":666,"dataGaName":664,"dataGaLocation":523},"/sustainability/",{"text":668,"config":669},"Diversité, inclusion et appartenance (DIB)",{"href":670,"dataGaName":671,"dataGaLocation":523},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":393,"config":673},{"href":395,"dataGaName":396,"dataGaLocation":523},{"text":403,"config":675},{"href":405,"dataGaName":406,"dataGaLocation":523},{"text":408,"config":677},{"href":410,"dataGaName":411,"dataGaLocation":523},{"text":679,"config":680},"Déclaration de transparence sur l'esclavage moderne",{"href":681,"dataGaName":682,"dataGaLocation":523},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":413,"links":684},[685,688,693,695,700,705,710],{"text":686,"config":687},"Échanger avec un expert",{"href":114,"dataGaName":115,"dataGaLocation":523},{"text":689,"config":690},"Aide",{"href":691,"dataGaName":692,"dataGaLocation":523},"/support/","get help",{"text":427,"config":694},{"href":429,"dataGaName":430,"dataGaLocation":523},{"text":696,"config":697},"Statut",{"href":698,"dataGaName":699,"dataGaLocation":523},"https://status.gitlab.com/","status",{"text":701,"config":702},"Conditions d'utilisation",{"href":703,"dataGaName":704},"/terms/","terms of use",{"text":706,"config":707},"Déclaration de confidentialité",{"href":708,"dataGaName":709,"dataGaLocation":523},"/fr-fr/privacy/","privacy statement",{"text":711,"config":712},"Préférences en matière de cookies",{"dataGaName":713,"dataGaLocation":523,"id":714,"isOneTrustButton":91},"cookie preferences","ot-sdk-btn",{"items":716},[717,719,722],{"text":701,"config":718},{"href":703,"dataGaName":704,"dataGaLocation":523},{"text":720,"config":721},"Politique de confidentialité",{"href":708,"dataGaName":709,"dataGaLocation":523},{"text":711,"config":723},{"dataGaName":713,"dataGaLocation":523,"id":714,"isOneTrustButton":91},{"header":725,"blurb":726,"button":727,"secondaryButton":731},"Commencez à développer plus rapidement dès aujourd'hui","Découvrez ce que votre équipe peut accomplir avec la plateforme d'orchestration intelligente pour le DevSecOps.\n",{"text":107,"config":728},{"href":729,"dataGaName":110,"dataGaLocation":730},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":112,"config":732},{"href":114,"dataGaName":115,"dataGaLocation":730},1772652097372]