/ / Jak uzyskać nazwę oddziału z haka przed odebraniem? - git, githooks

Jak uzyskać nazwę oddziału z haka przed odebraniem? - git, githooks

Pracuję z firmą GitHub i nie mam uprawnień do przesyłania nowych haków pre-receive do naszego repo.

Próbowałem przetestować mój haczyk jako hak pre-push i działał jak czar, ale kiedy wysłałem mojego haka do naszego administratora, powiedział: "Skrypt GitHub pre-receive-hook różni się od skryptu git pre-receive-hook.Git symboliczny-ref --short HEAD może nie działać zgodnie z oczekiwaniami"

Więc muszę znaleźć sposób na zastąpienie tego polecenia:

current_branch=$(git symbolic-ref --short HEAD) || exit 1

Do polecenia, które zapisze moją bieżącą gałąź wewnątrz parametru "current_branch"?

Jak to zrobić bez możliwości przetestowania?

Odpowiedzi:

1 dla odpowiedzi № 1

Haczyk przed odebraniem to hak działający w inny Git. Twoja obecna gałąź w Twój Git jest nieistotny, a w haczyku przed odbieraniem ich Obecna gałąź Gita również nie ma znaczenia, niezależnie od tego, jakie jest twoje zadanie, użycie "aktualnej gałęzi" będzie błędne.

(Obecna gałąź ich Gita może mieć znaczenie w hakowaniu po otrzymaniu, jeśli zadaniem tego haka jest wdrożenie aktualizacji do bieżącej gałęzi, należy jednak pamiętać, że Gity odbierające są zazwyczaj skonfigurowane jako repozytoria "bare".)


0 dla odpowiedzi nr 2

W rzeczywistości przy korzystaniu ze standardowego wejścia można uzyskać CURRENT_BRANCH z 1. argumentu "$ refname":

while read oldrev newrev refname; do
echo "$refname : $oldrev ~ $newrev"
done

Jeśli chcesz go posiekać i wyczyścić za pomocą sed, możesz po prostu dodać:

while read oldrev newrev refname; do
echo "$refname : $oldrev ~ $newrev"
current_branch=$refname
short_current_branch="$(echo $current_branch | sed "s/refs/heads///g")"
done

Wewnątrz parametru otrzymasz nazwę oddziału (short_current_branch)

wprowadź opis obrazu tutaj