Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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. Microsoft accepterar för närvarande inte ytterligare användare för förhandsversionen.
Funktionen kan ändras eller tas bort utan föregående meddelande. Förhandsversionsfunktioner har inget serviceavtal (SLA) och begränsad support.
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.
Note
Data som hanteras av Copilot Autofix används inte för att träna stora språkmodeller (LLM).
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.
Billing
Copilot Autofix ingår i din GitHub Advanced Security för Azure DevOps licens. Att generera en korrigering förbrukar AI-krediter från din organisations Azure-debiteringsmätare.
Varje korrigeringsgenerering använder token, som inkluderar indatatoken för kodkontexten som skickas till modellen, utdatatoken för den föreslagna ändringen och cachelagrade token som återanvänder befintlig kontext.
För att hålla faktureringen enkel konverteras dessa token till en standardenhet som kallas för en GitHub AI-kredit, där 1 kredit är lika med 0,01 USD. Avgifterna debiteras till den Azure prenumeration som är länkad till din Azure DevOps organisation och visas som en separat mätare i Azure Cost Management.
Kostnaden för varje korrigering varierar med storleken på den omgivande kodkontexten och ändringens komplexitet.
Om du vill övervaka dina dagliga avgifter går du tillKostnadsanalys för>> i Azure-portalen.
Aktivera Copilot autofix
Du kan aktivera Copilot autofix på organisations-, projekt- eller lagringsplatsnivå. När du aktiverar Autofix i ett bredare omfång gäller inställningen för alla lagringsplatser inom det omfånget. Välj var du vill konfigurera autofix baserat på de lagringsplatser som du vill att inställningen ska gälla för:
| Scope | Var du konfigurerar Autofix |
|---|---|
| Organisation | Välj Organisationsinställningar>Lagringsplatser för att aktivera autofix för alla lagringsplatser i organisationen. |
| Projekt | Välj Project inställningar>Lagringsplatser>Alla lagringsplatser för att aktivera Autofix för alla lagringsplatser i project. |
| Lagringsplats | Välj Project inställningar>Lagringsplatser och välj sedan en lagringsplats för att aktivera Autofix för endast den lagringsplatsen. |
Så här aktiverar du Copilot autofix:
- Logga in på din Azure DevOps-organisation (
https://dev.azure.com/{yourorganization}). - Gå till inställningssidan för organisationen, projektet eller lagringsplatsen som du vill konfigurera.
- I avsnittet Avancerad säkerhet öppnar du panelen Kodsäkerhetsfunktioner .
- Markera kryssrutan Autofix för kodgenomsökningsaviseringar för att skapa automatiska korrigeringar för kodgenomsökningsaviseringar som genereras av Copilot kodningsagenten.
- Tryck på Apply (Verkställ) för att spara ändringarna.
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.
- Välj Repos>Avancerad säkerhet.
- Välj fliken Kodgenomsökning och välj sedan en avisering för att öppna dess detaljvy.
- Granska aviseringens plats, beskrivning och rekommendation för att förstå fyndet.
- Välj Skapa korrigering.
Medan Copilot Autofix arbetar med korrigeringen visar detaljvyn för aviseringen att korrigeringen pågår. Copilot Autofix öppnar en pull-begäran när korrigeringen är klar.
Copilot Autofix genererar korrigeringen och öppnar en pull-begäran från en gren med namnet copilot-autofix/.... Pull-begäran är märkt med en Copilot Autofix-tagg som du kan använda för att identifiera Autofix-pull-begäranden i listan med pull-begäranden.
För CodeQL-aviseringar visas pull-begäran automatiskt under Relaterade pull-begäranden i aviseringsinformationsvyn och fortsätter att uppdateras när generering och slutförande förlopp, så du behöver inte uppdatera sidan.
Om Copilot Autofix inte skapar några kodändringar för aviseringen skapar den inte en gren eller en pull-begäran, och den länkar inte en pull-begäran i aviseringsinformationsvyn. I det här fallet kan du åtgärda aviseringen manuellt. Mer information finns i Det går inte att åtgärda.
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.
Etiketten Copilot Autofix identifierar pull-begäranden för autofix.
- Öppna pullbegäran från avsnittet Relaterade pullbegäranden i aviseringen eller från Repos>Pullbegäranden.
- Granska den föreslagna ändringen på fliken Filer för alla berörda filer.
- Redigera ändringen om du behöver matcha kodformatet, namngivningskonventionerna eller projektkraven.
- 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.
Felsök Copilot Autofix
En rättelse genererades men kunde inte checkas in eller pushas
Copilot Autofix använder noreply@dev.azure.com som e-postadress för incheckningsförfattaren. Om en princip för validering av e-postadress för commitförfattare inte tillåter någon med den här adressen kan Copilot Autofix generera kodändringen men kan inte göra en commit eller pusha den för att skapa pullbegäran.
Detaljvyn för aviseringen visar ett felmeddelande som anger e-postadressen för författaren till den blockerade incheckningen.
Lägg till noreply@dev.azure.com i de tillåtna e-postmönstren i verifieringsprincipen för incheckningsförfattarens e-post:
- Välj Projektinställningar>Lagringsplatser.
- Välj Alla lagringsplatser för att uppdatera principen på projektnivå eller välj den lagringsplats som har principen.
- Välj Principer.
- Under Databasprinciper hittar du Validering av e-postadress för incheckningsförfattare.
- Lägg till
noreply@dev.azure.comi de tillåtna e-postmönstren. - Gå tillbaka till kodgenomsökningsaviseringen och välj Försök åtgärda igen.
En körning misslyckas
Om en Copilot Autofix-körning inte kan slutföras visar varningen en tydlig felstatus så att du snabbt ser att körningen inte lyckades. Från feltillståndet kan du försöka köra igen för att generera en ny korrigering.
En körning kan misslyckas av övergående orsaker eller när körningen inte resulterar i en användbar kodändring. Försök köra igen för att generera korrigeringen igen.
Åtgärden är inte 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 avgör att aviseringen kan vara falskt positiv.
- En anpassad fråga eller ett verktyg från tredje part, i stället för CodeQL, genererar aviseringen.
- Copilot Autofix körs men skapar inga kodändringar. I det här fallet skapas ingen gren- eller pull-begäran.
Om Copilot Autofix avgör att aviseringen kan vara en falsk positiv och inte genererar några ändringar visas resultatet i detaljvyn för aviseringen. Du kan granska körningen eller köra korrigeringen igen.
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.