En tant qu'administrateur ou développeur de Code Stream, vous pouvez intégrer Code Stream au cycle de vie Git à l'aide du déclencheur Git. Lorsque vous modifiez le code dans GitHub, GitLab ou Bitbucket Enterprise, l'événement communique avec Code Stream via un Webhook et déclenche un pipeline. Le Webhook fonctionne avec les versions d'entreprise sur site de GitLab, GitHub et Bitbucket lorsque Cloud Assembly et la version d'entreprise sont accessibles sur le même réseau.

Lorsque vous ajoutez le Webhook pour Git dans Code Stream, cette action crée également un Webhook dans le GitHub, GitLab ou le référentiel Bitbucket. Si vous mettez à jour ou supprimez le Webhook ultérieurement, cette action met également à jour ou supprime le Webhook dans GitHub, GitLab ou Bitbucket.

Votre définition du Webhook doit inclure un point de terminaison Git sur la branche du référentiel que vous souhaitez surveiller. Pour créer le Webhook, Code Stream utilise le point de terminaison Git. Si le point de terminaison n'existe pas, vous pouvez le créer lorsque vous ajoutez le Webhook. Dans cet exemple, vous devez disposer d'un point de terminaison Git prédéfini dans GitHub.

Note : Pour créer un Webhook, le point de terminaison Git doit utiliser un jeton privé pour l'authentification ; il ne peut pas utiliser un mot de passe.

Vous pouvez créer plusieurs Webhooks pour différentes branches en utilisant le même point de terminaison Git et en fournissant des valeurs différentes pour le nom de la branche sur la page de configuration du Webhook. Pour créer un autre Webhook pour une autre branche dans le même référentiel Git, vous n'avez pas besoin de cloner le point de terminaison Git plusieurs fois pour plusieurs branches. Vous fournissez plutôt le nom de la branche dans le Webhook, ce qui vous permet de réutiliser le point de terminaison Git. Si la branche dans le Webhook Git est la même que celle du point de terminaison, vous n'avez pas besoin de fournir un nom de branche dans la page Git du Webhook.

Cet exemple vous présente comment utiliser le déclencheur Git avec un référentiel GitHub, mais les conditions préalables incluent des préparations requises si un autre type de serveur Git est utilisé.

Conditions préalables

  • Assurez-vous d'être membre d'un projet dans Code Stream. Si ce n'est pas le cas, demandez à un administrateur de Code Stream de vous ajouter en tant que membre d'un projet. Reportez-vous à la section Ajout d'un projet dans Code Stream.
  • Vérifiez que vous disposez d'un point de terminaison Git sur la branche GitHub que vous souhaitez surveiller. Reportez-vous à la section Comment intégrer Code Stream à Git.
  • Vérifiez que vous disposez des droits de création d'un Webhook dans le référentiel Git.
  • Si vous configurez un Webhook dans GitLab, modifiez les paramètres réseau par défaut dans GitLab Enterprise pour activer les demandes sortantes et autoriser la création de Webhooks locaux.
    Note : Cette modification n'est requise que pour GitLab Enterprise. Ces paramètres ne s'appliquent pas à GitHub ou Bitbucket.
    1. Connectez-vous à votre instance de GitLab en tant qu'administrateur.
    2. Accédez aux paramètres réseau à l'aide d'une URL telle que, http://{gitlab-server}/admin/application_settings/network.
    3. Développez Demandes sortantes, puis cliquez sur :
      • Autorisez les demandes au réseau local à partir de Webhooks et des services Web.
      • Autorisez les demandes au réseau local à partir du hook système.
  • Pour les pipelines que vous souhaitez déclencher, vérifiez que vous avez défini les propriétés d'entrée pour injecter des paramètres Git lorsque le pipeline s'exécute.

    Lorsque vous configurez votre pipeline pour utiliser le déclencheur pour Git, vous configurez les paramètres d'entrée dans l'onglet Entrée.

    Pour plus d'informations sur les paramètres d'entrée, reportez-vous à la section Planification d'une build native CICD dans Code Stream avant d'ajouter des tâches manuellement.

