git自动更新功能

news2024/10/6 16:26:57

确认权限

因为一般Linux系统网页用的wwwwww-data用户和用户组,所以要实现自动来去,首先要在www用户权限下生成ssh密钥,不然没有权限,其次就是,要把用root用户拉去的代码,批量改成www用户
在这里插入图片描述

1. 给www权限


vi  /etc/sudoers
www     ALL=(ALL)     NOPASSWD:/bin/chown,/bin/chmod,/usr/bin/git

2.切换www账户

一切操作在www用户下完成

给www账户添加git 邮箱和和用户名

sudo git config --global user.email "xxx@qq.com"
sudo git config --global user.name "finejade"

添加origin

如果remote- roigin 远程地址是http的,改成ssh的,可以使用ssh秘钥免登录提交

git remote -v
git remote remove origin
git remtoe add origin git@git.code.tencent.com:finejade/thinkphp6.git

生成密钥

生成密钥,一直下一步

 ssh-keygen -t rsa -C "332410549@qq.com"

在这里插入图片描述

把公钥填写到git个人账号的SSH密钥

在这里插入图片描述

编写自动拉去代码

  public function autopull()
    {


        $json = file_get_contents("php://input");
        file_put_contents('./a.txt',$json);
        //获取请求参数
        if (empty($json)) {
            die('request is empty');
        }
        $data = json_decode($json, true);

        $savePath =  Env::get('root_path');
        //密码
        if (isset($data['password'])) {
            $password = 'AJ8ENFEOWLS';
        //验证密码是否正确
            if ($data['password'] != $password) {
                header("HTTP/1.1 403 Forbidden");
                die('非法提交');
            }
        }

        //一定要在php.ini 配置文件中解除所有禁用 disable_funtions  exec 方法

        // git放弃修改,强制覆盖本地代码
        echo shell_exec("cd {$savePath} && git checkout ."); // git checkout
        // echo shell_exec("cd {$savePath} && git pull {$gitPath}  2>&1");

        $res = PHP_EOL . "pull start " . PHP_EOL;
        $res .= shell_exec("cd " . $savePath . " && git pull origin develop 2<&1 "); //代码仓库 一定要使用ssh方式不然每次都得输入密码
        $res_log = PHP_EOL;
        $res_log .= $data['user_name'] . ' 在' . date('Y-m-d H:i:s') . '向' . $data['repository']['name'];
        $res_log .= '项目的' . $data['ref'] . '分支push了' . $data['total_commits_count'] . '个 ';
        $message = '';
        if (isset($data['commits']['message'][0])){
            $message = $data['commits']['message'][0];
        }elseif (isset($data['commits']['message'])){
            $message = $data['commits']['message'];
        }
        $res_log .= 'commit:' . $message;
        $res_log .= $res;
        $res_log .= "pull end -----------------------------------------------------" . PHP_EOL;

        //保存日志文件路径 注意开启日志写入权限
        Log::debug('git自动拉去:'.$res_log);
        if (isset($data['ref']) && $data['total_commits_count'] > 0) {
            $typeText = "\r\n更新正常\r\n";
            $res_log .= $typeText;
        } else {
            $typeText = "\r\n无提交也更新\r\n";
            $res_log .= $typeText;
        }
        echo $res_log;
    }

在git远程仓库配置回调地址

在这里插入图片描述

查看触发结果
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1307914.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Scrapy爬虫学习

Scrapy爬虫学习一 1 scrapy框架1.1 scrapy 是什么1.2 安装scrapy 2 scrapy的使用2.1创建scrapy项目2.2 创建爬虫文件2.3爬虫文件的介绍2.4 运行爬虫文件 3 爬取当当网前十页数据3.1 dang.py&#xff1a;爬虫的主文件3.2 items.py 定义数据结构3.3 pipelines.py 管道3.4 执行命令…

【教学类-06-16】20231213 (按比例抽题+乱序or先加再减后乘)X-Y之间“加法减法乘法+-×混合题”

作品展示&#xff1a; 背景需求&#xff1a; 大三班的“第一高手”对我提供的每一套的题目都只有一种反应&#xff1a; “这个是分合题&#xff0c;太简单了” “乘法&#xff0c;乘法我也会&#xff0c;11的1 22的4 33的9&#xff0c;,44十六……” “都太简单了&#xff0…

7个常见的jmeter压测问题

根据在之前的压测过程碰到的问题&#xff0c;今天稍微总结总结&#xff0c;以后方便自己查找。 一、单台Mac进行压测时候&#xff0c;压测客户端Jmeter启动超过2000个线程&#xff0c;Jmeter报OOM错误&#xff0c;如何解决&#xff1f; 解答&#xff1a;单台Mac配置内存为8G&…

快速上手linux | 一文秒懂Linux各种常用目录命令(上)

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 一 、命令提示符和命令的基本格式1.1 如何查看主机名称及修改 二、命令基本格式2.1 命令格式示例2.2 参数的作用…

【价值几十万的仿抖音直播电商系统源码共享】

当下&#xff0c;传统的图文电商模式已经走向没落&#xff0c;以抖音为首的直播电商模式备受用户追捧&#xff0c;它具有实时直播和强互动的特点&#xff0c;是传统电商所不具备的优势。而且&#xff0c;当前正是直播电商的红利期&#xff0c;很多主播和品牌商都通过直播电商业…

