Wat is de commit gate?

De commit gate is een optionele functie in AI Diff Review die automatisch je code wijzigingen bekijkt voordat je ze commit. Op basis van de analyseresultaten kan het aanbevelen om een commit te blokkeren als het hoog-risico problemen detecteert. Dit fungeert als een geautomatiseerd veiligheidsnet, dat problemen vangt voordat ze je repository bereiken.

De gate is ontworpen om intelligent en genuanceerd te zijn—het blokkeert niet elk klein probleem, maar richt zich op echt problematische wijzigingen die beveiligingskwetsbaarheden, gegevensverlies of ernstige functionaliteitsstoringen kunnen veroorzaken.

Hoe de commit gate werkt

Gewogen scoringssysteem

De commit gate gebruikt een geavanceerd gewogen scoringssysteem om de ernst van bevindingen te evalueren. Verschillende soorten problemen dragen verschillende bedragen bij aan de totale score:

  • Beveiligingszorgen: KRITIEK=5, WAARSCHUWING=3, INFO=2
  • Kritieke problemen: KRITIEK=4, WAARSCHUWING=3, INFO=2
  • Prestatie notities: WAARSCHUWING=1.5, INFO=0.5
  • Suggesties: WAARSCHUWING=1, INFO=0.5
  • Code kwaliteit: WAARSCHUWING=1, INFO=0.5
  • Test aanbevelingen: WAARSCHUWING=0.5, INFO=0.25

Deze weging zorgt ervoor dat beveiligingsproblemen en kritieke problemen meer impact hebben op de beslissing dan kleine suggesties of stijlaanbevelingen.

Ernstniveaus

De commit gate biedt drie ernstniveaus die bepalen hoe streng het blokkeergedrag is:

INFO Niveau

Blokkeert commits wanneer de totale gewogen score 4.0 of hoger bereikt. Dit is de meest soepele instelling, geschikt voor teams die alleen de meest ernstige problemen willen vangen.

WAARSCHUWING Niveau

Blokkeert commits wanneer de totale gewogen score 6.0 of hoger bereikt. Dit biedt een gebalanceerde aanpak, waarbij significante problemen worden gevangen terwijl kleine problemen worden doorgelaten.

KRITIEK Niveau

Blokkeert commits wanneer de totale gewogen score 8.0 of hoger bereikt, OF wanneer een KRITIEK item wordt gevonden in de categorieën Beveiligingszorgen of Kritieke problemen. Dit is de strengste instelling, waardoor ernstige problemen nooit het repository bereiken.

Hard-block voorwaarden

Bepaalde voorwaarden activeren altijd een blokkeeraanbeveling, ongeacht de totale score:

  • Elk item met KRITIEKE ernst in Beveiligingszorgen
  • Hoog-risico beveiligingsproblemen zoals:
    • Geheim lekken of blootgestelde referenties
    • SQL injectie kwetsbaarheden
    • Remote code execution (RCE) risico's
    • Authenticatie bypass problemen
    • Privilege escalation kwetsbaarheden

Deze hard-block voorwaarden zorgen ervoor dat ernstige beveiligingskwetsbaarheden nooit per ongeluk worden gecommit, zelfs als de totale score laag is.

Expliciete AI-aanbevelingen

Naast het gewogen scoringssysteem kan het AI-model expliciet aanbevelen om een commit te blokkeren door should_block_commit=true in zijn antwoord in te stellen. Wanneer dit gebeurt, zal de plugin aanbevelen om de commit te blokkeren en de redenering van de AI in het veld block_reason verstrekken.

Dit stelt de AI in staat genuanceerde beslissingen te nemen op basis van context die mogelijk niet alleen door het scoringssysteem wordt vastgelegd. De AI kan bijvoorbeeld een patroon van problemen detecteren die, hoewel individueel klein, gezamenlijk een significant probleem vertegenwoordigen.

Besluitvorming met menselijke tussenkomst

