gitlab 配置webhook實(shí)現(xiàn)PHP自動(dòng)拉取

程序猿 2022-03-17 11:32:20 2074瀏覽 加載中

PHP框架使用的是thinkphp6,服務(wù)器centos7.5,寶塔面板。

程序方面

public function gitPull()
{
    $path = $this->app->getRootPath();
    $token = "xxxxxxxxxxx";
    $header = $this->request->header('x-gitlab-token');

    if (empty($header) || $header !== $token) {
        $a = "-----------------ERROR---------------------" . PHP_EOL;
        file_put_contents('git_log.txt',$a,FILE_APPEND);
        return  'error1';
    }
    $time = date('Y-m-d H:i:s');
    $a = "-----------start----------{$time}-----------------------------------------". PHP_EOL;
    $cmd = "cd {$path} && git reset --hard";
    $a .= shell_exec($cmd);

    $cmd = "cd {$path} && sudo git pull 2>&1";
    $a .= shell_exec($cmd);

    $cmd = "cd {$path} && sudo chown -R www:www * 2>&1";
    $a .= shell_exec($cmd);
    $time = date('Y-m-d H:i:s');
    $a .= "-----------End----------{$time}-----------------------------------------" . PHP_EOL. PHP_EOL. PHP_EOL;
    file_put_contents('git_log.txt',$a,FILE_APPEND);
    return 'ok1';
}

服務(wù)器方面

注意開(kāi)啟函數(shù)shell_exec,需要開(kāi)啟網(wǎng)站用戶WWW sudo權(quán)限和免密操作,具體操作

編輯 /etc/sudoers,添加下面兩行

4444.png

GITLAB方面

123.png

輸入你程序的訪問(wèn)地址,私密授權(quán)碼gitlab在發(fā)送請(qǐng)求的時(shí)候會(huì)添加到header里,上面程序中可以看到。經(jīng)過(guò)半天的測(cè)試終于成功,加雞腿。

標(biāo)簽:
最后修改:2025-04-04 10:30:53

非特殊說(shuō)明,本博所有文章均為博主原創(chuàng)。

国产免费久久受久久,人妻AV成熟片久久久久久,亚洲综合无码日韩,国产AV无码乱码精品国产 www.sucaiwu.net