Copilot Autofix für Codesicherheitswarnungen (Vorschau)

Copilot Autofix bietet eine agentische Behebung für Code-Scan-Warnungen und Sicherheitsrisiken beim Scannen von Abhängigkeiten in GitHub Advanced Security for Azure DevOps. Öffnen Sie eine unterstützte Warnung, und wählen Sie Korrektur generieren aus. Der Copilot-Coding-Agent kann den relevanten Repositorykontext untersuchen, seine vorgeschlagenen Änderungen überprüfen und verfeinern und einen Pull Request mit einem vorgeschlagenen Fix öffnen.

Sie überprüfen, testen und führen die Änderung über Ihren normalen Pull-Request-Workflow zusammen. Die Schritte sind für beide Warnungstypen identisch. Wählen Sie die relevante Warnungsliste als Ausgangspunkt aus, und verwenden Sie dann den relevanten Scanner, um die zusammengeführte Korrektur zu überprüfen.

Note

Dieses Feature befindet sich in eingeschränkter öffentlicher Vorschau. Microsoft akzeptiert derzeit keine zusätzlichen Benutzer für die Vorschau.

Die Funktionalität kann sich ändern oder ohne vorherige Ankündigung entfernt werden. Vorschaufeatures verfügen über keinen Service Level Agreement (SLA) und eingeschränkten Support.

GitHub Advanced Security for Azure DevOps funktioniert mit Azure Repos. Informationen zur Verwendung von GitHub Advanced Security mit GitHub-Repositorys finden Sie unter GitHub Advanced Security.

Prerequisites

Category Requirements
Erlaubnisse – Um eine Zusammenfassung aller Warnungen für ein Repository anzuzeigen: Beitragsberechtigungen für das Repository.
- Um Warnhinweise in der erweiterten Sicherheit zu verwerfen: Projektadministrator Berechtigungen.
– Zum Verwalten von Berechtigungen in Advanced Security: Mitglied der Project Collection Administratoren-Gruppe oder Berechtigung „Advanced Security: Einstellungen verwalten“ auf „Zulassen“ setzen.

Weitere Informationen zu Erweiterten Sicherheitsberechtigungen finden Sie unter "Verwalten erweiterter Sicherheitsberechtigungen".

  • Scannen von Code oder Scannen von Abhängigkeiten ist konfiguriert und generiert Warnungen für Ihr Repository.
  • Mindestens eine unterstützte Warnung.
  • Die Repository-Berechtigung Erweiterte Sicherheit: Warnungen anzeigen für den Benutzer, der Korrektur generieren auswählt.
  • Zugriff auf den Azure Pipelines Agentpool. Copilot Autofix reiht einen Microsoft-gehosteten Pipeline-Job in die Warteschlange ein, um die Fehlerbehebung zu generieren und zu veröffentlichen. Für die Ausführung ist ein verfügbarer paralleler Auftrag erforderlich. Wenn alle parallelen Aufträge belegt sind, bleibt der Fix in der Warteschlange, bis wieder Kapazität verfügbar ist.

Copilot Autofix führt Repositoryvorgänge mithilfe einer dedizierten Identität namens GitHub Copilot ({organization}) aus, nicht mit einem Projekt- oder Sammlungs-Builddienstkonto. Der Dienst gewährt der Identität automatisch die folgenden Berechtigungen:

Operation Berechtigung
Zugreifen auf das Projekt Projektebeneninformationen anzeigen
Klonen des Repositorys Lesen
Fix-Branch erstellen und übertragen Mitwirken und Branch erstellen
Erstellen und Aktualisieren der Pullanforderung Zu Pull-Requests beitragen
Warnung lesen Erweiterte Sicherheit: Anzeigen von Warnungen
Pull-Request-Diskussionen hinzufügen Pull-Request-Diskussionen lesen und dazu beitragen
Aktualisieren der Pipelineausführung Buildinformationen aktualisieren
Beschriften der Pullanforderung Erstellen der Copilot Autofix-Bezeichnung

