Copilot Autofix för kodgenomsökning

Copilot Autofix är en AI-baserad funktion i GitHub Advanced Security för Azure DevOps som genererar föreslagna korrigeringar för kodgenomsökningsaviseringar. När CodeQL identifierar ett sårbarhets- eller kodfel kan du generera en korrigering för aviseringen direkt från fliken Avancerad säkerhet. Copilot Autofix använder Copilot kodningsagenten för att skapa korrigeringen och öppnar en pull-begäran med den föreslagna ändringen, så att du kan granska, redigera och sammanfoga den via ditt normala arbetsflöde för pull-begäran.

Note

Den här funktionen är i begränsad offentlig förhandsversion. Alla som registrerar sig för förhandsversionen får inte åtkomst.

Du behöver antingen GitHub Advanced Security för Azure DevOps eller, om du använder den fristående upplevelsen, GitHub Code Security för Azure DevOps aktiverat, tillsammans med code scanning konfigurerat för lagringsplatsen.

GitHub Advanced Security för Azure DevOps fungerar med Azure-lagringsplatser. Information om hur du använder GitHub Advanced Security med GitHub-lagringsplatser finns i GitHub Advanced Security.

Förutsättningar

Kategori Requirements
Behörigheter - Så här visar du en sammanfattning av alla aviseringar för en lagringsplats: Deltagare behörigheter för lagringsplatsen.
– Så här stänger du aviseringar i Avancerad säkerhet: Projektadministratör behörigheter.
– Hantera behörigheter i Avancerad säkerhet: Medlem i gruppen Project collection administrators eller behörigheten Avancerad säkerhet: hantera inställningar inställd på Tillåt.

Mer information om avancerade säkerhetsbehörigheter finns i Hantera avancerade säkerhetsbehörigheter.

  • Kodskanning konfigurerad för din lagringsplats med antingen standardkonfiguration eller avancerad konfiguration.
  • Minst en CodeQL-kodgenomsökningsavisering.

Om Copilot autofix

Copilot Autofix kombinerar analyskraften i CodeQL med den stora språkmodell som driver Copilot kodningsagenten. När du genererar en korrigering för en avisering om kodskanning som stöds analyserar Copilot Autofix aviseringen och den omgivande koden och öppnar sedan en pullbegäran som innehåller:

  • En föreslagen kodändring som åtgärdar den underliggande säkerhetsrisken.
  • En beskrivning av aviseringen som åtgärdas, inklusive aviserings-ID, allvarlighetsgrad och en sammanfattning av ändringen.

Eftersom den föreslagna korrigeringen tar hänsyn till den bredare kontexten för din kodbas kan ändringen sträcka sig över mer än den enda rad där aviseringen utlöstes och kan innehålla ändringar i andra filer där det behövs.

Important

Copilot autofixförslag genereras av en AI-modell och garanteras inte vara korrekta, fullständiga eller säkra. Granska alltid pull-begäran noggrant, kontrollera att den löser aviseringen utan att introducera nya problem och testa ändringarna innan du sammanfogar dem.

Språk som stöds

Copilot Autofix stöder samma språk som CodeQL analyserar för kodgenomsökning, inklusive C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby och Swift. Den aktuella listan över språk som stöds av CodeQL finns i Språk- och frågestöd.

Aktivera Copilot autofix

Aktivera Copilot autofix per lagringsplats som en del av kodsäkerhetsinställningarna.

  1. Logga in på din Azure DevOps-organisation (https://dev.azure.com/{yourorganization}).
  2. Välj Project inställningar>Databaser och välj sedan den lagringsplats som du vill konfigurera.
  3. I avsnittet Avancerad säkerhet öppnar du panelen Kodsäkerhetsfunktioner .
  4. Markera kryssrutan Autofix för kodgenomsökningsaviseringar för att skapa automatiska korrigeringar för kodgenomsökningsaviseringar som genereras av Copilot kodningsagenten.
  5. Tryck på Apply (Verkställ) för att spara ändringarna.

Skärmbild av panelen Kodsäkerhetsfunktioner med kryssrutan Autofix för kodgenomsökningsaviseringar markerad.

CodeQL måste redan köras och generera aviseringar för lagringsplatsen. Mer information finns i Konfigurera kodskanning och Konfigurera funktioner för GitHub Advanced Security.

Skapa en åtgärd för en varning

När du har aktiverat Copilot autofix kan du generera en korrigering från alla kodgenomsökningsaviseringar som stöds.

  1. Välj Repos>Avancerad säkerhet.
  2. Välj fliken Kodgenomsökning och välj sedan en avisering för att öppna dess detaljvy.
  3. Granska aviseringens plats, beskrivning och rekommendation för att förstå fyndet.
  4. Välj Skapa korrigering.

Skärmbild av en informationsvy för kodgenomsökning med knappen Generera korrigering i det övre högra hörnet.

Copilot Autofix genererar korrigeringen och öppnar en pull-begäran från en gren med namnet copilot-autofix/.... När korrigeringen har genererats visas pull-begäran under Relaterade pull-begäranden i aviseringsinformationsvyn.

Granska och sammanfoga korrigeringen

Den pull-begäran som Copilot Autofix öppnar fungerar som vilken annan pull-begäran i Azure-lagringsplatser som helst. Beskrivningen sammanfattar aviseringen som korrigeringen adresserar.

Skärmbild av en pull-begäran som skapats av Copilot Autofix, som visar aviserings-ID, allvarlighetsgrad och korrigeringsinformation i beskrivningen.

  1. Öppna pullbegäran från avsnittet Relaterade pullbegäranden i aviseringen eller från Repos>Pullbegäranden.
  2. Granska den föreslagna ändringen på fliken Filer för alla berörda filer.
  3. Redigera ändringen om du behöver matcha kodformatet, namngivningskonventionerna eller projektkraven.
  4. Godkänn och slutför pull-begäran via ditt normala granskningsarbetsflöde.

När pull-begäran har sammanfogats och nästa kodgenomsökning har slutförts stängs aviseringen automatiskt om korrigeringen tar bort den underliggande säkerhetsrisken.

Tip

En genererad korrigering är en startpunkt, inte ett slutligt svar. Behandla pull-begäran som andra ändringar: granska den, testa den och begär ytterligare granskare efter behov innan du sammanfogar.

När en korrigering inte är tillgänglig

Copilot Autofix kan inte generera en korrigering för varje avisering. En korrigering kanske inte är tillgänglig när:

  • Aviseringstypen stöds för närvarande inte av Copilot autofix.
  • Copilot fastställer att aviseringen är en falsk positiv.
  • En anpassad fråga eller ett verktyg från tredje part, i stället för CodeQL, genererar aviseringen.

När en korrigering inte är tillgänglig använder du avsnitten Rekommendation och Exempel i aviseringen för att åtgärda den eller stänga aviseringen manuellt. Mer information finns i aviseringsinformation.