很多站长朋友们都不太清楚gitphp钩子,今天小编就来给大家整理gitphp钩子,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 composer引用私有git 2、 git hooks 简介与使用 3、 如何利用git webhooks 实现网站代码自动化部署 composer引用私有gitphp开发中,会遇到需要引用公司内部开发的组件。内部组件放在私有git上,用以下方式引用:
在项目composer.json中添加包配置。
如果该git是public的,则不需要任何处理,如果git是需要登录的,在项目的根目录下(和 composer.json 平级的目录)增加一个 auth.json
git出来的库在vendor目录下。如果在执行composer后,需要删除拉下来的.git目录,可以在composer.json中加入钩子。
git hooks 简介与使用git hooks,即git 钩子,定义为能在特定的重要动作发生时触发自定义脚本。
git 的hook分为两种,客户端hooks和服务端hooks。
客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。
官方文档:
git hooks在git项目中的位置在 /.git/hooks 目录下,初始化时由以下sample组成:
完整说明详见官方文档:
如何利用git webhooks 实现网站代码自动化部署公钥有两个:1. git用户公钥,2. 部署公钥:
git用户公钥
1
2
3
ssh-keygen -t rsa -C "admin@xsooo.com"
# 然后一直回车就行
# 生成的文件通常是 /root/.ssh/id_rsa,如果非root用户请查看提示上的路径
部署公钥
sudo -Hu www ssh-keygen -t rsa # 请选择 “no passphrase”,一直回车下去
2. 准备钩子文件
创建和修改目录权限:
1
2
mkdir /home/wwwroot/website.com/hook
chown -R www:www /home/wwwroot/website.com/hook
写入钩子文件:
1
sudo -Hu www touch /home/wwwroot/website.com/hook/index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
error_reporting(1);
$target = '/home/wwwroot/website.com'; // 生产环境web目录
$token = '您在coding填写的hook令牌';
$wwwUser = 'www';
$wwwGroup = 'www';
$json = json_decode(file_get_contents('php://input'), true);
if (empty($json['token']) || $json['token'] !== $token) {
exit('error request');
}
$repo = $json['repository']['name'];
$cmd = "sudo -Hu www cd $target git pull";
shell_exec($cmd);
确保你的hook文件可以访问:,钩子准备完成。
3.修改git配置和保存git用户名密码
sudo -Hu www git config --global credential.helper store # 永久保存
sudo -Hu www git config --global user.name "Bantes"
sudo -Hu www git config --global user.email "admin@xsooo.com" # 邮箱请与conding
在Coding网站
1.添加用户公钥
复制/root/.ssh/id_rsa.pub内容到个人设置页的SSH公钥里添加即可
关于gitphp钩子的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于gitphp钩子 gitlab钩子shell的详细内容...