Sie müssen einem Build-Service-Konto diese Berechtigungen nicht gewähren. Wenn Ihre Organisation explizite Verweigerungsberechtigungen verwendet, überprüfen Sie, ob sie die GitHub Copilot ({organization}) Identität nicht blockieren.

Funktionsweise von agentic Autofix

Agentic Autofix verwendet die Ergebnisse der Warnung und Ihren Repositorykontext, anstatt sich nur auf die gemeldete Codestelle zu verlassen. Der Copilot-Codierungs-Agent kann ins Repository eingecheckte benutzerdefinierte Anweisungen und relevante Skills verwenden, um Ihre Codierungsstandards, Architektur und Behebungsmuster zu verstehen. Es kann die vorgeschlagene Änderung überprüfen und verfeinern, bevor ein Pull Request geöffnet wird, der Folgendes enthält:

  • Eine vorgeschlagene Codeänderung , die die zugrunde liegende Sicherheitsanfälligkeit behebt.
  • Eine Beschreibung der Warnung, die behoben wird, einschließlich der Warnungs-ID, des Schweregrads und einer Zusammenfassung der Änderung.

Da die vorgeschlagene Lösung den breiteren Kontext Ihrer Codebasis berücksichtigt, kann die Änderung mehr als die einzelne Zeile umfassen, in der die Warnung ausgelöst wurde, und änderungen an anderen Dateien bei Bedarf enthalten.

Note

Daten, die von Copilot Autofix verarbeitet werden, werden nicht zum Trainieren großer Sprachmodelle (LLMs) verwendet.

Important

Copilot Autofix-Vorschläge werden von einem KI-Modell generiert und sind nicht garantiert korrekt, vollständig oder sicher. Überprüfen Sie die Pull-Anforderung immer sorgfältig, überprüfen Sie, ob sie die Warnung löst, ohne neue Probleme einzuführen, und testen Sie Ihre Änderungen, bevor Sie sie zusammenführen.

Unterstützte Warnungen

Alarmtyp Unterstützung in eingeschränkter öffentlicher Vorschau
Codeanalyse Warnungen von CodeQL- und Codescantools von Drittanbietern.
Abhängigkeitsüberprüfung Warnungen zu Sicherheitsrisiken. Malware-Funde sind nicht enthalten.
Geheimnisüberprüfung Nicht unterstützt.

Für beide unterstützten Warnungstypen schlägt Copilot Autofix eine Änderung zur Überprüfung vor. Es garantiert nicht für jedes Ergebnis eine Korrektur. Weitere Informationen finden Sie unter "Fix" ist nicht verfügbar.

Repositoryanweisungen und Skills bereitstellen

Stellen Sie dem agentischen Autofix den Kontext bereit, den Sie beim Generieren eines Fixs berücksichtigen möchten. Checken Sie benutzerdefinierte Anweisungen und Skills an unterstützten .github- oder .agents-Speicherorten in das Repository ein. Mithilfe dieser Dateien kann der Copilot-Codierungs-Agent die Codierungsstandards Ihres Teams und etablierte Workflows zur Problembehebung einhalten.

Hinzufügen von Codierungsstandards zu benutzerdefinierten Anweisungen

Verwenden Sie repositoryweite benutzerdefinierte Anweisungen wie .github/copilot-instructions.md, um zu beschreiben, wie sich Änderungen in Ihr Projekt einfügen sollen. Anleitungen zu Benennungskonventionen, genehmigten Bibliotheken, Architekturgrenzen und zum Erstellen und Testen von Änderungen aufnehmen.

Wenn Ihr Team z. B. ein freigegebenes Eingabeüberprüfungshilfsprogramm benötigt, beschreiben Sie diese Anforderung in den Anweisungen. Gehen Sie nicht davon aus, dass der Agent dies aus der Warnung ableitet.

# Coding standards

- Use the existing input-validation helpers instead of adding new validation logic.
- Follow the naming conventions in the surrounding code.
- Keep dependency changes scoped to the vulnerability being fixed.
- Update the relevant tests when a fix changes behavior.
- Run the documented build and test commands before proposing a change.

