gitlabは既に内部でpost-receiveフックを使用しています。あなたはそのスクリプトをいじってフックを呼び出すこともできますが、ドキュメントからは「公式」の方法は「web-hooks」を使用するように見えます。リポジトリをプルします。私はこれを自分で試したことはありませんが、これまで誰も答えていないので、私はあなたをその方向に向けると思いました。
Webフックを有効にするには、プロジェクトのメインページに移動し、右上のメインメニューの下からフックを選択します。(http://yourgitlab.example.net/yourproject/hooks)。そのページからリンクされているサンプルとドキュメントがあります(http://yourgitlab.example.net/help/web_hooks)。
edit://
今朝やってみました。phpスクリプトの例を次に示します。リポジトリのクローンがすでに作成されており、ウェブサーバーに必要なすべての権限/ 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);
}