Zapanować nad repo – Gerrit instalacja

Opublikowany Autor Piotr CudnikDodaj komentarz

Czy zastanawialiście się kiedyś, jak można zarządzać własnym repozytorium gita. Nie chodzi mi o repozytorium gita w chmurze jak GitHub czy  Bitbucket, tylko o takie repozytorium gita trzymanym w swojej własnej infrastrukturze. Jak zarządzać dostępnością do projektów w repozytorium git trzymanym na własnym serwerze. Jedną z odpowiedzi na to pytanie jest – gerrit.

Gerrit jest darmowym narzędziem służącym do przeglądania wprowadzonych zmian do repozytorium gita przez zespół programistów. Zapewnia także kontrole nad uprawnieniami do poszczególnych zasobów w repozytorium. Gerrit został stworzony przez Google na potrzeby rozwoju projektu Android. Obecnie wykorzystywany jest w wielu projektach Google i nie tylko.

Instalacja.

Do celów prezentacji użyłem serwerowej wersji Ubuntu 16.04.2 LTS xenial.

Krok 1 -Git    

Gerrit jest nakładką na gita, w pierwszym kroku upewnijmy się, że git jest już zainstalowany na serwerze.

git version


Jeżeli nie mamy zainstalowanego gita to instalujemy poniższym poleceniem.

sudo apt-get update
sudo apt-get install git

Krok 2 – Java

Gerrit napisany jest w javie i wymaga, by java była zainstalowana na serwerze. Sprawdzamy czy mamy zainstalowaną jave.

java -version


Jeśli nie mamy  zainstalowanej javy wpisujemy komendę.

sudo apt-get install default-jdk

Krok 3 – Gerrit

Na stronie https://www.gerritcodereview.com  z sekcji Download pobieramy najnowszą wersje gerrita, w moim przypadku jest to wersja 2.13.6.

wget https://gerrit-releases.storage.googleapis.com/gerrit-2.13.6.war

Instalujemy gerrita.

java -jar gerrit-2.13.6.war init --batch -d ~/gerrit-2.13.6

Sprawdzamy pod jakim adresem został zainstalowany gerrit.

git config -f ~/gerrit-2.13.6/etc/gerrit.config gerrit.canonicalWebUrl


Zajrzyjmy do pliku konfiguracyjnego gerrita.

nano ~/gerrit-2.13.6/etc/gerrit.config

 

 
[gerrit]
        basePath = git
        serverId = 0cfd11ad-9872-48fc-89d0-1e4493845e5f
        canonicalWebUrl = http://ubuntu:8080/
[database]
        type = h2
        database = /home/ubuntu/gerrit-2.13.6/db/ReviewDB
[auth]
        type = OPENID
[receive]
        enableSignedPush = false
[sendemail]
        smtpServer = localhost
[container]
        user = ubuntu
        javaHome = /usr/lib/jvm/java-8-openjdk-i386/jre
[sshd]
        listenAddress = *:29418
[httpd]
        listenUrl = http://*:8080/
[cache]
        directory = cache

W sekcji [gerrit] możemy ustawić pod jaką nazwą i na jakim porcie będzie widoczna nasza usługa gerrita.

W sekcji [database] definiujemy z jakiej bazy danych gerrit będzie korzystać, domyślnie jest ustawiana h2. Dostępne możliwości:  PostgreSQL, MySQL, Oracle, SAP MaxDB, DB2, SAP HANA.

W sekcji [auth] ustawiamy mechanizm logowania do gerrita. Dostępne możliwości: HTTP, LDAP.

W sekcji [sendemail] definiujemy serwer pocztowy do wysyłania maili z gerrita.

Pozostałe sekcje są mniej ciekawe, jak będzie kiedyś potrzeba to je opisze.

Po wprowadzeniu zmian w pliku konfiguracyjnym należy zrestartować gerrita.

~/gerrit-2.13.6/bin/gerrit.sh restart

Gotowe, w przeglądarce wpisujemy adres, pod którym kryje się gerrit w moim przypadku jest to http://ubuntu:8080/.

Pamiętajmy, że z pierwszym logowaniem gerrit tworzy konto z uprawnieniami administratora!

Metody uwierzytelnia wraz z przykładami konfiguracji opisano tutaj.