News Hacker|极客洞察

258 12 天前 githubstatus.com
😡GitHub 再次故障:PR/Issues 静默错返,迁移 Gitea/Forgejo 升温
连 PR 列表都能静默造假了,还能叫可用平台吗?

🎯 讨论背景

这次 GitHub 故障主要影响 PR、Issues、Projects 和 Actions workflow runs,用户看到的是空列表、失败提示或反复刷新后才偶尔恢复的页面。评论里有人提到系统甚至会静默显示没有 open pull requests,但实际仓库里明明还有很多,说明这不只是全站宕机,而是读接口或前端展示层返回了错误数据。讨论因此扩展到 GitHub 长期可靠性、Microsoft 是否在把基础设施迁到 Azure(Microsoft 的云计算平台),以及 Copilot 和其他 AI 相关负载是否在加大压力。很多人借机讨论如何把仓库、CI/CD、Issue tracker 迁出 GitHub,转向 Gitea、Forgejo、GitLab、sourcehut、Codeberg 或自托管方案。

📌 讨论焦点

静默错误与错误展示

这次问题不只是页面打不开,而是会返回看似正常、实际错误的数据。有人指出 PR 页面会显示没有 open pull requests,但仓库里明明还有很多;Issues、Projects 和 Actions 也会出现 0 项、拉取失败或 workflow 异常。更糟的是,部分刷新又能偶尔看到正确结果,说明后端或部分节点在提供不一致的数据。大家普遍认为这种静默失败比直接报错更危险,因为它会误导开发和发布决策。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8]

故障常态化与缺少复盘

不少人把这次故障看成长期恶化的一部分,认为 GitHub 现在几乎每周都在出问题,甚至一周多次。评论里也有人抱怨官方缺少像样的 postmortem,外界只能靠状态页和体感拼凑真相。有人提醒,历史曲线未必能直接证明 Microsoft 收购后更差,因为早期故障可能只是没被系统性记录,但最近几个月的体验确实普遍更糟。对一个承担生产工作流的平台来说,这种频率已经被很多人视为不可接受。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9]

自托管与替代 forge

很多评论顺势开始分享替代路线,尤其是 Gitea、Forgejo、GitLab、sourcehut、Codeberg、gerrit,以及 gitolite + cgit 这类更轻量的组合。自托管派的经验是,只要把 Git 仓库和 CI 一起搬走,平时的可用性、速度和成本都能明显改善,而且维护量并没有想象中那么高。有人已经把公共和私有仓库都迁到 Forgejo,并配合 push mirror 到 Codeberg;也有人说 Gitea 的 Actions、Drone 或 Woodpecker CI 已经足够覆盖自己的需求。这个分支的核心情绪是:一次又一次的 GitHub 故障,已经足以让人认真考虑退出。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12] [来源13] [来源14] [来源15] [来源16]

迁移成本与网络效应

但另一派很快指出,真正难搬的不是代码,而是围绕代码形成的全部协作层:issues、已经关闭的 ticket、外链引用、CI 配置、仓库权限、分支规则和 committers 权限。GitHub 之所以难替代,还因为它是很多人找软件和建立协作关系的默认入口,stars 和搜索带来的网络效应很强。即使愿意做 mirror,很多项目也只能先把代码同步出去,而不是完整迁移。换句话说,离开 GitHub 的技术门槛未必最高,生态和分发成本才是最重的。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9]

Azure/Copilot 负载与微软归因

还有一条线把矛头指向 Microsoft:有人认为 GitHub 正在把业务迁到 Azure,这个迁移过程本身就可能引入不稳定。另一种猜测是 Copilot 和更广泛的 AI 相关功能、AI 生成代码带来的负载增长,正在放大基础设施压力。也有人把问题归结为微软式的产品优先级和工程文化,认为近年的质量控制明显不如早期。支持这种看法的人通常会把最近几个月的体验恶化与这些结构性变化联系起来,但也有人提醒历史数据不够完整,不能把所有问题简单归因到收购。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12] [来源13] [来源14] [来源15]

📚 术语解释

SPOF: Single Point of Failure,单点故障;一个系统过度依赖的中心节点一旦失效就会整体受影响。

merge queue: 将多个待合并的 PR 排队并按顺序合并的机制,用来减少 trunk 被并发合并打乱。

GitHub Actions: GitHub 内置的 CI/CD 自动化系统,用来运行构建、测试和部署工作流。

Gitea/Forgejo: 可自托管的 Git forge,用于托管仓库、PR 和 Issues,常被拿来替代 GitHub。

Azure: Microsoft 的云计算平台,GitHub 被认为正在把部分基础设施迁往这里。