Verwenden Sie von Copilot unterstützte Dateinamen und Speicherorte. Eine Datei mit dem Namen custom-instructions.md legt nicht allein durch ihren Namen eine repository-weite Copilot-Anweisungsdatei fest. Informationen zum repositoryweiten Dateiformat finden Sie unter Hinzufügen von benutzerdefinierten Repositoryanweisungen für GitHub Copilot.

Skills für wiederholbare Behebungsaufgaben hinzufügen

Repository-Fähigkeiten können aufgabenspezifische Anweisungen, Skripts und unterstützende Ressourcen bereitstellen. Speichern Sie einen Skill in einem Verzeichnis wie .github/skills/<skill-name>/ oder .agents/skills/<skill-name>/ und die zugehörigen Anweisungen in SKILL.md.

Beispielsweise kann ein Abhängigkeitsaktualisierungs-Skill Ihre Paketaktualisierungsverfahren und Kompatibilitätsprüfungen beschreiben. Ein Skill zur Codebehebung kann beschreiben, wie Ihre genehmigten Sicherheitsbibliotheken verwendet werden. Agentic Autofix kann im Rahmen der Erstellung eines Fixs relevante Fähigkeiten referenzieren; nicht jede Fähigkeit gilt für jede Warnung. Informationen zum Fähigkeitenformat finden Sie in Über Agentenfähigkeiten.

Important

Repositoryanweisungen und Fähigkeiten bieten zusätzlichen Kontext, nicht eine Garantie dafür, dass ein generierter Fix jede Anforderung erfüllt. Überprüfen Sie die vorgeschlagene Änderung anhand Ihrer Standards, führen Sie Ihre Überprüfungen aus, und überprüfen Sie, ob die Sicherheitslücke vor dem Zusammenführen behoben ist.

Billing

Copilot Autofix ist in Ihrer GitHub Advanced Security für Azure DevOps-Lizenz enthalten. Das Generieren einer Problembehebung belastet den Azure-Abrechnungszähler Ihrer Organisation mit KI-Credits.

Jede Fixgenerierung verwendet Token, einschließlich Eingabetoken für den an das Modell gesendeten Codekontext, Ausgabetoken für die vorgeschlagene Änderung und zwischengespeicherte Token, die vorhandenen Kontext wiederverwenden.

Um die Abrechnung einfach zu halten, werden diese Token in eine Standardeinheit umgewandelt, die als GitHub AI-Gutschrift bezeichnet wird, wobei 1 Gutschrift 0,01 USD entspricht. Die Gebühren werden dem Azure Abonnement in Rechnung gestellt, das mit Ihrer Azure DevOps Organisation verknüpft ist und als separater Meter in Azure Cost Management angezeigt wird.

Die Kosten für jeden Fix variieren je nach Größe des umgebenden Codekontexts und der Komplexität der Änderung.

Note

GitHub Copilot Budgeteinstellungen und Benutzerbeschränkungen, die für GitHub konfiguriert sind, gelten nicht für Copilot Autofix-Meterausgaben in Azure DevOps. Diese Nutzung wird über das Azure Abonnement in Rechnung gestellt, das mit Ihrer Azure DevOps Organisation verknüpft ist, nicht über GitHub Copilot Abrechnung.

Autofix-Kosten nach Projekt anzeigen

Copilot Autofix unterstützt Organisations- und Projekttags, sodass Sie die Nutzungsgebühren filtern und Kosten in Azure DevOps Projekten vergleichen können.

  1. Öffnen Sie im Azure-Portal das Abonnement, das mit Ihrer Azure DevOps Organisation verknüpft ist. Wechseln Sie zu Kostenverwaltung>Kostenanalyse.
  2. Wählen Sie den Datumsbereich aus, den Sie überprüfen möchten.
  3. Fügen Sie einen Meterfilter hinzu, und wählen Sie AI Credit für AzDO GAC aus. Dieser Filter isoliert Autofix-Nutzungsgebühren von anderen Abonnementkosten.
  4. Fügen Sie einen Tagfilter für _organizationname_ hinzu und wählen Sie die Azure DevOps-Organisationen aus, deren Kosten Sie anzeigen möchten.
  5. Legen Sie " Gruppieren nach " auf das _projectname_ Tag fest, um die Aufschlüsselung der Autofix-Kosten nach Projekt anzuzeigen.

