// El script de implementación automática de git webhook // El proyecto almacena la ruta física. Al clonar por primera vez, el directorio debe estar vacío $ savePath = "/ data / wwwroot / www" ; $ gitPath = "[email protected]: test / spa.git "; // Código warehouse $ name =" tom "; // Buzón del almacén del usuario $ email =" [email protected] "; // Nombre del usuario del almacén, generalmente el mismo que el buzón $ password = '123456' ; $ isCloned = true ; // Establezca si se ha clonado en local, true: cloned , pull directamente, false: clone primero. // Si se ha clonado , luego extraiga directamente el código if ( $ isCloned ) { $ requestBody = file_get_contents ("php: // input" ); if ( empty ( $ requestBody )) { die ('send fail' ); } // Analiza la información JSON notificada por el servidor Git $ content = json_decode ( $ requestBody , true ); if ( $ content ['password']! = $ contraseña ) { exit ('deny' ); } // Si es la rama maestra y el número de confirmaciones es mayor que 0 if ( $ content ['ref'] == 'refs / heads / master' && $ content ['total_commits_count']> 0 ) { $ res = PHP_EOL$ res_log . = $ res . PHP_EOL ; $ res_log . = "pull end --------". PHP_EOL ; file_put_contents ("git-webhook_log.txt", $ res_log , FILE_APPEND); // Escribe el registro en el archivo de registro } } más { $ res = "clone start --------". PHP_EOL ; // Nota: debe configurar el buzón del usuario y el nombre de usuario aquí, no puede extraer el código si no se enfrenta a $ res . = shell_exec ("git config - global user .email { $ email }} "). PHP_EOL ; $ res . = shell_exec (" git config --global user.name { $ name }} "). PHP_EOL; $ res . = shell_exec ("git clone { $ gitPath } { $ savePath }"). PHP_EOL ; $ res . = "clone end --------". PHP_EOL ; file_put_contents ("git-webhook_log.txt ", $ res , FILE_APPEND); // escribe el registro en el archivo de registro }
Reimpreso: https://blog.haohtml.com/archives/17553