GitHub CLI 现在收集伪匿名遥测
Source: Hacker News
Telemetry
GitHub CLI 会发送伪匿名遥测数据,以帮助我们改进产品。我们希望您了解发送了哪些信息以及原因。
为什么收集遥测
随着 GitHub CLI 的自主采用不断增长,我们的团队需要了解功能在实际使用中的情况。我们使用这些数据来:
- 确定工作优先级
- 评估功能是否满足真实用户需求
例如,当我们发布一个新子命令时,我们想了解是否有人在使用它以及如何使用。如果采纳率低,我们就知道需要重新审视该功能的可发现性或设计。如果某个子命令在特定标志下使用频繁,这会告诉我们应在何处投入更好的体验。
查看遥测
GitHub CLI 是开源的;您可以在 cli/cli 仓库中查看遥测实现。如果您想在不实际发送的情况下查看将会发送的内容,可通过环境变量或配置选项启用日志模式。
环境变量
export GH_TELEMETRY=log
CLI 配置
gh config set telemetry log
在日志模式下,原本会发送的 JSON 负载会打印到 stderr。这让您在决定是否保持遥测开启之前检查每个字段,例如:
GH_TELEMETRY=log gh repo list --archived
该命令会输出类似以下内容:
Telemetry payload:
{
"events": [
{
"type": "command_invocation",
"dimensions": {
"agent": "",
"architecture": "arm64",
"command": "gh repo list",
"device_id": "1e9a73a6-c8bd-4e1e-be02-78f4b11de4e1",
"flags": "archived",
"invocation_id": "eda780f5-27f9-433c-a7ae-7a033361e572",
"is_tty": "true",
"os": "darwin",
"timestamp": "2026-04-16T14:55:13.418Z",
"version": "2.91.0"
}
}
]
}
注意: 此命令只能记录其运行时的确切命令和上下文的遥测。更改环境变量、认证账户或其他因素可能会改变负载中包含的事件和维度。
如何选择退出
您可以通过环境变量或配置选项来退出遥测。
环境变量
export GH_TELEMETRY=false
任何假值均可生效:0、false、disabled 或空字符串。您也可以使用 DO_NOT_TRACK 约定:
export DO_NOT_TRACK=true
CLI 配置
gh config set telemetry disabled
注意: 环境变量的优先级高于配置值。
数据发送位置
遥测事件会发送到 GitHub 的内部分析基础设施。有关 GitHub 如何处理您的数据的更多信息,请参阅 GitHub 通用隐私声明。
附加信息
- GitHub CLI 允许您通过安装 GitHub 和第三方扩展(包括代理)来添加功能。这些扩展可能会收集它们自己的使用数据,且不受退出遥测的控制。请查阅各扩展的文档以了解其遥测报告及禁用方法。
- 本页描述的是 GitHub CLI(
gh)的客户端数据收集。它 不适用于 GitHub Copilot 或 Copilot CLI,后者有独立的数据收集方式。有关 Copilot CLI 的信息,请参阅: