有了 GitLab ,只须要三步就可以实现以上描述的效果了。
步骤一、准备两个脚本
在代码做事器端准备好一份处理 GitLab 做事器关照的脚本和一份拉取代码的脚本。

GitLab 做事器所发出来的关照,实在便是向代码做事器发出一个 http 要求,要求中包含了本次提交中的干系信息,如所提交的分支、谁提交的、本次更新的代码等等信息。
以是在代码做事器中添加一个脚本,专门处理该要求即可。
参考以下 shell 脚本:
#!/bin/bash
# 拉取代码的脚本
cd /www/ims/
git pull origin prod
步骤二、配置 webhooks
在项目中配置 webhooks(Web 钩子) 实在便是在项目中注册一个触发器,当项目中的某个事宜发生时,该触发器就会被触发。在 GitLab 中的触发器便是一个 http 要求,即一个 http 链接。
在 GitLab 中,要达到我们上面预设的效果,我们须要设置项目的推送事宜的 webhook。一个能访问到我们步骤一添加的 PHP 脚本的链接。
配置所在的路径是:
项目主页 > setting > webhooks
在该页面添加一个推送事宜的触发器即可,类似这样子的 URL:
http://example.com/gitlab.php?type=test
保存之后,可以测试下该链接是否精确。它会仿照发送一个推送要求的数据,格式和正常的推送的一样。在代码做事器端就可以根据这个来调试了。
步骤三、添加秘钥
既然是代码自动支配,那当然是完备不须要人为参与的啦,这将包括不须要人为输入密码。
GitLab 供应了让每个账号利用秘钥登录的功能,配置了账号秘钥之后就可以无密码登录账号了。代码自动支配正是须要这样子的功能了。
首先要在代码做事器端天生秘钥:
利用命令 ssh-keygen ,连续按三次回车即可天生一对无密码保护的秘钥,它们的名称分别是 id_rsa 和 id_rsa.pub
然后将 id_rsa.pub 的内容添加到 GitLab 账号:
在 GitLab 账号的 profile setting > SSH keys 粘贴并保存即可
须要把稳的地方
通过以上三步,现在已经能够实当代码自动支配了。
如果完成了以上步骤之后,还不能实当代码自动支配,最可能涌现问题的是账号的权限问题了。有两个地方可能涌现权限的问题。
GitLab 账号的权限
自动支配所绑定的账号须要有权限访问该项目。
代码做事器端实行脚本的用户的权限
首先,该用户须要有权限对项目目录进行读写;
然后是,该用户的秘钥信息绑定的是精确的 GitLab 账号