[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

Intégration de GitHub

L’intégration GitHub vous permet de gérer vos environnements Adobe Commerce sur les infrastructures cloud directement à partir de votre référentiel GitHub. L’intégration gère le contenu déjà présent dans GitHub et se synchronise avec votre référentiel de code Adobe Commerce sur l’infrastructure cloud. En substance, le référentiel de code devient un miroir du référentiel GitHub.

NOTE
Adobe recommande vivement d’utiliser un référentiel privé pour votre projet d’infrastructure Adobe Commerce on cloud afin de protéger toute information propriétaire ou tout travail de développement, tel que les extensions et les configurations sensibles.

Cette intégration vous permet d’effectuer les opérations suivantes :

  • Création d’un environnement lors de la création d’une branche
  • Redéploiement de l’environnement lors de la fusion d’une demande d’extraction
  • Suppression de l’environnement lors de la suppression de la branche

Vous devez obtenir un jeton GitHub et un webhook pour continuer le processus.

Conditions préalables

  • Accès des administrateurs au projet d’infrastructure cloud d’Adobe Commerce
  • Référentiel GitHub
  • Jeton d’accès personnel GitHub

Générer un jeton GitHub

Créez un jeton d’accès personnel classique dans les paramètres du développeur GitHub. Vous devez être membre d’un groupe disposant d’un accès en écriture au référentiel GitHub, de sorte que vous puissiez pousser vers le référentiel. Incluez les portées suivantes lors de la création de votre jeton :

  • admin:repo_hook : création de hooks web
  • repo : intégration à votre référentiel
  • read:org—Intégration avec le référentiel de votre organisation

Voir GitHub : Créer.

Préparation de votre référentiel

Clonez votre projet Adobe Commerce sur l’infrastructure cloud à partir d’un environnement existant et migrez les branches du projet vers un nouveau référentiel GitHub vide, en conservant les mêmes noms de branche. Il est essentiel de conserver une arborescence Git identique, afin de ne pas perdre d’environnements ou de branches existants dans votre projet d’infrastructure cloud Adobe Commerce.

  1. À partir du terminal, connectez-vous à votre projet d’infrastructure cloud Adobe Commerce.

    code language-bash
    magento-cloud login
    
  2. Répertoriez vos projets et copiez l’ID du projet.

    code language-bash
    magento-cloud project:list
    
  3. Clonez le projet sur votre environnement local.

    code language-bash
    magento-cloud project:get <project-ID>
    
  4. Ajoutez votre référentiel GitHub en tant que référentiel distant.

    code language-bash
    git remote add origin git@github.com:<user-name>/<repo-name>.git
    

    Le nom par défaut de la connexion distante peut être origin ou magento. S’origin existe déjà, vous pouvez choisir un autre nom ou renommer ou supprimer la référence existante. Voir la documentation Git-remote.

  5. Vérifiez que vous avez correctement ajouté la télécommande GitHub.

    code language-bash
    git remote -v
    

    Réponse attendue :

    code language-none
    origin git@github.com:<user-name>/<repo-name>.git (fetch)
    origin git@github.com:<user-name>/<repo-name>.git (push)
    
  6. Envoyez les fichiers du projet vers votre nouveau référentiel GitHub. N’oubliez pas de conserver les mêmes noms de branche.

    code language-bash
    git push -u origin master
    

    Si vous commencez avec un nouveau référentiel GitHub, vous devrez peut-être utiliser l’option -f , car le référentiel distant ne correspond pas à votre copie locale.

  7. Vérifiez que votre référentiel GitHub contient tous vos fichiers de projet.

Activation de l’intégration GitHub

Avant de commencer, le code et les environnements de votre projet doivent se trouver dans le référentiel GitHub. Après avoir activé l’intégration, le référentiel GitHub devient la source de code. Si vous envoyez des modifications de code au référentiel magento d’origine, elles sont remplacées par l’intégration lorsque vous envoyez des modifications de code à votre référentiel GitHub.

Ce qui suit active l’intégration GitHub et fournit une URL de payload à utiliser lors de la création d’un webhook.

WARNING
La commande suivante remplace le code all de votre projet d’infrastructure cloud Adobe Commerce par le code de votre référentiel GitHub, qui inclut toutes les branches, y compris la branche production. Cette action se produit instantanément et ne peut pas être annulée. En règle générale, il est important de cloner toutes les branches de votre projet d’infrastructure cloud Adobe Commerce on cloud et de les pousser vers votre référentiel GitHub avant d’ajouter l’intégration GitHub.

Vous pouvez choisir de parcourir les invites de l’interface de ligne de commande à l’aide de magento-cloud integration:add ou de créer la commande d’intégration avec les options suivantes :

Option
Obligatoire ?
Description
--base-url
Oui
URL de base de l’installation du serveur, qui peut être https://github.com/ ou personnalisée. Omettez cette option si votre référentiel est hébergé avec un Github public ou s’il n’est pas hébergé sur des serveurs privés. Omettez cette option si l’URL de votre référentiel est similaire à https://github.com/{account}/{repository-name}. Cela peut entraîner des erreurs telles que Unable to connect to GitHub: repository not found.
--token
Oui
Jeton d’accès personnel généré pour GitHub
--repository
Oui
Nom du référentiel : owner-or-organisation/repository
--build-pull-requests
Facultatif
Indique à Adobe Commerce sur l’infrastructure cloud de procéder au déploiement après la fusion d’une demande d’extraction (true par défaut)
--fetch-branches
Facultatif
Entraîne Adobe Commerce sur l’infrastructure cloud à suivre les branches et à déployer après la mise à jour d’une branche (true par défaut)
--prune-branches
Facultatif
Supprimer les branches qui n’existent pas sur la télécommande (true par défaut)

Il existe de nombreuses autres options, que vous pouvez afficher à l’aide de l’option d’aide :

magento-cloud integration:add --help

Pour activer l’intégration GitHub :

  1. Activez l’intégration.

    code language-bash
    magento-cloud integration:add --type=github --project=<project-ID> --token=<your-GitHub-token> {--repository=USER/REPOSITORY | --repository=ORGANIZATION/REPOSITORY} [--build-pull-requests={true|false} --fetch-branches={true|false}
    

    Exemple 1 : activez l’intégration GitHub pour un référentiel personnel et privé :

    code language-bash
    magento-cloud integration:add --type=github --project=ov58dlacU2e --base-url=https://github.com --token=<token> --repository=myUserName/myrepo
    

    Exemple 2 : activez l’intégration GitHub pour un référentiel d’organisation :

    code language-bash
    magento-cloud integration:add --type=github --project=ov58dlacU2e --base-url=https://github.com --token=<token> --repository=Magento/teamrepo
    
  2. Saisissez les informations requises lorsque vous y êtes invité.

  3. Copiez l’URL de payload affichée par la sortie renvoyée.

    code language-none
    Created integration <integration-ID> (type: github)
    Repository: myUserName/myrepo
    Build PRs: yes
    Fetch branches: yes
    Payload URL: https://us.magento.cloud/api/projects/<project-id>/integrations/wO8a0eoamxwcg/hook
    

Ajouter le webhook dans GitHub

Pour communiquer des événements (une notification push, par exemple) avec votre serveur Git Cloud, vous devez créer un webhook pour votre référentiel GitHub :

  1. Dans votre référentiel GitHub, cliquez sur l’onglet Paramètres.

  2. Dans la barre de navigation de gauche, cliquez sur Webhooks.

  3. Dans le volet Webhooks, cliquez sur Ajouter un webhook.

  4. Dans le formulaire Webhooks/Add webhook, modifiez les champs suivants :

    • URL de payload : saisissez l’URL renvoyée lorsque vous avez activé l’intégration GitHub.
    • Type de contenu : sélectionnez application/json dans la liste.
    • Secret : saisissez un secret de vérification.
    • Quels événements souhaitez-vous déclencher ce webhook ? : Sélectionnez Envoyer-moi tout.
    • Cochez la case Actif.
  5. Cliquez sur Ajouter un webhook.

Tester l’intégration

Après avoir configuré l’intégration GitHub, vous pouvez vérifier qu’elle est opérationnelle à l’aide de l’interface de ligne de commande magento-cloud :

magento-cloud integration:validate

Vous pouvez également la tester en envoyant une modification simple à votre référentiel GitHub.

  1. Créez un fichier test.

    code language-bash
    touch test.md
    
  2. Validez et envoyez la modification à votre référentiel GitHub.

    code language-bash
    git add . && git commit -m "Testing GitHub integration" && git push
    
  3. Connectez-vous au Cloud Console et vérifiez que le message de validation s’affiche, ainsi que le déploiement de votre projet.

Suppression de l’intégration

Vous pouvez supprimer en toute sécurité l’intégration GitHub de votre projet sans affecter votre code.

Pour supprimer l’intégration GitHub :

  1. À partir du terminal, connectez-vous à votre projet d’infrastructure cloud Adobe Commerce.

  2. Répertorier vos intégrations. Vous avez besoin de l’ID d’intégration GitHub pour effectuer l’étape suivante.

    code language-bash
    magento-cloud integration:list
    
  3. Supprimez l’intégration.

    code language-bash
    magento-cloud integration:delete <int-ID>
    

Vous pouvez également supprimer l’intégration GitHub en vous connectant à votre compte GitHub et en supprimant le hook web dans l’onglet Webhooks du référentiel Settings.

recommendation-more-help
7c2b03ac-000c-497d-aba3-2c6dc720a938