Ga naar inhoud

Een PR reviewen en mergen

Deze gids laat zien hoe je een pull request reviewt en merget.

  1. Ga in de zijbalk naar Pull requests
  2. Selecteer een PR in de lijst

Een PR opent als een werkbank met tabbladen, niet als één pagina. Standaard gaan er vijf tabbladen open, in deze volgorde: Overzicht, Diff, Broncodebeheer, Chat en Acties (CI-controles gegroepeerd per workflow). Review — de voortgang van de review-pipeline en daarna het artefact dat die publiceert, met de bevindingen ernaast — hoort er bewust niet bij: een PR heeft pas een review als iemand erom vraagt, dus Ask AI opent het tabblad. Een terminal, een editor voor één bestand, een ingebedde code-server en een browser in de app openen op verzoek; deployment-previewtabs worden automatisch toegevoegd zodra er een preview-URL op de PR wordt gedetecteerd. Je tabindeling wordt per PR onthouden.

Het tabblad Overzicht bevat de metadata van de PR (auteur, branch, labels, toegewezen personen, reacties, commits, controlestatus) en de actierij: vernieuwen, Review, Merge, openen in IDE en een ⋯-overloopmenu.

Open het tabblad Diff om de hele diff van de PR in één keer te zien, met een bestandsboom om tussen bestanden te springen.

  • De instellingenknop in de diff-werkbalk schakelt tussen de weergave Gesplitst (naast elkaar) en Samengevoegd en zet regelterugloop en ligaturen van het codelettertype aan of uit.
  • Hunk-headers @@ zijn vervangen door bedieningselementen Show N lines / Show end of file die bij een klik de omliggende context invoegen.
  • Druk op j / k om tussen bestanden te stappen, op c om het bestand met focus in of uit te klappen, op t om de zijbalk terug te zetten op de bestandsboom en op ⌘F om de hele diff te doorzoeken (Enter / Shift+Enter lopen door de treffers).
  • Druk op v om het bestand met focus als bekeken te markeren; de cursor gaat naar het volgende bestand. Op GitHub wordt de status ‘bekeken’ op de forge opgeslagen, dus die volgt je tussen clients; GitLab en Bitbucket hebben zo’n API niet, dus daar wordt die alleen op dit apparaat onthouden.

Als je met de muis sleept in het codegebied, selecteer je tekst tot op de exacte kolom, en ⌘C kopieert de ruwe bron in plaats van de weergegeven diffmarkeringen.

  1. Tik op de kantlijn van een coderegel om een composer te openen die aan die regel verankerd is, of gebruik de +-knop op een bestandskop voor een reactie op bestandsniveau
  2. Schrijf je feedback in Markdown
  3. Verzend

Op GitHub en GitLab biedt de composer twee verzendopties: Losse reactie toevoegen plaatst de reactie meteen, en Review starten / Aan review toevoegen zet hem op een openstaande review die pas uitgaat bij Goedkeuren, Wijzigingen aanvragen of Reactie. Bitbucket kent geen batchen van openstaande reviews, dus daar wordt elke inzending meteen geplaatst. Een directe plaatsing toont een wachtende status tot de forge hem bevestigt, en gaat daarna naar gesynchroniseerd. Als het plaatsen mislukt, wordt de draad met de fout gemarkeerd en kun je het opnieuw proberen.

Alleen de tekst van de review is een concept: die wordt een moment nadat je stopt met typen server-side opgeslagen op (owner, repo, PR-nummer), dus hij overleeft een herlaadbeurt en volgt je tussen de desktop- en webclients.

  1. Druk op Review in de actierij van Overzicht (die is verborgen bij je eigen PR’s en bij een gesloten of samengevoegde PR)
  2. Schrijf de tekst van de review. Je kunt een afbeelding toevoegen, een emoji of een GIF invoegen en schakelen tussen schrijven en voorbeeld
  3. Druk op Wijzigingen aanvragen, Reactie of Goedkeuren

Het oordeel is de knop — er is geen aparte oordeelkiezer. Na Goedkeuren of Wijzigingen aanvragen krijgt de knop het label Goedgekeurd of Wijzigingen aangevraagd en wordt de concepttekst gewist. Bij het oordeel Reactie blijft de knop Review heten.

De knop Merge verschijnt wanneer je schrijfrechten hebt en de PR open en geen concept is. De kleur is een gereedheidssignaal dat is afgeleid van verplichte goedkeuringen en de controlestatus (gereed / wachtend / geblokkeerd) — het is alleen adviserend. De knop wordt nooit uitgeschakeld door de reviewstatus; de branchbeveiliging van de forge zelf is wat de regels afdwingt.

  1. Druk op Merge om het mergepaneel te openen
  2. Kies een mergemethode: squash, merge commit of rebase (squash is de standaard). Bitbucket heeft geen echte rebase-merge, dus rebase wordt toegewezen aan zijn fast-forwardstrategie en mislukt op een uiteengelopen branch
  3. Bewerk bij squash en merge commit de vooraf ingevulde titel en beschrijving van de commit. Rebase gebruikt geen van beide en verbergt beide velden
  4. Lees het waarschuwingspaneel — het noemt falende controles en openstaande reviews, maar houdt je niet tegen
  5. Druk op de mergeknop in het paneel om te bevestigen

Mergen is onomkeerbaar: er worden commits naar de forge gepusht, dus je krijgt een bevestigingsstap in plaats van een ongedaanmaakstap. Daarna wordt de cache van de PR ongeldig gemaakt, gaat de status naar Samengevoegd en wordt een PullRequestStatusChanged-gebeurtenis gestart met status merged. Die gebeurtenis geeft de tijdelijke worktree voor ‘openen in editor’ vrij en start twee meegeleverde pipelines: Stale repository cleanup, dat de verouderde worktrees en gespreksmappen van de PR opruimt, en Release notes, dat een changelog-vermelding opstelt.

Het ⋯-overloopmenu op het tabblad Overzicht bevat Ask AI, dat de meegeleverde pr_review-pipeline voor deze PR start. Het verschijnt alleen zolang de PR open is. Zie AI-gestuurde review gebruiken voor wat de pipeline doet en hoe je de bevindingen publiceert, en Review-compute voor het deterministische cohorten- en assenmodel.

Control Center importeert ook PR’s die mensen buiten de app hebben geopend. De reviewflow hierboven is identiek. Externe PR’s worden gedetecteerd door de PR-pollingdienst.