গিটল্যাব ইতিমধ্যে অভ্যন্তরীণভাবে পোস্ট-রিসিভ হুক ব্যবহার করে। আপনি সেই স্ক্রিপ্টটি ঘিরে ফেলতে পারেন এবং আপনার হুককেও কল করতে পারেন তবে ডক্স থেকে মনে হচ্ছে "অফিসিয়াল" উপায়টি হবে "ওয়েব-হুকস" ব্যবহার করা, অর্থাৎ গিটল্যাব পোস্ট-রিসিভে আপনার ওয়েবসভারকে কল করুন এবং তারপরে আপনার ওয়েবসভারটি সংগ্রহস্থল টান। আমি নিজে চেষ্টা করে দেখিনি, তবে যেহেতু এখন পর্যন্ত কেউ উত্তর দেয়নি আমি ভেবেছিলাম আমি আপনাকে সেই দিকে নির্দেশ করব:
ওয়েব-হুকগুলি সক্ষম করার জন্য আপনার প্রকল্পের মূল পৃষ্ঠায় যেতে হবে এবং মূল মেনুর নীচে উপরের ডান দিক থেকে হুকগুলি নির্বাচন করুন। ( http://yourgitlab.example.net/yourproject/hooks )। সেই পৃষ্ঠাটি থেকে একটি উদাহরণ এবং ডক্স যুক্ত রয়েছে ( http://yourgitlab.example.net/help/web_hooks )।
সম্পাদন করা: //
আমি আজ সকালে চেষ্টা করেছিলাম। এখানে একটি পিএইচপি স্ক্রিপ্ট উদাহরণ। এটি ধরে নিয়েছে যে আপনি ইতিমধ্যে রেপো ক্লোন করেছেন এবং ওয়েবসভারের কাছে সমস্ত প্রয়োজনীয় অনুমতি / এসএসএস কী সেট আপ রয়েছে।
<?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);
}