Gitolite ist ein Programm, mit dem Zugriffsrechte auf git-Repositories verwaltet werden können. Mein Hoster uberspace bietet von Haus aus Gitolite an. Zur installierten Version 2.x ist aber leider online keine Dokumentation mehr vorhanden, da der Autor diese entfernt hat. Aber man ist ja bei uberspace flexibel, also kann man sich gleich ein eigenes aktuelles gitolite3 installieren. In diesem Artikel beschreibe ich, wie das geht.
Installation von Gitolite
Die Installation läuft quasi genauso ab, wie auf der offiziellen Seite beschrieben, daher hier nur noch eine kurze Zusammenfassung:
$ # Ins Homeverzeichnis wechseln
$ cd ~
$ # Den aktuellen Code herunterladen
$ git clone git://github.com/sitaramc/gitolite
$ # Jetzt noch installieren (d.h. nach ~/bin symlinken)
$ gitolite/install -ln ~/bin
Das Verzeichnis ~/gitolite darf anschließend nicht gelöscht werden! Jetzt steht der Befehl gitolite bereit.
Wenn keine ed25519-SSH-Keys eingesetzt werden (sollen), dann kann der nächste Schritt übersprungen werden.
Ed25519-SSH-Keys
Na ja, zu früh gefreut, der nachfolgende Schritt in der Installationsanleitung erzeugte nur einen Fehler. Der Grund liegt in der veralteten Standard-OpenSSH-Version im PATH.
Aber wir sind ja bei uberspace, und dort sind neuere Versionen bereits bereitgestellt. Der Path kann in der .bash_profile angepasst werden. Einfach noch die folgende Zeile einfügen:
PATH=/package/host/localhost/openssh-7/bin/:$PATH
Die Installation (gitolite setup -pk alice.pub) läuft jetzt durch, doch ein in einer anderer Session durchgeführter Login schlägt fehl. Das Gitolite-Skript läuft nicht im Nutzer-Kontext auf einer Bash, also bekommt es gear nichts von der Änderung des PATHs mit.
In der Datei ~/gitolite/src/gitolite muss nun eine Zeile eingefügt werden:
BEGIN { $ENV{GL_LIBDIR} = "$ENV{GL_BINDIR}/lib"; } # Diese Zeile gibt's
# Und die jetzt hier einfügen:
BEGIN { $ENV{PATH} = "/package/host/localhost/openssh-7/bin/:$ENV{PATH}" }
Abschließende Installation & Konfiguration
Jetzt kann nach der Anleitung fortgefahren werden: gitolite setup -pk alice.pub richtet Gitolite ein. Davor muss der verwendete SSH-Schlüssel aus der Datei ~/.ssh/authorized_keys entfernt werden.
Zur Konfiguration von Gitolite, und wie man Nutzern Shell-Zugriff gibt, verweise ich an dieser Stelle auf die offizielle Anleitung, die alles sehr genau beschreibt: gitolite.com. Viel Spaß mit Gitolite!