Skip to main content

Fusion d'une pull request avec une file d'attente de fusion

Si une file d’attente de fusion est requise par le paramètre de protection de la branche, vous pouvez ajouter vos pull requests à une file d’attente de fusion et GitHub fusionnera les pull requests pour vous une fois que toutes les vérifications requises sont passées.

Qui peut utiliser cette fonctionnalité ?

Les files d'attente de fusion de demandes de tirage sont disponibles dans tous les dépôts appartenant à une organisation sur GitHub Enterprise Server.

Tool navigation

À propos des files d’attente de fusion

Une file d’attente de fusion permet d’augmenter la vitesse en automatisant les fusions de demandes de tirage dans une branche occupée et en veillant à ce que la branche ne soit jamais interrompue par des modifications incompatibles.

La file d’attente de fusion offre les mêmes avantages que la protection de branche Exiger que les branches soient à jour avant de fusionner, mais ne nécessite pas qu’un auteur de demande de tirage mette à jour sa branche de demande de tirage et attende que les vérifications d'état se terminent avant d’essayer de fusionner.

L’utilisation d’une file d’attente de fusion est particulièrement utile sur les branches qui ont un nombre relativement élevé de demandes de tirage qui fusionnent chaque jour de nombreux utilisateurs différents.

Dès qu’une demande de tirage a réussi toutes les vérifications de protection de branche nécessaires, un utilisateur avec un accès en écriture au référentiel peut ajouter cette demande de tirage à une file d’attente de fusion. La file d’attente de fusion garantit que les modifications de la demande de tirage passent toutes les vérifications d'état requises lorsqu’elles sont appliquées à la dernière version de la branche cible et aux demandes de tirage déjà dans la file d’attente.

Une file d’attente de fusion peut utiliser GitHub Actions ou votre propre fournisseur de CI pour exécuter les vérifications requises sur les demandes de tirage dans une file d’attente de fusion. Pour plus d’informations, consultez « Documentation GitHub Actions ». Pour plus d’informations sur les files d’attente de fusion, consultez Gestion d’une file d’attente de fusion.

Ajout d'une pull request à une file d'attente de fusion

Remarque

Vous pouvez utiliser GitHub CLI pour ajouter une pull request à une file d'attente de fusion. Pour plus d’informations, cliquez sur l’onglet « GitHub CLI » en haut de cet article.

  1. Sur GitHub, accédez à la page principale du référentiel.

  2. Sous le nom de votre référentiel, cliquez sur Demandes de tirage.

    Capture d’écran de la page principale d’un dépôt. Dans la barre de navigation horizontale, un onglet intitulé « Demandes de tirage » est indiqué en orange foncé.

  3. Dans la liste « Demandes de tirage », cliquez sur la demande de tirage que vous voulez ajouter à une file d’attente de fusion.

  4. Cliquez sur Fusionner quand vous êtes prêt pour ajouter le pull request à la file de fusion. Sinon, si vous êtes administrateur, vous pouvez :

    • Fusionner directement le pull request en cochant Fusionner sans attendre que les conditions soient remplies (contourner les protections de branche), si les paramètres de protection de branche l'autorisent, et suivre le processus standard.

    Capture d’écran des options de file d’attente de fusion d’un pull request.

    Remarque

    Vous pouvez cliquer sur Fusionner lorsque vous êtes prêt à fusionner les modifications proposées. GitHub ajoute automatiquement la pull request à la file d’attente de fusion une fois que les conditions nécessaires d'approbation et de vérification d’état sont remplies.

  5. Confirmez que vous voulez ajouter le pull request à la file d’attente de fusion en cliquant sur Confirmer la fusion lorsque vous êtes prêt.

