Gogs:自建简单、轻量级Git代码托管平台

Gogs是一款极易搭建的自助 Git 服务,其官方自我介绍如下:

1.易安装

既可以根据操作系统平台通过 二进制运行,还可以通过 Docker 或 Vagrant,以及 包管理 安装。

2.跨平台

任何 Go 语言 支持的平台都可以运行 Gogs,包括 Windows、Mac、Linux 以及 ARM。

3.轻量级

一个廉价的树莓派的配置足以满足 Gogs 的最低系统硬件要求。最大程度上节省您的服务器资源!     

4.开源化

所有的代码都开源在 GitHub 上。

配置部署

一、安装

Gogs 部署非常简单,可以支持源码、二进制、包管理、Docker等多种方式部署,为方便演示,在此我们使用docker部署。

其中/data 为容器内部目录,主要存储Git库信息和Gogs数据。

二、首次登陆配置

启动docker后登录http://10.11.2.102:10080,即可运行“首次运行安装程序”。

主要分为:数据库设置、应用基本配置、可选配置等,按实际设置完成后一键安装。

立即安装没有问题后,即可注册登录。

三、注册登录

仓库演示

下面我们通过新建仓库来展示下Gogs的日常使用。

一、新建仓库

新建的仓库如下:

注意:远程仓库HTTP链接由于在“首次运行安装程序”时没有配置正确,链接为“http://localhost:3000/xxxxx”,3000为容器端口,而我们应该使用映射的宿主机端口访问“http://x.x.x.x:10080/xxxxx”。

二、拉取远程代码库

拉取远程库有两种方式:http和ssh。

1.http拉取

git clone http://10.11.10.11:10080/test/hello_gogs.gitCloning into ‘hello_gogs’…Username for ‘http://10.11.10.11:10080’: testPassword for ‘http://test@10.11.10.11:10080’: remote: Enumerating objects: 5, done.remote: Counting objects: 100% (5/5), done.remote: Compressing objects: 100% (4/4), done.remote: Total 5 (delta 0), reused 0 (delta 0)Unpacking objects: 100% (5/5), done.

2.ssh拉取

ssh拉取需要先生成本地密钥,再上传到Gogs即可。

Gogs用户设置上传ssh密钥

git clone ssh://git@10.11.10.11:10022/test/hello_gogs.git hello_gogsCloning into ‘hello_gogs’…The authenticity of host ‘[10.11.10.11]:10022 ([10.11.10.11]:10022)’ can’t be established.ECDSA key fingerprint is SHA256:xa8lyzRkkxImg6qdXQdl5eIUnuLG3/le3JXnPnetG+Y.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added ‘[10.11.10.11]:10022’ (ECDSA) to the list of known hosts.remote: Enumerating objects: 5, done.remote: Counting objects: 100% (5/5), done.remote: Compressing objects: 100% (4/4), done.remote: Total 5 (delta 0), reused 0 (delta 0)Receiving objects: 100% (5/5), 4.36 KiB | 4.36 MiB/s, done

三、Web钩子

当然Gogs也支持Webhook与Jenkins集成,我们一起来看下。

1.管理Web钩子

注意:

(1)密钥文本需和Jenkins 配置的一致。

(2)推送地址格式为:

http(s)://<你的Jenkins地址>/gogs-webhook/?job=<你的Jenkins任务名>

(3)只有在push事件才触发,通过直接访问url无法触发。

2.Jenkins配置

(1)安装Gogs插件

  Jenkins需要安装”Gogs plugin”来与Gogs集成。

(2)集成Gogs

“Secret” 值就是Gogs中的Web钩子中的”密钥文本”。

3.触发测试

此时我们在版本库中push一下就可以触发Jenkins。

当然我们只演示了Gogs的部分日常功能,其他功能请大家自行探索。

总结

Gogs让我们的代码托管有了更多的选择,具有开源、轻量级、跨平台等众多亲民特性,虽没有Gitlab、GitHub等功能丰富,但完全可以满足基本的团队需求。大家在选择代码托管工具时,可以考虑一下。

 

Gogs:自建简单、轻量级Git代码托管平台》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.hashtobe.com/1003.html