Saya menggunakan Gitlab di satu server dan ingin mendorong repositori git saya di commit dari cabang master ke server web lain. Jadi ketika saya mendorong versi baru situs web, server produksi akan diperbarui. Saya tahu ini harus dimungkinkan dengan kait di dalam gitlab tetapi saya tidak dapat menemukan persisnya. Mencoba panduan berikut http://danielmiessler.com/study/git/#website tetapi tidak ditulis untuk digunakan dengan gitlab sehingga saya kehilangan bagian.
Apa yang harus saya lakukan pada server web produksi dan apa yang harus saya setel dengan URL kait?
Jawaban:
gitlab sudah menggunakan kait pasca-terima secara internal. Anda bisa bermain-main dengan skrip itu dan memanggil hook Anda juga, tetapi dari dokumen sepertinya cara "resmi" adalah dengan menggunakan "web-hooks", yaitu membiarkan gitlab memanggil server web Anda pada post-accept dan kemudian server web Anda kemudian menarik repositori. Saya belum mencoba ini sendiri, tetapi karena tidak ada yang menjawab sejauh ini saya pikir saya akan mengarahkan Anda ke arah itu:
untuk mengaktifkan kait web masuk ke halaman utama proyek Anda dan pilih kait dari kanan atas, di bawah menu utama. ( http://yourgitlab.example.net/yourproject/hooks ) Anda. ada contoh & dokumen yang ditautkan dari halaman itu ( http://yourgitlab.example.net/help/web_hooks ).
edit: //
Saya mencobanya pagi ini. Berikut ini contoh skrip php. Ini mengasumsikan Anda telah mengkloning repo dan server web memiliki semua kunci izin / ssh yang diperlukan.
sumber
Kait kustom baru-baru ini ditambahkan (karena seperti yang dikatakan Gryphius, kait biasa digunakan secara internal): https://github.com/gitlabhq/gitlabhq/blob/667c0a909bde1cf71f21d8ec9768e98b1c489030/doc/hooks/cook_hooks.md
Anda cukup membuat
custom_hooks
direktori di bare Git repo, dan memasukkan pengait di dalamnya, dan kemudian GitLab memastikannya dijalankan.sumber
Gitlab tidak memiliki kait pasca-terima karena pengembang mengganti gitolite dengan gitlab-shell .
Karena itu Anda dapat:
Pastikan pengguna git memiliki semua izin yang diperlukan untuk menjalankan perintah dalam file ini
sumber
hook
folder sudah ada:hooks -> /opt/gitlab/embedded/service/gitlab-shell/hooks/