Forstå commit-porten: Når skal commits blokkeres?
Hva er commit-porten?
Commit-porten er en valgfri funksjon i AI Diff Review som automatisk gjennomgår kodendringene dine før du committer dem. Basert på analyseresultatene kan den anbefale å blokkere en commit hvis den oppdager høyrissikoproblemer. Dette fungerer som et automatiserte sikkerhetsnett som fanger problemer før de når repositoryet ditt.
Porten er designet for å være intelligent og nyansert—den blokkerer ikke hvert mindre problem, men fokuserer på virkelig problematiske endringer som kan forårsake sikkerhetssårbarheter, datatap eller alvorlige funksjonalitetsbrudd.
Hvordan commit-porten fungerer
Vektet poenggivningssystem
Commit-porten bruker et sofistikert vektet poenggivningssystem for å evaluere alvorligheten av funn. Forskjellige typer problemer bidrar med forskjellige beløp til den totale poengsummen:
- Sikkerhetsbekymringer: KRITISK=5, ADVARSEL=3, INFO=2
- Kritiske problemer: KRITISK=4, ADVARSEL=3, INFO=2
- Ytelsesnotater: ADVARSEL=1.5, INFO=0.5
- Forslag: ADVARSEL=1, INFO=0.5
- Kodekvalitet: ADVARSEL=1, INFO=0.5
- Testanbefalinger: ADVARSEL=0.5, INFO=0.25
Denne vektingen sikrer at sikkerhetsproblemer og kritiske problemer har større innvirkning på beslutningen enn mindre forslag eller stilrekommendasjoner.
Alvorlighetsnivåer
Commit-porten tilbyr tre alvorlighetsnivåer som bestemmer hvor strengt blokkeringsatferden er:
INFO-nivå
Blokkerer commits når den totale vektede poengsummen når 4.0 eller høyere. Dette er den mest milde innstillingen, egnet for team som vil fange bare de mest alvorlige problemene.
ADVARSEL-nivå
Blokkerer commits når den totale vektede poengsummen når 6.0 eller høyere. Dette gir en balansert tilnærming, fanger betydelige problemer samtidig som mindre problemer tillates å passere.
KRITISK-nivå
Blokkerer commits når den totale vektede poengsummen når 8.0 eller høyere, ELLER når noe KRITISK element blir funnet i kategoriene Sikkerhetsbekymringer eller Kritiske problemer. Dette er den strengeste innstillingen, sikrer at alvorlige problemer aldri når repositoryt.
Hard-blokkeringsbetingelser
Visse betingelser utløser alltid en blokkeringsanbefaling, uavhengig av den totale poengsummen:
- Ethvert element med KRITISK alvorlighetsgrad i Sikkerhetsbekymringer
- Høyrissikkerhetsproblemer som:
- Hemmelighetslekkasjer eller eksponerte legitimasjoner
- SQL-injeksjonssårbarheter
- Fjernkodekjøringsrisikoer (RCE)
- Autentiseringsbypass-problemer
- Privilegieeskaleringssårbarheter
Disse hard-blokkeringsbetingelsene sikrer at alvorlige sikkerhetssårbarheter aldri ved et uhell committes, selv om den totale poengsummen er lav.
Eksplisitte AI-anbefalinger
I tillegg til det vektede poenggivningssystemet kan AI-modellen eksplisitt anbefale å blokkere en commit ved å sette should_block_commit=true i sitt svar. Når dette skjer, vil pluginet anbefale å blokkere commiten og gi AI:ens resonnement i feltet block_reason.
Dette tillater AI-en å ta nyanserte beslutninger basert på kontekst som kanskje ikke fanges av poenggivningssystemet alene. For eksempel kan AI-en oppdage et mønster av problemer som, selv om de individuelt er mindre, kollektivt representerer et betydelig problem.
Beslutningsfattende med menneskelig inngripen
Commit-porten forhindrer ikke automatisk at du committer—den gir en anbefaling og gir deg siste ord. Når du prøver å committe med porten aktivert, vil du se en beslutningsdialog som viser:
- Portens anbefaling (BLOKKER eller FORTSETT)
- Total poengsum og terskelverdi
- Antall funn per alvorlighetsgrad
- Sammendrag av viktige funn
- Toppbidragende problemer
Denne åpenheten hjelper deg forstå hvorfor en commit ble flagget og ta en informert beslutning. Hvis du velger å fortsette til tross for en BLOKKER-anbefaling, kan du oppgi en grunn som vil bli lagt til commit-meldingen din.
Konfigurere commit-porten
Aktivere porten
For å aktivere commit-porten, gå til Innstillinger → Verktøy → AI Diff Review og kryss av "Aktiver pre-commit-gjennomgang". Du kan deretter velge ditt foretrukne portalvorlighetsnivå.
Velge riktig nivå
Riktig alvorlighetsnivå avhenger av teamets behov:
- INFO: Bra for team som nettopp begynner med automatiserte gjennomganger eller de med svært erfarne utviklere
- ADVARSEL: Balansert alternativ for de fleste team, fanger betydelige problemer uten å være for restriktiv
- KRITISK: Best for sikkerhetsfølsomme prosjekter eller team som ønsker maksimal beskyttelse
Diff-områdebevissthet
Commit-porten er bevisst på diff-områdeinnstillinger. Som standard bidrar bare funn knyttet til endrede linjer (eller innenfor et lite nærhetsvindu) til poenggivningen. Globale eller ikke-målrettede INFO-elementer ignoreres typisk for portformål, noe som sikrer at porten fokuserer på problemer som faktisk ble introdusert av endringene dine.
Beste praksis
Start konservativt
Hvis du er ny på commit-porter, start med INFO-nivå og øk gradvis strengheten når teamet ditt blir komfortabel med prosessen. Dette hjelper til med å unngå frustrasjon fra overdrevent aggressiv blokkering.
Gjennomgå blokkerte commits
Når en commit blir blokkert, ta deg tid til å gjennomgå funnene. Selv om du bestemmer deg for å fortsette, hjelper det å forstå hvorfor den ble flagget deg med å lære og forbedre kodekvaliteten din.
Bruk overstyring rimelig
Muligheten til å overstyre en blokkeringsanbefaling er viktig for fleksibilitet, men bruk den gjennomtenkt. Hvis du ofte overstyrer blokkeringer, vurder om portnivået ditt er for strengt eller om det er mønstre i koden din som må adresseres.
Teamkommunikasjon
Sørg for at teamet ditt forstår hvordan commit-porten fungerer og hvorfor visse commits blir blokkert. Dette hjelper til med å bygge tillit til systemet og sikrer at alle er justert på kodekvalitetsstandarder.
Konklusjon
Commit-porten er et kraftig verktøy for å opprettholde kodekvalitet og sikkerhet, men den er mest effektiv når den er konfigurert passende for teamets behov. Ved å forstå hvordan den vektede poenggivningen fungerer og velge riktig alvorlighetsnivå, kan du skape et effektivt sikkerhetsnett som fanger problemer uten å bli en flaskehals.
Husk, porten er der for å hjelpe, ikke for å hindre. Bruk den som et verktøy for å forbedre kodekvalitet samtidig som du opprettholder utviklerproduktiviteten. Med riktig konfigurasjon og teamstøtte blir commit-porten en uvurderlig del av utviklingsarbeidsflyten din.
Klar til å sette opp commit-porten din? Installer AI Diff Review og begynn å beskytte kodbasen din i dag.