GitLab est la plateforme DevSecOps alimentée par l'IA la plus complète, qui permet de livrer rapidement des logiciels plus sécurisés depuis une seule et même plateforme pour l'ensemble de votre cycle de développement logiciel. De son côté, GitHub fournit un module d'extension appelé Advanced Security, qui, comme son nom l'indique, active des fonctionnalités de sécurité supplémentaires dans GitHub, mais ne dispose pas de la profondeur et de l'étendue des fonctionnalités de sécurité fournies nativement par GitLab.
Si vous souhaitez passer à GitLab Ultimate pour améliorer votre sécurité dans tous les domaines du SDLC, utilisez ce guide pour comparer les deux offres et effectuer votre migration.
Comparaison entre GitLab Ultimate et GitHub Advanced Security
GitLab Ultimate est le niveau d'abonnement de GitLab dédié aux entreprises qui cherchent à livrer des logiciels sécurisés plus rapidement. GitHub Advanced Security est un module d'extension de GitHub Enterprise, qui active des fonctionnalités de sécurité supplémentaires.
Quelles sont les similitudes entre GitLab Ultimate et GitHub Advanced Security ?
GitLab Ultimate et GitHub Advanced Security fournissent tous deux :
- des tests statiques de sécurité des applications (SAST), une analyse des secrets et une analyse des dépendances
- une veille contextualisée recensant les vulnérabilités et des conseils pour y remédier
- une liste des dépendances ou des nomenclatures logicielles (SBOM)
- des métriques et des informations clés sur la sécurité
Quelles sont les différences entre GitLab Ultimate et GitHub Advanced Security ?
GitLab Ultimate diffère de GitHub Advanced Security de la manière suivante :
- GitLab fournit nativement des scanners de code de sécurité supplémentaires tels que l'analyse des conteneurs, les tests dynamiques de sécurité des applications (DAST), les tests d’API Web par injection de données aléatoires, et plus encore. Ces scanners sont un mélange de technologies propriétaires et open source optimisées avec des ensembles de règles personnalisés. Pour une liste complète, consultez notre documentation pour sécuriser votre application avec GitLab.
- GitLab fournit des garde-fous de sécurité granulaires pour empêcher que du code non sécurisé soit fusionné sans approbation.
- Les scanners de sécurité de GitLab peuvent être exécutés dans des environnements isolés ou à connectivité limitée.
- GitLab fournit un Centre de conformité qui permet de surveiller les violations des exigences de conformité dans l'ensemble de l'entreprise.
GitLab Ultimate fournit également des fonctionnalités supplémentaires en matière de sécurité et de conformité, de gestion de portefeuilles et de la chaîne de valeur, d'assistance à la mise à niveau en direct et bien plus encore. Consultez notre documentation GitLab Ultimate pour en savoir plus sur ces fonctionnalités supplémentaires.
Comment migrer un dépôt GitHub vers GitLab ?
GitLab fournit un outil d'importation intégré qui vous permet d'importer vos projets GitHub depuis GitHub.com ou GitHub Enterprise vers GitLab. Cet outil vous permet de migrer non seulement le dépôt GitHub vers GitLab, mais également plusieurs autres éléments, notamment des tickets, des collaborateurs (membres) et des pull requests. Pour obtenir la liste complète de ce qui peut être migré, consultez notre documentation.
Vous pouvez effectuer votre migration de GitHub vers GitLab en suivant les étapes ci-dessous :
- Dans la barre latérale gauche, en haut, sélectionnez Créer un nouveau (+).
- Sélectionnez Nouveau projet/dépôt.
- Sélectionnez Importer un projet.
- Cliquez sur le bouton GitHub.
- Si vous utilisez GitLab Self-Managed, vous devez activer l'outil d'importation GitHub.
- Notez que d'autres outils d'importation peuvent être lancés de la même manière.
- Maintenant, vous pouvez effectuer l'une des actions suivantes :
- Autoriser OAuth de GitHub en sélectionnant Autoriser avec GitHub.
- Utiliser un jeton d'accès personnel GitHub :
- Rendez-vous sur https://github.com/settings/tokens/new.
- Dans le champ Note, saisissez une description du token.
- Sélectionnez la portée du dépôt.
- En option, pour importer des collaborateurs, sélectionnez la portée read:org.
- Cliquez sur le bouton Générer un token.
- Sur la page d'importation de GitLab, dans le champ Jeton d'accès personnel, collez le jeton d'accès personnel GitHub.
- Cliquez sur le bouton Authentification.
- Sélectionnez les éléments que vous souhaitez migrer.
- Sélectionnez les projets que vous souhaitez migrer et leur destination.
- Cliquez sur le bouton Importer.
Votre projet importé devrait maintenant s'afficher dans votre espace de travail. Pour en savoir plus sur la migration de GitHub vers GitLab, regardez cette vidéo :
Vous pouvez également effectuer votre migration à l'aide d'un jeton d'accès personnel GitHub ou de l'API REST GitLab. L'outil d'importation permet également d'importer à partir d'autres sources telles que Bitbucket ou Gitea. Pour en savoir plus, consultez notre documentation.
Comment migrer fonctionnalité par fonctionnalité ?
Voyons comment tirer parti de chaque fonctionnalité fournie par GitHub Advanced Security dans GitLab Ultimate. Pour continuer, vous devez disposer d'une licence GitLab Ultimate.
Commencez un essai gratuit de 60 jours de GitLab Ultimate.
Mise en place d'un scanner de code de sécurité
GitHub fournit un scanner de code de sécurité pour offrir une veille contextualisée recensant les vulnérabilités et des conseils pour le code source statique. Vous pouvez effectuer la même action au sein de GitLab en activant SAST. Les scanners SAST de GitLab couvrent un ensemble de langages de programmation et de frameworks plus large que le CodeQL de GitHub.
Pour activer la mise en place d'un scanner de code de sécurité dans GitLab, vous pouvez simplement ajouter le template SAST à votre fichier .gitlab-ci.yml
:
include:
- template: Jobs/SAST.gitlab-ci.yml
Une fois le template ajouté, chaque fois qu'un nouveau code est enregistré, SAST détectera automatiquement les langages de programmation utilisés dans votre projet. Il analysera ensuite le code source afin de détecter des vulnérabilités connues.
Remarque : des scanners de sécurité peuvent également être ajoutés à votre projet à l'aide de la configuration de sécurité de GitLab, qui peut créer automatiquement une merge request pour mettre à jour votre pipeline. Pour en savoir plus, consultez notre documentation.
Les résultats SAST de la différence entre la branche de fonctionnalité et la branche cible s'affichent dans le widget de merge request. Le widget de merge request affiche les résultats et les résolutions SAST qui ont été introduits par les modifications apportées dans la merge request.
Chaque vulnérabilité affiche des données pour aider à la remédiation, y compris une description détaillée, la gravité, l'emplacement et des informations de résolution :
Vous pouvez prendre des mesures pour corriger ces vulnérabilités :
- Ignorer la vulnérabilité : permet aux équipes de développement d'ignorer la vulnérabilité avec un commentaire. Cela aide l'équipe de sécurité en charge de la revue.
- Créer un ticket : permet de créer un ticket pour suivre une vulnérabilité nécessitant une surveillance supplémentaire.
Ces modifications peuvent également être visualisées lorsque vous basculez sur la vue Modifications de la merge request.
Personnalisation des scanners SAST
GitLab vous permet de remplacer une définition de job SAST afin de pouvoir modifier des propriétés telles que des variables, des dépendances ou des règles. Vous pouvez le faire en déclarant un job du même nom que le job SAST à remplacer. Ensuite, placez ce nouveau job après l'inclusion du template et spécifiez toutes les clés supplémentaires en dessous.
Par exemple, la configuration suivante :
- écrase la version utilisée par le scanner
semgrep-sast
- exécute un script pour récupérer des modules de projets privés avant d'exécuter
gosec-sast
- configure tous les scanners pour rechercher à une profondeur maximale de 10
include:
- template: Jobs/SAST.gitlab-ci.yml
variables:
SEARCH_MAX_DEPTH: 10
semgrep-sast:
variables:
SAST_ANALYZER_IMAGE_TAG: "3.7"
gosec-sast:
before_script:
- |
cat <<EOF > ~/.netrc
machine gitlab.com
login $CI_DEPLOY_user
password $CI_DEPLOY_PASSWORD
EOF
Remarque : Les jobs SAST disponibles sont inclus dans le template SAST.gitlab-ci.yml
. Vous trouverez les configurations dans notre documentation sur les variables CI/CD SAST.
Personnalisation des ensembles de règles SAST
Pour chaque scanner SAST, GitLab traite le code puis utilise des règles pour trouver d'éventuelles faiblesses dans le code source. Ces règles déterminent les types de faiblesses signalées par le scanner.
- Pour les scanners SAST basés sur Semgrep, GitLab crée, maintient et prend en charge les règles utilisées. Il combine le moteur open source Semgrep, les règles de détection gérées par GitLab et la technologie propriétaire de GitLab pour le suivi des vulnérabilités et la détection des faux positifs.
- Pour les autres scanners SAST, les règles sont définies dans les projets en amont pour chaque scanner.
Vous pouvez personnaliser le comportement des scanners SAST en définissant un fichier de configuration d'ensemble de règles dans le dépôt analysé :
- Désactiver les règles prédéfinies (disponibles pour tous les scanners)
- Remplacer les règles prédéfinies (disponibles pour tous les scanners)
- Remplacer les règles prédéfinies en synthétisant une configuration personnalisée à l'aide de modes « passthrough »
Pour plus d'informations et d'exemples sur la configuration des règles SAST, consultez notre documentation sur les règles SAST et sur la personnalisation des ensembles de règles.
Analyse des secrets
GitHub fournit une analyse des secrets, qui peut trouver, bloquer et révoquer les secrets divulgués. Vous pouvez effectuer les mêmes opérations au sein de GitLab en activant la détection des secrets.
Pour activer la détection des secrets dans GitLab, vous pouvez simplement ajouter le template suivant à votre fichier .gitlab-ci.yml
:
include:
- template: Jobs/Secret-Detection.gitlab-ci.yml
Une fois le template ajouté, chaque fois qu'un nouveau code est enregistré (ou qu'un pipeline est exécuté), le scanner de secrets analysera le code source pour y détecter des secrets connus. La détection des secrets de pipeline analyse différents aspects de votre code, en fonction de la situation. Pour toutes les méthodes, à l'exception de la « branche par défaut », la détection des secrets de pipeline analyse les validations et non l'arborescence de travail. Consultez notre documentation sur la couverture de la détection des secrets pour en savoir plus sur le fonctionnement de l'analyse des secrets.
Lors de la création d'une merge request, la détection des secrets analyse chaque validation effectuée sur la branche source. Tout comme dans SAST, chaque vulnérabilité détectée fournit les informations (telles que l'emplacement) et les identifiants suivants pour aider au processus de correction :
Comme pour le SAST, vous pouvez gérer ces vulnérabilités directement depuis la merge request, notamment en les ignorant ou en créant des tickets.
Personnalisation des jobs de détection des secrets
GitLab vous permet de remplacer une définition de job de détection des secrets afin de modifier des propriétés telles que des variables, des dépendances ou des règles. Vous pouvez le faire en déclarant un job du même nom que le job de détection des secrets. Ensuite, placez ce nouveau job après l'inclusion du template et spécifiez toutes les clés supplémentaires en dessous. Par exemple, la configuration suivante :
- écrase l'étape du job de détection des secrets sur
sécurité
- permet l'analyse de l'historique
- passe à la version 4.5 de Secrets Analyzer
include:
- template: Jobs/Secret-Detection.gitlab-ci.yml
secret_detection:
stage: security
variables :
SECRET_DETECTION_HISTORIC_SCAN : "true"
SECRETS_ANALYZER_VERSION : "4.5"
Remarque : Les jobs de détection des secrets disponibles peuvent être trouvés dans le template SAST.gitlab-ci.yml. Vous trouverez les configurations disponibles dans notre documentation sur les variables CI/CD de détection des secrets.
Personnalisation des ensembles de règles de détection des secrets
Le scanner de détection des secrets vous permet de personnaliser les secrets signalés dans l'interface utilisateur de GitLab. Les options de personnalisation suivantes peuvent être utilisées séparément ou en combinaison :
- désactiver les règles prédéfinies
- remplacer les règles prédéfinies
- synthétiser une configuration personnalisée
- spécifier un fichier de configuration à distance
Par exemple, en créant le fichier .gitlab/secret-detection-ruleset.toml
, dans le répertoire racine de votre projet, le paquet GitLeaks par défaut est étendu pour ignorer les jetons de test de la détection :
### extended-gitleaks-config.toml
title = "extension of gitlab's default gitleaks config"
[extend]
### Extends default packaged path
path = "/gitleaks.toml"
[allowlist]
description = "allow list of test tokens to ignore in detection"
regexTarget = "match"
regexes = [
'''glpat-1234567890abcdefghij''',
]
Pour plus d'informations sur le remplacement des règles prédéfinies du scanner, consultez notre documentation sur la détection des secrets.
Réponse automatique aux secrets divulgués
La détection des secrets de GitLab répond automatiquement lorsqu'elle trouve certains types de secrets divulgués. Les réponses automatiques peuvent :
- révoquer automatiquement le secret
- notifier le partenaire qui a émis le secret afin qu'il puisse le révoquer, notifier son propriétaire ou se protéger contre les abus
GitLab peut également informer les partenaires lorsque les identifiants de connexion qu'ils émettent sont divulgués dans des dépôts publics sur GitLab.com. Si vous utilisez un produit cloud ou SaaS et que vous souhaitez recevoir ces notifications, vous pouvez implémenter une API partenaire, appelée par l'API de révocation de jetons GitLab. Consultez notre documentation sur la réponse automatique aux secrets divulgués pour en savoir plus.
Sécurité de la chaîne d'approvisionnement
GitHub vous permet de sécuriser, de gérer et de signaler des chaînes d'approvisionnement logicielles grâce à des mises à jour de sécurité et de version automatisées et à des SBOM en un clic. GitLab peut répondre à vos besoins en matière de sécurité de la chaîne d'approvisionnement à l'aide des fonctionnalités d'analyse des dépendances et de liste des dépendances (SBOM).
Pour activer l'analyse des dépendances dans GitLab, vous pouvez simplement ajouter le template suivant à votre fichier .gitlab-ci.yml
:
include:
- template: Jobs/Dependency-Scanning.gitlab-ci.yml
Une fois le template ajouté, chaque fois qu'un nouveau code est enregistré, l'analyse des dépendances détectera automatiquement les gestionnaires de paquets utilisés dans votre projet. Elle analysera ensuite les dépendances utilisées pour détecter les vulnérabilités connues.
Les résultats de l'analyse des dépendances de la différence entre la branche de fonctionnalité et la branche cible s'affichent dans le widget de merge request. Le widget de merge request affiche les résultats et les résolutions de l'analyse des dépendances qui ont été introduits par les modifications apportées à la merge request. Dans une merge request, chaque vulnérabilité affiche des informations pertinentes pour aider à la remédiation, telles que les identifiants, les preuves et les solutions :
Comme pour SAST et la détection des secrets, vous pouvez remédier à ces vulnérabilités directement depuis la merge request, notamment en les ignorant ou en créant des tickets.
Configuration de l'analyse des dépendances
Pour remplacer une définition de job (par exemple, pour modifier des propriétés telles que des variables ou des dépendances), déclarez un nouveau job du même nom que celui à remplacer. Placez ce nouveau job après l'inclusion du modèle et spécifiez toutes les clés supplémentaires en dessous. Par exemple, le code suivant :
- désactive la correction automatique des dépendances vulnérables
- nécessite un job de compilation à terminer avant l'analyse des dépendances
include:
- template: Jobs/Dependency-Scanning.gitlab-ci.yml
gemnasium-dependency_scanning:
variables:
DS_REMEDIATE: "false"
dependencies: ["build"]
Pour en savoir plus sur la configuration des scanners de dépendances, consultez notre documentation sur la personnalisation du comportement des scanners.
Génération d'une SBOM
GitLab fournit une liste des dépendances (SBOM) pour examiner les dépendances de votre projet ou de votre groupe et les détails clés sur ces dépendances, notamment leurs vulnérabilités connues. Cette liste est un ensemble de dépendances dans votre projet qui comprend les résultats existants et nouveaux. La liste des dépendances est générée après l'exécution réussie du scanner de dépendances sur la branche par défaut. Pour accéder à la liste des dépendances :
- Dans la barre latérale gauche, sélectionnez Rechercher ou accéder à et trouvez votre projet.
- Sélectionnez Sécurisation > Liste des dépendances.
De là, vous pouvez voir les informations suivantes sur vos dépendances :
Champ | Description |
---|---|
Composant | Le nom et la version de la dépendance. |
Empaqueteur | L'empaqueteur utilisé pour installer la dépendance. |
Emplacement | Pour les dépendances système, cela répertorie l'image qui a été analysée. Pour les dépendances d'application, cela affiche un lien vers le fichier de verrouillage propre à l'empaqueteur dans votre projet qui a déclaré la dépendance. Il affiche également le chemin d'accès vers une dépendance racine le cas échéant, et si cette option est prise en charge. |
Licence | Liens vers les licences logicielles de la dépendance. Un badge d'avertissement qui inclut le nombre de vulnérabilités détectées dans la dépendance. |
Projets | Liens vers le projet avec la dépendance. Si plusieurs projets ont la même dépendance, le nombre total de ces projets est affiché. Pour accéder à un projet avec cette dépendance, sélectionnez le numéro du projet, puis recherchez et sélectionnez son nom. La fonctionnalité de recherche de projet n'est prise en charge que sur les groupes qui ont jusqu'à 600 occurrences dans leur hiérarchie de groupe. |
Consultez notre documentation sur la liste des dépendances pour en savoir plus.
Administration de la sécurité et de la conformité
GitHub Advanced Security vous permet de visualiser les métriques et les informations clés sur la sécurité et d'évaluer les risques de sécurité liés au code. Examinons maintenant comment faire de même avec GitLab Ultimate.
Affichage des métriques et des informations clés sur la sécurité
GitLab fournit des tableaux de bord de sécurité pour aider à évaluer la posture de sécurité de vos applications. Ces tableaux de bord affichent un ensemble de métriques, d'évaluations et de graphiques pour les vulnérabilités détectées par les scanners de sécurité exécutés sur votre projet :
- tendances des vulnérabilités sur une période de 30, 60 ou 90 jours pour tous les projets d'un groupe
- une note pour chaque projet en fonction de la gravité de la vulnérabilité
- le nombre total de vulnérabilités détectées au cours des 365 derniers jours, y compris leur gravité
Pour accéder au tableau de bord de sécurité :
- Dans la barre latérale gauche, sélectionnez Rechercher ou accéder à et trouvez votre projet ou votre groupe.
- Dans l'onglet latéral, sélectionnez Sécurisation > Tableau de bord de sécurité.
- Filtrez et recherchez ce dont vous avez besoin.
La vue de groupe affiche votre posture de sécurité pour tous les projets de votre groupe :
La vue du projet affiche votre posture de sécurité pour un seul projet :
Évaluer le risque de sécurité du code
GitLab Ultimate dispose d'un rapport de vulnérabilités, qui fournit des informations sur les vulnérabilités des scans de la branche par défaut. Il contient les résultats cumulés de tous les jobs réussis, que l’exécution du pipeline ait réussi ou non. À tous les niveaux, le rapport de vulnérabilités contient :
- le nombre total de vulnérabilités par niveau de gravité
- les filtres des attributs de vulnérabilité courants
- les détails de chaque vulnérabilité, présentés sous forme de tableau
Cliquer sur une vulnérabilité permet d'accéder à sa page de vulnérabilités, qui contient un certain nombre d'informations : une description, un emplacement, des identifiants et plus encore. Voici un exemple de page pour une vulnérabilité d'injection SQL détectée par notre scanner SAST :
À partir de là, l'équipe de sécurité peut collaborer en modifiant le statut d'une vulnérabilité, en ajoutant un motif et en créant des tickets pour mieux suivre les changements apportés.
Depuis la page de vulnérabilités, vous pouvez également tirer parti de GitLab Duo, notre suite de fonctionnalités alimentée par l'IA, pour expliquer la vulnérabilité et créer automatiquement une merge request qui la résout. L'explication des vulnérabilités de GitLab Duo utilise un grand modèle de langage pour :
- résumer la vulnérabilité
- aider les équipes de développement et les analystes en sécurité à comprendre la vulnérabilité, comment elle pourrait être exploitée et comment y remédier
- suggérer une atténuation
Fonctionnalités de sécurité supplémentaires de GitLab Ultimate
GitLab Ultimate contient de nombreuses autres fonctionnalités de sécurité. En voici quelques exemples : des scanners de sécurité supplémentaires pour le cycle de vie complet du développement logiciel (SDLC), des garde-fous de sécurité granulaires et des autorisations personnalisées.
Scanners de sécurité pour l'ensemble du SDLC
Notre portefeuille de scanners de sécurité s'étend à l'ensemble du SDLC.
Nom du scanner | Scans | Langages/Fichiers analysés |
---|---|---|
Tests statiques de sécurité des applications (SAST) | Code source statique | C/C++, Java, Python, Go, JavaScript, C# et plus encore |
Tests dynamiques de sécurité des applications (DAST) | Application Web en cours d'exécution, API en direct | Langage-agnostique |
Analyse de l'Infrastructure as Code (IaC) | Fichiers IaC | Terraform, AWS Cloud Formation, Ansible et plus encore |
Analyse des conteneurs | Images de conteneurs statiques et en cours d'exécution | Dockerfile |
Analyse des dépendances et des licences | Dépendances d'applications | Requirements.txt, Yarn, Gradle, Npm et plus encore |
Tests d'API Web par injection de données aléatoires | Envoie des données aléatoires/invalides à l'API Web | OpenAPI, GraphQL, HAR, Collection Postman |
Test à données aléatoires guidé par la couverture de code | Envoie des données aléatoires/invalides à la fonction | C/C++, Go, Swift, Python, Rust, Java, JavaScript, AFL |
GitLab vous permet également d'intégrer des scanners tiers et des scanners personnalisés à la plateforme. Une fois intégrés, les résultats du scanner sont automatiquement présentés à différents emplacements dans GitLab, tels que dans la vue pipeline, le widget de merge request et le tableau de bord de sécurité. Consultez notre documentation sur l'intégration du scanner de sécurité pour en savoir plus.
Stratégies de sécurité et de conformité granulaires
Les stratégies de GitLab fournissent aux équipes de sécurité et de conformité un moyen d'appliquer des contrôles à l'échelle globale dans leur entreprise. Les équipes de sécurité peuvent s'assurer que :
- les scanners de sécurité sont appliqués dans les pipelines de l'équipe de développement selon une configuration appropriée
- tous les jobs de scan s'exécutent sans modification ni altération
- les approbations appropriées sont fournies sur les merge requests en fonction des résultats de ces constatations
Les équipes de conformité peuvent appliquer de manière centralisée plusieurs approbateurs à toutes les merge requests et s'assurer que divers paramètres sont activés sur les projets dans le cadre des exigences de leur entreprise, comme l'activation ou le verrouillage des paramètres de merge request et de dépôt. Pour en savoir plus, consultez notre documentation de la stratégie de sécurité de GitLab.
Rôles personnalisés et autorisations granulaires
GitLab Ultimate fournit des rôles personnalisés, qui permettent la création de rôles utilisateur disposant des privilèges et des autorisations requis en fonction des besoins de l'entreprise.
Par exemple, un utilisateur pourrait créer un rôle « Auditeur de sécurité » avec des autorisations lui permettant d'afficher les vulnérabilités de sécurité dans le système, mais sans être en mesure de voir le code source ni d'effectuer des modifications dans le dépôt. Cet ensemble granulaire d'autorisations permet une séparation bien définie des tâches.
Pour en savoir plus, consultez notre documentation sur les rôles personnalisés et les autorisations granulaires disponibles.
Centre de conformité
Le Centre de conformité permet aux équipes dédiées de gérer les rapports sur le respect des normes de conformité, les rapports sur les violations et les frameworks de conformité pour leur groupe. Le Centre de conformité comprend les éléments suivants :
- Le tableau de bord du respect des normes de conformité, qui répertorie l'état de conformité des projets répondant à la norme GitLab.
- Le rapport sur les violations des exigences de conformité affiche une vue d'ensemble des activités liées aux merge requests pour tous les projets du groupe.
- Le rapport sur les frameworks de conformité montre tous les frameworks de conformité au sein d'un groupe.
- Le rapport sur les projets de conformité montre les frameworks de conformité appliqués aux projets dans un groupe.
Ces tableaux de bord aident à s'assurer que la séparation des tâches est respectée pour optimiser la conformité au sein de votre entreprise. Pour en savoir plus, consultez notre documentation sur notre Centre de conformité.
En savoir plus
Cet article ne couvre qu'une partie du large éventail de fonctionnalités de sécurité offertes par GitLab Ultimate. Consultez ces ressources pour en savoir plus sur la façon dont GitLab Ultimate peut vous aider à améliorer la sécurité de votre entreprise et l'efficacité des équipes de développement :
- Pourquoi GitLab Ultimate ?
- Tutoriel de prise en main de l'approche DevSecOps
- Premiers pas avec l'exemple de projet DevSecOps
- Importer votre projet de GitHub vers GitLab
- Migration depuis GitHub Actions
- Tutoriel : créer et exécuter votre premier pipeline GitLab CI/CD
- Tutoriel : créer un pipeline complexe
- Référence de la syntaxe YAML CI/CD