码迷,mamicode.com
首页 > Web开发 > 详细

gitlat web hooks 应用

时间:2016-01-14 12:41:02      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:gitlab web hooks

gitlab与github大致的功能类似,使用github创建的库必须是公有库,对于一些隐私文件就很难办了,所以 可以使用gitlab搭建一个属于自己的私有的github;


本文主要是讲如何利用gitlab提供的web-hooks,实现自动更新版本库到远程仓库中;


1. 首先需要在远程的git仓库服务器安装lamp或者lnmp环境(这里就直接使用yum安装lamp了);

yum install -y  httpd mysql mysql-libs php php-mysql mysql-server php-bcmath php-gd php-mbstring

2. 编写一个用户触发的脚本

cat /var/www/html/update.php
<?php
//git仓库目录
$www_folder = "/home/apache/baby";
//执行指令
echo shell_exec(" cd $www_folder && git pull 2>&1");
?>

3. 把update.php放在apache的web目录下,使它能被用浏览器访问到;

 因为执行update.php脚本需要使用apache的启动用户的权限,所以下面的操作使用的都是apache用户;

4.创建密钥(登陆apache用户)

 apache用户国为是yum安装httpd时自动创建的,所以默认是没有登陆权限和家目录的,需要改成如下:

grep ‘apache‘  /etc/passwd     

apache:x:48:48:Apache:/home/apache:/bin/bash
#修改好后,登陆apache
su apache
#创建密密钥
ssh-keygen -t rsa -C "admin@admin.com"
#把apache用户目录下的.ssh/id_rsa.pub 内容复制到gitlab用户中的 SSH Keys,

把apache用户目录下的.ssh/id_rsa.pub内容复制到gitlab用户中的SSH Keys,

5. 克隆用户的版本库到本地

git clone git@gitlab.com:username/baby
#gitlab.com :gitlab的域名(访问链接)
#username  : 用户名
#baby : gitlab的仓库名

6. 测试

现在可以使用其它的用户提交一个合并请求,然后master用户接受合并请

再登陆到apache服务器看有没有自动同步;


这个方式是只有合并其它分支到master主分支时才会被触发;

本文出自 “浅浅的淡淡” 博客,转载请与作者联系!

gitlat web hooks 应用

标签:gitlab web hooks

原文地址:http://cuixiang.blog.51cto.com/8204722/1734865

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!