Aller au contenu

Examiner et fusionner une PR

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

  1. Rendez-vous à Demandes de tirage dans la barre latérale
  2. Sélectionnez une PR dans la liste

Une PR s’ouvre comme une aire 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 (les vérifications de CI regroupées par workflow). Revue — d’abord la progression du pipeline de révision, puis l’artéfact qu’il a publié avec son rail de constats — n’en fait délibérément pas partie : une PR n’a pas de revue tant que personne n’en demande une, donc c’est Ask AI qui l’ouvre. Un terminal, un éditeur d’un seul fichier, un code-server intégré et un navigateur intégré à l’application s’ouvrent à la demande ; les onglets d’aperçu de déploiement sont injectés automatiquement lorsqu’une URL d’aperçu 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, état des vérifications) et la rangée d’actions : actualiser, Revue, Merge, ouvrir dans l’IDE et un menu de débordement ⋯.

Ouvrez l’onglet Diff pour voir tout le diff de la PR d’un seul 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 Scindé (côte à côte) et la vue Unifié, et active ou désactive le retour à la ligne et les ligatures de la police de code.
  • Les en-têtes de bloc @@ sont remplacés par les commandes 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 sélectionné, sur t pour ramener la barre latérale à l’arborescence de fichiers et sur ⌘F pour chercher dans tout le diff (Enter / Shift+Enter parcourent les correspondances).
  • Appuyez sur v pour marquer le fichier sélectionné comme vu, et le curseur passe au fichier suivant. Sur GitHub, l’état « vu » est stocké sur la forge, de sorte qu’il vous suit d’un client à l’autre ; GitLab et Bitbucket n’ont pas une telle API, alors il n’y est mémorisé que sur cet appareil.

Un glissement de 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 marge d’une ligne de code pour ouvrir un composeur ancré à cette ligne, ou utilisez le bouton + de l’en-tête d’un fichier pour un commentaire au niveau du fichier
  2. Rédigez vos commentaires en Markdown
  3. Soumettez

Sur GitHub et GitLab, le composeur offre deux envois : Ajouter un seul commentaire publie immédiatement, tandis que Démarrer une revue / Ajouter à la revue met le commentaire dans une revue en attente, qui part avec Approuver, Demander des modifications ou Commenter. Bitbucket ne regroupe pas les commentaires dans une revue en attente, alors là-bas, chaque envoi publie immédiatement. Une publication immédiate affiche un état en attente jusqu’à ce que la forge la confirme, puis passe à l’état synchronisé. Si la publication échoue, le fil est marqué par l’erreur et propose de réessayer.

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

  1. Appuyez sur Revue dans la rangée d’actions de l’onglet Aperçu (le 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 émoji ou un GIF et basculer entre la rédaction 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 prend le libellé Approuvé ou Modifications demandées, et le corps du brouillon est effacé. Un verdict Commenter laisse le bouton sous le libellé Revue.

Le bouton Merge apparaît lorsque vous avez l’accès en é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 n’est qu’indicatif. Le bouton n’est jamais désactivé par l’état de la revue ; c’est la protection de branche propre à la forge qui applique les règles.

  1. Appuyez sur Merge pour ouvrir le volet volant 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 vraie fusion par rebase, alors rebase correspond à sa stratégie fast-forward et échoue sur une branche divergente
  3. Pour squash et merge commit, modifiez le titre et la description du commit préremplis. Rebase ne prend ni l’un ni l’autre et masque les deux champs
  4. Lisez le panneau des 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 dans le volet volant pour confirmer

La fusion est irréversible : elle pousse des commits vers la forge, donc elle passe par une étape de confirmation plutôt que par 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 préconfigurés : Stale repository cleanup, qui supprime les arbres de travail et les dossiers de conversations périmés de la PR, et Release notes, qui rédige une entrée de journal des modifications.

Le menu de débordement ⋯ de l’onglet Aperçu contient Ask AI, qui démarre le pipeline préconfiguré pr_review pour cette PR. L’élément n’apparaît que tant que la PR est ouverte. Voir Utiliser la révision assistée par IA pour savoir ce que fait le pipeline et comment publier ses constats, et Calcul de révision pour le modèle déterministe des cohortes et des axes.

Control Center importe aussi les PR ouvertes par des personnes à l’extérieur de l’application. Le déroulement de la revue ci-dessus est identique. Les PR externes sont détectées par le service d’interrogation périodique des PR.