GitHub Copilot kann Entwicklern jetzt mitteilen, wenn seine Vorschläge mit Code in einem öffentlichen Repository übereinstimmen

GitHub Copilot kann Entwicklern jetzt mitteilen wenn seine Vorschlaege mit

GitHub-Copilot hat die Art und Weise verändert, wie Entwickler ihren Code schreiben. Allerdings kann es auch zu Problemen kommen, wenn Code erstellt wird, der dem ähnelt, der bereits in einem anderen öffentlichen Repository verfügbar ist. Im Jahr 2022 führte GitHub eine Funktion ein, die es Benutzern ermöglichte, Vorschläge für passenden öffentlichen Code automatisch zu blockieren. Laut einem GitHub-Sprecher würde dieses System in weniger als 1 % der Fälle auslösen. Aber manchmal möchten Entwickler vielleicht sehen, was diese Codefragmente sind – entweder um sie zu verwenden (im Rahmen der von ihren Unternehmen festgelegten Lizenzbeschränkungen) oder vielleicht um die gesamte Bibliothek zu verwenden, aus der dieses Snippet stammt.

Um einen Mittelweg zu finden, hat GitHub heute eine private Beta einer Code-Referenzierungsfunktion für GitHub Copilot gestartet, die Entwicklern diese Wahl gibt. Wenn die Codereferenzierung aktiviert ist, blockiert Copilot nicht automatisch den von ihm generierten passenden Code, sondern zeigt ihn den Entwicklern stattdessen in einer Seitenleiste an und lässt sie entscheiden, was sie damit machen möchten. Mit der Zeit wird diese Funktion auch im Copilot-Chat verfügbar sein.

Bildnachweis: GitHub

GitHub in der Vorschau angezeigt Ich habe dieses Feature letzten November veröffentlicht, aber es hat offensichtlich eine Weile gedauert, bis es veröffentlicht wurde.

Wie mir Thomas Dohmke, CEO von GitHub, sagte, nutzten Microsoft, GitHub und die meisten Copilot-Unternehmenskunden die ursprüngliche Blockierungsfunktion, er bemerkte aber auch, dass es sich um ein etwas stumpfes Werkzeug handelte. „Es gibt Ihnen wenig Kontrolle, selbst zu entscheiden, ob Sie diesen Code tatsächlich nehmen und ihn einer Open-Source-Lizenz zuordnen möchten. Es lässt Sie nicht wirklich entdecken, dass es eine Bibliothek geben könnte, die Sie verwenden könnten, anstatt Code zu synthetisieren“, sagte er mir. „Es hindert Sie daran, diese Bibliotheken zu erkunden und Pull-Anfragen zu senden. Möglicherweise reproduzieren Sie alles, was bereits in einem Open-Source-Repo vorhanden ist.“

GitHub Copilot kann Entwicklern jetzt mitteilen wenn seine Vorschlaege mit

Bildnachweis: GitHub

Dohmke wies darauf hin, dass dies häufig auf gängige Computeralgorithmen wie das Sortieren zutrifft, die in der Regel an vielen verschiedenen Orten existieren. Jetzt können Entwickler den Code entweder ablehnen, ihn direkt verwenden – vorausgesetzt, die Bibliothek ermöglicht dies – oder Copilot den Code umschreiben lassen, sodass er nicht mehr mit dem Originalcode übereinstimmt.

Derzeit ist es nicht möglich, nur Ergebnisse zu sehen, die mit bestimmten Lizenzen übereinstimmen, aber das Team sucht aktiv nach Feedback, um zu sehen, ob es sich um eine Funktion handelt, nach der Benutzer fragen.

„Wir lassen die Leute das Spiel verstehen und dann weitermachen und erkunden oder gehen und die richtige Entscheidung treffen“, sagte Dohmke. „Ich denke, es füllt die Lücke, die die ursprüngliche Lösung hatte.“

Die Funktion zur Codereferenzierung wird auch häufiger ausgelöst, wenn Copilot nicht viel Kontext zum Arbeiten hat. Wenn Copilot viel Kontext aus dem vorhandenen Code erkennen kann, an dem Sie arbeiten, ist es unwahrscheinlich, dass ein Vorschlag erstellt wird, der mit öffentlichem Code übereinstimmt. Aber wenn Sie gerade erst anfangen, ist die Wahrscheinlichkeit deutlich höher, dass passender Code generiert wird.

Im Mittelpunkt steht dabei eine sehr schnelle Suchmaschine (GitHub will die Latenz auf 10–20 ms beschränken), die schnell den passenden Code und seine Lizenz finden kann. Ab sofort werden die passenden Codeschnipsel in der Reihenfolge aufgelistet, in der sie von der Suchmaschine gefunden werden. In seiner ursprünglichen Ankündigung vom letzten Jahr sagte GitHub, dass Entwickler „die Möglichkeit haben sollten, dieses Inventar nach Repository-Lizenz, Commit-Datum usw. zu sortieren“, daher gehe ich davon aus, dass diese Funktionalität später hinzugefügt wird.

tch-1-tech