CodeBlanks Logo Icon CodeBlanks

Özet - Özel hook'lar

özel hook akışını birleştirerek sunucu tarafı politika kurarsın.

Özet: Sunucu tarafı hook politikası

Özel hook'lar, Git işlemlerine otomatik kurallar eklemeni sağlar. `pre-receive`, push isteğindeki tüm referans güncellemelerini incelemek için; `update` ise her referansı ayrı denetlemek için kullanılır. Her iki hook da sunucu tarafında çalışır ve uygun olmayan işlemleri reddedebilir.
#!/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

terminal
# Referans adını oku
# Politika koşulunu ekle

Örnek çözüm

terminal
#!/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

Soru
if [[ "$refname" == "refs/heads/main" ]]; then
  echo "Güncelleme reddedildi"
  _____ 1
fi____
Cevap
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

Uzman bölümündeki tüm dersler