Jak skonfigurować i utrzymywać reguły ochrony gałęzi GitHub
Ochrona gałęzi jest ważną częścią zapobiegania wypadkom i błędom w repozytorium GitHub. Egzekwują zasady, których musi przestrzegać każdy, kto chce wypychać zatwierdzenia lub scalać żądania ściągnięcia w twoim repozytorium.
Dlaczego konieczna jest ochrona oddziałów?
Ochrona gałęzi polega na zapobieganiu niepożądanym działaniom. Możesz ustawić reguły, aby wymagać recenzji żądań ściągnięcia, wymagać ukończenia testów przed scaleniem lub wymagać podpisanych zatwierdzeń w celu weryfikacji autentyczności.
Domyślnie ochrona gałęzi wyłącza wymuszone wypychania i zapobiega usuwaniu gałęzi. Są to dwie rzeczy, których w zasadzie nigdy nie chcesz, aby zdarzały się regularnie i nigdy bez wyraźnej zgody kogoś, kto może zrobić wyjątek i wyłączyć ochronę gałęzi.
Jest to dobre dla bezpieczeństwa, zwłaszcza w większych projektach lub repozytoriach open source, w których opiekunowie chcą wymusić określony proces przesyłania i zatwierdzania nowych zmian. Gałęzie mogą być również całkowicie zablokowane dla osób niebędących administratorami, co można wykorzystać do zastosowania dodatkowej autoryzacji dla gałęzi wydawniczych/produkcyjnych.
Ochrona gałęzi domyślnie nie dotyczy administratorów. Możesz także dać ludziom określone uprawnienia, pozwalając im je ominąć. Jeśli nie chcesz, aby administratorzy lub ktokolwiek inny mógł omijać określone reguły, możesz wyłączyć tę opcję dla każdej reguły.
Ochrona gałęzi jest dostępna bezpłatnie dla repozytoriów publicznych , ale nie jest dostępna dla repozytoriów prywatnych bez GitHub Team lub Enterprise.
Co robią reguły ochrony oddziałów GitHub?
Istnieje wiele ustawień, które można włączyć w celu ochrony gałęzi, a wszystkie one robią różne rzeczy. Oto niektóre z najbardziej przydatnych:
- Opcja „Wymagaj przeglądu żądań wycofania przed scaleniem” nie pozwoli na łączenie żądań ściągnięcia w chronione gałęzie, dopóki co najmniej jedna osoba z odpowiednimi uprawnieniami nie zatwierdzi żądania. Jest to szczególnie przydatne w celu uniemożliwienia pojedynczej osobie samodzielnego łączenia żądania ściągnięcia.
- „Wymagaj rozwiązania konwersacji” zapewni, że będą mogły być łączone tylko zamknięte i sfinalizowane żądania ściągnięcia.
- Opcja „Wymagaj kontroli stanu przed scaleniem” zintegruje się z potokiem CI w celu uruchomienia testów nowych zatwierdzeń w celu sprawdzenia, czy niczego nie psują. GitHub ma nawet interfejs API stanu zatwierdzenia, którego można użyć do integracji zewnętrznej.
- „Wymagaj pomyślnych wdrożeń” jest zwykle używane, aby upewnić się, że kompilacje są prawidłowo wdrażane w środowiskach przejściowych przed scaleniem.
- Opcja „Wymagaj historii liniowej” zapobiega przekazywaniu zatwierdzeń scalania do gałęzi, co wymaga, aby scalanie było scalaniem typu squash lub rebase. Wiele zespołów preferuje historię zatwierdzania liniowego, ponieważ znacznie ułatwia śledzenie i wycofywanie wersji.
- „Wymagaj podpisanych zatwierdzeń” wymusi podpisanie zatwierdzeń przez GPG, sprawdzając, czy zostały utworzone przy użyciu klucza prywatnego użytkownika i czy nie zostały stworzone przez osobę atakującą z dostępem do GitHub.
Oprócz tego możesz także bezpośrednio zarządzać uprawnieniami, aby decydować, kto może przesyłać dane do oddziału. Na przykład typowe dla gałęzi wydań są dodatkowe ograniczenia, aby żaden przypadkowy stażysta nie mógł przypadkowo przejść do produkcji.
Możesz także całkowicie zablokować gałęzie, tak jak w przypadku gałęzi upstream, które nie powinny się zmieniać.
Dodatkowo, chociaż administratorzy mają domyślnie możliwość obejścia tych reguł, możesz to również wyłączyć, upewniając się, że nikt w Twoim repozytorium nie będzie mógł naruszyć reguł bez ich wyłączenia.
Jak skonfigurować reguły ochrony gałęzi GitHub
Reguły ochrony gałęzi są ustawiane w ustawieniach repozytorium. Kliknij przycisk ustawień swojego repozytorium, a następnie kliknij „Ochrona oddziałów”.
Musisz ustawić filtr dla reguły ochrony gałęzi. Możesz po prostu ustawić go na nazwę określonej gałęzi, na przykład „główna”, lub możesz użyć symboli wieloznacznych, aby kierować reklamy na wiele gałęzi jednocześnie.
Nieograniczony symbol wieloznaczny „*” będzie miał zastosowanie do wszystkich gałęzi, a wiele reguł ochrony gałęzi może się nakładać na siebie. Jednak nie można mieć dwóch reguł z tym samym filtrem.
Następnie będziesz mieć możliwość skonfigurowania każdego ustawienia ochrony gałęzi. Domyślnie wyłączone są tylko wymuszone wypchnięcia i usunięcia, ale możesz zaznaczyć dowolne pole wyboru tutaj, aby włączyć inne rzeczy, które chcesz.
Jedną z rzeczy, które będziesz chciał włączyć przez większość czasu, jest reguła uniemożliwiająca administratorom obejście reguł.
Następnie możesz włączyć regułę, ale konieczne będzie ponowne uwierzytelnienie w aplikacji mobilnej GitHub, ponieważ zmiana reguł ochrony oddziałów jest akcją ograniczoną. Możesz sprawdzić, czy jest włączona, próbując wymusić push — Twój klient Git powinien pokazać błąd.
Dodaj komentarz