Atlassian FishEye ist ein besonders cooles Tool, um seinen Projekt-Sourcecode direkt in seinen JIRA-Projekten angezeigt zu bekommen. Völlig faszinierend finde ich, das man eine wunderbare Diff-Übersicht hat und Links zu einzelnen Codezeilen verschicken kann. Aus diesem Grund habe ich mich dafür entschieden, selbst FishEye für meine Git-Repositories in Zusammenhang mit JIRA einzusetzen. Wie ich es installiert habe, erfahrt ihr hier.
Damit FishEye mit einem Git-Repository funktioniert, muss auf dem Server Git Version 1.6 oder höher installiert sein. Welcher Git Version installiert ist, erfährt man über das Terminal mit git --version
. Auf meinem Virtual Server läuft Debian Lenny, welches zur Zeit über die Paketverwaltung (apt-get) nur Git Version 1.5.6.5 anbietet. Aus diesem Grund muss man sich selbst um die Aktualisierung kümmern.
Git Version manuell aktualisieren
Befehle:
1 2 3 4 5 6 7 8 9 10 11 | sudo su cd /tmp mkdir git cd ./git wget http://kernel.org/pub/software/scm/git/git-1.7.3.3.tar.bz2 tar xfvj git-1.7.3.3.tar.bz2 cd ./git-1.7.3.3 apt-get install curl libssl-dev tk ./configure make install rm -Rf /tmp/git |
Bedeutung:
- Super-User Rechte holen
- In das temporäre Verzeichnis wechseln
- Temporären Git-Ordner erstellen
- In den temporären Git-Ordner wechseln
- Aktuelles Git-Archiv downloaden
- Git-Archiv entpacken
- In das entpackte Archiv wechseln
- Für die Git-Installation fehlende Bibliotheken herunterladen
- Konfiguration für die Installation erstellen
- Git installieren
- Temporäres Git-Verzeichnis löschen
Wenn wir nun git --version
eingeben, dann wird uns immer noch angezeigt, dass wir Version 1.5.6.5 verwenden. Wenn Git nämlich zuvor über apt-get install git-core
installiert wurde, dann haben wir jetzt zwei Git-Versionen installiert. Einmal im Ordner /usr/bin
und einmal im Ordner /usr/local/bin
. Die Debian Paketverwaltung installiert die Programme standardmäßig immer in /usr/bin
und da Git, zum Zeitpunkt als wir unser Terminal (unsere bash) gestartet haben, nur in /usr/bin
installiert war, hat unsere Kommandozeile (bash) noch diese alte Referenz. Wenn wir eine neue bash aufmachen (dazu einfach den Befehl bash
im Terminal eingeben), dann wird uns git --version
die Version aus /usr/local/bin
anzeigen, welche die Versionsnummer 1.7.3.3 trägt und damit aktueller ist als 1.6 (welches für FishEye benötigt wird). Wenn das bis hierhin geklappt hat, dann können wir getrost die über die Paketverwaltung installierte Git-Version mit dem Befehl apt-get remove git-core
löschen.
FishEye-Benutzer anlegen
Aus Sicherheitsgründen sollte FishEye nicht vom root
-Benutzer ausgeführt werden. Deshalb werden wir einen neuen Benutzer namens fisheye-user
anlegen, der sich nicht über ein Passwort am Server anmelden kann sondern nur über ein Schlüsselpaar.
Ich gehe davon aus, dass die Git-Repositories ebenfalls von einem eigenem Benutzer (namens gituser
) verwaltet werden und im Ordner /home/gituser/repos/
liegen. Außerdem gehe ich davon aus, dass die Public Keys der Benutzer, die Zugriff auf die Git-Repositories haben sollen, in der Datei /home/gituser/.ssh/authorized_keys
hinterlegt sind.
Befehle:
1 2 3 4 | sudo adduser --shell /bin/bash --disabled-password fisheye-user sudo –i sudo -H -u fisheye-user ssh-keygen -t dss sudo cat /home/fisheye-user/.ssh/id_dsa.pub >> /home/gituser/.ssh/authorized_keys |
Bedeutung:
- Benutzer
fisheye-user
hinzufügen - Login simulieren
- Schlüsselpaar mit „Digital Signature Algorithm“ erstellen
- Public-Key von
fisheye-user
demgituser
bekannt machen
FishEye herunterladen
Befehle:
1 2 3 4 5 | sudo su cd /opt wget http://wpc.29c4.edgecastcdn.net/8029C4/downloads/software/fisheye/downloads/fisheye-2.4.3.zip unzip fisheye-2.4.3.zip rm -f fisheye-2.4.3.zip |
Bedeutung:
- Super-User Rechte holen
- Ins
/opt
-Verzeichnis wechseln - FishEye herunterladen
- FishEye entpacken
- FishEye-Archiv löschen
FishEye starten
Wenn FishEye über das Terminal gestartet wird, dann läuft FishEye nur solange bis die Sitzung beendet wird, d.h. wenn man das Terminal schließt, dann wird auch FishEye geschlossen. Um das zu verhinden, behelfen wir uns mit dem Programm screen
.
Kurze Info zu screen:
Screen wird gestartet, indem man screen
eingibt. Danach öffnet sich eine neue Shell. In dieser Shell können dann Programme gestarten werden. Um sich dann aus dieser Shell zurück zu ziehen, muss man Strg+A und danach D drücken. Dadurch wird die Shell in den Hintergrund geschickt, wodurch sie aber immer noch weiterläuft. Man nennt diesen Vorgang „detachen“. Um alle laufenden Screens anzuzeigen, wird der Befehl screen -ls
verwendet. Jeder Screen braucht einen Sitzungsnamen, damit man ihn über screen -r Sitzungsname
wieder nach vorne holen („attachen“) -und mit Strg+A und danach D wieder in den Hintergrund schicken kann.
In meinem Beispiel bekommt die Sitzung den namen „FishEye“. Zusätzlich wird die gesamte FishEye-Installation dem fisheye-user
übergeben. Bevor die Screen-Sitzung gestartet werden kann, muss auch noch das SUID-Bit für screen
gesetzt werden, damit die Fehlermeldung: Must run suid root for multiuser support.
nicht auftritt.
Befehle:
1 2 3 | sudo chown -R fisheye-user:fisheye-user /opt/fecru-2.4.3/ chmod u+s /usr/bin/screen sudo -u fisheye-user screen -mdS FishEye /opt/fecru-2.4.3/bin/run.sh |
Bedeutung:
- FishEye-Installation an
fisheye-user
übergeben - SUID-Bit für
screen
setzen - FishEye-Sitzung in
screen
über denfisheye-user
starten
Git-Repository in FishEye einrichten
FishEye kann, nach erfolgreichem Start, über die Adresse http://host.de:8060/
aufgerufen werden. In diesem Panel muss man nun einen Lizenzschlüssel eingeben und grundlegende Konfigurationen vornehmen. Man wird nach einigen Einstellungen aufgefordert ein Git-Repository anzugeben. Die URL für ein solches Repository könnte ssh://gituser@host.de:22/~/repos/example-repository.git
lauten.
Atlassian FishEye mit Atlassian JIRA verbinden
Damit man Atlassian FishEye mit Atlassian JIRA verbinden kann, muss man in der FishEye-Administration (http://host.de:8060/admin/
) die „Remote API“ freischalten. Das geht wie folgt:
- In die FishEye-Administrationsoberfläche einloggen
- Global Settings
- Server
- Allow remote API calls: On
- Site URL:
http://host.de:8060/
Atlassian JIRA mit Atlassian FishEye verbinden
Natürlich muss man auch in JIRA die Verbindung zu Atlassian FishEye angeben. Das geht wie folgt:
- In die JIRA-Administrationsoberfläche einloggen
- Administration
- FishEye-Konfiguration
- Primäre Konfiguration bearbeiten
- FishEye-URL: http://host.de:8060/
- Aktualisieren
Man kann nun sein Git-Repository aus FishEye durch Angabe eines JIRA-Projektschlüssels in JIRA anzeigen lassen. Die Möglichkeiten, die man dadurch erhält, werden im FishEye Overview-Video gezeigt.