Skip to main content
Nous publions des mises à jour fréquentes de notre documentation, et la traduction de cette page peut encore être en cours. Pour obtenir les informations les plus actuelles, consultez la documentation anglaise.

Gestion d’une file d’attente de fusion

Vous pouvez augmenter la vitesse de développement avec une file d’attente de fusion pour les demandes de tirage dans votre référentiel.

Qui peut utiliser cette fonctionnalité

People with admin permissions can manage merge queues for pull requests targeting selected branches of a repository.

Les files d’attente de fusion de demandes de tirage 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 « Produits de GitHub ».

Remarque : La fonctionnalité de file d’attente de fusion des demandes de tirage est actuellement en version bêta publique et susceptible de changer.

À propos des files d’attente de fusion

Une file d’attente de fusion peut augmenter le débit de fusion des demandes de tirage dans une branche cible occupée tout en veillant à la réussite de toutes les vérifications de protection de branche nécessaires.

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 sur le dépôt peut ajouter cette demande de tirage à une file d’attente de fusion.

Une file d’attente de fusion peut utiliser GitHub Actions. Pour plus d’informations, consultez « Documentation GitHub Actions ».

La file d’attente de fusion crée des branches temporaires avec un préfixe spécial pour valider les modifications de demande de tirage (pull request). Les modifications apportées à la demande de tirage (pull request) sont ensuite regroupées dans un merge_group avec la dernière version de base_branch, ainsi que les modifications qui la précèdent dans la file d’attente. GitHub Enterprise Cloud fusionne toutes ces modifications dans base_branch une fois que les vérifications requises par les protections de branche de base_branch ont réussi.

Pour obtenir des informations sur les méthodes de fusion, consultez « À propos des fusions de demande de tirage ».

Remarques :

  • Une file d’attente de fusion ne peut pas être activée avec des règles de protection de branche qui utilisent des caractères génériques (*) dans le modèle de nom de branche.
  • Une file d’attente de fusion attend que les vérifications requises soient signalées avant de pouvoir poursuivre la fusion. Vous devez mettre à jour votre configuration CI pour déclencher et signaler des événements de groupe de fusion lorsque vous avez besoin d’une 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, GitHub Enterprise Cloud supprime la demande de tirage 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.

Déclenchement de vérifications de groupe de fusion avec GitHub Actions

Vous pouvez utiliser l’événement merge_group pour déclencher votre workflow GitHub Actions quand une demande de tirage (pull request) est ajoutée à une file d’attente de fusion. Notez qu’il s’agit d’un événement différent des événements pull_request et push.

Voici comment se présente un workflow qui signale une vérification requise par les protections de la branche cible :

on:
  pull_request:
  merge_group:

Pour plus d’informations, consultez « Événements qui déclenchent des flux de travail ».

Déclenchement de vérifications de groupe de fusion avec d’autres fournisseurs CI

Avec d’autres fournisseurs CI, vous devrez peut-être mettre à jour votre configuration CI pour permettre l’exécution quand une branche commençant par le préfixe spécial gh-readonly-queue/{base_branch} est créée.

Gestion d’une file d’attente de fusion

Les administrateurs de référentiel peuvent exiger une file d’attente de fusion en activant le paramètre de protection de branche « Exiger une file d’attente de fusion » dans les règles de protection de la branche de base. Pour plus d’informations, consultez « Gestion d’une règle de protection de branche ».

Une fois que vous avez activé « exiger une file d’attente de fusion », vous pouvez également accéder aux paramètres suivants :

  • Méthode de fusion : Sélectionnez la méthode à utiliser lors de la fusion des demandes de tirage en file d’attente : fusionner, rebaser ou squash.

  • Générer simultanément : Sélectionnez le nombre maximal de demandes de tirage à générer (entre 1 et 100). Ce paramètre limite le nombre de demandes de tirage en file d’attente qui peuvent exécuter des vérifications CI en même temps.

  • Limites de fusion : Sélectionnez le nombre minimal et maximal de demandes de tirage à fusionner dans un seul groupe (entre 1 et 100), puis un délai d’attente après lequel la file d’attente doit cesser d’attendre plus d’entrées et fusionner avec moins de demandes de tirage que le nombre minimal.

  • Fusionner uniquement les demandes de tirage non défaillantes : Ce paramètre détermine comment la file d’attente de fusion forme les groupes de demandes de tirage à fusionner.

    Si ce paramètre est sélectionné, seules les demandes de tirage qui réussissent leurs vérifications CI requises peuvent être ajoutées à un groupe. Cela peut être utile si vous souhaitez conserver un historique dans lequel chaque commit est en bon état, ou si vous exécutez différents ensembles de vérifications pour différentes demandes de tirage.

    S’il n’est pas sélectionné, les demandes de tirage qui ont échoué aux vérifications requises peuvent être ajoutées à un groupe tant que la dernière demande de tirage du groupe a réussi les vérifications requises. Si la dernière demande de tirage du groupe a réussi les vérifications requises, cela signifie que les vérifications ont réussi pour l’ensemble combiné de modifications dans le groupe de fusion. Laisser cette case décochée peut être utile si vous rencontrez des échecs de test intermittents, mais que vous ne souhaitez pas que les faux négatifs suspendent la file d’attente.

  • Délai d’expiration des vérifications d’état : Choisissez la durée pendant laquelle la file d’attente doit attendre une réponse de CI avant de supposer que les vérifications ont échoué.

Pour aller plus loin