Wpis z mikrobloga

Chciałem na prywatnym serwerze postawić jakikolwiek system do rewizji kodu. Bardzo prostego, bo na użytek prywatny - zawsze czytelniej popatrzeć na sformatowany kod z komentarzami sprawdzającego wewnątrz niż przeglądać 'git diff' i pisać komentarze osobno. Ogólnie pytanie dotyczy tylko konfiguracji Gerrita na serwerze.

Zbędny opis:


Pytanie pierwsze - są lepsze/prostsze/nie napisane w Javie systemy do "code review" niż Gerrit? Mogą mieć mniej funkcjonalności. ReviewBoard i LightReview sprawdzałem - odpadają.
Pytanie drugie: co zrobić by postawić Gerrita, jeśli odpowiedź na pytanie 1 brzmi - "średnio bym powiedział"?

Czego próbowałem by to działało:

1. java -jar gerrit.war init -d /sciezka/do/kataloguA
2. curl -O http://jakis_serwer/bouncycastle.jar && mv bouncycastle.jar /sciezka/do/kataloguA/lib/ # bo nie pobrało automatycznie samo
na większosć pytań instalatora gerrita z 1. odpowiedzi domyślne.
"Authentication methods" do wyboru {openid, openid_sso, http, http_ldap, client_ssl_cert_ldap, ldap, custom_extension, development_become_any_account} - pytanie 3 = co wybrać by po prostu ustawić przez web klucz ssh w webgui i logować sie przez nazwę użytkownika/hasło => http?
3. Listen on port [8080] => 8081

Dalej uruchamiam,
$ /sciezka/do/kataloguA/bin/gerrit.sh start
Niby się uruchamia.

Dalej niestety zaczęły się schody. Czytam że Gerrit posiada jakiś wewnętrzny serwer http Jetty, akurat na porcie 8081. OK, przestawiam wiec /sciezka/do/kataloguA/etc/gerrit.config
listenUrl = http://*:8082
cannonicalWebUrl = http://server:8082

Czytam więc dalej instrukcję ze strony Gerrita. Wewnętrzny serwer Gerrita jest, cóż, wewnętrzny wiec - o ile dobrze rozumiem - nie obsługuje połączeń przychodzących na tym porcie 8081, i należy postawić swój serwer obsługujący HTTP na innym porcie, w tym przypadku 8082.
Pytanie trzecie: prawda to? Czy da się go zmusić do wyświetlania strony logowania i faktycznego logowania?

Przy wybraniu niezalecanej opcji autentykacji, "developmentbecomeanyaccount" owszem, mojserwer:8081 pokazywał stronę logowania, można było zalogować się na dowolne konto itd - brak więc jakiejkolwiek autentykacji. Kolejną opcją było OpenID ale nie posiadam takowego, a strona na której chciałem sobie stworzyć - już nie działa :) nie chciałem korzystać z googlowego itd. Poza tym, chciałem by logowanie było przez ssh, jak człowiek, a nie wymagać założenia dodatkowego konta.
Przy wybraniu "authentication HTTP" i uruchomieniu mojserwer:8082 standardowa strona o braku konfiguracji
"The HTTP server did not provide the username in the Authorization header when it forwarded the request to Gerrit Code Review."...

Jeśli nie może się ten Gerrit obejść bez kolejnego serwera, to wolałbym nginx'a niż appache:

ngnix.conf

server {
listen 8082;
servername localhost;
location / {
auth_basic "Restricted" ;
auth_basic_user_file /sciezkaB;
}
}

Jak się łatwo domyślić - to również nie działa. O ile postawienie OpenGroka to jest 20 minut, to ten potworek zabrał mi już zbyt dużo czasu. Może ktoś to robił i wie co jest nie tak, lub w skrócie jakie są faktyczne wymagania, najprostsza działająca konfiguracja?

#programowanie #gerrit #serwery #pytanie
  • 4
Wspaniałe to narzędzie, SonarQube, kiedyś zrobią na tym worki pieniędzy (chwila, to Szwajcarzy - mają ich już dość, więc mogli sobie pozwolić i wydać to na licencji CC). Niemniej - to jest narzędzie do sprawdzania kodu, a nie wspólnej oceny, jakim jest Gerrit. W skrócie dla ciekawych co to posiada/potrafi robić: wykresy, definicje zasad sprawdzania kodu, wykrywanie duplikatów, wystawia oceny "jakości kodu", zarządza znalezionymi błędami, itd. W sumie jak linter, ale z