Branch protection a code review v GitHubu pro malé týmy
V malém týmu se snadno stane, že se ochrana větve obejde nebo nastaví příliš přísně a vývoj se zasekne. GitHub nabízí branch protection rules, které dokážou pokrýt většinu potřeb bez zbytečné administrativy. Základem je zapnout ochranu na hlavní větvi, typicky main nebo master, a zakázat přímé pushování. Každá změna pak musí projít pull requestem, což vytváří přirozený prostor pro kontrolu kódu i pro diskusi o návrhu řešení.
U povinných recenzí stačí nastavit minimální počet schválení na jedna, pokud tým netrpí přehnanou benevolentností. Vyžadovat dvě schválení u malého týmu často znamená, že se PR zasekne na dovolené jednoho člověka. Důležitější je zapnout dismiss stale reviews, aby se stará schválení zneplatnila po každém dalším commitu. Stejně tak require review from code owners dává smysl jen tehdy, když máte soubor CODEOWNERS skutečně udržovaný. Pro inspiraci, jak nastavit větvení a review procesy v menším kolektivu, se hodí Git workflow pro týmovou spolupráci, kde najdete osvědčené postupy bez zbytečné byrokracie.
Dále je vhodné zapnout require status checks to pass, aby se mergovalo jen to, co projde CI. Do required checks patří build, testy a lint, ne všechny možné pluginy, které zpomalují pipeline. Možnost require branches to be up to date před mergem zabrání konfliktům, i když občas nutí vývojáře rebasovat. U malého týmu se vyplatí povolit auto-merge, jakmile jsou všechny podmínky splněny, protože to šetří ruční klikání a snižuje riziko, že někdo zapomene PR dokončit.
Nakonec nastavte pravidla i pro tagy a release větve, nejen pro main. Restricted push na tagy s verzí zabrání nechtěnému přepsání vydané verze. Pravidla pro menší tým mají být jednoduchá, srozumitelná a hlavně vynutitelná. Pokud je ochrana příliš tvrdá, lidé si najdou obezličku, například si vypnou ochranu ručně. Lepší je začít s minimem a postupně přidávat podle toho, jaké problémy se v praxi objeví.