Screenshot der Azure Kostenanalyse, die auf den AI Credit für AzDO GAC-Meter und eine Organisation gefiltert ist, wobei die Kosten nach Projekt gruppiert sind.

Um einzelne Datumsangaben zu überprüfen, legen Sie die Granularität auf "Täglich " fest, und wechseln Sie zur Visualisierung in "Tabelle". Behalten Sie die Zähler- und Organisationsfilter und die Projektgruppierung bei. Sie können das _projectname_ Tag auch filtern, um die Tabelle auf bestimmte Projekte zu beschränken.

Screenshot der Azure Kostenanalyse in der täglichen Tabellenansicht mit Autofix-Kosten nach Datum und Projekt, gefiltert auf den AI-Kredit für AzDO GAC-Meter, eine Organisation und ausgewählte Projekte.

Aktivieren von Copilot Autofix

Sie können Copilot Autofix auf Organisation-, Projekt- oder Repositoryebene aktivieren. Wenn Sie Autofix in einem breiteren Bereich aktivieren, gilt die Einstellung für alle Repositorys innerhalb dieses Bereichs. Wählen Sie aus, wo Autofix basierend auf den Repositorys konfiguriert werden soll, auf die die Einstellung angewendet werden soll:

Bereich Wo autofix konfiguriert werden soll
Organisation Wählen Sie Organisationseinstellungen> aus, um Autofix für alle Repositorys in der Organisation zu aktivieren.
Project Wählen Sie Project Einstellungen>Repositorys>alle Repositorys aus, um Autofix für alle Repositorys im project zu aktivieren.
Repository Wählen Sie Projekteinstellungen> aus, und wählen Sie dann ein Repository aus, um Autofix nur für dieses Repository zu aktivieren.

