尝鲜 CodeBerg : "非主流" Git 服务现状

尝鲜 CodeBerg : "非主流" Git 服务现状

在今年六月的时候,SCF 发了一篇关于放弃 GitHub 的长文,把人煽的热血沸腾的。

正好,这篇文章提供了一些 GitHub 的 “代替品”,我打算试一试。

SCF 推荐了两个服务:

  1. CodeBerg – 公开的 Gitea 实例,前身是 Teapod.
  2. SourceHut – 貌似很久以前就有了,但是成为 Maintainer 要花钱订阅,Collaborator 不用。

因为只是尝鲜,就没有去看 SourceHut 了,所以用的是 CodeBerg.

登陆

估计是因为 Gitea 的原因,Codeberg 很多地方都和 GitHub 相似。此外,他们还提供了类似 GitHub PagesCodeBerg Pages 服务,这点要点个赞!

CodeBerg 访问起来快很多,大概是因为还没受到 GFW 的恩爱吧。不过 Pages 服务对比起绑定了域名的 GitHub Pages 就有点不够意思了。

还支持暗色主题!

整体来说体验和自建 Gitea 其实差不多,自己建的 Gitea 也有 WebAuthn 支持这些有意思的东西,无非 SLA 问题。

官方还提供了一些文档,貌似写得很详细,而且还考虑到了不会使用 Git 的人群。虽然 GitHub 也有,不过我还没去看过,就不做比较了。

项目迁移

登陆后做的第一件事情就是迁移项目到 CodeBerg 上。支持的迁移来源很多,其中也包括 GitHub。

但是没有那么简单,由于项目体量稍微大了一点点,很快就触发了 Rate-Limit 导致无法顺利迁移。用多几个 UserToken 也无济于事

那怎么办?只能自己手动迁移了呗… 迁移代码不算什么难事,直接往新的仓库 push 即可,问题是仓库的元数据们——issuespull requestswebhooks

Issues 和 PRs

在 GitHub 上的仓库已经一百多个 Issue 了,无论是 Open 还是 Closed 都有必要迁移。虽然 Codeberg 提供了把 issues 页面重定向的设置,但是我觉得还是放在 CodeBerg 上比较好,毕竟我没有 Jira。

一个一个迁移显然不太可能,还好我搜索一会儿就找到了 Gitea 官方早些年放出来的工具

https://gitea.com/gitea/migrator

Migrator

Migrator is a library and a command line tool, which allow to migrate all repositories data from github/gitlab/gitea/bitbucket to gitea

虽然已经很老旧了,但是完全可以用,比较可惜的是时间信息全部丢失了..

WebHooks

CodeBerg 支持若干 WebHook,类型多的有点让人出乎意料。

Type of webhooks

最出乎意料的是,它的 Gitea 钩子竟然和我专门为 GitHub 设计的 WebHook Bot 完美兼容…

Screenshot of my bot

总的来说,这块支持真的比 GitHub 要好很多了。

集成

现在稍大一点的项目都已经用 CI 做检查和自动构建了,要是没有 CI 支持就太难受了。

在以前 GitHub 还没推出 Actions 的时代,可以用 Circle CI, Travis CI, Appyevor 接入 GitHub 来达到目的。然而,这些供应商没有一个支持 Gitea 的,Appyevor 也只不过自建的实例支持。

很好理解,但是 CodeBerg 也在其中,也就是说这些服务统统与 CodeBerg 用户无缘…

如果你是那类喜欢使用自动 Code Review 的人,想必会非常痛苦。不过还好,我摸索着找到了两个支持配合 Gitea 用的 CI:

  1. BuildKite – 虽然是免费,但是 Agent 要自己出,平台只是聚合结果做处理之类的。此外,不能直接接入,需要自己写点胶水。
  2. CodeBerg CI – 只支持 CodeBerg

BuildKite 虽然用着也不错,但是跑构建的机器还是要自己出的。这似乎也和自建 Jenkins 没有什么区别,不过理论上来说更加安全了,而且 CI 文件之类的是平台在提供支持,让你跑的 Agent 本质上就是一个 Remote Shell。

CodeBerg CI 则是 Codeberg 平台提供支持,免费。但仍在内测。能够满足基本的 CI 需求,但是总体用起来远不如 GitHub Action,用起来给人一种和项目割裂开的感觉。

生态

在使用一周 CodeBerg 后我就有了放弃的念头。虽然它很优秀,但是世界的中心是 GitHub,要不是 SCF 的长文我现在还不知道 CodeBerg呢。

就比如说,我的博客托管在 Vercel 上,而 Vercel 的 Git 接入恰好就只支持 GitHub.
或者说,我的项目在 Circle CI 上构建,而 Circle CI 只支持 Github/BitBucket/GitLab.
又或者说,我的一些 Bot 在 GitHub 上,而且没法很好的迁移到 CodeBerg 上。

END

总的来说,我觉得 CodeBerg 还是蛮不错的,只是我最后还是回归到了 GitHub 上。

对于单纯想托管一个项目,或者喜欢数据隐私安全感的人来说,CodeBerg 确实是一个不错的选择,并且因为 SCF 的那篇长文,最近还挺多人涌进去的,没准就有你熟悉的某些开源项目。

除了 CodeBerg 之外,还有很多公开 Gitea 实例也和 CodeBerg 面临着几乎是一模一样的问题。虽然他们都可以满足代码协作的需求,但是还是差那么一点意思。

end.


明年就高考了,之后应该很少出文了,反正出了也没人看。

这篇虽然没什么内容,不过就当作水文凑且看看吧。

尝鲜 CodeBerg : "非主流" Git 服务现状

https://ib67.io/2022/08/19/From-GitHub-To-Github/

作者

iceBear67

发布于

2022-08-19

更新于

2022-12-20

许可协议

评论