2015-05-28 20 views
5

Próbuję chronić moje repozytorium github przed niektórymi popchnięciami (np. Przesuwa ze znacznikami konfliktów, takimi jak <<<<<).Jak zablokować określone pchnięcia za pomocą webhooków github?

Najpierw próbowałem napisać pre-commit git hook, aby zablokować te konkretne zatwierdzenia. Następnie zrealizowane repozytoria github nie akceptują haków poprzedzających zatwierdzenie i muszę je zainstalować po stronie klienta dla każdego współpracownika.

To nie jest zadbane rozwiązanie, ponieważ ktoś może zapomnieć zainstalować haki po klonie. Możliwe jest również zastąpienie haków przed zatwierdzeniem.

Potem dowiedziałem się o github webhooks. Mogą powiadamiać za pomocą ładunków podczas wypychania w repozytorium.

Czy można sprawdzić i zablokować ptsh za pomocą haczyków?

+1

GitHub haki Złóż akcja po jakimś zdarzeniu, oni nie decyduj, czy akcja ma zostać ukończona. Powinieneś zajrzeć do haków po stronie serwera git: https://www.atlassian.com/git/tutorials/git-hooks/server-side-hooks/ –

+0

@BartlomiejLewandowski Dzięki za odpowiedź. Już sprawdziłem haki po stronie serwera. Problem polega jednak na tym, że github ich nie obsługuje. Moje repozyty są tam hostowane. –

Odpowiedz

4

Github nie obsługuje umieszczania haczyków po stronie serwera, więc nie można uruchamiać sprawdzania poprawności w odległych repozytoriach. Jest to jednak technicznie możliwe, jako hakowanie, w którym można ustawić inne pośrednie repozytorium przemieszczania ze wszystkimi tymi hakami, które są czymś w rodzaju zapisywalnego lustra przed githubem. Ludzie przesyłają swoje zmiany do tego pośredniego repozytorium, które sprawdza je za pomocą haków i przesyła te same zmiany do repozytorium github. IMHO Odradzam dodawanie takiego repozytorium, chyba że twoi programiści zbyt często łamią twoje rzeczy.

Na innym uwaga, jeśli iść do przodu z taką realizacją, użyj haka aktualizacji zamiast pre-commit, jak to działa na każdym odnośniku, który jest popychany