本篇博客是随着 Gogs v0.3.0 版本而发布的。

在经历半个多月的开发之后,Gogs 迎来了一个非常重要的版本:v0.3.0。为什么说这个版本很重要呢?我认为有以下几点原因:

  • 在首个版本发布后,开始陆续收到用户的使用反馈,从而使得功能改进和 BUG 测试更加完善。
  • 该版本新增了包括私有库、导入或镜像仓库、Docker 部署、社交帐号登录等在内的大量的特性。
  • 在这个版本的开发过程中,项目贡献者 的数量已经增长至 17 人,说明该项目受到越来越多开发者的关注。

如果您对该版本做了哪些改进有兴趣,可以查看完整的 变更日志

相较于上个版本发布博文的总体概览,本博文将会着重于几个功能更新进行讲解。

从 0.2 升级到 0.3

如果您正在使用 0.2.0 版本的 Gogs,该版本是可以平滑升级到 0.3.0 版本的。唯一要做的改变就是您需要对邮件发送进行设置,因为在 0.3.0 版本中,我们加强了对用户密码保护的算法,因此旧的用户密码已经失效。通过忘记密码并进行重置的方式可以解决这个问题。备注

架设私有 Git 托管服务

本版本的 Gogs 已经支持两种类型的私有托管:单用户的私有库和全站的私有使用。

私有库

设置用户的私有库非常简单,只需要在仓库创建页面勾选 “该仓库为私有” 检查框即可:

0004_private

私有库暂时不支持增加合作者,所以只有仓库创建者才能进行浏览、设置和代码推送及拉取操作。

全站私有

全站私有浏览的功能其实在 0.2.0 版本中就已经存在,不过鉴于 HTTP(S) PUSH/PULL 上的一些操作当时还未完成,所以到现在才进行公开。

设置全站私有的方法非常简单,在配置文件中修改以下选项:

[service]
; Does not allow register and admin create account only
DISABLE_REGISTRATION = true
; User must sign in to view anything.
REQUIRE_SIGNIN_VIEW = true

这 2 个配置选项的作用分别是:禁止用户注册(只能由管理员创建帐号)和必须登录浏览。

在开启了必须登录浏览之后,相应的公开仓库的 HTTP(S) 克隆也会要求用户输入帐号密码以进行权限确认。

更多类型的仓库

由于一些用户的要求,我们在 0.3.0 版本中增加了许多便利的仓库操作,例如从其它托管站点导入仓库、镜像某个仓库以及一些其它支持。

导入仓库

如下图所示,在 “迁移仓库” 页面,您可以输入指定仓库的 HTTP(S) 地址,该地址可以是任何 Git 托管点的地址,不仅仅是 GitHub。

0004_migrate

如果需要权限验证,可以输入相应的用户名和密码。

镜像仓库

同样在迁移仓库页面,如果您勾选了 “该仓库是一个镜像” 检查框,则会定时(默认为 24 小时)对镜像源进行检查更新。需要注意的是,镜像仓库只能进行 pull 而不能进行 push 操作。

其它支持

在仓库设置页面,我们增加了默认分支设置和 go get 所需的 meta 标签支持:

默认分支不必多说。开启 go get 支持后,您就可以使用 go get 方式来拉取您的项目了。

现已默认开启 go get 支持。

总结

私有方面的功能是 0.3.0 版本的一个亮点,但绝不是仅有的亮点。此外还包括采用 Git 1.6.6 版本起支持的 Smart HTTP 来替换原有的 Webdav 实现,大幅提升稳定性和可用性,增加 Docker 部署 的支持。除了增加许多功能之外,0.3.0 版本还对 git 仓库的操作进行了性能上的优化,大幅降低了操作仓库时所需的内存和 CPU 占用。

感谢您对 Gogs 的支持并花时间阅读这篇博文,如果您有任何建议或使用反馈,请到 GitHub 上与我们进行交流。