Gerrit
Recenzowanie kodu z użyciem Gerrita – raport
W ramach zadania przetestowano lokalną instancję systemu Gerrit (w wersji 3.11.2) do recenzowania kodu źródłowego. Celem było sprawdzenie działania narzędzia, przetestowanie scenariuszy związanych z recenzją kodu, jak również konfiguracja użytkowników i uprawnień. Poniżej opisano szczegółowo wszystkie wykonane kroki.
1. Uruchomienie Gerrita lokalnie
-
Pobrano plik .war Gerrita i uruchomiono go lokalnie za pomocą polecenia: java -jar gerrit-3.11.2.war init --batch --dev -d gerrit_test
-
Serwer wystartował pod adresem http://localhost:8080. W trybie developerskim port SSH domyślnie to 29418.
2. Utworzenie kont użytkowników
Zalogowano się jako administrator i utworzono dwóch użytkowników:
- dev1 – programista
- rev1 – recenzent
Oba konta zostały przypisane do odpowiednich grup które wcześniej zostały stworzone:
- dev1 dodany do grupy Developers
- rev1 dodany do grupy Reviewers
3. Konfiguracja uprawnień
W zakładce Access ustawiono uprawnienia dla ścieżki refs/for/*:
- Grupa Reviewers otrzymała możliwość oceniania zmian: Label Code-Review: -2…+2
oraz dla ścieżki refs/heads/*:
- Grupa Developers oraz Reviewers uzyskała możliwość zatwierdzania zmian: Submit
Dzięki temu rev1 mógł nadawać oceny +2/-2, a oba konta mogły zatwierdzać zmiany po zaakceptowaniu.
4. Klonowanie repozytorium i konfiguracja hooków
dodanie klucza ssh w gerricie dla dev1:
oraz zalogowanie się na niego w git bashu
sklonowano testowe repozytorium:
- git clone ssh://dev1@localhost:29418/lab06-gerrit
- cd lab06-gerrit
Pobrano hook commit-msg, który dodaje wymagany przez Gerrita Change-Id:
- curl -o .git/hooks/commit-msg http://localhost:8080/tools/hooks/commit-msg
- chmod +x .git/hooks/commit-msg
5. Dodanie zmian i zgłoszenie ich do recenzji
Dodano pliki z wcześniejszych laboratoriów i wykonano pierwszy commit:
- git add .
- git commit -m "dodanie"
Zmiana została zgłoszona do recenzji za pomocą:
- git push origin HEAD:refs/for/main
Tak to wygląda w gerricie:
6. Recenzowanie zmian
Zalogowano się na konto rev1, otworzono zgłoszoną zmianę przez interfejs webowy i:
- Dodano komentarze w plikach źródłowych
- Oceniono zmianę na -2, co zablokowało możliwość zatwierdzenia
7. Wprowadzenie poprawek przez dev1
Zalogowano się ponownie jako dev1, naniesiono poprawki i zaktualizowano zmianę:
- git commit --amend
- git push origin HEAD:refs/for/main
8. Finalna akceptacja
rev1 ponownie zrecenzował zmianę:
- Zatwierdził ją oceną +2
- Zatwierdził zmianę przyciskiem Submit
Podsumowanie
W Gerricie zrealizowano:
- Konfiguracja instancji i repozytorium
- Utworzenie użytkowników i uprawnień
- Praca z kodem i obsługa Change-Id
- Recenzje, odrzucenia, poprawki i zatwierdzenie
System Gerrit sprawdził się jako narzędzie do kontrolowanej integracji kodu i wymuszenia recenzji przed zatwierdzeniem zmian.