gitlab already uses the post-receive hook internally. you could fiddle around with that script and call your hook as well, but from the docs it looks like the "official" way would be to use "web-hooks", i.e. let gitlab call your webserver on post-receive and your webserver then pulls the repository. I haven't tried this myself, but since no one answered so far I thought I'd point you in that direction:
to enable web-hooks go into your project's main page and select hooks from the top right, below the main menu. ( http://yourgitlab.example.net/yourproject/hooks ). there is an example&docs linked from that page ( http://yourgitlab.example.net/help/web_hooks ).
edit://
I tried it this morning. Here is a php script example. It assumes the you have already cloned the repo and the webserver has all the necessary permissions/ssh keys set up.
<?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);
}