【LeetCode刷题】-- 163.缺失的区间

163.缺失的区间 class Solution {public List<List<Integer>> findMissingRanges(int[] nums, int lower, int upper) {List<List<Integer>> res new ArrayList<>();for(int num : nums){if(lower < num){res.add(Arrays.asList(lower,num -…

华为OD试题二(文件目录大小、相对开音节、找最小数)

1. 文件目录大小 题目描述&#xff1a; 一个文件目录的数据格式为&#xff1a;目录id&#xff0c;本目录中文件大小&#xff0c;(子目录id 列表)。其中目录id全局唯一&#xff0c;取值范围[1,200]&#xff0c;本目录中文件大小范 围[1,1000]&#xff0c;子目录id列表个数[0,10…

考试的最大困扰度

说在前面 &#x1f388;不知道大家对于算法的学习是一个怎样的心态呢&#xff1f;为了面试还是因为兴趣&#xff1f;不管是出于什么原因&#xff0c;算法学习需要持续保持。 1、题目描述 一位老师正在出一场由 n 道判断题构成的考试&#xff0c;每道题的答案为 true &#xff…

每日一题,杨辉三角

给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1]]

Java 语言关键字

Java关键字是电脑语言里事先定义的&#xff0c;有特别意义的标识符&#xff0c;有时又叫保留字&#xff0c;还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义&#xff0c;他们用来表示一种数据类型&#xff0c;或者表示程序的结构等&#xff0c;关键字不能用作变量…

自控基础理论篇-品质因数与阻尼系数的关系

1.二阶低通滤波系数的标准形式 &#xff08;a&#xff09;与阻尼系数相关的标准形式 &#xff08;b&#xff09;与品质因数相关的标准形式 比较上式可以分析得到,当A0等于1的时候&#xff0c;阻尼比与品质因素有一个对应关系 2.二阶带通滤波系数的标准形式 &#xff08;a&…

【Java系列】详解多线程(二)——Thread类及常见方法(上篇)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习Java的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一…

Spring Cloud gateway - CircuitBreaker GatewayFilte

前面学习Spring cloud gateway的时候&#xff0c;做测试的过程中我们发现&#xff0c;Spring Cloud Gateway不需要做多少配置就可以使用Spring Cloud LoadBalance的功能&#xff0c;比如&#xff1a; spring:application:name: spring-gatewaycloud:gateway:routes:- id: path…

20231213给Ubuntu18.04.6LTS新加一块HDD机械硬盘

20231213给Ubuntu18.04.6LTS新加一块HDD机械硬盘 2023/12/13 22:50 rootrootrootroot-X99-Turbo:~$ cat /etc/issue Ubuntu 18.04.6 LTS \n \l sudo fdisk -l rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ sudo fdisk -lu Disk /dev/sda: 2.7 TiB, 300059298…

传输层协议介绍(三次握手,四次挥手)

一.传输层协议介绍 1.TCP协议概念 ①面向连接网络协议 ②是指通信双方之间在进行通信之前要先建立连接。比如打电话&#xff0c;双方通话前要先建立连接。 ③TCP协议是面向连接的&#xff0c;可靠的进程到进程通信的协议&#xff0c;TCP提供全双工服务&#xff0c;即数据可…

计网 - 一台主机上最多只能保持 65535 个TCP 连接吗

文章目录 Pre问题分析单一IP的服务端单一IP的客户端 Pre 高性能网络编程 - 关于单台服务器并发TCP连接数理论值的讨论 问题 一台主机上只能保持最多 65535 个 TCP 连接&#xff0c;正确吗&#xff1f; 先说结论&#xff1a; 这个说法不对&#xff0c;我们分服务器和客户端分…

2.操作符详解

1.10进制转二进制方法 所以125的二进制就是1111101 2.2进制转8进制: 从2进制序列中右边最低位开始向左每3个2进制位换算为一个8进制位&#xff0c;剩余不够3个2进制位的直接换算 例:01101011转为01 101 011 即1 5 3 即8进制的153 还原回去的话: 将3化为011放最右边,5化…

【C++进阶篇】二叉搜索数

目录 前言&#xff1a; 以后我们要学map&#xff0c;set&#xff0c;AVL&#xff0c;红黑数所以必须要有二叉搜索数做铺垫 1、二叉搜索树概念 2.二叉搜索树操作 1.二叉搜索树的查找 a、从根开始比较&#xff0c;查找&#xff0c;比根大则往右边走查找&#xff0c;比根小则…

QEMU源码全解析 —— virtio(5)

接前一篇文章&#xff1a; 本文内容参考&#xff1a; 《趣谈Linux操作系统》 —— 刘超&#xff0c;极客时间 《QEMU/KVM》源码解析与应用 —— 李强&#xff0c;机械工业出版社 特此致谢&#xff01; 上一回以virtio balloon设备为例概述了具体的virtio设备、virtio PCI代理…

Proxmox创建Windows虚拟机

文章目录 下载ISO安装文件上传 下载ISO安装文件 下载地址&#xff1a;https://www.xitongzhijia.net/ 也可去官网进行下载 上传 将下载的ISO文件上传到Proxmox 选择ISO文件进行上传 上传后再ISO镜像中可以看到安装文件 点击创建虚拟机 填写名称&#xff0c;不能填写中文 镜…