gitlab आंतरिक रूप से पहले से प्राप्त हुक का उपयोग करता है। आप उस स्क्रिप्ट के साथ इधर-उधर हो सकते हैं और अपने हुक को भी कॉल कर सकते हैं, लेकिन डॉक्स से ऐसा लगता है कि "आधिकारिक" तरीका "वेब-हुक" का उपयोग करना होगा, यानी गिटलैब को अपने वेबसर्वर को पोस्ट-रिसीव और अपने वेबसर्वर पर कॉल करने दें। भंडार को खींचता है। मैंने खुद यह कोशिश नहीं की है, लेकिन जब से किसी ने भी जवाब नहीं दिया तो मुझे लगा कि मैं आपको उस दिशा में इशारा करूंगा:
वेब-हुक को सक्षम करने के लिए अपनी परियोजना के मुख्य पृष्ठ पर जाएं और मुख्य मेनू के नीचे, ऊपर दाईं ओर से हुक चुनें। ( http://yourgitlab.example.net/yourproject/hooks )। उस पृष्ठ ( http://yourgitlab.example.net/help/web_hooker ) से एक उदाहरण और डॉक्स जुड़ा हुआ है ।
संपादित करें: //
मैंने आज सुबह इसकी कोशिश की। यहाँ एक 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);
}