Özet - Özel hook'lar
- Git kursu
- Uzman
- Ders 8/32
- 5 dk
özel hook akışını birleştirerek sunucu tarafı politika kurarsın.
Özet: Sunucu tarafı hook politikası
#!/bin/bash
# Sunucu tarafı denetim betiği
echo "Politika denetleniyor"Uygulama Birleşik sunucu politikası yaz
Bir `update` hook betiği yaz. Bash kullan, referans adını ilk argümandan al ve `refs/heads/main` güncellemesini reddet. Diğer referanslar için izin mesajı yazdır. Bu örnek, dal bazlı bir sunucu politikasını temsil eder.
Başlangıç kodu
# Referans adını oku
# Politika koşulunu ekleÖrnek çözüm
#!/bin/bash
refname="$1"
if [[ "$refname" == "refs/heads/main" ]]; then
echo "Politika: ana dal korumalı" >&2
exit 1
fi
echo "Politika: güncellemeye izin verildi"Beklenen çıktı
Politika: güncellemeye izin verildi
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir push içindeki tüm referansları topluca incelemek için hangi hook uygundur?
- update
- pre-receive Doğru cevap
- Yerel bir kabuk betiği
- git status
Açıklama: `pre-receive`, push isteği kabul edilmeden önce güncelleme bilgilerini topluca inceleyebilir.
2 Hook politikasını tamamla
if [[ "$refname" == "refs/heads/main" ]]; then
echo "Güncelleme reddedildi"
_____ 1
fi____
if [[ "$refname" == "refs/heads/main" ]]; then
echo "Güncelleme reddedildi"
_____ 1
fiexit
Açıklama: Hook betiğinin güncellemeyi reddetmesi için sıfırdan farklı bir çıkış koduyla bitmesi gerekir. `exit 1` bunu sağlar.
3 Sunucu tarafı politika parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
Hook betiği |
Otomatik denetim uygular |
pre-receive |
Push isteğini topluca inceler |
update |
Referansları ayrı denetler |
Politika |
İzin verilen işlemleri tanımlar |