Skip to main content

Fusion d’une demande de tirage avec une file d’attente de fusion

Si une file d’attente de fusion est requise par le paramètre de protection de branche pour la branche, vous pouvez ajouter vos demandes de tirage (pull request) à une file d’attente de fusion ; GitHub fusionne les demandes de tirage pour vous une fois que toutes les vérifications requises ont réussi.

Qui peut utiliser cette fonctionnalité ?

Les files d’attente de fusion de demandes de tirage (pull requests) sont disponibles dans n’importe quel dépôt public appartenant à une organisation ou dans les dépôts privés appartenant aux organisations utilisant GitHub Enterprise Cloud. Pour plus d’informations, consultez « Plans de GitHub ».

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 demande de tirage à une file d’attente de fusion

Remarque : Vous pouvez utiliser l’GitHub CLI pour ajouter une demande de tirage à 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 du 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 la demande de tirage à la file d’attente de fusion. Sinon, si vous êtes administrateur, vous pouvez :

    • Fusionner directement la demande de tirage en cochant Fusionner sans attendre que les exigences soient satisfaites (contourner les protections de branche), si les paramètres de protection de branche l'autorisent, et suivre le flux standard.

    Capture d’écran des options de file d’attente de fusion d’une demande de tirage.

    Remarque : Vous pouvez cliquer sur Fusionner quand vous êtes prêt dès que vous êtes prêt à fusionner les changements que vous proposez. GitHub ajoute automatiquement la demande de tirage à la file d’attente de fusion une fois que les conditions de vérification d’approbation et d’état nécessaires sont remplies.

  5. Confirmez que vous voulez ajouter la demande de tirage à la file d’attente de fusion en cliquant sur Confirmer la fusion quand vous êtes prêt.

Avec GitHub CLI, vous pouvez utiliser la commande gh pr merge pour ajouter une demande de tirage à 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 demande de tirage à la file d’attente si les vérifications requises ont été passées avec succès. Si les vérifications requises n’ont pas réussi, cette commande active la fusion automatique pour la demande de tirage. Pour plus d’informations, consultez gh pr merge dans le manuel GitHub CLI.

Suppression d’une demande de tirage 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 GitHub.com. Vous ne pouvez pas utiliser GitHub CLI pour supprimer une demande de tirage d’une file d’attente de fusion.

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

  2. Sous le nom du 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’une demande de tirage. 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 route si vous n’avez pas de demande de tirage dans une file d’attente et que vous voulez voir ce que contient cette file d’attente. Pour plus d’informations, consultez « Affichage des branches dans votre dépôt ».

    Capture d’écran de la page « Branches » d’un dépôt. Un lien, intitulé « 33 demandes de tirage mises en file d’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’une demande de tirage. Le lien « file d’attente de fusion » est indiqué en orange foncé.

  • La vue de la file d’attente de fusion affiche les demandes de tirage actuellement dans la file d’attente, avec vos demandes de tirage clairement marquées.

    Capture d’écran de la file d’attente de fusion.

Comprendre pourquoi votre demande de tirage a été supprimée de la file d’attente de fusion

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