gitlab은 이미 수신 후 후크를 내부적으로 사용합니다. 그 스크립트로 주위를 둘러보고 후크를 호출 할 수도 있지만 문서에서 "공식적인"방법은 "웹 후크"를 사용하는 것입니다. 즉, gitlab이 수신 후 웹 서버를 호출하고 웹 서버를 호출하도록하십시오. 리포지토리를 가져옵니다. 나는 이것을 직접 시도하지는 않았지만 지금까지 아무도 대답하지 않았으므로 그 방향으로 당신을 지적 할 것이라고 생각했습니다.
웹 후크를 사용하려면 프로젝트의 기본 페이지로 이동하여 기본 메뉴 아래 오른쪽 상단에서 후크를 선택하십시오. ( http://yourgitlab.example.net/yourproject/hooks ). 해당 페이지에서 링크 된 예제 및 문서가 있습니다 ( http://yourgitlab.example.net/help/web_hooks ).
편집하다://
오늘 아침에 해봤어요 다음은 PHP 스크립트 예입니다. 이미 repo를 복제했으며 웹 서버에 필요한 모든 권한 / ssh 키가 설정되어 있다고 가정합니다.
<?php
$mirrordir='/srv/http/gitlabhooktest/gitmirror';
$gitdir=$mirrordir."/.git";
$json= file_get_contents('php://input');
#error_log($json);
$jsarr=json_decode($json,true);
#error_log(print_r($jsarr,true));
$branch=$jsarr["ref"];
if($branch=='refs/heads/master'){
$cmd="git --work-tree=$mirrordir --git-dir=$gitdir pull";
#error_log($cmd);
exec($cmd);
}