Schlagwort-Archive: gerrit

[gerrit] Benutzer auf einen Branch einschränken

Im Gerrit ist es möglich, das ein Benutzer nur den Zugriff auf einen bestimmten Branch bekommt.

Für das Lese und Schreibrecht auf den Branch develop(refs/heads/develop) werden die Rechte Read, Push und Create Referenz benötigt.

Wenn der Benutzer nur das angegebene Recht hat, ist er nicht mehr in der Lage auf das gitweb zuzugreifen. Um das gitweb nutzen zu können, benötigt der Benutzer das Read Recht auf refs/*.
Hat der Benutzer jedoch das Recht, kann er auf alle Branches innerhalb des Repositorys zugreifen.

[gerrit] ist sehr langsam bzw Verbindungen brechen ab

Ein Kollege wies mich auf etwas beim gerrit hin, was ich nun versuche hier wiederzugeben.

Der Gerrit Server macht bei einer SSH Verbindung einen Thread auf, in diesem Threadpool werden die Verbindungen abgearbeitet. Pro Thread werden nur x Verbindungen zugelassen und alle weiteren landen in einer Warteschleife. Nun kann es vorkommen das die Verbindungen nicht rechtzeitig abgearbeitet werden und einige Verbindungen nicht sauber geschlossen werden bzw brechen ab.
Die Anzahl der Threads ist unter anderem Abhängig von der Anzahl der CPU Kerne, mehr Kerne also mehr mögliche Verbindungen.

Werden Jenkins Server verwendet die auf den git Server zugreifen, verursachen diese ebenfalls Threads (Verbindungen).
Damit sich die Verbindungen der Jenkins Server und der Benutzer nicht in die quere können, kann für die Server ein Non-Interactive Users erstellt werden.

Dieser wird wie folgt erstellt, der Befehl muss von einem Benutzer mit Adminrechten ausgeführt werden.

cat /home/jenkins-user/.ssh/id_rsa.pub | ssh -p 29418 git.itbasic.de gerrit create-account –ssh-key – jenkins-user

Ein Non-Interactive kann sich nicht an der Weboberfläche anmelden, somit kann man weitere SSH Keys nur über die Datenbank hinzufügen. Hierfür müssen in der Tabelle account_ssh_keys die Felder ssh_public_key,valid,account_id und seq befüllt werden. Nur zu Info, die Spalte seq muss manuell hochgezählt werden.

Wenn ein neuer SSH Key hinzugefügt wurde muss noch das nachfolgende Kommando ausgeführt werden, da ansonsten ein Zugriff nicht möglich ist.

ssh -p29418 benutzer@git.itbasic.de gerrit flush-caches –cache=sshkeys

Auch hier muss der Benutzer Adminrechte haben.

[gerrit] Provider is not supported, or was incorrectly entered

Bei der Anmeldung am Gerrit kam es zu der Meldung Provider is not supported, or was incorrectly entered.
In der error_log Datei kamen Meldungen wie

java.net.URISyntaxException: Illegal character in authority at….
….
ERROR com.google.gerrit.httpd.auth.openid.OpenIdServiceImpl : Cannot discover OpenID…

Auf den ersten Blick war die eingegebene URL für die Anmeldung korrekt, auf den zweiten Blick stellte sich heraus das vor der URL ein Leerzeichen war. Nachdem das Leerzeichen entfernt wurde, funktionierte auch die Anmeldung.