GitHub项目镜像在2023年 | Alexander Popov
2023年2月1日
由于多种原因,我决定将自己的开源GitHub项目镜像到其他协作开发平台。实现这一目标并不简单。这篇短文描述了我遇到的困难以及最终的可行解决方案。
背景与挑战
拉取镜像功能从我的一些仓库中消失了。免费启用它不再可能:
在俄罗斯无法购买GitLab高级支持(Premium Tier)。GitLab甚至禁止使用其免费试用版。因此,我开始寻找其他解决方案来镜像我的GitHub项目。
探索替代平台
- 自建服务器:部署自己的GitLab或Forgejo服务器不适合我:我不想将开源项目放在隔离的服务器上,这会严重限制社区互动并成为贡献者的障碍。
- Gitee:检查了中国平台Gitee,但不喜欢其有限的英语本地化支持。
- Radicle:查看了Radicle,一个点对点的软件开发网络,但其“基于区块链的强大功能”对我来说过于激进。
- Codeberg:这个协作平台由同名的非营利组织支持,推广自由软件理念。这些人比拥有GitHub的Microsoft更让我喜欢。但在2020年3月,由于资源不足,他们关闭了Codeberg服务器上的镜像功能。据他们说,“镜像仓库容易创建,但永久消耗资源” :(
- SourceHut:检查了SourceHut(感谢paulmairo提供的链接)。这个平台不适合我,因为它只提供付费服务,且开发流程与GitHub不兼容:在SourceHut上,使用电子邮件处理项目问题和代码。
- Salsa:查看了Salsa(感谢Mic_92的想法)。这是Debian社区的协作服务器,运行在GitLab软件上。我注册了账户,几天后管理员激活了它,我成功将一个项目从GitHub复制到Salsa。但Salsa的拉取镜像功能也被禁用,就像gitlab.com的免费模式一样。我在他们的跟踪器中提问,但未得到回复。
GitFlic尝试
手动备份策略
总结来说,我没有找到任何流行的协作平台能提供全功能镜像给我的GitHub项目。因此,我决定从另一个角度看待这个问题:如何手动创建GitHub项目讨论的备份?
该工具在底层使用GitHub提供的GraphQL接口,因此我需要生成一个具有最小权限的GitHub个人访问令牌。有关处理此类令牌的详细信息可以在GitHub文档中找到。
还有另一种方法:可以将GitHub的问题和讨论导出到项目的git存储库中。这可以使用专门的跟踪器git-bug实现(感谢Сергей Бронников提供的链接):
Codeberg最终方案
这已经是一个可行的解决方案。如果GitHub出现问题,我会在Codeberg重新创建仓库,启用内部跟踪器和合并请求,然后向社区和GNU/Linux发行版宣布,我的开源项目开发已转移到该平台。
感谢阅读。欢迎评论和建议。