数字自主权:为什么开发者和政府正在从 GitHub 迁移到 Forgejo
将源代码从中心化提供商迁移到自托管实例,其决策很少仅仅是因为一次停机。虽然停机令人沮丧,但它通常是更深层结构性转变的症状。对于许多开发者甚至国家政府而言,讨论的重点已经从“服务是否可靠?”转向了“究竟是谁拥有存放我知识产权的平台?”
这种紧张关系最近在荷兰政府推出 code.overheid.nl 时达到了顶峰,这是一个自托管的 Forgejo 实例,旨在确保公共源代码托管在国家实际控制的基础设施上。这一举动反映了向数字自主权迈进的日益增长的趋势,即从“平台即服务”模式转向主权基础设施。
独立性的侵蚀
多年来,留在 GitHub 的主流论点是 Microsoft 保持着一定的距离。然而,这种动态在 2025 年 8 月发生了根本性的变化,当时 Thomas Dohmke 卸任了 CEO,且没有继任者。相反,GitHub 被并入了 Microsoft 的 CoreAI 部门。
这种重组标志着优先事项的转变:GitHub 不再仅仅是一个托管代码的地方;它现在是 Copilot 和 AI 技术栈端到端实现的主要引擎。这种结构性变化对用户产生了切实的后果:
AI 训练默认设置
在 2026 年 4 月,GitHub 针对 Copilot Free、Pro 和 Pro+ 用户开启了用户交互数据开关,使其在进行 AI 训练时从“选择加入”变为“选择退出”。至关重要的是,并没有提供仓库级别的退出选项。这意味着如果使用 Copilot 的贡献者与该仓库进行交互,维护者无法阻止其代码库成为训练材料。
AI 导致的可靠性副作用
最近发生的重大停机——包括 2026 年 4 月数百个仓库中提交记录的静默回滚——被 GitHub 的 CTO 归因于“智能体 AI 工作流增长”产生的巨大负载。当容量需求需要扩大 30 倍以跟上 AI 的步伐时,传统 git 操作的稳定性就成了 AI 生态系统增长的次要关注点。
管辖权陷阱
除了公司政策之外,还存在法律层面的现实。由于 GitHub 和 Microsoft 是总部位于美国的公司,它们受到 FISA Section 702 和 CLOUD Act 的约束。这些法律允许美国情报机构和执法部门强制要求提供数据,无论该数据物理存储在何处。
虽然 GitHub 为 Enterprise Cloud 引入了欧盟数据驻留,但这只是对管辖权问题的地理解决方案。正如 Microsoft 自己的律师在 2025 年向法国参议院宣誓承认,存储在欧洲数据中心的数据无法保证免受美国政府的静默访问。对于需要真正数字主权的实体而言,“托管在法兰克福”并不能替代“由本地拥有并运营”。
为什么选择 Forgejo?
在寻求替代方案时,选择通常在乎 GitLab 或 Forgejo。虽然 GitLab 是一个强大的行业标准,但它遵循“开放核心”模式,许多关键的生产功能被锁定在专有的企业级版本中。
Forgejo 作为 Gitea 的一个分支,提供了不同的路径:
- 真正的开源: 重新授权为 GPLv3+ 以抵制商业化捕获。
- 非营利治理: 由 Codeberg e.V. 管理,这是一个拥有成员选举董事会和公开预算的德国 Verein(协会)。
- 轻量级占用: 能够在适度的硬件(如 Intel NUC)上运行,同时提供核心的 forge 体验。
难点:保障 CI/CD Runner 的安全
自托管一个 git forge 是相对简单的;而在 CI/CD runner 中执行不受信任的代码才是真正的挑战所在。一个可防御的 runner 架构需要“具有深度的周界”,以防止供应链攻击破坏宿主系统。
多层防御策略
为了降低执行生命周期脚本(例如 npm install)的风险,一个加固固化的 runner 设置应该采用几种重叠的保护层:
KVM 隔离: 将 runner 运行在专用的虚拟机(Virtual Machine)中,而不是容器中,以确保宿主内核不被共享。
gVisor 运行时: 在虚拟机内部使用
runsc来拦截用户空间的系统调用,在任务(job)与内核之间增加第二层隔离。破坏性重建: 每周自动销毁并使用全新的镜像重新创建虚拟机,以确保没有持久状态或恶意软件残留。
流出过滤: 使用
nftables来阻止 runner 访问本地网络(LAN),防止被攻破的任务(job)扫描内部基础设施。范围限制的 Token: 使用受限的 PAT 范围,以确保泄露的 Token 无法用于管理操作。
权衡与现实
从 GitHub 的迁移并非没有代价。主要的损失是发现性(discovery)和社会关系图谱。GitHub 是开源社区的“城镇广场”;迁移到私有实例会降低项目的可见度。
一种缓解策略是保留 GitHub 作为镜像或存档。通过在 GitHub 上存档公共仓库,并将 README 指向新的规范化主目录(例如 code.jorijn.com),开发者可以保留发现路径,同时重新获得对主要开发环境的所有权。
结论
向 Forgejo 和自托管的转变不仅仅是对停机的反应,而是向自主权迈进的战略举措。随着国家政府和个人开发者都意识到,公司控制的平台优先考虑其自有的 AI 训练路线图,而非用户主权,回归去中心化、由所有者运营的基础设施已成为一种必然,而非小众的偏好。