Hvad er commit-porten?

Commit-porten er en valgfri funktion i AI Diff Review, der automatisk gennemgår dine kodeændringer, før du committer dem. Baseret på analyseresultaterne kan den anbefale at blokere en commit, hvis den opdager højrisikoproblemer. Dette fungerer som et automatiseret sikkerhedsnet, der fanger problemer, før de når dit repository.

Porten er designet til at være intelligent og nuanceret—den blokerer ikke hvert mindre problem, men fokuserer på virkelig problematiske ændringer, der kan forårsage sikkerhedssårbarheder, datatab eller alvorlige funktionalitetsbrud.

Hvordan commit-porten fungerer

Vægtet scoringssystem

Commit-porten bruger et sofistikeret vægtet scoringssystem til at evaluere alvorligheden af resultater. Forskellige typer problemer bidrager med forskellige beløb til den samlede score:

  • Sikkerhedsbekymringer: KRITISK=5, ADVARSEL=3, INFO=2
  • Kritiske problemer: KRITISK=4, ADVARSEL=3, INFO=2
  • Ydelsesnoter: 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 vægtning sikrer, at sikkerhedsproblemer og kritiske problemer har større indflydelse på beslutningen end mindre forslag eller stilrekommendationer.

Alvorlighedsniveauer

Commit-porten tilbyder tre alvorlighedsniveauer, der bestemmer, hvor streng blokeringadfærd er:

INFO-niveau

Blokerer commits, når den samlede vægtede score når 4.0 eller højere. Dette er den mest milde indstilling, egnet til teams, der kun vil fange de mest alvorlige problemer.

ADVARSEL-niveau

Blokerer commits, når den samlede vægtede score når 6.0 eller højere. Dette giver en balanceret tilgang, fanger betydelige problemer, mens mindre problemer tillades at passere.

KRITISK-niveau

Blokerer commits, når den samlede vægtede score når 8.0 eller højere, ELLER når noget KRITISK element findes i kategorierne Sikkerhedsbekymringer eller Kritiske problemer. Dette er den strengeste indstilling, sikrer at alvorlige problemer aldrig når repositoryet.

Hårdblokeringsbetingelser

Visse betingelser udløser altid en blokeringsanbefaling, uanset den samlede score:

  • Ethvert element med KRITISK alvorlighedsgrad i Sikkerhedsbekymringer
  • Højrisikosikkerhedsproblemer såsom:
    • Hemmelighedslækager eller eksponerede legitimationsoplysninger
    • SQL-injektionssårbarheder
    • Fjernkodekørselsrisici (RCE)
    • Godkendelsesbypass-problemer
    • Privilegieeskaleringssårbarheder

Disse hårdblokeringsbetingelser sikrer, at alvorlige sikkerhedssårbarheder aldrig ved et uheld committes, selvom den samlede score er lav.

Eksplicitte AI-anbefalinger

Ud over det vægtede scoringssystem kan AI-modellen eksplicit anbefale at blokere en commit ved at sætte should_block_commit=true i sit svar. Når dette sker, vil pluginet anbefale at blokere commiten og give AI:ens begrundelse i feltet block_reason.

Dette tillader AI'en at træffe nuancerede beslutninger baseret på kontekst, der muligvis ikke fanges af scoringssystemet alene. For eksempel kan AI'en opdage et mønster af problemer, der, selvom de individuelt er mindre, kollektivt repræsenterer et betydeligt problem.

Beslutningsfattende med menneskelig indgriben

Commit-porten forhindrer ikke automatisk, at du committer—den giver en anbefaling og giver dig sidste ord. Når du forsøger at committe med porten aktiveret, vil du se en beslutningsdialog, der viser:

  • Portens anbefaling (BLOKER eller FORTSÆT)
  • Samlet score og tærskelværdi
  • Antal resultater per alvorlighedsgrad
  • Resumé af vigtige resultater
  • Topbidragende problemer

Denne gennemsigtighed hjælper dig med at forstå, hvorfor en commit blev flagget, og træffe en informeret beslutning. Hvis du vælger at fortsætte på trods af en BLOKER-anbefaling, kan du angive en grund, der vil blive tilføjet din commit-besked.

Konfigurere commit-porten

Aktivere porten

For at aktivere commit-porten, gå til Indstillinger → Værktøjer → AI Diff Review og marker "Aktiver pre-commit-gennemgang". Du kan derefter vælge dit foretrukne portalvorlighedsniveau.

Vælge det rigtige niveau

Det rigtige alvorlighedsniveau afhænger af dit teams behov:

  • INFO: Godt til teams, der lige er begyndt med automatiseret gennemgang, eller dem med meget erfarne udviklere
  • ADVARSEL: Balanceret mulighed for de fleste teams, fanger betydelige problemer uden at være for restriktiv
  • KRITISK: Bedst til sikkerhedsfølsomme projekter eller teams, der ønsker maksimal beskyttelse

Diff-områdebevidsthed

Commit-porten er bevidst om diff-områdeindstillinger. Som standard bidrager kun resultater knyttet til ændrede linjer (eller inden for et lille nærhedsvindue) til scoringen. Globale eller ikke-målrettede INFO-elementer ignoreres typisk til portformål, hvilket sikrer, at porten fokuserer på problemer, der faktisk introduceres af dine ændringer.

Bedste praksis

Start konservativt

Hvis du er ny til commit-porte, start med INFO-niveau og øg gradvist strengheden, når dit team bliver komfortabel med processen. Dette hjælper med at undgå frustration fra overdrevent aggressiv blokering.

Gennemgå blokerede commits

Når en commit bliver blokeret, tag dig tid til at gennemgå resultaterne. Selvom du beslutter at fortsætte, hjælper det at forstå, hvorfor den blev flagget dig med at lære og forbedre din kodekvalitet.

Brug tilsidesættelse rimeligt

Muligheden for at tilsidesætte en blokeringsanbefaling er vigtig for fleksibilitet, men brug den gennemtænkt. Hvis du ofte tilsidesætter blokeringer, overvej, om dit portniveau er for strengt, eller om der er mønstre i din kode, der skal adresseres.

Teamkommunikation

Sørg for, at dit team forstår, hvordan commit-porten fungerer, og hvorfor visse commits bliver blokeret. Dette hjælper med at bygge tillid til systemet og sikrer, at alle er justeret på kodekvalitetsstandarder.

Konklusion

Commit-porten er et kraftfuldt værktøj til at opretholde kodekvalitet og sikkerhed, men den er mest effektiv, når den er konfigureret passende til dit teams behov. Ved at forstå, hvordan den vægtede scoring fungerer, og vælge det rigtige alvorlighedsniveau, kan du skabe et effektivt sikkerhedsnet, der fanger problemer uden at blive en flaskehals.

Husk, porten er der for at hjælpe, ikke for at hindre. Brug den som et værktøj til at forbedre kodekvalitet, mens du opretholder udviklerproduktiviteten. Med korrekt konfiguration og teamstøtte bliver commit-porten en uvurderlig del af din udviklingsarbejdsgang.

Klar til at sætte din commit-port op? Installer AI Diff Review og begynd at beskytte din kodbase i dag.