GitHub CLI erfasst jetzt pseudonymisierte Telemetrie
(cli.github.com/telemetry)- GitHub CLI sendet jetzt pseudonymisierte Telemetrie, um die Sichtbarkeit der Funktionsnutzung zu verbessern und Produktverbesserungen zu unterstützen
- Anhand der Nutzung von Subcommands und Mustern bei der Verwendung von Flags werden Prioritäten für die Arbeit festgelegt, bewertet, ob Nutzeranforderungen erfüllt werden, und Discoverability sowie Design erneut überprüft
- Durch die Open-Source-Implementierung kann der Telemetrie-Code direkt im Repository
cli/cligeprüft werden; im Logging-Modus lässt sich der tatsächliche JSON-Payload vor dem Versand einsehen - Opt-out ist über die Umgebungsvariablen
GH_TELEMETRY=false,DO_NOT_TRACK=trueodergh config set telemetry disabledmöglich; Umgebungsvariablen haben Vorrang vor der Konfiguration - Telemetrieereignisse werden an die interne Analyseinfrastruktur von GitHub gesendet; diese Seite behandelt nur die clientseitige Datenerfassung von
gh, Extensions und Copilot CLI sind separat zu betrachten
Telemetrie
- GitHub CLI sendet pseudonymisierte Telemetrie, um Produktverbesserungen zu unterstützen
- Es werden Informationen bereitgestellt, damit Nutzer verstehen können, welche Daten gesendet werden und warum
Warum Telemetrie erfasst wird
- Es wird auf die Notwendigkeit hingewiesen, Sichtbarkeit über die Nutzung von GitHub-CLI-Funktionen zu gewinnen, insbesondere vor dem Hintergrund der zunehmenden agentischen Nutzung, um zu verstehen, wie das Tool tatsächlich verwendet wird
- Das Team nutzt diese Daten, um Arbeitsprioritäten festzulegen
- Es bewertet damit, ob Funktionen die tatsächlichen Anforderungen der Nutzer erfüllen
- Als weiterer Zweck wird genannt, die Akzeptanz neuer Subcommands nach ihrer Veröffentlichung zu prüfen
- Wenn sie kaum genutzt werden, müssen Discoverability oder Design der Funktion möglicherweise überdacht werden
- Wenn zusammen mit bestimmten Flags eine hohe Nutzung festgestellt wird, lässt sich erkennen, wo sich Investitionen in eine bessere Experience lohnen
Prüfung der Telemetrie
- GitHub CLI ist Open Source, und die Telemetrie-Implementierung kann direkt im Repository
cli/cligeprüft werden - Um die Daten zu sehen, die gesendet würden, ohne sie tatsächlich zu übertragen, kann der Logging-Modus verwendet werden
- Unterstützung per Umgebungsvariable
export GH_TELEMETRY=log
- Unterstützung per CLI-Konfiguration
gh config set telemetry log
- Unterstützung per Umgebungsvariable
- Im Logging-Modus wird der JSON-Payload, der normalerweise gesendet würde, auf stderr ausgegeben
- So können einzelne Felder geprüft werden, bevor entschieden wird, ob Telemetrie aktiviert bleiben soll
- Als Beispielbefehl wird
GH_TELEMETRY=log gh repo list --archivedgenannt
- Es wird angegeben, welche Ereignisinformationen im Beispiel-Payload enthalten sind
- Ereignistyp
command_invocation - Als dimensions-Felder enthalten:
agent,architecture,command,device_id,flags,invocation_id,is_tty,os,timestamp,version - Als Beispielwerte werden
architecture: arm64,command: gh repo list,flags: archived,os: darwin,version: 2.91.0gezeigt
- Ereignistyp
- Der betreffende Befehl kann nur die Telemetrie für den genau ausgeführten Befehl und dessen Kontext protokollieren
- Bei Änderungen an Umgebungsvariablen können sich die im Payload enthaltenen Events und Event-Dimensions ändern
- Auch beim Wechsel des authentifizierten Kontos können sich enthaltene Elemente unterscheiden
Opt-out-Möglichkeiten
- Für die im Logging-Modus geprüfte Telemetrie ist ein Opt-out möglich
- Unterstützung per Umgebungsvariable
export GH_TELEMETRY=false- Als falsy-Werte können
0,false,disabledoder eine leere Zeichenfolge verwendet werden - Auch die Konvention
DO_NOT_TRACKwird unterstützt; als Beispiel wirdexport DO_NOT_TRACK=truegenannt
- Unterstützung per CLI-Konfiguration
gh config set telemetry disabled
- Umgebungsvariablen haben Vorrang vor dem Konfigurationswert
Wohin die Daten gesendet werden
- Telemetrieereignisse werden an die interne Analyseinfrastruktur von GitHub gesendet
- Für weitere Informationen zur Datenverarbeitung wird auf das GitHub General Privacy Statement verwiesen
Weitere Informationen
- GitHub CLI unterstützt Funktionserweiterungen durch die Installation von GitHub- und Drittanbieter-Extensions, einschließlich Agents
- Diese Extensions können eigene Nutzungsdaten erfassen
- Dies wird nicht durch die Opt-out-Einstellungen gesteuert
- Ob und wie Telemetrie gemeldet wird und ob sie deaktiviert werden kann, muss in der Dokumentation der jeweiligen Extension geprüft werden
- Diese Seite behandelt nur die clientseitige Datenerfassung von GitHub CLI
gh- Sie gilt nicht für GitHub Copilot und Copilot CLI
- Copilot CLI verarbeitet die Datenerfassung separat
- Als zugehörige Informationen werden
Using GitHub Copilot CLIundResponsible Use of the GitHub Copilot CLIgenannt
1 Kommentare
Hacker-News-Kommentare
Ich frage mich, warum Unternehmens-Entwicklerteams Nutzer immer mit Telemetry durchleuchten wollen.
Ich würde gern fragen, ob gutes Engineering und gutes Design allein nicht ausreichen.
Git funktioniert seit über 20 Jahren gut, ohne detailliert zu analysieren, wer welche Features und Befehle nutzt; daher frage ich mich, ob Telemetry es wirklich besser gemacht hätte oder nur noch mehr verstreute Daten erzeugt hätte.
Ohne Analytics fühlt es sich an, als würde man mit verbundenen Augen fahren.
Man weiß nicht, was Nutzern wirklich wichtig ist, welche Abläufe man optimieren sollte, und der Unterschied zwischen dem, was Menschen sagen, und der Art, wie sie Software tatsächlich benutzen, ist erstaunlich groß.
Oft ist es auch schwer, von Menschen gutes Feedback zu bekommen, und selbst wenn alle die Idee für Feature X gut finden, kann es sein, dass es in der Praxis überhaupt nicht genutzt wird.
Außerdem kann es lautstarke Fans geben, ohne dass sich das in Umsatz oder realer Nutzung niederschlägt.
Ich denke, dass Git mit Telemetry sehr wahrscheinlich besser geworden wäre.
Git ist bekanntlich UI-mäßig schlecht.
Man hätte früh in den Daten gesehen, wie oft Menschen am Anfang scheitern, und Verbesserungen wie
git restorewären vermutlich viel früher gekommen statt unintuitiver Befehle wiegit checkout -- foo.txt.Wenn Leute, die das Tool nicht selbst benutzen, nicht verstehen, wie es tatsächlich verwendet wird, verlangen PMs für Entwicklerwerkzeuge solche Daten, um ihre Arbeit machen zu können.
Das wirkt wie dieselbe Struktur, in der ein E-Commerce-PM massenhaft Tracking-Skripte auf das Frontend packt.
Früher konnten Ingenieure die Interaktion mit Nutzern auch allein entwerfen, aber seit dem VC-Zeitalter hat sich das Paradigma verfestigt, dass technische Produkte tiefgehend von Nichttechnikern geführt werden.
Am Ende landen die Daten bei ihnen, und irgendjemand rechtfertigt damit dann das PM-Gehalt.
Für mich ist das nicht eindeutig.
Es wirkt wie ein Paradebeispiel dafür, dass Ingenieure Interfaces für Ingenieure bauen und es keine gute Feedback-Schleife gab.
Ironischerweise zeigt genau dieses Beispiel, dass Entwickler besser verstehen müssen, wie ihre Produkte tatsächlich genutzt werden.
Das Nutzungsszenario im Kopf des Entwicklers unterscheidet sich meist deutlich von der Realität.
Ich denke, das Opt-out-Problem beim
gh-CLI ist komplizierter, als es scheint.ghläuft auch in CI/CD-Pipelines oder Serverumgebungen, und dort möchte man aus Netzwerkeinschränkungen, nicht nur aus Datenschutzgründen, möglicherweise überhaupt keine Verbindung zugithub.com.Wenn Telemetry dort standardmäßig aktiviert ist, kann CI scheitern oder ein Bastion Host GitHub gar nicht erreichen.
Git selbst arbeitet dagegen vollständig lokal, bis der Nutzer explizit pusht.
Das ist also ein anderes Vertrauensmodell.
Git telefoniert standardmäßig nie nach Hause, solange man es nicht konfiguriert, während
ghals Wrapper um die GitHub-API funktional natürlich Aufrufe machen muss.Unabhängig davon sollte man aber separat diskutieren, ob zusätzlich noch Nutzungsmuster von Befehlen erfasst und hochgeladen werden müssen.
ghohne Verbindung zuGitHub.comfaktisch nutzlos ist.Oder ist die Verbindung zu Enterprise GitHub der Hauptanwendungsfall?
Wenn drei Entwickler 80 Prozent ihrer Zeit in einen bestimmten Bereich der Codebasis stecken, dieser aber gar nicht genutzt wird und realistischerweise wohl auch künftig nicht stärker genutzt werden wird, wäre es vielleicht besser, diese Leute anders einzusetzen oder das Feature grundsätzlich zu überdenken.
Das Problem bei solcher Analytics ist allerdings, dass man zwar harmlos damit umgehen kann, aber mit eindeutigen Kennungen und Verhaltensmustern per Machine Learning auch Identitäten rekonstruieren kann.
Mit Zeitstempeln wird es noch heikler.
Deshalb fände ich es gut, wenn genau offengelegt würde, wann welche Telemetry gesendet wird.
Zum Beispiel könnte es eine Option geben, die nichts sendet, aber in einem Verbose-Modus zeigt, was gesendet würde, damit Nutzer das prüfen und dann entscheiden können, ob sie es aktivieren.
Ein Modell wie die Steam Hardware Survey, die zeigt, was übertragen wird, erscheint mir sinnvoll.
Alle
gh-Befehle sind letztlich nur Wrapper um die GitHub-API, und genau dadurch wirkt diese Debatte noch verwirrender.Ich mag so kurze PRs.
https://github.com/cli/cli/pull/13254
Der Inhalt ist auch einfach: Ich lese das so, dass die Env-Var entfernt wird, mit der man Telemetry blockieren konnte, und damit auf standardmäßig aktiviert umgestellt wird.
Außer für Enterprise scheint es faktisch zwangsweise eingeschaltet zu sein.
Ich bin wirklich zufrieden damit, letzten Monat gitea in meinem Homelab ausgerollt zu haben.
Es gibt auch eine Importfunktion von GitHub, und ehrlich gesagt fühlt es sich schneller an als GitHub und hat auch bessere Uptime.
Claude funktioniert ebenfalls gut mit
teaCLI und Git, und insgesamt wirkt es fast wie eine GitHub-Kopie, bisher aber eher besser.Es ist schnell und die Uptime ist gut.
Es läuft sogar auf einem Pi 4 im Schrank neben meinem Schreibtisch und funktioniert deshalb auch weiter, wenn das Internet ausfällt.
Backups schicke ich mit borg und syncthing sogar offsite.
Das Setup braucht etwas Arbeit, aber danach ist der Wartungsaufwand fast null.
Etwa alle zwei Wochen logge ich mich per SSH ein und prüfe nur den SSD-Platz, die RAM-Nutzung,
apt update,upgradeund größere Versions-Upgrades.Fragen sich die Leute nicht, ob GitHub ohnehin schon alle Anfragen sammelt und aggregiert, die auf den eigenen Servern eingehen?
Schließlich besteht der ganze Zweck des
gh-CLI darin, mit genau diesen Servern zu interagieren.Wenn man überhaupt kein Request-Tracking möchte, müsste man vermutlich viel mehr abbestellen als nur diese eine Einstellung.
Diesmal scheint man aber zusätzlich Client-seitige Metriken zu erfassen, um nicht nur Flows Richtung GitHub besser zu verfolgen, sondern auch solche zu GitLab, Codeberg und anderswohin.
Aus GitHub-Sicht ist das vielleicht sinnvoll.
Jedes Unternehmen braucht solche Daten, manche nutzen sie zur Produktverbesserung, andere für weniger erfreuliche Zwecke.
Ich weiß, dass HN-Nutzer Telemetry nicht mögen, aber wenn man selbst einmal SaaS gebaut hat, merkt man, dass Telemetry praktisch unverzichtbar ist.
Mir geht es letztlich darum, dass Gespräch fehlt.
Der Kern steckt in den Details, und ich überlege, ob es vielleicht eine vertrauenswürdige Vermittlungsinstanz geben könnte, die eine für Nutzer und Produkthersteller gleichermaßen akzeptable Mitte schafft.
Ich erwähne, dass ich mit Hilfe von Claude Recherche dazu in einem Gist zusammenstelle.
Das erinnert mich an Microsofts Embrace, extend, extinguish.
Die ersten beiden Schritte sind schon passiert, und ich erwarte, dass GH CLI in fünf Jahren der einzige Weg sein wird, mit GitHub-Repositories zu interagieren.
Dann wäre auch der dritte Schritt abgeschlossen und der Zyklus beendet.
Sie wirkt so realitätsfern, dass ich fast fragen möchte, um welchen Einsatz es geht.
Leute haben WSL, GPU-Support, WSLg und PowerShell ständig ebenfalls in den EEE-Frame gepresst, aber passiert ist das nie.
Auch jetzt nicht, und es gibt nicht einmal wirkliche Spuren dafür, dass so etwas geplant wäre.
Das ist nichts, das man aus dem Bauch heraus deuten sollte; ich möchte Belege dafür sehen, wo genau die wiederholbare Methode, die Microsoft in den 90ern tatsächlich genutzt hat, heute reproduziert wird.
Es gibt weder ein Microsoft Git, das mit mehr Features als Open Source abschottet, noch etwas Vergleichbares wie ein Microsoft Linux.
GitHub ist ein Wrapper auf Git mit dem grundlegenden Design eines Git-Servers über HTTP und SSH.
Diese Grundlage aufzubrechen und den Repository-Zugriff nur noch über
ghzu erzwingen, wäre eine viel zu große Änderung und erscheint mir unrealistisch.ghist nur ein Tool, das API-Aufrufe bequemer macht, und die meisten GitHub-Nutzer wissen nicht einmal, dass es existiert.Wenn GitHub kaputtgeht, dann wahrscheinlich nicht durch böswilliges EEE, sondern durch inkompetentes Management.
Wegen Führungskräften, die Nutzer und Produkt nicht verstehen, halte ich einen Niedergang für wahrscheinlicher.
Manche Repositories fühlen sich schon heute ohne
ghumständlich an, und ich denke, dass sich nach und nach erzwungene Abläufe einschleichen.Ich weiß nicht genau, welchen Mehrwert
ghliefert, weil ich es nicht benutze, aber für mich reichen die Standard-Git-Befehle aus.Ich bin verwirrt, ob mit
pseudonymous telemetrypseudonyme Telemetry gemeint ist oder ob eigentlich nicht-anonyme Telemetry gemeint ist.Die beiden Formulierungen sind nahezu gegensätzlich, und so wie es jetzt dasteht, klingt es eher so, als würde identifizierbare Datenerfassung angekündigt.
pseudoanonymousoffenbar eine Wortschöpfung des HN-Posters ist.Offenbar bekommt jede Maschine eine UUID, anhand derer die Maschine identifiziert wird.