2013-04-26 7 views
14

Chcę założyć konfiguracji opisanych poniżej:Gerrit - jak uniemożliwić bezpośredni impuls do „master”, ale pozwalają na innych gałęziach

  • Zarejestrowany użytkownik nie może wypchnąć swoje zmiany bezpośrednio do opanowania. Ma pchnąć te zmiany do sprawdzenia

    "git mistrz pochodzenie push" - powinna zostać odrzucona przez Gerrit (origin = Gerrit)

    "git Push pochodzenie głowy: bibl/For/Master" - powinno być dozwolone przez Gerrit

  • Zarejestrowany użytkownik może utworzyć nowy oddział. Oddział ten będzie traktowany jako kopia zapasowa i sposób współpracy między dwoma lub więcej programistami, więc nie powinien być sprawdzany.

    "git xyz_abc pochodzenie push" - powinno być dozwolone przez Gerrit

Jak należy skonfigurować Gerrit osiągnąć taką funkcjonalność?

Odpowiedz

0

AFAIK można ustawić uprawnienia dla każdego repo/projektu w gerrit. Na przykład kto może naciskać/kto może wymusić push/kto może zatwierdzić twoje zmiany i to wszystko. Sprawdzić poniższy link, jeśli jest to przydatne:

https://git.eclipse.org/r/Documentation/access-control.html

+2

tylko linkami do dokumentacji nie jest bardzo pomocne, aby odpowiedzieć na takie konkretne pytanie – CK1

0

Jeśli istnieje wiele oddziałów można użyć nazw (np dev/*) dla oddziałów i ustawić kontrolę dostępu do tych nazw.

4

Nigdzie nie ma dobrych instrukcji, więc pomyślałem, że udokumentuję tutaj kroki.

1. Przejdź do strony dostęp do swojego projektu

Projekty> Lista> your_project> Dostęp

2. Edycja Dostęp

kliknij przycisk Edytuj

3. Dodaj odniesienie do odwołań/heads/*

To jest odniesienie dla wszystkich bezpośrednich pchnięć. Zamierzamy skonfigurować, kto może zrobić co na tej ścieżce.

Kliknij "Add Reference" i wpisać 'bibl/głowice/*' (bez cudzysłowów)

4. zaprzeczyć "push" pozwolenie

Pozwolenie push jest ten, który kontroluje kto może dokonywać bezpośrednich popychań. Scalanie pchnięć i pchnięć do Gerrita będzie nadal dozwolone (patrz uwagi poniżej).

  1. Kliknij "Dodaj uprawnienia" i wybierz "Wcisnąć".
  2. Wybierz grupę użytkownika, którego chcesz zaprzeczyć pchnięcie od (można wpisać „Zarejestrowani użytkownicy”, jeśli chcesz zablokować każdy)
  3. Wybierz „deny” z menu, które się pojawi po dodaniu grupa użytkownik

5. Zapisz zmiany

I gotowe. Gotową config powinien wyglądać mniej więcej tak:

Finished config


Uwaga

Jeśli to nie działa, upewnij się, że masz uprawnienie dotk Aby zezwolić na odn/o/refs/* - to uprawnienie, które pozwala na wypychanie do Gerrita.

+0

Zastanawiam się, jak to rozwiązuje „ale pozwalają na innych gałęziach”. Zapobiegnie to wypychaniu do WSZYSTKICH gałęzi. – SureshS

+1

@SureshS, jeśli chcesz zastosować zezwolenie na wzorzec, a następnie dodaj zezwolenie na powyższym obrazie. następnie utworzyć nowe pozwolenie specjalnie dla bibl/głowice/Master (i umieścić zaprzeczyć, zamiast pozwolić pod naciśnięciem) – Bowen

+1

@Conan „deny” nie będzie tu pracować. Należy użyć „blok” za „bibl/głowice/Master” zamiast zastąpić „bibl/głowice/*” ustawienia dla tego konkretnego oddziału. – VirtualVDX

Powiązane problemy