Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Copilot Autofix je funkce využívající umělou inteligenci v GitHub Advanced Security pro Azure DevOps, která generuje navrhované opravy k upozorněním z kontroly kódu. Když CodeQL identifikuje chybu zabezpečení nebo chybu v kódu, můžete vygenerovat opravu pro upozornění přímo z karty Advanced Security. Copilot Autofix používá agenta Copilot pro psaní kódu k vytvoření opravy a otevře pull request s navrženou změnou, takže ji můžete zkontrolovat, upravit a sloučit v rámci běžného pracovního postupu pro pull requesty.
Note
Tato funkce je k dispozici v omezeném veřejném náhledu. Microsoft momentálně nepřijímá další uživatele pro verzi Preview.
Funkce se můžou změnit nebo odebrat bez předchozího upozornění. Funkce preview nemají žádnou smlouvu o úrovni služeb (SLA) a omezenou podporu.
Pokročilé zabezpečení GitHubu pro Azure DevOps funguje s Azure Repos. Pokud chcete používat GitHub Advanced Security s úložišti GitHub, přečtěte si téma GitHub Advanced Security.
Předpoklady
| Kategorie | Requirements |
|---|---|
| Permissions | – Zobrazení souhrnu všech výstrah pro úložiště: Přispěvatel oprávnění k úložišti. – Chcete-li zavřít výstrahy v rozšířeném zabezpečení: oprávnění pro správce projektu. - Správa oprávnění v rozšířeném zabezpečení: Člen skupiny správců kolekce projektů nebo Rozšířené zabezpečení: správa nastavení oprávnění nastavena na Povolit. |
Další informace o pokročilých oprávněních zabezpečení naleznete v tématu Správa oprávnění Advanced Security.
- Skenování kódu nakonfigurované pro vaše úložiště pomocí výchozího nastavení nebo rozšířeného nastavení.
- Nejméně jedno upozornění nástroje CodeQL pro kontrolu kódu.
Informace o automatickém opravování Copilot
Copilot Autofix kombinuje analytický výkon CodeQL s velkým jazykovým modelem, který využívá agenta kódování Copilot. Když vygenerujete opravu pro podporované upozornění skenování kódu, Copilot Autofix analyzuje upozornění a okolní kód a potom otevře pull request, který obsahuje:
- Navrhovaná změna kódu, která řeší základní ohrožení zabezpečení.
- Popis opravené výstrahy, včetně ID výstrahy, závažnosti a souhrnu změny.
Vzhledem k tomu, že navrhovaná oprava považuje širší kontext základu kódu, může změna zahrnovat více než jeden řádek, ve kterém byla výstraha vyvolána, a v případě potřeby může zahrnovat změny v jiných souborech.
Note
Data zpracovávaná nástrojem Copilot Autofix nejsou používána k výcviku velkých jazykových modelů (LLM).
Important
Copilot návrhy automatických oprav generuje model AI a nezaručuje, že jsou správné, úplné nebo zabezpečené. Vždy pečlivě zkontrolujte žádost o přijetí změn, ověřte, že výstrahu vyřeší bez zavedení nových problémů, a před sloučením je otestujte.
Podporované jazyky
Copilot Autofix podporuje stejné jazyky, které CodeQL analyzuje pro kontrolu kódu, včetně C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby a Swiftu. Aktuální seznam jazyků podporovaných kódem CodeQL najdete v tématu Podpora jazyka a dotazů.
Billing
Copilot Autofix je součástí licence GitHub Advanced Security pro Azure DevOps. Vytvoření opravy spotřebuje kredity AI z fakturačního měřiče Azure vaší organizace.
Každá generace oprav využívá tokeny, mezi které patří vstupní tokeny pro kontext kódu odesílaný do modelu, výstupní tokeny pro navrhované změny a tokeny uložené v mezipaměti, které znovu používají existující kontext.
Aby bylo fakturace jednoduchá, tyto tokeny se převedou na standardní jednotku označovanou jako kredit GitHub AI, kde 1 kredit se rovná 0,01 USD. Poplatky se účtují na předplatné Azure propojené s vaší Azure DevOps organizací a v Správa nákladů v Azure se zobrazí jako samostatný měřič.
Náklady na každou opravu se liší podle velikosti okolního kontextu kódu a složitosti změny.
Pokud chcete monitorovat denní poplatky, na portálu Azure přejděte na> službyCost Management>předplatného.
Povolit Copilot Autofix
Funkci Copilot Autofix můžete povolit na úrovni organizace, projektu nebo úložiště. Když povolíte Autofix v širším rozsahu, nastavení se použije na všechna úložiště v tomto rozsahu. Zvolte, kde chcete nastavit Autofix podle toho, na která úložiště se má nastavení vztahovat:
| Scope | Kde nakonfigurovat automatickou opravu |
|---|---|
| Organizace | Vyberte Nastavení organizace>, aby bylo možné povolit Autofix pro všechny repozitáře v organizaci. |
| Projekt | Vyberte Nastavení projektu>Úložiště>Všechna úložiště, chcete-li povolit automatické opravy pro všechna úložiště v projektu. |
| Repository | Vyberte Project nastavení>Úložiště a pak vyberte úložiště, které povolí automatické opravy pouze pro toto úložiště. |
Zapnutí funkce Copilot Autofix:
- Přihlaste se ke své organizaci Azure DevOps (
https://dev.azure.com/{yourorganization}). - Přejděte na stránku nastavení oboru organizace, projektu nebo úložiště, který chcete nakonfigurovat.
- V části Rozšířené zabezpečení otevřete panel Funkce zabezpečení kódu .
- Zaškrtněte políčko Autofix pro výstrahy kontroly kódu a vytvořte automatické opravy pro výstrahy kontroly kódu vygenerované agentem kódování Copilot.
- Výběrem možnosti Použít změny uložte.
CodeQL už musí být spuštěný a generovat výstrahy pro úložiště. Další informace najdete v tématu Nastavování skenování kódu a Konfigurování GitHub pokročilých funkcí zabezpečení.
Vygenerování opravy pro upozornění
Po povolení funkce Copilot Autofix můžete vygenerovat opravu pro jakékoli podporované upozornění kontroly kódu.
- Vyberte Repos>Advanced Security.
- Vyberte kartu Kontrola kódu a pak výběrem výstrahy otevřete zobrazení podrobností.
- Zkontrolujte Umístění, Popis a Doporučení výstrahy, abyste porozuměli zjištění.
- Vyberte Vygenerovat opravu.
Zatímco Copilot Autofix pracuje na opravě, zobrazení podrobností upozornění ukazuje, že oprava probíhá. Copilot Autofix otevře žádost o sloučení, když je oprava připravená.
Copilot Autofix vygeneruje opravu a otevře pull request z větve pojmenované copilot-autofix/.... Pull request je označen tagem Copilot Autofix, který můžete použít k rozpoznání pull requestů Autofix v seznamu pull requestů.
U upozornění CodeQL se pull request automaticky zobrazí v podrobném zobrazení upozornění v části Související pull requesty a průběžně se aktualizuje podle toho, jak postupuje generování a dokončování, takže stránku nemusíte obnovovat.
Pokud Copilot Autofix pro dané upozornění nevygeneruje žádné změny kódu, nevytvoří větev ani pull request a v zobrazení podrobností upozornění na pull request neodkáže. V takovém případě opravte výstrahu ručně. Další informace najdete v tématu Oprava není k dispozici.
Zkontrolovat a sloučit opravu
Pull request, který otevře Copilot Autofix, se chová stejně jako jakýkoli jiný pull request v Azure Repos. Jeho popis shrnuje výstrahu, kterou oprava řeší.
Štítek Copilot Autofix označuje pull requesty automatických oprav.
- Otevřete požadavek na přetažení v části upozornění Související požadavky na přetažení nebo z nabídky Repos>Pull requests.
- Zkontrolujte navrženou změnu na kartě Soubory ve všech ovlivněných souborech.
- Upravte změnu, pokud potřebujete odpovídat stylu kódu, konvencím pojmenování nebo požadavkům projektu.
- Schvalte a dokončete pull request v rámci běžného procesu kontroly.
Po sloučení žádosti o přijetí změn a dokončení dalšího spuštění kontroly kódu se výstraha automaticky zavře, pokud oprava odebere základní ohrožení zabezpečení.
Tip
Vygenerovaná oprava je výchozí bod, nikoli konečná odpověď. S požadavkem na začlenění zacházejte jako s jakoukoli jinou změnou: před sloučením ho zkontrolujte, otestujte a podle potřeby požádejte o posouzení další recenzenty.
Řešení problémů s Copilot Autofix
Vygenerovala se oprava, ale nepodařilo se ji potvrdit ani odeslat.
Copilot autofix používá noreply@dev.azure.com jako e-mail autora potvrzení. Pokud zásada ověřování e-mailové adresy autora commitu tuto adresu nepovoluje, Copilot Autofix může vygenerovat změnu kódu, ale nemůže ji commitnout ani odeslat, aby vytvořil pull request.
Zobrazení podrobností výstrahy zobrazuje chybu, která identifikuje blokovaný e-mail autora potvrzení.
Přidejte noreply@dev.azure.com do povolených vzorů e-mailu v zásadách ověření e-mailu autora potvrzení:
- Vyberte nastavení projektu>úložiště.
- Vyberte Všechna úložiště , aby se aktualizovaly zásady na úrovni projektu, nebo vyberte úložiště, které má zásadu.
- Vyberte Zásady.
- V části Zásady úložiště vyhledejte možnost Ověření e-mailové adresy autora potvrzení změn.
- Přidejte
noreply@dev.azure.comdo povolených vzorů e-mailů. - Vraťte se k upozornění na skenování kódu a vyberte Opakovat opravu.
Běh se nezdařil
Pokud nelze dokončit běh funkce Copilot Autofix, upozornění zobrazí zřetelný stav selhání, abyste rychle poznali, že běh nebyl úspěšný. Ze stavu selhání můžete spuštění zopakovat a vygenerovat novou opravu.
Spuštění může selhat z přechodných důvodů nebo když spuštění nevytváří použitelnou změnu kódu. Opakujte spuštění a vygenerujte opravu znovu.
Oprava není k dispozici
Copilot Autofix nedokáže vygenerovat opravu pro každé upozornění. Oprava nemusí být dostupná, když:
- Copilot Autofix tento typ upozornění momentálně nepodporuje.
- Copilot určuje, že výstraha může být falešně pozitivní.
- Vlastní dotaz nebo nástroj třetí strany místo CodeQL vygeneruje výstrahu.
- Copilot Autofix se spustí, ale nevytvoří žádné změny v kódu. V tomto případě se nevytvořila žádná větev ani žádost o přijetí změn.
Pokud Copilot Autofix zjistí, že jde o falešně pozitivní výstrahu, a neprovede žádné změny, ve zobrazení podrobností výstrahy se zobrazí výsledek. Můžete zkontrolovat průběh nebo opravu spustit znovu.
Pokud není oprava k dispozici, použijte k nápravě problému oddíly Doporučení a Příklad v upozornění nebo upozornění ručně zavřete. Další informace najdete v tématu Podrobnosti výstrahy.