Avec GitHub CLI, vous pouvez utiliser la commande gh pr merge pour ajouter une pull request à une file d’attente de fusion. Si vous ciblez une branche qui nécessite une file d’attente de fusion, cette commande ajoute automatiquement la pull request à la file d’attente de fusion si les vérifications nécessaires ont été validées avec succès. Si les vérifications requises n'ont pas été validées, cette commande active la fusion automatique pour le pull request. Pour plus d’informations, consultez gh pr merge dans le manuel GitHub CLI.

Suppression d’une pull request dans une file d’attente de fusion

Pour supprimer une demande de tirage d’une file d’attente de fusion, vous devez accéder à la page du dépôt sur votre instance GitHub Enterprise Server. Vous ne pouvez pas utiliser GitHub CLI pour supprimer une pull request d’une file d’attente de merge.

  1. Sur GitHub, accédez à la page principale du référentiel.

  2. Sous le nom de votre référentiel, cliquez sur Demandes de tirage.

    Capture d’écran de la page principale d’un dépôt. Dans la barre de navigation horizontale, un onglet intitulé « Demandes de tirage » est indiqué en orange foncé.

  3. Dans la liste « Demandes de tirage », cliquez sur la demande de tirage que vous voulez supprimer d’une file d’attente de fusion.

  4. Pour supprimer la demande de tirage de la file d’attente, cliquez sur Supprimer de la file d’attente.

    Capture d’écran du message de file d’attente de fusion en bas d’un pull request. Le bouton « Supprimer de la file d’attente » est indiqué en orange foncé.

Vous pouvez également accéder à la page de file d’attente de fusion de la branche de base, cliquer sur ... à côté de la demande de tirage à supprimer et sélectionner Supprimer de la file d’attente. Pour plus d’informations sur l’accès à la page de file d’attente de fusion de la branche de base, consultez la section ci-dessous.

Consultation des files d’attente de fusion

Vous pouvez voir la file d’attente de fusion d’une branche de base dans différents emplacements sur GitHub. Vous ne pouvez pas utiliser GitHub CLI pour afficher une file d’attente de fusion.

Vous pouvez voir la file d’attente de fusion d’une branche de base dans différents emplacements sur GitHub.

  • Dans la page Branches du dépôt. Nous vous recommandons d'utiliser cette voie si vous n'avez pas ou ne connaissez pas une pull request déjà dans une file d'attente, et si vous souhaitez voir ce que contient cette file. Pour plus d’informations, consultez « Visualisation des branches dans votre dépôt ».

    Capture d’écran de la page « Branches » d’un dépôt. Un lien, intitulé « 33 pull requests en attente de fusion », est indiqué en orange foncé.

  • Dans la page de demandes de tirage quand la file d’attente de fusion est demandée pour la fusion, faites défiler vers le bas de la chronologie et cliquez sur le lien file d’attente de fusion.

    Capture d’écran du message de file d’attente de fusion en bas d’un pull request. Le lien « file d’attente de fusion » est indiqué en orange foncé.

  • La vue de la file d’attente de fusion affiche les pull requests actuellement dans la file d’attente, avec vos pull requests clairement signalées.

    Capture d'écran de la file d'attente de fusion pour un référentiel.

Comprendre pourquoi votre pull request a été supprimée de la file d’attente d’intégration

Après le regroupement d’une demande de tirage avec la dernière version de la branche cible et les changements qui la précèdent dans la file d’attente, si les vérifications d’état nécessaires échouent ou qu’il y a des conflits avec la branche de base, la demande de tirage (pull request) est supprimée de la file d’attente. La chronologie de la demande de tirage affiche la raison pour laquelle elle a été supprimée de la file d’attente.

Il existe plusieurs raisons pour lesquelles une demande de tirage peut être supprimée d’une file d’attente de fusion :

  • le service de CI configuré signale des échecs de test pour un groupe de fusion
  • l’expiration du délai d’attente d’un résultat de CI réussie en fonction du paramètre de délai d’expiration configuré
  • l’utilisateur demande une suppression via l’API ou l’interface de file d’attente de fusion
  • échec de la protection de branche qui n’a pas pu être résolu automatiquement