gitlat 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 "[email protected]"
#把apache用户目录下的.ssh/id_rsa.pub 内容复制到gitlab用户中的 SSH Keys,

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

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

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

6. 测试

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

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

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

时间: 2024-08-09 15:23:48

gitlat web hooks 应用的相关文章

自动化发布-GitLab WEB Hooks 配置

钩子(hooks)Git是在特定事件发生之前或之后执行特定脚本代码功能(从概念上类比,就与监听事件.触发器之类的东西类似).Git Hooks就是那些在Git执行特定事件(如commit.push.receive等)后触发运行的脚本.gitlab的web hooks跟git hook类似.也是当项目发生提交代码.提交tag等动作会自动去调用url,这个url可以是更新代码.或者其他操作. 配置目的: 由于系统属于后台接口系统,开发提交完git仓库后要实时的部署到测试环境,这时候就需要用到gitl

jenkins 设置 gitlab web hooks

背景 接口自动化期望代码push后触发实现持续集成,代码push后,自动化执行jenkins的job. 步骤 准备工作 工具:jenkins,gitlab jenkins需要安装插件:git plugin,gitlab hook plugin , gitlab plugin(有的插件是自带的,缺什么安装什么) gitlab:确保有web hook权限,这个跟公司的gitlab有关,入口settings下的web hooks如下: 确保gitlab跟jenkins的连通性 hook的大概原理其实很

gitLab 全局hooks和custom_hooks,以及怎样实现自动pull

写代码的时候,git push到远程代码库后,往往还要连到服务器上pull代码才能进行测试.代码push后自动更新测试服务器的代码也算是一种刚需了. gitLab的钩子分为两大类:1.web hooks 2.custom hooks,这是调用git原生钩子,这里的钩子也有两种类型:(1)全局钩子 (2)每个项目对应的钩子. 这几天踩了很多坑,才用一种迂回的方法解决了问题.介绍一下GitLab和ubuntu的版本: (1)Ubuntu 16.04.1 LTS + GitLab Community

python 自动克隆gitlab web前端

当本地master分支执行push动作的时候,服务器端会自动执行master分支的clone操作(还可以执行一些自动化脚本) 原理: git hooks就是那些在git执行特定事件(如commit.push.receive等)后触发运行的脚本.gitlab的web hooks跟git hook类似.也是当项目发生提交代码.提交tag等动作会自动去调用url,这个url可以是更新代码.或者其他操作. 写一个最简单的Python3 web服务: from subprocess import call

通过gitlab的webhook进行网站的自动发布

作用:本地提交代码到git仓库以后,自动同步到服务器,避免每次重新登录到服务器去pull代码.本人主要用于管理开发环境和测试环境,在频繁修改开发代码时,每次通过提交git仓库,自动同步到测试环境,减少单独去发布测试环境的过程.配置测试环境:Linxu 系统,Nginx,Php,GitLab 原理:1.建立一个勾子文件,作用是通过php程序去pull代码.2.本地提交代码到git仓库时,通过webhook设置,去触发1中建立的勾子文件,以实现代码同步.3.设置ssh-keygen,让勾子文件执行p

Monitoring Processes with Supervisord

If you're interested in more of this type of content, check out the Servers for Hackers eBook! As some point you'll likely find yourself writing a script which needs to run all the time - a "long running script". These are scripts that shouldn't

Rails进阶参考

https://gist.github.com/xdite/4044f3a037de029bc35c From idea to products: - Ideation, wireframes, mockups, design and development - The design to development handoff - Build views from mockups Front end frameworks - Haml - Sass - Twitter Bootstrap -

Gogs:可能是比Gitlab更好的选择

Gitlab是一个很棒的Git托管服务,几乎像GitHub一样强大. 但是,有没有能和Gitlab/Github媲美但操作更简单的项目呢?我认为 Gogs 是很好的选择. 简介 现在,GitHub已经成为首选的代码托管平台. 因为它又很多很棒的功能,操作简单,几乎所有的开发者都喜欢它. 同时,谷歌的代码托管项目准备关闭,你可以把项目转移到这里. 但如果你在写Android应用程序,或者正在创建下一个伟大的iOS游戏,或者不想让别人看到你的代码没,该怎么办? 你当然可以购买私人GitHub库,但你

Docker 专用术语

This section lists terms and definitions you should be familiar with before getting deeper into Docker. For further definitions, see the extensiveglossary provided by Docker . Container image: A package with all the dependencies and information neede