À 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.
-
Sur GitHub, accédez à la page principale du référentiel.
-
Sous le nom du référentiel, cliquez sur Demandes de tirage.
-
Dans la liste « Demandes de tirage », cliquez sur la demande de tirage que vous voulez ajouter à une file d’attente de fusion.
-
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.
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.
-
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.
-
Sur GitHub, accédez à la page principale du référentiel.
-
Sous le nom du référentiel, cliquez sur Demandes de tirage.
-
Dans la liste « Demandes de tirage », cliquez sur la demande de tirage que vous voulez supprimer d’une file d’attente de fusion.
-
Pour supprimer la demande de tirage de la file d’attente, cliquez sur Supprimer de la file d’attente.
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 ».
-
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.
-
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.
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