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