Ochrona gałęzi git w Visual Studio Team Services

Chciałbym tylko wyraźnie zezwolić programistom na scalanie się w gałąź 'master'. Znalazłem lokalizację ustawień zabezpieczeń, ale nic nie pozwala mi powiedzieć "ta gałąź, tylko pozwól Robowi połączyć się z nią". Jakieś wskazówki?

Author: MrHinsh - Martin Hinshelwood, 2015-01-25

4 answers

Możesz całkiem łatwo chronić MASTER w VSTS, ponieważ TFS zapewnia korporacyjne możliwości Git. Można to osiągnąć na dwa sposoby.

1) Git Branch Permissions

Na stronach administracji w zakładce Kontrola wersji możesz zmienić uprawnienia dla każdej opublikowanej gałęzi. Musisz zachować dostęp na poziomie repo, jednak na MASTER możesz zmienić uprawnienia commit " Contributor "na"not configured". Możesz wtedy dodać tylko Roba...

VSTS Git Branch permissions

Oh... Zawsze używaj "not set" zamiast "deny", ponieważ zaprzeczenie zawsze jest nadrzędne.

2) Git Branch Policies

VSTS wprowadził ideę Polityki branżowej. Te zasady Branch mogą być stosowane do każdej gałęzi, ale są tradycyjnie stosowane do MASTER.

VSTS Git Branch Policies

Tutaj możesz zastosować wiele zasad, aby odzwierciedlić twoje potrzeby... Zawsze ustawiam

 41
Author: MrHinsh - Martin Hinshelwood,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-23 04:06:53

Stwierdziłem, że muszę przejść przez nieco więcej kroków, aby to zrobić

Istnieją 2 miejsca do definiowania grup w visual studio online - na poziomie kolekcji i na poziomie projektu.

Na poziomie kolekcji utworzyłem grupę adminów i utworzyłem grupę developerów. Chciałem tylko, aby ludzie z grupy admin mieli dostęp do zapisu gałęzi master w moim repozytorium.

Na poziomie projektu dodałem grupę programistów i administratorów do zespołu projektowego. W projekcie grupa współpracowników i usunęła zespół projektowy i dodała tylko grupę programistów

W grupie Administratorzy projektu dodałem grupę admin na poziomie kolekcji.

Następnie w zakładce Kontrola wersji w gałęzi master ustawiam contribute=deny dla grupy contributors

Ponieważ administratorzy nie są członkami grupy współpracowników, Odmowa uprawnień nie jest stosowana do nich i nadal mogą wysyłać zmiany do master-bezpośrednio lub poprzez zatwierdzanie pull requests

 8
Author: Anthony Brown,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-30 20:14:11

Z powodzeniem stworzyłem (2) typy grup oparte na @anthonybrown. Chciałem jednak dać kilka zrzutów ekranu, aby jeszcze bardziej pomóc w wyjaśnieniu rozwiązania problemu ograniczenia użytkownikom możliwości usuwania, popychania i wnoszenia wkładu do gałęzi master (lub innych gałęzi) według twojego wyboru) na poziomie repozytorium, a nie na poziomie globalnym.

Zauważ, że na podstawie naszych VST dodaliśmy już użytkowników do zespołu" globalnego". Nie usunąłem tych użytkowników, ale zamiast tego dodałem ich do (2) oddzielnych grup.

  • deweloperzy
  • Administratorzy

1) Przejdź do podstawowego ekranu VSTS (domyślnie będzie to /_projects w adresie URL.

Tutaj wpisz opis obrazka

2) Kliknij na trybik i wybierz "Bezpieczeństwo"

Tutaj wpisz opis obrazka

3) po lewej stronie wybierz "Utwórz grupę" i nazwij ją "deweloperzy". Po utworzeniu grupy wybierz grupę, a w środkowej sekcji Wybierz "członkowie". Dodaj wszystkich użytkowników DO Nie chce mieć prawa contribute do gałęzi "master" do tej grupy. (Uwaga-Twoi użytkownicy muszą być już dodani do VSTS przed tym krokiem).

Tutaj wpisz opis obrazka

4) Utwórz grupę "Administratorzy" i dodaj użytkowników, do których chcesz mieć dostęp . (uwaga-jeśli Twoi użytkownicy z grupy "Administratorzy" są już dodani do VST na poziomie globalnym lub projektowym, możesz pominąć ten krok. Zrobiłem to niezależnie).

5) wróć do strony głównej VSTS (/_projects) i wybierz swoje repozytorium, które chcesz ograniczyć dostęp do gałęzi master. Wybierz "Kontrola Wersji". Po lewej stronie wybierz gałąź "master". W środkowej sekcji Wybierz "bezpieczeństwo". Dodaj " grupę programistów. Wybierz grupę "Developers" (po dodaniu) i ustaw dostęp na "Deny" dla:

  • Contribute (this will be pushing
  • Edytuj Zasady
  • Force push
  • Zarządzaj uprawnieniami

Tutaj wpisz opis obrazka

 2
Author: Rob Scott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-06 17:27:50

Zazwyczaj tworzę specjalną grupę VSO typu "Devs", a następnie umieszczam w niej deweloperów. Następnie używam grupy jako grupy członków współpracowników projektu, a następnie w gałęzi, którą chcę chronić, używam grupy "Devs" i ustawiam Contribute na Deny, więc tylko członkowie grupy "Devs" mają odmowę wkładu, ale np. Administratorzy projektu mogą nadal w niej naciskać.

Jeśli ustawisz Contribute na Deny bezpośrednio na grupie Contributors, to nikt nie będzie mógł wcisnąć gałęzi, nawet Administratorzy i nawet jeśli specjalnie ustawisz Allow na ich Contribute, po prostu dlatego, że Deny jest silniejszy niż Allow-chyba że zrobisz jakieś zmiany w oryginalnych grupach.

 0
Author: Santhos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-22 09:51:14