本文介紹Gitea Project開發緣由以及安裝步驟,還有與Gitlab, Gitblit, Gogs之間的比較。
Gitea是從Gogs分支出來的計畫,由於Gogs作者Unknown一直不肯釋放repo權限,並從嚴審理PR,造成issue難以消化,版本迭代較慢等現象,Gitea相對採用開放政策:沒有固定的owner,PR是否併入也採用民主方式,或許更貼近開放軟體精神,詳見官方post。
從下面兩張圖也可以看到Gogs的commits相對來說較不穩定,有時長達一個月幾乎沒有新commits,這對於需要架設私有git server的公司而言穩定性及技術支援程度都較有疑慮,反觀Gitea社群相對活躍,開發者對功能建議及貢獻都反應在其版本的增加速度上(2016/12 v1.0.0以來已經出了5個版本)。
Gitea commits (until 2017.06.11)
Gogs commits (until 2017.06.11)
安裝
Gitea提供多樣的安裝方式如docker, package, binary, source 等等,其中最簡單的就是使用binary,可以先進入download 頁面,再挑選自己的平台即可,下面的例子是安裝 1.1.2 on Mac OSX。如果需要進一步設定可參考 config-cheet-sheet 。
$ wget -O gitea https://dl.gitea.io/gitea/1.1.2/gitea-1.1.2-darwin-10.6-amd64 $ chmod 755 gitea $ ./gitea web
使用
Gitea Web使用上跟Gogs沒有太大差異,有支援輕量化的Issue tracking以及Pull Requests,甚至可以安裝到 Raspberry Pi。
很奇妙的是官方blog上面沒提到 webhook用法,其實它有支援標準git以及Slack webhook,設定方法也跟Github沒什麼差異,較可惜的是Gitea目前只支援 Create, Pull Request, Push 三種事件。
Swagger上面有Gitea API的用法,雖然還不及 Github豐富,但對於repo及user的管理已經頗為完善。
附帶一提,既然Gitea擺明跟Gogs搶生意他們當然有出官方的搬家指南 ,目前已經用Gogs的人可以評估看看。
結論
我自己架過Gitlab, Gitblit, Gogs等開源的git service,試用過Gitea發現它的功能已經頗為齊全,下列是不負責比較,完全自由心證 XD
- 安裝容易度:Gitea = Gogs > Gitlab >> Gitblit
- 用戶界面速度:Gitea = Gogs > Gitblit > Gitlab
- 用戶界面美觀:Gitlab > Gitea > Gogs > Gitlit
- 功能豐富度:Gitlab > Gitea > Gitblit > Gogs
- 社群活躍度: Gitlab > Gitea > Gitblit > Gogs