Die meisten Unternehmen sind sich der Produktivitätsvorteile bewusst, die KI-Codierungstools bringen können. Viele befürchten jedoch, dass die unsachgemäße Nutzung in ihrem Unternehmen, z. B. böswillige Eingabeaufforderungen oder Entwickler, die KI-Vorschläge ohne Überprüfung akzeptieren, dazu führen, dass die Standards ihrer Codebasis kompromittiert werden.
Sie können diese Risiken mindern, indem Sie Ihre GitHub Umgebung und Arbeitskultur für effektive Governance einrichten. Ein großer Vorteil von GitHub Copilot ist, dass sie in die Plattform GitHub integriert ist, die bereits eine Reihe von Features für die Codegovernance auf Unternehmensniveau enthält.
1. Pull-Requests und Reviews anfordern
Entwickler und schlechte Akteure sollten niemals in der Lage sein, ungeprüfte KI-Vorschläge und Agentenarbeit direkt auf sensible Codebasen anzuwenden. Sie sollten eine genehmigte Pull-Anfrage anfordern, bevor Benutzer Code in Produktionscodebasen und anderen wichtigen Branches zusammenführen können.
Erstellen Sie dazu ein Regelset:
-
Identifizieren Sie Organisationen oder Repositorys, die die codebasen enthalten, die Sie schützen möchten, und wenden Sie eine benutzerdefinierte Eigenschaft auf sie an. Auf diese Weise können Sie diese Ressourcen einfach in einem Regelsatz anvisieren. Weitere Informationen findest du unter Verwalten von benutzerdefinierten Eigenschaften für Repositorys in Ihrer Organisation oder Verwalten von benutzerdefinierten Eigenschaften für Organisationen.
Alternativ können Sie diese geschützten Ressourcen einem Regelsatz manuell hinzufügen oder basierend auf einer Benennungskonvention darauf abzielen.
-
Erstellen Sie einen Regelsatz für Ihre Unternehmenszweige. Siehe Durchsetzung der Code-Governance in Ihrem Unternehmen mithilfe von Regelsätzen.
- Aktivieren Sie mindestens die Anforderung einer Pull-Anfrage vor dem Zusammenführen und das Blockieren von erzwungenen Pushes. Stellen Sie unter der Regel "Anforderung eines Pull-Requests" sicher, dass mindestens eine Genehmigung erforderlich ist.
- Aktivieren Sie bei Bedarf weitere Regeln. Wenn Sie sich z. B. um böswillige Akteure sorgen, die Pull-Anfragen kapern, stellen Sie sicher, dass Sie veraltete Pull-Request-Genehmigungen widerrufen, wenn neue Commits gepusht werden.
-
Ermutigen Sie Repositoryadministratoren, CODEOWNERS-Dateien für bestimmte Dateien in Repositorys einzurichten. Dadurch wird automatisch eine Überprüfung durch die Codebesitzer angefordert, wenn diese Dateien geändert werden.
Anschließend können Sie zu Ihrem Regelsatz zurückkehren und die Regel "Überprüfung durch Codebesitzer erforderlich" aktivieren.
-
Ermutigen Sie Organisationsbesitzer und Repositoryadministratoren, spezifischere Regelgruppen zu erstellen, da sie wahrscheinlich mehr Bewusstsein für Anforderungen für ihren eigenen Code haben.
Diese Regelsätze werden der Basislinie hinzugefügt, die Sie auf Unternehmensebene definieren, sie aber nie außer Kraft setzen.
2. Testen Des Codes
Bewährte DevOps-Methoden stellen sicher, dass Ihr Code automatisch getestet wird, bevor er zusammengeführt und bereitgestellt wird, wodurch die Risiken von Fehlern in Ihre Standardverzweigungen minimiert und in Produktionsumgebungen angezeigt werden.
- Aktivieren Sie GitHub Actions oder ein anderes CI/CD-System.
- Ermutigen Sie Entwickler, Tests für alle Features zu schreiben und Tests in den GitHub Actions Workflows zu integrieren.
- Ermutigen Sie Organisationsbesitzer oder Repositorybesitzer, Regelsätze zu erstellen und wichtige Workflows zur Regel Erfordern, dass Workflows vor dem Zusammenführen bestanden werden müssen hinzuzufügen.
3. Scannen von Code auf Sicherheitsrisiken
Copilot ist bereits so ausgelegt, dass das Einführen von Schwachstellen in Ihre Codebasis vermieden wird. Beispielsweise wird Code, der von Copilot Codierungsassistent erstellt wurde, automatisch auf anfällige Muster und geheime Schlüssel wie API-Schlüssel überprüft.
Es empfiehlt sich jedoch, regelmäßig den gesamten Code auf Sicherheitsrisiken und geheime Schlüssel zu überprüfen und Entwickler daran zu hindern, Sicherheitsrisiken zuerst einzuführen.
- Wenden Sie als Ausgangspunkt die GitHub-empfohlene Sicherheitskonfiguration für Ihre Organisationen an, und erzwingen Sie sie. Dies ist eine Sammlung von Aktivierungseinstellungen für Sicherheitsfeatures, einschließlich code scanning, secret scanning, und geheimer Pushschutz. Siehe Erstellen einer benutzerdefinierten Sicherheitskonfiguration.
- Wenn Sie mehr über Ihre Anforderungen erfahren, erstellen Sie benutzerdefinierte Konfigurationen, oder wenden Sie granulare Einstellungen auf Repositoryebene an.
- Um code scanning für Pull-Requests zu erzwingen, gehen Sie zurück zu Ihrem Regelwerk und setzen Sie die Regel Erfordern Sie Ergebnisse von code scanning.
4. Erstellen Sie Richtlinien für Copilot
Um die Qualität der Vorschläge von Copilot in erster Linie zu verbessern, sollten Sie benutzerdefinierte Anweisungen erstellen. Diese Anweisungen ergänzen alle Prompts mit dem Kontext, dass Copilot die Codierungsstandards Ihres Unternehmens berücksichtigen soll.
- Um einen guten Basisplan einzurichten, erstellen Sie benutzerdefinierte Anweisungen auf Organisationsebene. Dies können allgemeine Standards sein, die wahrscheinlich für jedes Repository gelten. Beachten Sie jedoch, dass diese Anweisungen nur auf der Website GitHub gelten. Siehe Hinzufügen von benutzerdefinierten Anweisungen für die Organisation für GitHub Copilot.
- Um eine umfassendere Abdeckung zu erhalten, ermutigen Sie Entwickler und Repositoryadministratoren, benutzerdefinierte Anweisungen für bestimmte Repositorys zu schreiben. Diese gelten an mehr Orten als Organisationsanweisungen und können detaillierter zu den einzelnen Projekten und ihren Anforderungen eingehen. Siehe Hinzufügen von benutzerdefinierten Repositoryanweisungen für GitHub Copilot.
5. Fördern bewährter Methoden
Mit starken Leitplanken sollten Entwickler bereits in der Lage sein, KI effektiv zu nutzen. Es ist jedoch wichtig, Schulungen zu KI-Tools bereitzustellen und eine Kultur zu schaffen, in der bewährte Methoden gefördert werden, anstatt nur durchgesetzt zu werden.
- Kommunizieren Sie Ihre Governanceeinstellungen und die Erwartungen Ihres Unternehmens an die Verwendung von Copilot. Wenn beispielsweise alle Agentenarbeiten gründlich überprüft werden sollen, stellen Sie sicher, dass dieser Prozess eingerichtet und kommuniziert wird.
- Erstellen Sie Onboarding-Ressourcen wie interne Dokumentationen oder Videos. Als Ausgangspunkt können Sie vorhandene Ressourcen wie Bewährte Methoden für die Verwendung von GitHub Copilot und GitHub Copilot Chat-Cookbook freigeben.
- Bieten Sie fortlaufende Schulungen und Support, z. B. Workshops. Bei erfolgreichen Rollouts identifizieren viele Unternehmen "Champions", die andere schulen können, wie Copilot effektiv verwendet werden können.
6. Planen Sie das Schlechteste
Selbst bei den strengsten Schutzläufen ist es immer möglich, dass anfälliger oder fehleranfälliger Code zusammengeführt wird, unabhängig davon, ob Ihre Entwickler KI-Tools verwenden.
Um sich auf diese Szenarien vorzubereiten, sollten Sie planen, wie Sie Probleme beheben und diesen Plan mit Entwicklern kommunizieren. Beispiel:
- Eine fehlerhafte Pull-Anfrage rückgängig machen und eine Bereitstellung zurückrollen.
- Erstellen Sie einen Diskussionsbeitrag, der analysiert, was schief gelaufen ist und wie Sie es in Zukunft vermeiden können.
- Überprüfen Sie Überwachungsprotokolle auf Elemente wie Regelsatzumgehungen, falsche Berechtigungen oder Änderungen an Governanceeinstellungen.
7. Überprüfen der Codequalität
Wenn Sie sicher in Ihrem Governancemodell sind, aber dennoch besorgt sind, dass Copilot die Qualität Ihrer Codebasis im Laufe der Zeit verringert, können Sie dies im Verlauf eines Rollouts messen. Wenn diese Option aktiviert ist, stellt GitHub Code Quality Metriken zur Code-Gesundheit Ihrer Repositories bereit. Siehe Informationen zu GitHub Codequalität.
Nächste Schritte
Verstehen, wie Ihr Unternehmen das Überwachungsprotokoll verwenden kann, um Änderungen an Konfigurationseinstellungen und Lizenzzuweisungen zu überwachen. Siehe Überprüfen von Auditprotokollen für GitHub Copilot Business.