gitlab zaten alma sonrası kancasını dahili olarak kullanıyor. bu komut dosyasıyla uğraşabilir ve kancanızı da çağırabilirsiniz, ancak dokümanlardan "resmi" yol "web kancaları" kullanmak gibi görünüyor, yani gitlab post-web ve web sunucunuzda web sunucunuzu arasın. veri havuzunu çeker. Bunu kendim denemedim, ama şimdiye kadar kimse cevap vermediği için seni bu yönde göstereceğimi düşündüm:
web kancalarını etkinleştirmek için projenizin ana sayfasına gidin ve sağ üst kısımdan ana menünün altındaki kancaları seçin. ( http://yourgitlab.example.net/ projeniz / kancalar ). bu sayfadan bağlanan bir örnek ve dokümanlar var ( http://yourgitlab.example.net/help/web_hooks ).
Düzenle://
Bu sabah denedim. İşte bir php script örneği. Repoyu zaten klonladığınızı ve web sunucusunun gerekli tüm izinleri / ssh anahtarlarını ayarladığını varsayar.
<?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);
}