So aktivieren Sie Copilot Autofix:

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation (https://dev.azure.com/{yourorganization}) an.
  2. Wechseln Sie zur Einstellungsseite für den Organisations-, Projekt- oder Repositorybereich, den Sie konfigurieren möchten.
  3. Suchen Sie im Abschnitt Erweiterte Sicherheitnach Autofix für Sicherheitswarnungen. Wenn Sie eigenständige Code Security verwenden, wählen Sie Optionen aus, um den Bereich Code-Security-Funktionen zu öffnen.
  4. Wählen Sie Autofix für Sicherheitswarnungen aus. Die gleiche Einstellung ermöglicht Copilot Autofix für unterstützte Codeüberprüfungs- und Abhängigkeitsscanbenachrichtigungen.
  5. Wenn Sie den Bereich Codesicherheitsfeatures verwenden, wählen Sie Anwenden aus, um die Änderungen zu speichern.

Screenshots sowohl der gebündelten Einstellungen für Advanced Security als auch der eigenständigen Einstellungen für Code Security finden Sie unter Copilot Autofix konfigurieren.

Durch das Aktivieren von Autofix wird das Scannen nicht konfiguriert, und es werden keine Korrekturen automatisch generiert. Konfigurieren Sie zunächst das Code-Scanning oder das Dependency-Scanning. Fordern Sie anschließend über eine unterstützte Warnung eine Korrektur an.

Fehlerbehebung für eine Warnung generieren

Nachdem Sie Copilot Autofix aktiviert haben, führen Sie die gleichen Schritte für eine unterstützte Code-Scanning-Warnung oder Warnung zu Abhängigkeitssicherheitslücken durch.

  1. Wählen Sie Repos>Advanced Security aus.
  2. Öffnen Sie die Warnungsliste für das Scannen von Code oder das Scannen von Abhängigkeiten, und wählen Sie dann eine Warnung aus, um deren Detailansicht zu öffnen.
  3. Überprüfen Sie den Befund, den betroffenen Code oder die Abhängigkeit sowie die Anleitungen zur Behebung.
  4. Wählen Sie Korrektur generieren aus.

Die folgenden Codescanbeispiele veranschaulichen den gemeinsamen Workflow. Ein Beispiel für die Abhängigkeitsüberprüfung zeigt weiter unten in diesem Abschnitt einen generierten Pull Request.

Screenshot der Detailansicht einer Code-Scanning-Warnung mit der Schaltfläche „Fix generieren“ oben rechts.

Während Copilot Autofix an der Behebung arbeitet, zeigt die Warnungsdetailansicht an, dass die Behebung im Gange ist. Copilot Autofix öffnet eine Pullanforderung, wenn der Fix bereit ist.

Screenshot der Detailansicht einer Code-Scan-Warnung, der zeigt, wie Copilot Autofix an einer Korrektur arbeitet, bevor ein Pull-Request eröffnet wird.

Copilot Autofix generiert die Fehlerbehebung und öffnet einen Pull Request aus einem Branch mit dem Namen copilot-autofix/.... Die Pullanforderung wird mit einem Copilot Autofix-Tag beschriftet, mit dem Sie Autofix-Pullanforderungen in der Liste der Pullanforderungen identifizieren können.

Für dieselbe Warnung und denselben Branch kann nur eine Korrektur aktiv sein. Solange eine Anfrage noch aussteht oder ihre Pipeline läuft, ist Fix generieren nicht verfügbar. Wenn gleichzeitig eine andere Anforderung übermittelt wird, zeigt die Warnung an, dass bereits ein Fix generiert wird. Sie können einen weiteren Fix generieren, nachdem die aktive Anforderung erfolgreich war oder fehlschlägt.

Bei CodeQL-Warnungen wird die Pullanforderung automatisch unter "Verwandte Pullanforderungen " in der Warnungsdetailansicht angezeigt und wird weiterhin als Generierungs- und Abschlussfortschritt aktualisiert, sodass Sie die Seite nicht aktualisieren müssen.

Screenshot der Detailansicht einer Code-Scanning-Warnung mit einem aktiven Autofix-Pull-Request unter „Zugehörige Pull Requests“.

Das folgende Beispiel zur Abhängigkeitsüberprüfung zeigt einen aktiven Autofix-Pull-Request für ein anfälliges Paket unter Verwandte Pull Requests.

Screenshot einer Warnung zur Abhängigkeitsüberprüfung mit einem aktiven Autofix-Pull Request für eine urllib3-Sicherheitsanfälligkeit unter „Verwandte Pull Requests“.

Wenn Copilot Autofix keine Codeänderungen für die Warnung erzeugt, erstellt es weder einen Branch noch einen Pull Request und verlinkt auch keinen Pull Request in der Detailansicht der Warnung. Beheben Sie die Warnung in diesem Fall manuell. Weitere Informationen finden Sie unter "Fix" ist nicht verfügbar.

Überprüfen und den Fix zusammenführen

Der Pull Request, den Copilot Autofix öffnet, verhält sich wie jeder andere Pull Request in Azure Repos. Ihre Beschreibung fasst die Warnung zusammen, die durch den Fix behoben wird.

Screenshot einer von Copilot Autofix erstellten Pullanforderung mit der Warnungs-ID, dem Schweregrad und der Behebung von Details in der Beschreibung.

Die Copilot Autofix-Bezeichnung identifiziert Autofix-Pullanforderungen.

  1. Öffnen Sie den Pull Request im Abschnitt Zugehörige Pull Requests der Warnung oder über Repos>Pull Requests.
  2. Überprüfen Sie die vorgeschlagene Änderung auf der Registerkarte "Dateien " in allen betroffenen Dateien.
  3. Passen Sie die Änderung an, wenn Sie sie an Ihren Codestil, Ihre Benennungskonventionen oder Ihre Projektanforderungen anpassen müssen.
  4. Genehmigen und abschließen Sie die Pullanforderung über Ihren normalen Überprüfungsworkflow.

Führen Sie nach dem Zusammenführen des Pull Requests den relevanten Scanner auf dem zusammengeführten Ziel-Branch aus. Copilot Autofix führt diese Überprüfung nach dem Zusammenführen nicht aus.

Behobene Warnung Was nach dem Zusammenführen ausgeführt werden soll
Codeanalyse Führen Sie CodeQL oder den Drittanbieterscanner aus, der die Warnung gemeldet hat, und veröffentlichen Sie die aktualisierten Analyseergebnisse in Advanced Security.
Sicherheitsrisiko in Abhängigkeiten Führen Sie abhängigkeitsscans aus, damit Advanced Security die aktualisierten Abhängigkeiten verarbeiten kann.

Durch das alleinige Mergen eines Pull Requests wird die Warnung nicht geschlossen. Advanced Security aktualisiert den Warnungsstatus, nachdem die neuen Scanergebnisse verarbeitet wurden. Stellen Sie sicher, dass diese Ergebnisse die Sicherheitsanfälligkeit nicht mehr melden.

Tip

Ein generierter Fix ist ein Ausgangspunkt und keine endgültige Antwort. Behandeln Sie die Pullanforderung wie jede andere Änderung: Überprüfen Sie sie, testen Sie sie, und fordern Sie weitere Prüfer nach Bedarf an, bevor Sie die Zusammenführung ausführen.

Fehlerbehebung für Copilot Autofix

Behebung läuft

Die meisten Copilot Autofix-Läufe werden in etwa 2 bis 5 Minuten abgeschlossen. Die Laufzeit kann je nach verfügbarer Pipelinekapazität und Komplexität der Änderung variieren. Wenn alle parallelen Aufträge belegt sind, bleibt die Pipeline in der Warteschlange, und die Warnung zeigt weiterhin Behebung läuft an, bis wieder Kapazität verfügbar ist.

Eine Anforderung, die noch aussteht, bevor eine Pipeline in die Warteschlange gestellt wird, schlägt nach 30 Minuten fehl. Eine in der Warteschlange befindliche oder laufende Pipeline hat ein Timeout von zwei Stunden. Die Warnung wird möglicherweise nicht mehr automatisch aktualisiert, bevor das Back-End-Timeout erreicht ist. Wenn die Warnmeldung noch aktiv ist:

  1. Aktualisieren Sie die Benachrichtigungsdetailseite.
  2. Wenn Ausführung anzeigen verfügbar ist, öffnen Sie die Pipeline-Ausführung und überprüfen Sie, ob sie in der Warteschlange ist oder ausgeführt wird.
  3. Warten Sie, bis die Anfrage den Status „erfolgreich“ oder „fehlgeschlagen“ erreicht. Senden Sie keine weitere Anforderung, während die vorhandene Anforderung aktiv ist.
  4. Wenn die Anforderung fehlschlägt, überprüfen Sie die Fehlermeldung, und wählen Sie "Wiederholen" aus , nachdem Sie die Ursache behoben haben.

Pullanforderung erstellt, aber nicht mit der Warnung verknüpft

Die Pullanforderung kann erfolgreich erstellt werden, bevor sie unter "Verwandte Pullanforderungen" angezeigt wird. Aktualisieren Sie die Benachrichtigungsdetailseite. Wenn die Pullanforderung immer noch nicht verknüpft ist, wählen Sie Repos>Pull-Anforderungen aus, und suchen Sie nach:

  • Die Copilot Autofix-Bezeichnung.
  • Ein Quellzweig, der mit copilot-autofix/ beginnt.
  • Ein Titel oder eine Beschreibung des Pull Requests, die auf die Warnung verweist.

Überprüfen Sie den Pull-Request und führen Sie ihn im normalen Pull-Request-Workflow zusammen, auch wenn der Link nicht in der Warnmeldung angezeigt wird.

Repository- oder Pullanforderungsvorgänge schlagen fehl

Copilot Autofix erstellt einen flachen Klon des Branches, der mit der Warnung verknüpft ist. Es initialisiert keine Git-Untermodule. Es erstellt einen eindeutig benannten copilot-autofix/... Branch, pusht die generierte Änderung und öffnet einen Pull-Request, der auf den Alert-Branch abzielt.

Verwenden Sie die Ansichtsausführung aus dem Warnungsfehlerstatus, um die Pipelineprotokolle zu überprüfen. In der folgenden Tabelle sind häufige Ursachen und Aktionen aufgeführt:

Failure Was soll überprüft werden?
Das Repository oder der Branch kann nicht geklont werden. Stellen Sie sicher, dass das Repository und der Alert-Branch noch vorhanden sind. Für eine Warnung, die in einer Pullanforderung gefunden wird, muss der Quellzweig und die Pullanforderung noch aktiv sein. Wenn der Branch gelöscht wurde, führen Sie den relevanten Scanner auf dem aktuellen Branch aus und generieren Sie einen Fix aus der resultierenden Warnung.
Der Fix hängt von Code in einem Git-Untermodul ab. Copilot Autofix initialisiert keine Untermodule. Korrigieren Sie die Warnung manuell, wenn der erforderliche Codekontext in einem Untermodul gespeichert ist.
Der Standard-Branch wurde geändert oder der Alert-Branch wurde gelöscht. Copilot Autofix zielt auf den Branch ab, der dem Alert zugeordnet ist, was nicht unbedingt der aktuelle Standardbranch ist. Führen Sie den relevanten Scanner auf dem beabsichtigten Branch aus, und generieren Sie einen Fix aus dem Alert dieses Branches.
Es kann kein Korrektur-Branch erstellt werden. Überprüfen Sie die Einschränkungen für Repository-Verzweigungsnamen und die expliziten Verweigerungsberechtigungen für die GitHub Copilot ({organization}) Identität. Verzweigungen mit dem copilot-autofix/ Präfix zulassen. Ein Wiederholungsversuch erstellt einen neuen Branch mit einem eindeutigen Namen.
Eine Branchrichtlinie blockiert die Änderung Die Pullanforderungsvervollständigungsrichtlinien gelten für die Autofix-Pullanforderung wie jede andere Pullanforderung. Erfüllen Sie die Anforderungen der erforderlichen Prüfer und Validierungsrichtlinien, bevor Sie ihn abschließen. Wenn eine Repositoryrichtlinie den anfänglichen Push blockiert, aktualisieren Sie die Richtlinie so, dass das Autofix-Identitäts- und Verzweigungspräfix zulässig ist.
Der generierte Commit kann nicht gepusht werden. Überprüfen Sie die Berechtigungen Beitragen und Branch erstellen für die Identität GitHub Copilot ({organization}), einschließlich expliziter Verweigerungen. Überprüfen Sie außerdem die Validierung der E-Mail-Adresse des Commit-Autors, wie in Es wurde ein Fix erstellt, konnte aber nicht committet oder gepusht werden beschrieben.
Die Pullanforderung kann nicht erstellt werden. Überprüfen Sie die Berechtigung, zu Pull Requests beizutragen, und die Berechtigung zum Erstellen des Copilot Autofix-Labels für die GitHub Copilot ({organization}) Identität.

Eine Korrektur wurde generiert, konnte jedoch nicht committet oder gepusht werden

Copilot Autofix verwendet noreply@dev.azure.com als E-Mail-Adresse des Commit-Autors. Wenn eine Richtlinie zur E-Mail-Validierung des Commit-Autors diese Adresse nicht zulässt, kann Copilot Autofix die Codeänderung zwar generieren, sie jedoch nicht committen oder pushen, um den Pull-Request zu erstellen.

In der Warnungsdetailseite wird ein Fehler angezeigt, der die E-Mail des blockierten Commit-Autors identifiziert.

Screenshot einer Warnung beim Code-Scanning, die zeigt, dass Copilot Autofix keinen Commit mit einem generierten Fix erstellen konnte, weil die E-Mail-Adresse des Commit-Autors nicht erlaubt ist.

Fügen Sie noreply@dev.azure.com zu den zulässigen E-Mail-Mustern in der Validierungsrichtlinie für die E-Mail-Adresse des Commit-Autors hinzu:

  1. Wählen Sie Projekteinstellungen>Repositories aus.
  2. Wählen Sie "Alle Repositorys " aus, um die Richtlinie auf Projektebene zu aktualisieren, oder wählen Sie das Repository mit der Richtlinie aus.
  3. Wählen Sie "Richtlinien" aus.
  4. Suchen Sie unter Repositoryrichtlinien nach Überprüfung der E-Mail-Adresse des Commit-Autors.
  5. Fügen Sie noreply@dev.azure.com zu den zulässigen E-Mail-Mustern hinzu.
  6. Kehren Sie zur Warnung zurück, und wählen Sie Korrektur erneut versuchen aus.

Screenshot der Einstellungen für Repositoryrichtlinien, in dem Sie die E-Mail-Adresse von Copilot Autofix zu den zulässigen E-Mail-Mustern für Commit-Autoren hinzufügen.

Die Ausführung schlägt fehl

Wenn eine Copilot Autofix-Ausführung nicht abgeschlossen werden kann, zeigt die Warnung einen prominenten Fehlerstatus an, sodass Sie schnell sehen können, dass die Ausführung nicht erfolgreich war. Im Fehlerstatus können Sie den Lauf erneut starten, um eine neue Korrektur zu generieren.

Screenshot einer Warnung zur Codeüberprüfung mit einer Copilot-Autofix-Ausführung im Fehlerzustand und der Option, die Ausführung erneut zu starten.

Eine Ausführung kann aus vorübergehenden Gründen fehlschlagen oder wenn die Ausführung keine verwendbare Codeänderung erzeugt. Wiederholen Sie die Ausführung, um den Fix erneut zu generieren.

Eine Warnmeldung bleibt offen, nachdem Sie die Fehlerbehebung zusammengeführt haben.

Durch das Mergen eines Autofix-Pull-Requests allein wird die Warnung nicht automatisch geschlossen. Advanced Security benötigt neue Ergebnisse vom Scanner, der den Befund gemeldet hat. Wenn die Warnung geöffnet bleibt:

  1. Stellen Sie sicher, dass der Pull Request in denselben Branch zusammengeführt wurde, in dem die Warnung erkannt wurde.
  2. Vergewissern Sie sich, dass das Code-Scanning bzw. der Abhängigkeitsscan ggf. nach dem Zusammenführen ausgeführt wurde und den zusammengeführten Commit analysiert hat.
  3. Vergewissern Sie sich, dass Advanced Security die aktualisierten Ergebnisse für das richtige Repository und die richtige Verzweigung verarbeitet hat.
  4. Überprüfen Sie die neuen Ergebnisse, um zu überprüfen, ob die Sicherheitsanfälligkeit nicht mehr erkannt wird.
  5. Wenn die Sicherheitslücke noch vorhanden ist, aktualisieren Sie den Fix, und führen Sie den relevanten Scanner erneut aus.

Fehlerbehebung ist nicht verfügbar

Copilot Autofix kann für jede Warnung keinen Fix generieren. Ein Fix ist möglicherweise nicht verfügbar, wenn:

  • Der Warnungstyp wird derzeit nicht von Copilot Autofix unterstützt.
  • Copilot stellt fest, dass es sich bei der Warnung um einen Fehlalarm handeln könnte.
  • Copilot Autofix wird ausgeführt, erzeugt aber keine Codeänderungen. In diesem Fall wird kein Branch und kein Pull Request erstellt.

Wenn Copilot Autofix feststellt, dass die Warnung falsch positiv sein könnte und keine Änderungen erzeugt, zeigt die Warnungsdetailseite das Ergebnis an. Sie können die Ausführung überprüfen oder den Fix wiederholen.

Screenshot der Detailansicht einer Code-Scan-Warnung, aus der hervorgeht, dass Copilot festgestellt hat, dass es sich bei der Warnung möglicherweise um ein falsches Positivergebnis handelt, und daher keine Korrektur vorgeschlagen hat; es stehen Optionen zur Verfügung, um den Durchlauf anzuzeigen oder die Korrektur erneut zu versuchen.

Wenn ein Fix nicht verfügbar ist, verwenden Sie die Anleitung zur Behebung der Warnung, um ihn manuell zu beheben. Verwerfen Sie eine Warnung erst, nachdem Sie das Ergebnis überprüft und den entsprechenden Grund für das Verwerfen ermittelt haben. Weitere Informationen finden Sie unter Details zur Codeüberprüfungswarnung und Details zur Warnung der Abhängigkeitsüberprüfung.