Aller au contenu

Examiner et fusionner une PR

Ce guide vous montre comment examiner et fusionner une demande de tirage.

  1. Dans la barre latérale, rendez-vous dans Demandes de tirage
  2. Sélectionnez une PR dans la liste

Une PR s’ouvre comme un espace de travail à onglets, et non comme une page unique. Cinq onglets s’ouvrent par défaut, dans cet ordre : Aperçu, Diff, Contrôle de source, Discussion et Actions (vérifications CI groupées par workflow). Revue — la progression du pipeline de revue, puis l’artefact qu’il a publié avec son volet de remarques — n’en fait délibérément pas partie : une PR n’a pas de revue tant que personne n’en demande une, c’est donc Ask AI qui l’ouvre. Un terminal, un éditeur mono-fichier, un code-server embarqué et un navigateur intégré s’ouvrent à la demande ; les onglets d’aperçu de déploiement sont injectés automatiquement lorsqu’une URL de prévisualisation est détectée sur la PR. La disposition de vos onglets est mémorisée par PR.

L’onglet Aperçu porte les métadonnées de la PR (auteur, branche, étiquettes, personnes assignées, réactions, commits, statut des vérifications) et la rangée d’actions : actualiser, Revue, Merge, ouvrir dans l’IDE et un menu ⋯.

Ouvrez l’onglet Diff pour voir tout le diff de la PR d’un coup, avec une arborescence de fichiers pour passer d’un fichier à l’autre.

  • Le bouton de réglages de la barre d’outils du diff bascule entre la vue côte à côte et la vue unifiée, et active ou désactive le retour à la ligne et les ligatures de police de code.
  • Les en-têtes de hunk @@ sont remplacés par les affordances Show N lines / Show end of file, qui insèrent le contexte environnant au clic.
  • Appuyez sur j / k pour passer d’un fichier à l’autre, sur c pour replier ou déplier le fichier ciblé, sur t pour ramener la barre latérale à l’arborescence de fichiers et sur ⌘F pour rechercher dans tout le diff (Enter / Shift+Enter parcourent les correspondances).
  • Appuyez sur v pour marquer le fichier ciblé comme vu, et le curseur passe au fichier suivant. Sur GitHub, l’état « vu » est stocké sur la forge, il vous suit donc entre les clients ; GitLab et Bitbucket n’ont pas d’API équivalente, l’état n’y est alors mémorisé que sur cet appareil.

Un glissement à la souris dans la zone de code sélectionne le texte jusqu’à la colonne exacte, et ⌘C copie la source brute plutôt que les marqueurs de diff affichés.

  1. Touchez la gouttière d’une ligne de code pour ouvrir une zone de rédaction ancrée à cette ligne, ou utilisez le bouton + d’un en-tête de fichier pour un commentaire au niveau du fichier
  2. Rédigez votre retour en Markdown
  3. Envoyez

Sur GitHub et GitLab, la zone de rédaction propose deux envois : Ajouter un seul commentaire publie immédiatement, et Démarrer une revue / Ajouter à la revue place le commentaire dans une revue en attente, qui part avec Approuver, Demander des modifications ou Commenter. Bitbucket ne regroupe pas de revue en attente, chaque envoi y est donc publié immédiatement. Un envoi immédiat affiche un état en attente tant que la forge ne l’a pas confirmé, puis passe à l’état synchronisé. Si l’envoi échoue, le fil est marqué par l’erreur et propose une nouvelle tentative.

Seul le corps de la revue est un brouillon : il est enregistré côté serveur pour le triplet (propriétaire, dépôt, numéro de PR) un instant après que vous avez cessé de taper, si bien qu’il survit à un rechargement et vous suit entre les clients bureau et web.

  1. Appuyez sur Revue dans la rangée d’actions de l’aperçu (ce bouton est masqué sur vos propres PR et sur une PR fermée ou fusionnée)
  2. Rédigez le corps de la revue. Vous pouvez joindre une image, insérer un emoji ou un GIF et basculer entre l’écriture et l’aperçu
  3. Appuyez sur Demander des modifications, Commenter ou Approuver

Le verdict est le bouton — il n’y a pas de sélecteur de verdict distinct. Après Approuver ou Demander des modifications, le bouton se renomme en Approuvé ou Modifications demandées et le corps du brouillon est effacé. Un verdict Commenter laisse le bouton libellé Revue.

Le bouton Merge apparaît lorsque vous avez le droit d’écriture, que la PR est ouverte et qu’il ne s’agit pas d’un brouillon. Sa couleur est un signal de préparation dérivé des approbations requises et de l’état des vérifications (prêt / en attente / bloqué) — il est purement indicatif. Le bouton n’est jamais désactivé par l’état de la revue ; c’est la protection de branche de la forge elle-même qui applique les règles.

  1. Appuyez sur Merge pour ouvrir le volet de fusion
  2. Choisissez une méthode de fusion : squash, merge commit ou rebase (squash est la valeur par défaut). Bitbucket n’a pas de vrai merge par rebase : rebase est alors ramené à sa stratégie fast-forward et échoue sur une branche divergente
  3. Pour squash et merge commit, modifiez le titre et la description de commit préremplis. Rebase ne prend ni l’un ni l’autre et masque les deux champs
  4. Lisez le panneau d’avertissements — il nomme les vérifications en échec et les revues en attente, mais ne vous bloque pas
  5. Appuyez sur le bouton de fusion du volet pour confirmer

La fusion est irréversible : elle pousse des commits vers la forge, elle a donc droit à une étape de confirmation plutôt qu’à une entrée d’annulation. Ensuite, le cache de la PR est invalidé, son statut passe à Fusionné et un événement PullRequestStatusChanged est déclenché avec le statut merged. Cet événement libère l’arbre de travail éphémère « ouvrir dans l’éditeur » et démarre deux pipelines fournis d’origine : Stale repository cleanup, qui supprime les arbres de travail et dossiers de conversation obsolètes de la PR, et Release notes, qui rédige une entrée de changelog.

Le menu ⋯ de l’onglet Aperçu contient Ask AI, qui démarre le pipeline pr_review fourni d’origine pour cette PR. Il n’apparaît que tant que la PR est ouverte. Voir Utiliser la revue assistée par IA pour savoir ce que fait le pipeline et comment publier ses remarques, et Calcul de revue pour le modèle déterministe de cohortes et d’axes.

Control Center importe aussi les PR ouvertes par des humains en dehors de l’application. Le flux de revue ci-dessus est identique. Les PR externes sont détectées par le service d’interrogation des PR.