Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Copilot Autofix to oparta na sztucznej inteligencji funkcja usługi GitHub Advanced Security for Azure DevOps, która generuje sugerowane poprawki dla alertów generowanych przez skanowanie kodu. Gdy CodeQL wykryje lukę w zabezpieczeniach lub błąd w kodzie, możesz wygenerować poprawkę dla alertu bezpośrednio na karcie Advanced Security. Copilot Autofix używa agenta programistycznego Copilot do utworzenia poprawki i otwiera pull request z proponowaną zmianą, dzięki czemu możesz go przejrzeć, edytować i scalić w ramach standardowego przepływu pracy pull requestów.
Note
Ta funkcja jest dostępna w ograniczonej publicznej wersji zapoznawczej. Microsoft obecnie nie akceptuje dodatkowych użytkowników w wersji zapoznawczej.
Funkcjonalność może ulec zmianie lub zostać usunięta bez powiadomienia. Funkcje w wersji zapoznawczej nie mają umowy dotyczącej poziomu usług (SLA) i ograniczonej pomocy technicznej.
GitHub Advanced Security for Azure DevOps współpracuje z Azure Repos. Aby użyć GitHub Advanced Security z repozytoriami GitHub, zobacz GitHub Advanced Security.
Wymagania wstępne
| Kategoria | Requirements |
|---|---|
| Uprawnienia | — Aby wyświetlić podsumowanie wszystkich alertów dla repozytorium: Współautor uprawnienia dla repozytorium. — Aby odrzucić alerty w usłudze Advanced Security: uprawnienia administratora projektu. - Aby zarządzać uprawnieniami w Zaawansowanych zabezpieczeniach: członek grupy Administratorzy kolekcji projektów lub uprawnienie Zaawansowane zabezpieczenia: zarządzanie ustawieniami ustawione na Dozwolone. |
Aby uzyskać więcej informacji na temat uprawnień zabezpieczeń zaawansowanych, zobacz Zarządzanie uprawnieniami zabezpieczeń zaawansowanych.
- Skanowanie kodu skonfigurowane dla repozytorium przy użyciu konfiguracji domyślnej lub konfiguracji zaawansowanej.
- Co najmniej jeden alert skanowania kodu CodeQL.
Informacje o funkcji Copilot Autofix
Copilot Autofix łączy moc analityczną CodeQL z dużym modelem językowym, który napędza agenta kodującego Copilot. Gdy wygenerujesz poprawkę dla obsługiwanego alertu skanowania kodu, Copilot Autofix analizuje alert i otaczający go kod, a następnie otwiera pull request zawierający:
- Sugerowana zmiana kodu, która usuwa podstawową lukę w zabezpieczeniach.
- Opis naprawionego alertu, w tym identyfikator alertu, ważność i podsumowanie zmiany.
Sugerowana poprawka uwzględnia szerszy kontekst bazy kodu, dlatego zmiana może obejmować więcej niż pojedynczy wiersz, w którym został zgłoszony alert, i może zawierać zmiany w innych plikach w razie potrzeby.
Note
Dane przetwarzane przez Copilot Autofix nie są wykorzystywane do trenowania modeli wielkojęzykowych (LLM).
Ważna
Sugestie funkcji Autofix w usłudze Copilot są generowane przez model AI i nie ma gwarancji, że są poprawne, kompletne ani bezpieczne. Zawsze uważnie przejrzyj pull request, zweryfikuj, czy rozwiązuje alert bez wprowadzania nowych problemów, a następnie przetestuj zmiany przed ich scaleniem.
Obsługiwane języki
Copilot Autofix obsługuje te same języki, które CodeQL analizuje na potrzeby skanowania kodu, w tym C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby i Swift. Aby uzyskać bieżącą listę języków obsługiwanych przez język CodeQL, zobacz Obsługa języków i zapytań.
Billing
Copilot Autofix jest objęty licencją GitHub Advanced Security for Azure DevOps. Utworzenie poprawki powoduje zużycie kredytów AI z licznika rozliczeniowego platformy Azure Twojej organizacji.
Każda generacja poprawki używa tokenów, które obejmują tokeny wejściowe dla kontekstu kodu wysyłanego do modelu, tokeny wyjściowe sugerowanej zmiany i buforowane tokeny, które ponownie używają istniejącego kontekstu.
Aby uprościć rozliczenia, tokeny te są przeliczane na standardową jednostkę o nazwie kredyt GitHub AI, przy czym 1 kredyt odpowiada 0,01 USD. Opłaty są naliczane za subskrypcję Azure połączoną z organizacją Azure DevOps i wyświetlane jako oddzielny miernik w Azure Cost Management.
Koszt każdej poprawki zależy od rozmiaru otaczającego kontekstu kodu i złożoności zmiany.
Aby monitorować dzienne koszty, przejdź do Subskrypcja>Zarządzanie kosztami>Analiza kosztów w portalu Azure.
Włącz funkcję Copilot Autofix
Możesz włączyć Copilot Autofix na poziomie organizacji, projektu lub repozytorium. Po włączeniu automatycznego poprawiania na szerszym poziomie to ustawienie ma zastosowanie do wszystkich repozytoriów w tym zakresie. Wybierz, gdzie skonfigurować Autofix, w zależności od repozytoriów, których ma dotyczyć to ustawienie:
| Scope | Gdzie skonfigurować Autofix |
|---|---|
| Organizacja | Wybierz Ustawienia organizacji>, aby włączyć Autofix dla wszystkich repozytoriów w organizacji. |
| Projekt | Wybierz Ustawienia projektu>Repozytoria>Wszystkie repozytoria, aby włączyć Autofix dla wszystkich repozytoriów w projekcie. |
| Repozytorium | Wybierz Ustawienia projektu>Repozytoria, a następnie wybierz repozytorium, aby włączyć automatyczne poprawki tylko dla tego repozytorium. |
Aby włączyć automatyczne poprawki Copilot:
- Zaloguj się do organizacji usługi Azure DevOps (
https://dev.azure.com/{yourorganization}). - Przejdź do strony ustawień dla organizacji, projektu lub zakresu repozytorium, które chcesz skonfigurować.
- W sekcji Advanced Security (Zabezpieczenia zaawansowane ) otwórz panel Funkcje zabezpieczeń kodu .
- Zaznacz pole wyboru Automatyczne poprawki dla alertów skanowania kodu, aby tworzyć automatyczne poprawki dla alertów skanowania kodu generowane przez agenta programistycznego Copilot.
- Wybierz pozycję Zastosuj, aby zapisać zmiany.
KodQL musi już działać i generować alerty dla repozytorium. Aby uzyskać więcej informacji, zobacz Konfigurowanie skanowania kodu i Konfigurowanie funkcji GitHub Advanced Security.
Wygenerować poprawkę dla alertu
Po włączeniu funkcji Copilot Autofix możesz wygenerować poprawkę na podstawie dowolnego obsługiwanego alertu skanowania kodu.
- Wybierz Repos>Zaawansowane zabezpieczenia.
- Wybierz kartę Skanowanie kodu , a następnie wybierz alert, aby otworzyć widok szczegółów.
- Przejrzyj lokalizację, opis i zalecenie alertu, aby zrozumieć wyniki.
- Wybierz pozycję Generuj poprawkę.
Gdy Copilot Autofix pracuje nad poprawką, w widoku szczegółów alertu widać, że poprawka jest w toku. Copilot Autofix otwiera pull request, gdy poprawka jest gotowa.
Copilot Autofix generuje poprawkę i otwiera pull request na podstawie gałęzi o nazwie copilot-autofix/.... Pull request jest oznaczony etykietą Copilot Autofix, której można użyć do identyfikowania pull requestów Autofix na liście pull requestów.
W przypadku alertów CodeQL żądanie ściągnięcia jest wyświetlane automatycznie w obszarze Powiązane żądania ściągnięcia w widoku szczegółów alertu i kontynuuje aktualizowanie w miarę postępu generowania i uzupełniania, aby nie trzeba było odświeżać strony.
Jeśli funkcja Copilot Autofix nie generuje żadnych zmian w kodzie dla alertu, nie tworzy gałęzi ani pull requestu i nie dodaje linku do pull requestu w widoku szczegółów alertu. W takim przypadku ręcznie koryguj alert. Aby uzyskać więcej informacji, zobacz Poprawka jest niedostępna.
Przeglądanie i scalanie poprawki
Pull request otwierany przez Copilot Autofix działa jak każdy inny pull request w usłudze Azure Repos. Jego opis podsumowuje alert, którego dotyczy poprawka.
Etykieta Copilot Autofix identyfikuje pull requesty z automatycznymi poprawkami.
- Otwórz żądanie pobrania z sekcji alertu Powiązane żądania pobrania albo z Repozytoria>Żądania pobrania.
- Przejrzyj proponowaną zmianę na karcie Pliki we wszystkich plikach, których dotyczy problem.
- Edytuj zmianę, jeśli chcesz dopasować styl kodu, konwencje nazewnictwa lub wymagania dotyczące projektu.
- Zatwierdź i sfinalizuj pull request w ramach standardowego procesu przeglądu.
Po scaleniu pull requestu i zakończeniu kolejnego skanowania kodu alert zostanie automatycznie zamknięty, jeśli poprawka usunie lukę będącą źródłem problemu.
Wskazówka
Wygenerowana poprawka jest punktem wyjścia, a nie ostateczną odpowiedzią. Traktuj pull request jak każdą inną zmianę: zrecenzuj go, przetestuj i w razie potrzeby poproś o dodatkowych recenzentów, zanim go scalisz.
Rozwiązywanie problemów z funkcją Copilot Autofix
Poprawka została wygenerowana, ale nie można było jej zatwierdzić ani przesłać
Copilot Autofix używa adresu e-mail noreply@dev.azure.com jako adresu e-mail autora commitu. Jeśli zasady weryfikacji adresu e-mail autora commitu nie zezwalają na ten adres, Copilot Autofix może wygenerować zmianę w kodzie, ale nie może utworzyć commitu ani wypchnąć zmian, aby utworzyć pull request.
Widok szczegółów alertu wyświetla błąd, który wskazuje adres e-mail autora zablokowanego commitu.
Dodaj noreply@dev.azure.com do dozwolonych wzorców adresów e-mail w zasadach weryfikacji adresu e-mail autora commitu:
- Wybierz ustawienia projektu>Repozytoria.
- Wybierz pozycję Wszystkie repozytoria , aby zaktualizować zasady na poziomie projektu lub wybierz repozytorium zawierające zasady.
- Wybierz pozycję Zasady.
- W obszarze Zasady repozytorium znajdź pozycję Zatwierdzanie weryfikacji wiadomości e-mail autora.
- Dodaj
noreply@dev.azure.comdo dozwolonych wzorców poczty e-mail. - Wróć do alertu skanowania kodu i wybierz pozycję Ponów próbę naprawy.
Uruchomienie kończy się niepowodzeniem
Jeśli uruchomienie Copilot Autofix nie może zostać ukończone, alert wyświetla wyraźny stan niepowodzenia, dzięki czemu można szybko zobaczyć, że uruchomienie się nie powiodło. Ze stanu niepowodzenia możesz ponowić próbę uruchomienia, aby wygenerować nową poprawkę.
Uruchomienie może zakończyć się niepowodzeniem z przyczyn przejściowych lub gdy uruchomienie nie powoduje zmiany kodu do użycia. Ponów próbę uruchomienia, aby ponownie wygenerować poprawkę.
Poprawka jest niedostępna
Copilot Autofix nie może wygenerować poprawki dla każdego alertu. Poprawka może być niedostępna, gdy:
- Ten typ alertu nie jest obecnie obsługiwany przez Copilot Autofix.
- Copilot określa, że alert może być fałszywie dodatni.
- Zapytanie niestandardowe lub narzędzie innej firmy, a nie CodeQL, generuje alert.
- Copilot Autofix uruchamia się, ale nie wprowadza żadnych zmian w kodzie. W takim przypadku nie jest tworzona żadna gałąź ani pull request.
Jeśli Copilot Autofix stwierdzi, że alert może być fałszywie dodatni, i nie wprowadzi żadnych zmian, widok szczegółów alertu pokaże wynik. Możesz przejrzeć przebieg lub ponowić próbę naprawienia.
Jeśli poprawka jest niedostępna, użyj sekcji Zalecenie i Przykład alertu, aby skorygować go lub odrzucić alert ręcznie. Aby uzyskać więcej informacji, zobacz Szczegóły alertu .