Gerrit – dostęp do projektów

Opublikowany Autor Piotr CudnikDodaj komentarz

W gerrit’cie  dla utworzonych projektów możemy nadawać odpowiedni dostęp do repozytorium dla odpowiednich grup użytkowników. Gerrit udostępnia nam kilkanaście rozmaitych uprawnień, jednak w tym artykule skupimy się na najważniejszych z nich. Poniżej znajduje się lista uprawnień, z którymi na pewno się spotkasz.

Read

Uprawnienie Read daje dostęp do podejrzenia projektu, zobaczenia  wprowadzonych zmian i pobranie repozytorium. Użytkownik z uprawnieniami Read może pobrać repozytorium na swój komputer i pracować  na nim lokalnie.

Push

Uprawnienie Push pozwala użytkownikowi na wprowadzanie swoich  zmian do repozytorium. W gerrity’cie są dwie możliwości wprowadzania zmian: z Code Reaw lub bez Code Review czyli wysłane zmiany od razu trafią do repozytorium. W zależności pod jaką ścieżką ustawimy to uprawnienie commity będą przechodzić przez Code Review lub też nie. By wymusić Code Review dla wprowadzonych nowych zmian ustawiamy uprawnienie Push w ścieżce refs/for/refs/heads/* natomiast dla uprawnienia Push bez Code Review ustawiamy uprawnienie w ścieżce refs/heads/*.

Push Merge Commits

Uprawnienie Push Merge Commits nadaje możliwość wysyłania merge do repozytorium. Zasada jest taka sama jak dla uprawnienia Push. Najczęściej nadaje się uprawnienia Push razem z Push Merge Commits. Developerzy muszą mieć możliwość wysyłania swoich zmian, rozwiązanych konfliktów oraz merge z innymi branchami do repozytorium.

Label: Verified

Uprawnienie Label Verified dedykowane jest dla narzędzi ciągłej integracji (CI). Sprawdzeniu czy projekt buduje się oraz czy testy automatyczne przechodzą.  Można do tego wykorzystać np. Jenkinsa. Weryfikacja może przyjąć trzy wartości:

  • -1 – weryfikacja nieudałą się, nie można wprowadzić zmian do repozytorium.
  • 0 – weryfikacja jeszcze się nie wykonała.
  • 1 – weryfikacja powiodła się.

Label: Code-Review

Uprawnienie Label Code-Review  umożliwia wykonanie przeglądu kodu i wprowadzenie oceny czy dane zmiany mogą wejść do repozytorium. Ocena może przyjąć wartość od -2 do 2:

  • -2 – zmiana nie może wejść do repozytorium. Kod jest kiepskiej jakości, są błędy. Zmiany powinny być poprawione.
  • -1 – Zmiana nie powinna wejść do repozytorium. Kod nie wygląda dobrze lub wprowadzane zmiany nie do końca mam się podobają. Możemy przekazać Code Review innej osobie, by oceniła wprowadzane zmiany swoim doświadczeniem. Ocena -1 nie blokuje możliwości zatwierdzenia zmian.
  • 0 – Ocena nie została jeszcze wykonana.
  • 1 – Zmiany wyglądają dobrze ale są pewne wątpliwości. Kod wygląda dobrze ale dobrze było by, by ktoś inny jeszcze sprawdził czy wprowadzane zmiany są poprawne. Ocena 1 nie blokuje możliwości zatwierdzenia zmian.
  • 2 – Wszystko wygląda dobrze, zmiany mogą wejść do repozytorium.

Submit

Uprawnienie Submit upoważnia użytkownika to ostatecznego zatwierdzenia wyprowadzanych zmian do repozytorium.

 

W gerrit’cie każdy projekt dziedziczy domyślne ustawienia uprawnień od All-Projects, aby nadać uprawnienia dla projektu z zakładki Project -> List wybieramy nasz projekt i przechodzimy do zakładki Access. Poniżej przedstawiłem przykład nadania uprawnień dla wcześniej zdefiniowanych  grup.

Pamiętaj, że większość ustawień dziedziczone są z All-Projects, które też może być edytowane . Dla powyszego przykładu możesz odebrać uprawnienie Push i Push Merge Commit dla grupy Registered Users w All-Projects, by tylko grupa developers mogła wprowadzać zmiany do repozytorium przez code review. Resztę uprawnień pozostawiamy bez zmian. Więcej na temat uprawnień znajdziesz w dokumentacji gerrit’a pod adresem https://gerrit-review.googlesource.com/Documentation/access-control.html.