[{"data":1,"prerenderedAt":848},["ShallowReactive",2],{"/fr-fr/get-started/continuous-integration/":3,"navigation-fr-fr":205,"banner-fr-fr":624,"footer-fr-fr":637},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":11,"_id":198,"_type":199,"title":200,"_source":201,"_file":202,"_stem":203,"_extension":204},"/fr-fr/get-started/continuous-integration","get-started",false,"",{"title":9,"ogTitle":9,"description":10,"ogDescription":10},"Démarrage rapide pour l'intégration continue GitLab","Vous serez guidé dans le processus de configuration d'un projet dans GitLab et de création d'une configuration CI simple en code.",[12,21,28,156],{"type":13,"componentName":13,"componentContent":14},"CommonBreadcrumbs",{"crumbs":15},[16,20],{"title":17,"config":18},"Commencer",{"href":19},"/fr-fr/get-started/",{"title":9},{"type":22,"componentName":22,"componentContent":23},"CommonArticleHero",{"title":9,"readTime":24,"text":25,"config":26},"20 min pour terminer","Bienvenue dans le guide de démarrage rapide GitLab CI, où vous serez guidé dans le processus de configuration d'un projet dans GitLab et de création d'une configuration CI simple en code. Ce guide vous permettra d'initier rapidement votre parcours avec GitLab CI.\n\nLes tâches suivantes seront décrites dans ce guide de démarrage rapide :\n\n- Établir un nouveau projet.\n- Créer votre configuration CI/CD initiale et exécuter le pipeline.\n- Accéder et examiner les résultats de l'exécution.\n- Introduire des conditions basées sur des règles pour déterminer les exécutions de tâches.\n- Exploiter la puissance des modèles de pipeline pour une intégration transparente de configurations bénéfiques.",{"bodyText":27},true,{"type":29,"componentName":29,"componentContent":30},"CommonSideNavigationWithTree",{"anchors":31,"components":62},{"text":32,"data":33},"Sur cette page",[34,38,42,46,50,54,58],{"text":35,"config":36},"Étape 1 : Créer un nouveau projet/dépôt",{"href":37},"#step-1",{"text":39,"config":40},"Étape 2 : Configurer la configuration CI",{"href":41},"#step-2",{"text":43,"config":44},"Étape 3 - Valider le changement et exécuter le pipeline",{"href":45},"#step-3",{"text":47,"config":48},"Étape 4 - Voir l'exécution du pipeline et les résultats des tests",{"href":49},"#step-4",{"text":51,"config":52},"Étape 5 - Faire échouer le pipeline",{"href":53},"#step-5",{"text":55,"config":56},"Étape 6 - Implémenter des conditions d'échec à l'échelle du pipeline",{"href":57},"#step-6",{"text":59,"config":60},"Étape 7 - Améliorer votre configuration avec des modèles de pipeline intégrés",{"href":61},"#step-7",[63,73],{"type":64,"componentName":64,"componentContent":65},"CommonCopy",{"config":66,"cards":67},{"noDecoration":27},[68],{"config":69,"title":71,"description":72},{"icon":70},"InfoTip","Avant de commencer","Assurez-vous d'avoir un compte GitLab. Si vous n'en avez pas, [inscrivez-vous ici](https://gitlab.com/users/sign_up).",{"type":74,"componentName":74,"componentContent":75},"GetStartedAccordion",{"groups":76},[77,89,116,124,132,140,148],{"config":78,"header":35,"show":80,"hide":81,"items":82},{"id":79},"step-1","Tout afficher","Tout masquer",[83,86],{"header":84,"content":85},"Aperçu de l'étape","Dans un projet, divers composants tels que votre base de code, la configuration CI, la planification, les analyses et les membres de l'équipe sont gérés. Dans ce guide, nous créerons un nouveau projet vierge, ne contenant qu'un fichier readme.",{"header":87,"content":88},"Comment procéder","* Créez un nouveau projet en cliquant sur l'icône plus à droite de la barre supérieure, et sélectionnez **Nouveau projet/dépôt**\n* Sélectionnez **Créer un projet vierge**. Sous `Nom du projet` tapez **mon-projet**.\n* Cliquez sur **Créer le projet**.\n* Félicitations ! vous avez créé avec succès votre premier projet.",{"config":90,"header":39,"show":80,"hide":81,"items":92},{"id":91},"step-2",[93,95,98,101,104,107,110,113],{"header":84,"content":94},"Dans GitLab, la configuration CI est définie en code en utilisant la syntaxe YAML. Cette configuration spécifie les instructions à la machine runner concernant l'exécution des tâches, l'ordre des tâches, les conditions des tâches, et plus encore. Pour définir la configuration CI, vous devez créer un fichier appelé **.gitlab-ci.yml**, qui doit être situé à la racine de votre dépôt. Dans ce guide, nous utiliserons l'IDE Web pour créer et modifier ce fichier.",{"header":96,"content":97},"Créer le fichier de configuration","Pour accéder à l'IDE Web, cliquez simplement sur le bouton rapide IDE Web situé dans votre projet. Une fois dans l'IDE Web, naviguez vers l'explorateur de fichiers sur le côté gauche. Faites un clic droit dans l'explorateur de fichiers et choisissez l'option **Nouveau fichier**. Nommez le fichier nouvellement créé **.gitlab-ci.yml**.",{"header":99,"content":100},"Définir les étapes du pipeline","L'ordre d'exécution des tâches est déterminé par les étapes définies dans la configuration. Dans ce guide, nous définirons trois étapes : **build, test et package,** dans cet ordre spécifique. Copiez et collez le code suivant dans le fichier **.gitlab-ci.yml** :\n\n```\n  stages:\n    - build\n    - test\n    - package\n```",{"header":102,"content":103},"Définir les tâches du pipeline","Imaginez un scénario où vous êtes chargé de créer deux fichiers texte. Il est de la plus haute importance que la concaténation de ces fichiers inclue la phrase « Hello world. » Notre objectif est de construire, **tester** et **empaqueter** cette exigence en utilisant les tâches du pipeline.",{"header":105,"content":106},"Définir une tâche de construction","Nous spécifierons une tâche de construction qui accomplit les tâches suivantes : créer un fichier texte avec le mot « Hello, » créer un autre fichier texte avec le mot « World, » et générer un troisième fichier qui stocke le contenu combiné des deux fichiers. Nous sauvegarderons le troisième fichier comme artefact, afin que les tâches suivantes dans les étapes de test et d'empaquetage puissent y accéder. Veuillez insérer le code fourni sous le bloc des étapes :\n\n```\n  build-job:\n    stage: build\n    script:\n      - echo \"Hello \" | tr -d \"\\n\" > file1.txt\n      - echo \"world\" > file2.txt\n      - cat file1.txt file2.txt > compiled.txt\n    artifacts:\n    paths:\n      - compiled.txt\n```",{"header":108,"content":109},"Définir une tâche de test","Pour valider l'intégrité de notre construction, nous incorporerons une tâche de test. Cette tâche examinera si le fichier **compiled.txt** contient effectivement la phrase attendue « Hello world ». Veuillez insérer le code suivant sous la tâche de construction :\n\n```\n  test:\n    stage: test\n    script: cat compiled.txt | grep -q 'Hello world '\n```",{"header":111,"content":112},"Définir une tâche d'empaquetage","Après la réussite du test, notre prochain objectif est de générer un package pour notre code. Pour accomplir cela, nous inclurons une tâche d'empaquetage. Il est important de noter que si le test échoue, l'ensemble du pipeline sera considéré comme non réussi et ne procédera pas. Veuillez insérer le code fourni sous la tâche de test :\n\n```\n  package:\n    stage: package\n    script: cat compiled.txt | gzip > packaged.gz\n    artifacts:\n      paths:\n        - packaged.gz\n```",{"header":114,"content":115},"Votre pipeline complet devrait ressembler à ceci","```\n  stages:          # Liste des étapes pour les tâches, et leur ordre d'exécution\n    - build\n    - test\n    - package\n\n  build-job:\n    stage: build\n    script:\n      - echo \"Hello \" | tr -d \"\\n\" > file1.txt\n      - echo \"world\" > file2.txt\n      - cat file1.txt file2.txt > compiled.txt\n    artifacts:\n      paths:\n        - compiled.txt\n\n  test:\n    stage: test\n    script: cat compiled.txt | grep -q 'Hello world'\n\n  package:\n    stage: package\n    script: cat compiled.txt | gzip > packaged.gz\n    artifacts:\n      paths:\n        - packaged.gz\n```\n\nVoici un lien vers le [fichier de configuration](https://gitlab.com/tech-marketing/ci-quickstart/-/blob/main/.gitlab-ci.yml) dans notre projet d'exemple.\n\nFélicitations !! vous avez construit votre premier pipeline CI.",{"config":117,"header":43,"show":80,"hide":81,"items":119},{"id":118},"step-3",[120,122],{"header":84,"content":121},"Pour activer l'intégration continue (CI) dans notre projet, nous devons pousser le fichier **.gitlab-ci.yml** vers le dépôt. Une fois ce fichier situé à la racine du dépôt, chaque commit effectué sur le projet initiera automatiquement un pipeline CI. Le pipeline initial commencera immédiatement après avoir poussé ce fichier vers le serveur.",{"header":87,"content":123},"* Cliquez sur l'icône Fusionner située à gauche de l'explorateur de fichiers.\n* Fournissez un message de commit tel que « Ajout de la configuration CI. »\n* Cliquez sur **Valider et pousser**.\n* Lorsque vous êtes invité avec « Valider vers une nouvelle branche ? » sélectionnez « Non, utiliser la branche actuelle main ».\n* Pour retourner à votre projet, cliquez sur le bouton **Aller au projet** situé en bas à gauche.\n\n**Félicitations ! Votre projet est maintenant configuré avec succès pour initier automatiquement un pipeline CI pour chaque commit de code.**",{"config":125,"header":47,"show":80,"hide":81,"items":127},{"id":126},"step-4",[128,130],{"header":84,"content":129},"Pendant que le pipeline s'exécute, vous pouvez surveiller son statut dans l'onglet **CI/CD**. Cette fonctionnalité vous permet de suivre facilement le progrès de vos tâches, y compris leur statut d'exécution (comme si elles ont commencé, réussi, échoué, etc.), ainsi que toute sortie générée par vos scripts de tâche.",{"header":87,"content":131},"* Naviguez vers le projet GitLab et localisez le menu de gauche.\n* Cliquez sur **CI/CD** dans le menu, cliquez sur **Pipelines**.\n* Sur la page **Pipelines**, localisez le bouton du pipeline dans la colonne **Statut**. Cliquez dessus pour ouvrir le graphique du pipeline.\n* Maintenant, vous pouvez observer les tâches et leurs statuts respectifs dans le graphique du pipeline.\n* Pour explorer une tâche spécifique, cliquez dessus pour ouvrir la console de la tâche. Cette console affiche toutes les étapes exécutées sur la machine Runner.\n* Ouvrez la console de la tâche d'empaquetage pour voir les étapes qui ont été traitées par le runner.\n* La tâche d'empaquetage génère un artefact, vous pouvez le télécharger en cliquant sur le bouton **télécharger** situé sur le côté droit.\n* En suivant ces étapes, vous pouvez efficacement suivre le statut du pipeline, inspecter les détails des tâches et récupérer tous les artefacts ou packages pertinents produits pendant l'exécution du pipeline.\n\n**Félicitations pour avoir exécuté avec succès votre premier pipeline. Le pipeline a réussi ! Vous avez maintenant vu les résultats et téléchargé l'artefact de la tâche.**",{"config":133,"header":51,"show":80,"hide":81,"items":135},{"id":134},"step-5",[136,138],{"header":84,"content":137},"Nous changerons la valeur attendue dans la tâche de test, la tâche de test échouera ainsi que l'ensemble du pipeline échouera.",{"header":87,"content":139},"* Modifiez la tâche **test** en modifiant la phrase « Hello World » en « hello world » (avec des lettres minuscules).\n* Validez les changements de code et procédez à la visualisation du pipeline, similaire à l'étape 4.\n* En inspectant le pipeline, vous observerez que la tâche de test a échoué. De plus, la tâche **package** suivante n'a pas commencé, et le pipeline lui-même a échoué comme attendu.",{"config":141,"header":55,"show":80,"hide":81,"items":143},{"id":142},"step-6",[144,146],{"header":84,"content":145},"À l'étape 5, nous avons vu que l'échec d'une tâche a fait échouer l'ensemble du pipeline. Vous pouvez introduire une logique dans votre pipeline qui détermine quand un échec de tâche causera l'échec de l'ensemble du pipeline avec les étapes suivantes :\n\n* Évaluez les conditions sous lesquelles vous voulez qu'un échec de tâche résulte en un échec de pipeline. Par exemple, vous pourriez vouloir imposer un échec de pipeline si une tâche échoue sur la branche principale ou par défaut, tout en permettant aux échecs de tâches sur d'autres branches de procéder avec le pipeline.\n* Définissez des règles qui gouvernent le comportement d'échec. Vous pouvez exploiter des variables telles que $CI_COMMIT_BRANCH pour vérifier la branche actuelle et prendre des décisions basées sur celle-ci.\n* Définissez les conditions appropriées et spécifiez si la tâche doit être marquée comme **allow_failure: false** ou **allow_failure: true**.",{"header":87,"content":147},"* Ajoutez des conditions rules/if à votre tâche de test.\n* Utilisez le mot-clé **allow_failure** défini sur **true** ou **false** basé sur la branche.\n\n```\n  test:\n    stage: test\n    script: cat compiled.txt | grep -q 'Hello world'\n    rules:\n      - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH\n        allow_failure: false\n      - if: $CI_COMMIT_BRANCH\n        allow_failure: true\n```",{"config":149,"header":59,"show":80,"hide":81,"items":151},{"id":150},"step-7",[152,154],{"header":84,"content":153},"Pour rationaliser la configuration du pipeline, vous pouvez exploiter les modèles de pipeline intégrés fournis par GitLab. Ces modèles offrent des configurations prédéfinies pour des cas d'usage courants, tels que les scans de sécurité, les déploiements AWS, etc.\n\nSuivez ces étapes pour utiliser les modèles de pipeline intégrés :\n\n* Explorez les modèles de pipeline disponibles offerts par GitLab pour divers scénarios tels que la construction, les tests, le déploiement, et plus encore. Ces modèles peuvent être trouvés [ici](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates).\n* Sélectionnez le modèle qui s'aligne avec vos exigences.\n* Incorporez le modèle dans votre configuration de pipeline en le référençant dans votre fichier **.gitlab-ci.yml**. Vous pouvez généralement faire cela en important le modèle en utilisant le mot-clé **include** et en spécifiant le chemin ou l'URL vers le fichier de modèle.\n\nDans ce guide, nous ajouterons un scan de qualité de code à notre configuration en utilisant le modèle Code-Quality.",{"header":87,"content":155},"Incluez le modèle de qualité de code à votre **.gitlab-ci.yml** en ajoutant ce code sous le bloc des étapes.\n\n```\n  include:\n    - template: Jobs/Code-Quality.gitlab-ci.yml\n```\n\nValidez et poussez ce changement.\n\nVous remarquerez qu'une tâche de qualité de code a été ajoutée à votre pipeline. Le scanner de qualité de code analysera minutieusement tous les changements de code validés dans ce dépôt, et fournira des commentaires précieux, mettant en évidence tous les problèmes de qualité de code qui nécessitent attention et amélioration. Cette perspicacité précieuse vous permet d'améliorer la qualité globale de votre base de code et d'optimiser ses performances.\n\nC'est tout ! Avec ces étapes, vous devriez pouvoir commencer avec GitLab CI et automatiser les processus de construction et de test de votre projet.",{"type":157,"componentName":157,"componentContent":158},"CommonCardGrid",{"config":159,"title":162,"cards":163},{"columns":160,"theme":161},3,"purple","Prochaines étapes",[164,176,187],{"image":165,"title":168,"description":169,"button":170},{"altText":7,"config":166},{"src":167},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663568/tcmwpweaxyr0hsh4m2bf.png?","Vous voulez en savoir plus sur GitLab CI ?","Obtenez une introduction rapide à GitLab CI dans cette vidéo informative. Parfait pour les débutants et ceux qui cherchent à améliorer leur compréhension de GitLab CI.",{"text":171,"config":172},"Démo aperçu CI",{"href":173,"dataGaName":174,"dataGaLocation":175},"https://youtu.be/WKR-7clknsA","CI overview demo","body",{"image":177,"title":180,"description":181,"button":182},{"altText":7,"config":178},{"src":179},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663863/zgovjo3vv2ik0nbim6db.png?","Utiliser les issues","Les issues GitLab sont utilisées pour suivre et gérer les tâches, bugs ou demandes de fonctionnalités dans un projet. Elles fournissent un endroit centralisé pour la collaboration afin de discuter, assigner et suivre le progrès des éléments de travail.",{"text":183,"config":184},"Issues",{"href":185,"dataGaName":186,"dataGaLocation":175},"https://docs.gitlab.com/ee/user/project/issues/","issues",{"image":188,"title":191,"description":192,"button":193},{"altText":7,"config":189},{"src":190},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663742/ggf3qelfxf5bjjopwagh.png?","Ajouter des scans de sécurité à votre pipeline","Avec les scans de sécurité intégrés de GitLab, vous pouvez facilement les incorporer dans votre configuration CI. Cela garantit que les développeurs reçoivent des commentaires instantanés concernant tous les risques potentiels dans leurs changements de code.",{"text":194,"config":195},"Sécurité des applications",{"href":196,"dataGaName":197,"dataGaLocation":175},"/blog/getting-started-with-gitlab-application-security/","Application security","content:fr-fr:get-started:continuous-integration.yml","yaml","Continuous Integration","content","fr-fr/get-started/continuous-integration.yml","fr-fr/get-started/continuous-integration","yml",{"_path":206,"_dir":207,"_draft":6,"_partial":6,"_locale":7,"data":208,"_id":620,"_type":199,"title":621,"_source":201,"_file":622,"_stem":623,"_extension":204},"/shared/fr-fr/main-navigation","fr-fr",{"logo":209,"freeTrial":214,"sales":219,"login":224,"items":229,"search":561,"minimal":597,"duo":611},{"config":210},{"href":211,"dataGaName":212,"dataGaLocation":213},"/fr-fr/","gitlab logo","header",{"text":215,"config":216},"Commencer un essai gratuit",{"href":217,"dataGaName":218,"dataGaLocation":213},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":220,"config":221},"Contacter l'équipe commerciale",{"href":222,"dataGaName":223,"dataGaLocation":213},"/fr-fr/sales/","sales",{"text":225,"config":226},"Connexion",{"href":227,"dataGaName":228,"dataGaLocation":213},"https://gitlab.com/users/sign_in/","sign in",[230,274,372,377,482,542],{"text":231,"config":232,"cards":234,"footer":257},"Plateforme",{"dataNavLevelOne":233},"platform",[235,241,249],{"title":231,"description":236,"link":237},"La plateforme DevSecOps alimentée par l'IA la plus complète",{"text":238,"config":239},"Découvrir notre plateforme",{"href":240,"dataGaName":233,"dataGaLocation":213},"/fr-fr/platform/",{"title":242,"description":243,"link":244},"GitLab Duo (IA)","Créez des logiciels plus rapidement en tirant parti de l'IA à chaque étape du développement",{"text":245,"config":246},"Découvrez GitLab Duo",{"href":247,"dataGaName":248,"dataGaLocation":213},"/fr-fr/gitlab-duo/","gitlab duo ai",{"title":250,"description":251,"link":252},"Choisir GitLab","10 raisons pour lesquelles les entreprises choisissent GitLab",{"text":253,"config":254},"En savoir plus",{"href":255,"dataGaName":256,"dataGaLocation":213},"/fr-fr/why-gitlab/","why gitlab",{"title":258,"items":259},"Démarrer avec",[260,265,270],{"text":261,"config":262},"Ingénierie de plateforme",{"href":263,"dataGaName":264,"dataGaLocation":213},"/fr-fr/solutions/platform-engineering/","platform engineering",{"text":266,"config":267},"Expérience développeur",{"href":268,"dataGaName":269,"dataGaLocation":213},"/fr-fr/developer-experience/","Developer experience",{"text":271,"config":272},"MLOps",{"href":273,"dataGaName":271,"dataGaLocation":213},"/fr-fr/topics/devops/the-role-of-ai-in-devops/",{"text":275,"left":27,"config":276,"link":278,"lists":282,"footer":354},"Produit",{"dataNavLevelOne":277},"solutions",{"text":279,"config":280},"Voir toutes les solutions",{"href":281,"dataGaName":277,"dataGaLocation":213},"/fr-fr/solutions/",[283,309,332],{"title":284,"description":285,"link":286,"items":291},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":287},{"icon":288,"href":289,"dataGaName":290,"dataGaLocation":213},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[292,296,300,305],{"text":293,"config":294},"CI/CD",{"href":295,"dataGaLocation":213,"dataGaName":293},"/fr-fr/solutions/continuous-integration/",{"text":297,"config":298},"Développement assisté par l'IA",{"href":247,"dataGaLocation":213,"dataGaName":299},"AI assisted development",{"text":301,"config":302},"Gestion du code source",{"href":303,"dataGaLocation":213,"dataGaName":304},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":306,"config":307},"Livraison de logiciels automatisée",{"href":289,"dataGaLocation":213,"dataGaName":308},"Automated software delivery",{"title":310,"description":311,"link":312,"items":317},"Securité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":313},{"href":314,"dataGaName":315,"dataGaLocation":213,"icon":316},"/fr-fr/solutions/security-compliance/","security and compliance","ShieldCheckLight",[318,323,328],{"text":319,"config":320},"Application Security Testing",{"href":321,"dataGaName":322,"dataGaLocation":213},"/solutions/application-security-testing/","Application security testing",{"text":324,"config":325},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":326,"dataGaLocation":213,"dataGaName":327},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":329,"config":330},"Software Compliance",{"href":331,"dataGaName":329,"dataGaLocation":213},"/solutions/software-compliance/",{"title":333,"link":334,"items":339},"Mesures",{"config":335},{"icon":336,"href":337,"dataGaName":338,"dataGaLocation":213},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[340,344,349],{"text":341,"config":342},"Visibilité et mesures",{"href":337,"dataGaLocation":213,"dataGaName":343},"Visibility and Measurement",{"text":345,"config":346},"Gestion de la chaîne de valeur",{"href":347,"dataGaLocation":213,"dataGaName":348},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":350,"config":351},"Données d'analyse et informations clés",{"href":352,"dataGaLocation":213,"dataGaName":353},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":355,"items":356},"GitLab pour",[357,362,367],{"text":358,"config":359},"Entreprises",{"href":360,"dataGaLocation":213,"dataGaName":361},"/fr-fr/enterprise/","enterprise",{"text":363,"config":364},"PME",{"href":365,"dataGaLocation":213,"dataGaName":366},"/fr-fr/small-business/","small business",{"text":368,"config":369},"Secteur public",{"href":370,"dataGaLocation":213,"dataGaName":371},"/fr-fr/solutions/public-sector/","public sector",{"text":373,"config":374},"Tarifs",{"href":375,"dataGaName":376,"dataGaLocation":213,"dataNavLevelOne":376},"/fr-fr/pricing/","pricing",{"text":378,"config":379,"link":381,"lists":385,"feature":469},"Ressources",{"dataNavLevelOne":380},"resources",{"text":382,"config":383},"Afficher toutes les ressources",{"href":384,"dataGaName":380,"dataGaLocation":213},"/fr-fr/resources/",[386,418,441],{"title":387,"items":388},"Premiers pas",[389,394,398,403,408,413],{"text":390,"config":391},"Installation",{"href":392,"dataGaName":393,"dataGaLocation":213},"/fr-fr/install/","install",{"text":395,"config":396},"Guides de démarrage rapide",{"href":19,"dataGaName":397,"dataGaLocation":213},"quick setup checklists",{"text":399,"config":400},"Apprentissage",{"href":401,"dataGaLocation":213,"dataGaName":402},"https://university.gitlab.com/","learn",{"text":404,"config":405},"Documentation sur le produit",{"href":406,"dataGaName":407,"dataGaLocation":213},"https://docs.gitlab.com/","product documentation",{"text":409,"config":410},"Vidéos sur les bonnes pratiques",{"href":411,"dataGaName":412,"dataGaLocation":213},"/fr-fr/getting-started-videos/","best practice videos",{"text":414,"config":415},"Intégrations",{"href":416,"dataGaName":417,"dataGaLocation":213},"/fr-fr/integrations/","integrations",{"title":419,"items":420},"Découvrir",[421,426,431,436],{"text":422,"config":423},"Histoires de succès client",{"href":424,"dataGaName":425,"dataGaLocation":213},"/fr-fr/customers/","customer success stories",{"text":427,"config":428},"Blog",{"href":429,"dataGaName":430,"dataGaLocation":213},"/fr-fr/blog/","blog",{"text":432,"config":433},"Travail à distance",{"href":434,"dataGaName":435,"dataGaLocation":213},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":437,"config":438},"TeamOps",{"href":439,"dataGaName":440,"dataGaLocation":213},"/fr-fr/teamops/","teamops",{"title":442,"items":443},"Connecter",[444,449,454,459,464],{"text":445,"config":446},"Services GitLab",{"href":447,"dataGaName":448,"dataGaLocation":213},"/fr-fr/services/","services",{"text":450,"config":451},"Communauté",{"href":452,"dataGaName":453,"dataGaLocation":213},"/community/","community",{"text":455,"config":456},"Forum",{"href":457,"dataGaName":458,"dataGaLocation":213},"https://forum.gitlab.com/","forum",{"text":460,"config":461},"Événements",{"href":462,"dataGaName":463,"dataGaLocation":213},"/events/","events",{"text":465,"config":466},"Partenaires",{"href":467,"dataGaName":468,"dataGaLocation":213},"/partners/","partners",{"backgroundColor":470,"textColor":471,"text":472,"image":473,"link":477},"#2f2a6b","#fff","L'avenir du développement logiciel. Tendances et perspectives.",{"altText":474,"config":475},"carte promo The Source",{"src":476},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":478,"config":479},"Lire les articles les plus récents",{"href":480,"dataGaName":481,"dataGaLocation":213},"/fr-fr/the-source/","the source",{"text":483,"config":484,"lists":486},"Société",{"dataNavLevelOne":485},"company",[487],{"items":488},[489,494,500,502,507,512,517,522,527,532,537],{"text":490,"config":491},"À propos",{"href":492,"dataGaName":493,"dataGaLocation":213},"/fr-fr/company/","about",{"text":495,"config":496,"footerGa":499},"Emplois",{"href":497,"dataGaName":498,"dataGaLocation":213},"/jobs/","jobs",{"dataGaName":498},{"text":460,"config":501},{"href":462,"dataGaName":463,"dataGaLocation":213},{"text":503,"config":504},"Leadership",{"href":505,"dataGaName":506,"dataGaLocation":213},"/company/team/e-group/","leadership",{"text":508,"config":509},"Équipe",{"href":510,"dataGaName":511,"dataGaLocation":213},"/company/team/","team",{"text":513,"config":514},"Manuel",{"href":515,"dataGaName":516,"dataGaLocation":213},"https://handbook.gitlab.com/","handbook",{"text":518,"config":519},"Relations avec les investisseurs",{"href":520,"dataGaName":521,"dataGaLocation":213},"https://ir.gitlab.com/","investor relations",{"text":523,"config":524},"Centre de confiance",{"href":525,"dataGaName":526,"dataGaLocation":213},"/fr-fr/security/","trust center",{"text":528,"config":529},"Centre pour la transparence de l'IA",{"href":530,"dataGaName":531,"dataGaLocation":213},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":533,"config":534},"Newsletter",{"href":535,"dataGaName":536,"dataGaLocation":213},"/company/contact/","newsletter",{"text":538,"config":539},"Presse",{"href":540,"dataGaName":541,"dataGaLocation":213},"/press/","press",{"text":543,"config":544,"lists":545},"Nous contacter",{"dataNavLevelOne":485},[546],{"items":547},[548,551,556],{"text":220,"config":549},{"href":222,"dataGaName":550,"dataGaLocation":213},"talk to sales",{"text":552,"config":553},"Aide",{"href":554,"dataGaName":555,"dataGaLocation":213},"/support/","get help",{"text":557,"config":558},"Portail clients GitLab",{"href":559,"dataGaName":560,"dataGaLocation":213},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":562,"login":563,"suggestions":570},"Fermer",{"text":564,"link":565},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":566,"config":567},"gitlab.com",{"href":227,"dataGaName":568,"dataGaLocation":569},"search login","search",{"text":571,"default":572},"Suggestions",[573,576,581,583,588,593],{"text":242,"config":574},{"href":247,"dataGaName":575,"dataGaLocation":569},"GitLab Duo (AI)",{"text":577,"config":578},"Suggestions de code (IA)",{"href":579,"dataGaName":580,"dataGaLocation":569},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":293,"config":582},{"href":295,"dataGaName":293,"dataGaLocation":569},{"text":584,"config":585},"GitLab sur AWS",{"href":586,"dataGaName":587,"dataGaLocation":569},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":589,"config":590},"GitLab sur Google Cloud ",{"href":591,"dataGaName":592,"dataGaLocation":569},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":594,"config":595},"Pourquoi utiliser GitLab ?",{"href":255,"dataGaName":596,"dataGaLocation":569},"Why GitLab?",{"freeTrial":598,"mobileIcon":603,"desktopIcon":608},{"text":599,"config":600},"Commencer votre essai gratuit",{"href":601,"dataGaName":218,"dataGaLocation":602},"https://gitlab.com/-/trials/new/","nav",{"altText":604,"config":605},"Icône GitLab",{"src":606,"dataGaName":607,"dataGaLocation":602},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":604,"config":609},{"src":610,"dataGaName":607,"dataGaLocation":602},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":612,"mobileIcon":616,"desktopIcon":618},{"text":613,"config":614},"En savoir plus sur GitLab Duo",{"href":247,"dataGaName":615,"dataGaLocation":602},"gitlab duo",{"altText":604,"config":617},{"src":606,"dataGaName":607,"dataGaLocation":602},{"altText":604,"config":619},{"src":610,"dataGaName":607,"dataGaLocation":602},"content:shared:fr-fr:main-navigation.yml","Main Navigation","shared/fr-fr/main-navigation.yml","shared/fr-fr/main-navigation",{"_path":625,"_dir":207,"_draft":6,"_partial":6,"_locale":7,"title":626,"titleMobile":626,"button":627,"config":632,"_id":634,"_type":199,"_source":201,"_file":635,"_stem":636,"_extension":204},"/shared/fr-fr/banner","La plateforme GitLab Duo Agent est maintenant disponible en version bêta publique !",{"text":628,"config":629},"Essayer la version bêta",{"href":630,"dataGaName":631,"dataGaLocation":213},"/fr-fr/gitlab-duo/agent-platform/","duo banner",{"layout":633},"release","content:shared:fr-fr:banner.yml","shared/fr-fr/banner.yml","shared/fr-fr/banner",{"_path":638,"_dir":207,"_draft":6,"_partial":6,"_locale":7,"data":639,"_id":844,"_type":199,"title":845,"_source":201,"_file":846,"_stem":847,"_extension":204},"/shared/fr-fr/main-footer",{"text":640,"source":641,"edit":647,"contribute":652,"config":657,"items":662,"minimal":835},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence",{"text":642,"config":643},"Afficher le code source de la page",{"href":644,"dataGaName":645,"dataGaLocation":646},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":648,"config":649},"Modifier cette page",{"href":650,"dataGaName":651,"dataGaLocation":646},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":653,"config":654},"Veuillez contribuer",{"href":655,"dataGaName":656,"dataGaLocation":646},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":658,"facebook":659,"youtube":660,"linkedin":661},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[663,686,740,772,806],{"title":231,"links":664,"subMenu":669},[665],{"text":666,"config":667},"Plateforme DevSecOps",{"href":240,"dataGaName":668,"dataGaLocation":646},"devsecops platform",[670],{"title":373,"links":671},[672,676,681],{"text":673,"config":674},"Voir les forfaits",{"href":375,"dataGaName":675,"dataGaLocation":646},"view plans",{"text":677,"config":678},"Pourquoi choisir GitLab Premium ?",{"href":679,"dataGaName":680,"dataGaLocation":646},"/fr-fr/pricing/premium/","why premium",{"text":682,"config":683},"Pourquoi choisir GitLab Ultimate ?",{"href":684,"dataGaName":685,"dataGaLocation":646},"/fr-fr/pricing/ultimate/","why ultimate",{"title":687,"links":688},"Solutions",[689,694,697,699,704,709,713,716,719,724,726,728,730,735],{"text":690,"config":691},"Transformation digitale",{"href":692,"dataGaName":693,"dataGaLocation":646},"/fr-fr/topics/digital-transformation/","digital transformation",{"text":695,"config":696},"Sécurité et conformité",{"href":321,"dataGaName":322,"dataGaLocation":646},{"text":306,"config":698},{"href":289,"dataGaName":290,"dataGaLocation":646},{"text":700,"config":701},"Développement agile",{"href":702,"dataGaName":703,"dataGaLocation":646},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":705,"config":706},"Transformation cloud",{"href":707,"dataGaName":708,"dataGaLocation":646},"/fr-fr/topics/cloud-native/","cloud transformation",{"text":710,"config":711},"SCM",{"href":303,"dataGaName":712,"dataGaLocation":646},"source code management",{"text":293,"config":714},{"href":295,"dataGaName":715,"dataGaLocation":646},"continuous integration & delivery",{"text":345,"config":717},{"href":347,"dataGaName":718,"dataGaLocation":646},"value stream management",{"text":720,"config":721},"GitOps",{"href":722,"dataGaName":723,"dataGaLocation":646},"/fr-fr/solutions/gitops/","gitops",{"text":358,"config":725},{"href":360,"dataGaName":361,"dataGaLocation":646},{"text":363,"config":727},{"href":365,"dataGaName":366,"dataGaLocation":646},{"text":368,"config":729},{"href":370,"dataGaName":371,"dataGaLocation":646},{"text":731,"config":732},"Formation",{"href":733,"dataGaName":734,"dataGaLocation":646},"/fr-fr/solutions/education/","education",{"text":736,"config":737},"Services financiers",{"href":738,"dataGaName":739,"dataGaLocation":646},"/fr-fr/solutions/finance/","financial services",{"title":378,"links":741},[742,744,746,748,751,753,756,758,760,762,764,766,768,770],{"text":390,"config":743},{"href":392,"dataGaName":393,"dataGaLocation":646},{"text":395,"config":745},{"href":19,"dataGaName":397,"dataGaLocation":646},{"text":399,"config":747},{"href":401,"dataGaName":402,"dataGaLocation":646},{"text":404,"config":749},{"href":406,"dataGaName":750,"dataGaLocation":646},"docs",{"text":427,"config":752},{"href":429,"dataGaName":430},{"text":754,"config":755},"Histoires de réussite client",{"href":424,"dataGaLocation":646},{"text":422,"config":757},{"href":424,"dataGaName":425,"dataGaLocation":646},{"text":432,"config":759},{"href":434,"dataGaName":435,"dataGaLocation":646},{"text":445,"config":761},{"href":447,"dataGaName":448,"dataGaLocation":646},{"text":437,"config":763},{"href":439,"dataGaName":440,"dataGaLocation":646},{"text":450,"config":765},{"href":452,"dataGaName":453,"dataGaLocation":646},{"text":455,"config":767},{"href":457,"dataGaName":458,"dataGaLocation":646},{"text":460,"config":769},{"href":462,"dataGaName":463,"dataGaLocation":646},{"text":465,"config":771},{"href":467,"dataGaName":468,"dataGaLocation":646},{"title":483,"links":773},[774,776,778,780,782,784,786,790,795,797,799,801],{"text":490,"config":775},{"href":492,"dataGaName":485,"dataGaLocation":646},{"text":495,"config":777},{"href":497,"dataGaName":498,"dataGaLocation":646},{"text":503,"config":779},{"href":505,"dataGaName":506,"dataGaLocation":646},{"text":508,"config":781},{"href":510,"dataGaName":511,"dataGaLocation":646},{"text":513,"config":783},{"href":515,"dataGaName":516,"dataGaLocation":646},{"text":518,"config":785},{"href":520,"dataGaName":521,"dataGaLocation":646},{"text":787,"config":788},"Sustainability",{"href":789,"dataGaName":787,"dataGaLocation":646},"/sustainability/",{"text":791,"config":792},"Diversité, inclusion et appartenance (DIB)",{"href":793,"dataGaName":794,"dataGaLocation":646},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":523,"config":796},{"href":525,"dataGaName":526,"dataGaLocation":646},{"text":533,"config":798},{"href":535,"dataGaName":536,"dataGaLocation":646},{"text":538,"config":800},{"href":540,"dataGaName":541,"dataGaLocation":646},{"text":802,"config":803},"Déclaration de transparence sur l'esclavage moderne",{"href":804,"dataGaName":805,"dataGaLocation":646},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":543,"links":807},[808,811,813,815,820,825,830],{"text":809,"config":810},"Échanger avec un expert",{"href":222,"dataGaName":223,"dataGaLocation":646},{"text":552,"config":812},{"href":554,"dataGaName":555,"dataGaLocation":646},{"text":557,"config":814},{"href":559,"dataGaName":560,"dataGaLocation":646},{"text":816,"config":817},"Statut",{"href":818,"dataGaName":819,"dataGaLocation":646},"https://status.gitlab.com/","status",{"text":821,"config":822},"Conditions d'utilisation",{"href":823,"dataGaName":824},"/terms/","terms of use",{"text":826,"config":827},"Déclaration de confidentialité",{"href":828,"dataGaName":829,"dataGaLocation":646},"/fr-fr/privacy/","privacy statement",{"text":831,"config":832},"Préférences en matière de cookies",{"dataGaName":833,"dataGaLocation":646,"id":834,"isOneTrustButton":27},"cookie preferences","ot-sdk-btn",{"items":836},[837,839,842],{"text":821,"config":838},{"href":823,"dataGaName":824,"dataGaLocation":646},{"text":840,"config":841},"Politique de confidentialité",{"href":828,"dataGaName":829,"dataGaLocation":646},{"text":831,"config":843},{"dataGaName":833,"dataGaLocation":646,"id":834,"isOneTrustButton":27},"content:shared:fr-fr:main-footer.yml","Main Footer","shared/fr-fr/main-footer.yml","shared/fr-fr/main-footer",1758662374706]