Procédure

  1. Dans Code Stream, cliquez sur Déclencheurs > Git.
  2. Cliquez sur l'onglet Webhooks pour Git, puis cliquez sur Nouveau Webhook pour Git.
    1. Sélectionnez un projet.
    2. Entrez un nom et une description significatifs pour le Webhook.
    3. Sélectionnez un point de terminaison Git configuré pour la branche que vous souhaitez surveiller.
      Lorsque vous créez votre Webhook, sa définition inclut les détails actuels du point de terminaison.
      • Si vous modifiez ultérieurement le type de Git, le type de serveur Git ou l'URL du référentiel Git dans le point de terminaison, le Webhook ne pourra plus déclencher de pipeline, car il essaiera d'accéder au référentiel Git à l'aide des détails du point de terminaison d'origine. Vous devez supprimer le Webhook et le recréer avec le point de terminaison.
      • Si vous modifiez ultérieurement le type d'authentification, le nom d'utilisateur ou le jeton privé dans le point de terminaison, le Webhook continuera à fonctionner.
      • Si vous utilisez un référentiel BitBucket, l'URL du référentiel doit être dans l'un de ces formats : https://api.bitbucket.org/{user}/{repo name} ou http(s)://{bitbucket-enterprise-server}/rest/api/1.0/users/{username}/repos/{repo name}.
      Note : Si vous avez précédemment créé un Webhook à l'aide d'un point de terminaison Git qui utilise un mot de passe pour l'authentification de base, vous devez supprimer et redéfinir le Webhook avec un point de terminaison Git qui utilise un jeton privé pour l'authentification.
      Reportez-vous à la section Comment intégrer Code Stream à Git.
    4. (Facultatif) Entrez la branche que vous souhaitez faire surveiller par le Webhook.
      Si vous laissez la branche non spécifiée, le Webhook surveille la branche que vous avez configurée pour le point de terminaison Git.
    5. (Facultatif) Générez un jeton secret pour le Webhook.
      Si vous utilisez un jeton secret, Code Stream génère un jeton de chaîne aléatoire pour le Webhook. Ensuite, lorsque le Webhook reçoit les données d'événement Git, il les envoie avec le jeton secret. Code Stream utilise les informations pour déterminer si les appels proviennent de la source attendue, telle que l'instance, le référentiel et la branche de GitHub configurés. Le jeton secret fournit une couche supplémentaire de sécurité qui est utilisée pour vérifier que les données d'événement Git proviennent de la source appropriée.
    6. (Facultatif) Précisez des inclusions ou des exclusions de fichier comme conditions pour le déclencheur.
      • Inclusions de fichiers. Si un des fichiers d'une validation correspond aux fichiers spécifiés dans les chemins d'inclusion ou regex, la validation déclenche les pipelines. Avec un regex spécifié, Code Stream déclenche uniquement les pipelines dont les noms de fichier dans l'ensemble de modifications correspondent à l'expression fournie. Le filtre regex est utile lors de la configuration d'un déclencheur pour plusieurs pipelines sur un référentiel unique.
      • Exclusions de fichiers. Lorsque tous les fichiers d'une validation correspondent aux fichiers spécifiés dans les chemins d'exclusion ou regex, les pipelines ne se déclenchent pas.
      • Exclusions par priorité. Lorsque cette option est activée, l'exclusion par priorité garantit que les pipelines ne se déclenchent pas, même si l'un des fichiers d'une validation correspond aux fichiers spécifiés dans les chemins d'exclusion ou regex. Le paramètre par défaut est désactivé.
      Si les conditions répondent à la fois aux inclusions et aux exclusions de fichiers, les pipelines ne se déclenchent pas.

      Dans l'exemple suivant, les inclusions et les exclusions de fichiers sont des conditions de déclenchement.

      Les inclusions et les exclusions de fichiers ainsi que leurs valeurs s'affichent dans l'onglet Webhooks pour Git dans le déclencheur pour Git, et peuvent être simples ou regex.

      • Pour les inclusions de fichiers, une validation comportant une modification apportée à runtime/src/main/a.java ou un fichier Java déclenche les pipelines configurés dans la configuration des événements.
      • En ce qui concerne les exclusions de fichiers, une validation comportant des modifications dans les deux fichiers uniquement ne déclenche pas les pipelines configurés dans les configurations d'événement.
    7. Pour l'événement Git, sélectionnez une demande d'opération push ou d'extraction.
    8. Entrez le jeton de l'API.
      Le jeton d'API CSP vous authentifie pour les connexions d'API externes avec Code Stream. Pour obtenir le jeton d'API :
      1. Cliquez sur Générer le jeton.
      2. Entrez l'adresse e-mail associée à votre nom d'utilisateur et votre mot de passe, puis cliquez sur Générer.
        Le jeton généré est valide pendant six mois. Il est également appelé jeton d'actualisation.
        • Pour conserver le jeton sous forme de variable pour une utilisation ultérieure, cliquez sur Créer une variable, entrez un nom pour la variable et cliquez sur Enregistrer.
        • Pour conserver le jeton sous forme de valeur de texte pour une utilisation ultérieure, cliquez sur Copier et collez le jeton dans un fichier texte pour l'enregistrer localement.
        Vous pouvez choisir à la fois de créer une variable et de stocker le jeton dans un fichier texte pour une utilisation ultérieure.
      3. Cliquez sur Fermer.
    9. Sélectionnez le pipeline que le Webhook doit déclencher.
      Si le pipeline inclut des paramètres d'entrée ajoutés personnalisés, la liste Paramètres d'entrée affiche les paramètres et les valeurs. Vous pouvez entrer des valeurs pour les paramètres d'entrée qui passent au pipeline avec l'événement déclencheur. Sinon, vous pouvez laisser les valeurs vides ou utiliser les valeurs par défaut, si elles sont définies.

      Pour plus d'informations sur les paramètres d'entrée injectés automatiquement pour les déclencheurs Git, reportez-vous aux conditions préalables.

    10. Cliquez sur Créer.
      Le Webhook s'affiche sous la forme d'une nouvelle fiche.
  3. Cliquez sur la fiche du Webhook.
    Lorsque le formulaire de données du Webhook s'affiche à nouveau, vous constatez qu'une URL Webhook a été ajoutée en haut du formulaire. Le Webhook Git se connecte au référentiel GitHub via l'URL Webhook.

    L'URL du Webhook Git, que vous copiez et utilisez dans votre référentiel Git, s'affiche dans l'onglet Webhooks pour Git du déclencheur pour Git.

  4. Dans une nouvelle fenêtre de navigateur, ouvrez le référentiel GitHub qui se connecte via le Webhook.
    1. Pour voir le Webhook que vous avez ajouté dans Code Stream, cliquez sur l'onglet Paramètres et sélectionnez Webhooks.
      Au bas de la liste des Webhooks, la même URL Webhook est indiquée.

      Dans votre référentiel GitHub, la liste des Webhooks affiche la même URL Webhook Git en bas de la liste.

    2. Pour apporter une modification au code, cliquez sur l'onglet Code et sélectionnez un fichier sur la branche. Après avoir modifié le fichier, validez la modification.
    3. Pour vérifier que l'URL Webhook fonctionne, cliquez sur l'onglet Paramètres et sélectionnez à nouveau Webhooks.
      Au bas de la liste des Webhooks, une coche verte s'affiche en regard de l'URL Webhook. Lorsque le Webhook dans GitHub est valide, une coche verte s'affiche.
  5. Revenez à Code Stream pour afficher l'activité sur le Webhook Git. Cliquez sur Déclencheurs > Git > Activité.
    Sous État de l'exécution, vérifiez que l'exécution du pipeline a démarré.

    Lorsqu'un utilisateur valide un fichier, il active le déclencheur pour Git et l'onglet Activité affiche l'état du déclencheur comme DÉMARRÉ.

  6. Cliquez sur Exécutions et suivez la progression de votre pipeline au fil de son exécution.
    Pour observer l'exécution du pipeline, vous pouvez cliquer sur Actualiser.

    Après le déclenchement du pipeline, l'exécution du pipeline affiche l'état EN COURS D'EXÉCUTION.

Résultats

Félicitations ! Vous avez correctement utilisé le déclencheur pour Git.