VS Code 强制注入 Copilot 签名事件深度解析
一个悄悄更改的默认设置,一次不透明的签名注入,一场关于 AI、版权与软件工程伦理的深度讨论。
一、事件背景
2026年5月初,GitHub上出现了引发广泛争议的PR(microsoft/vscode#310226)。多名开发者报告:当他们在VS Code中执行Git提交操作时,提交信息被自动注入了一行署名:
Co-Authored-By: GitHub Copilot <noreply@github.com>
更令人震惊的是,这种行为在用户完全关闭Copilot功能后依然存在。
二、技术实现剖析
Git Co-Authored-By机制
Co-Authored-By是Git官方支持的提交署名机制,最初设计用于标记多人协作的贡献者。当这个机制被用于强制注入AI工具签名时,其语义被扭曲了。
注入机制的代码分析
根据社区的逆向分析,注入行为涉及VS Code SCM API层面的拦截。关键问题是判断逻辑过于宽泛,默认设置被静默改为开启。
三、法律风险深度分析
版权归属的灰色地带
当前全球主要司法辖区的版权法律基石是"人类独创性"。AI作为工具不具备法律主体资格。如果代码被标记为"AI共同创作",可能削弱开发者的版权主张。
GPL协议合规风险
如果Copilot训练数据中包含GPL代码,生成的代码片段可能触发GPL传染。Copilot签名可能成为"承认使用了GPL代码"的证据。
四、社区应对方案
Git Hook清除签名
#!/bin/bash
# prepare-commit-msg hook
if grep -q "Co-Authored-By: GitHub Copilot" "$1"; then
sed -i "/Co-Authored-By: GitHub Copilot/d" "$1"
fi
VS Code配置禁用
{
"github.copilot.commitMessage.coauthor": "off"
}
五、总结
这一事件触及了软件工程的核心价值:代码归属、用户选择权和工具的中立性。开源社区的力量推动着行业健康发展。
代码是属于开发者的,提交记录是属于项目历史的。