De commit gate voorkomt niet automatisch dat je commit—het geeft een aanbeveling en geeft je het laatste woord. Wanneer je probeert te committen met de gate ingeschakeld, zie je een beslissingsdialoog die toont:

  • De aanbeveling van de gate (BLOKKEER of GA DOOR)
  • Totale score en drempel
  • Aantal bevindingen per ernst
  • Samenvatting van belangrijke bevindingen
  • Top bijdragende problemen

Deze transparantie helpt je begrijpen waarom een commit is gemarkeerd en een geïnformeerde beslissing te nemen. Als je ervoor kiest om door te gaan ondanks een BLOKKEER-aanbeveling, kun je een reden opgeven die aan je commit-bericht wordt toegevoegd.

De commit gate configureren

De gate inschakelen

Om de commit gate in te schakelen, ga naar Instellingen → Tools → AI Diff Review en vink "Pre-commit review inschakelen" aan. Je kunt dan je voorkeurs gate-ernstniveau selecteren.

Het juiste niveau kiezen

Het juiste ernstniveau hangt af van de behoeften van je team:

  • INFO: Goed voor teams die net beginnen met geautomatiseerde review of die met zeer ervaren ontwikkelaars
  • WAARSCHUWING: Gebalanceerde optie voor de meeste teams, waarbij significante problemen worden gevangen zonder te restrictief te zijn
  • KRITIEK: Best voor beveiligingsgevoelige projecten of teams die maximale bescherming willen

Diff-bereik bewustzijn

De commit gate is zich bewust van diff-bereikinstellingen. Standaard dragen alleen bevindingen gekoppeld aan gewijzigde regels (of binnen een klein nabijheidsvenster) bij aan de scoring. Globale of niet-gerichte INFO-items worden typisch genegeerd voor gate-doeleinden, waardoor de gate zich richt op problemen die daadwerkelijk door je wijzigingen zijn geïntroduceerd.

Best practices

Conservatief beginnen

Als je nieuw bent met commit gates, begin met INFO-niveau en verhoog geleidelijk de strengheid naarmate je team comfortabel wordt met het proces. Dit helpt frustratie te voorkomen van overmatig agressief blokkeren.

Geblokkeerde commits bekijken

Wanneer een commit wordt geblokkeerd, neem de tijd om de bevindingen te bekijken. Zelfs als je besluit door te gaan, helpt begrijpen waarom het is gemarkeerd je te leren en je codekwaliteit te verbeteren.

Override redelijk gebruiken

De mogelijkheid om een blokkeeraanbeveling te overschrijven is belangrijk voor flexibiliteit, maar gebruik het doordacht. Als je vaak blokkades overschrijft, overweeg of je gate-niveau te streng is of of er patronen in je code zijn die moeten worden aangepakt.

Teamcommunicatie

Zorg ervoor dat je team begrijpt hoe de commit gate werkt en waarom bepaalde commits worden geblokkeerd. Dit helpt vertrouwen op te bouwen in het systeem en zorgt ervoor dat iedereen is afgestemd op codekwaliteitsstandaarden.

Conclusie

De commit gate is een krachtig hulpmiddel voor het handhaven van codekwaliteit en beveiliging, maar het is het meest effectief wanneer het geschikt is geconfigureerd voor de behoeften van je team. Door te begrijpen hoe de gewogen scoring werkt en het juiste ernstniveau te kiezen, kun je een effectief veiligheidsnet creëren dat problemen vangt zonder een knelpunt te worden.

Onthoud, de gate is er om te helpen, niet om te belemmeren. Gebruik het als een hulpmiddel om codekwaliteit te verbeteren terwijl je ontwikkelaarsproductiviteit behoudt. Met de juiste configuratie en teamondersteuning wordt de commit gate een onschatbaar onderdeel van je ontwikkelingsworkflow.

Klaar om je commit gate in te stellen? Installeer AI Diff Review en begin vandaag je codebase te beschermen.