Installation der benötigten Software

Linux

PHP und git sollten über die Standard-Paketquellen installiert werden können. Danach muss Composer installiert werden, siehe dazu https://getcomposer.org/download/.
Das Skript zur Migration ist auf Github, zur Installation müssen folgende Schritte befolgt werden:

 

git clone https://github.com/Dachaz/trac-to-gitlab
cd trac-to-gitlab
composer install

 

Windows

TortoiseGit und Composer können über die jeweiligen Seiten heruntergeladen und auf dem üblichen Weg installiert werden.

Migration der Issues

Aktivieren der RPC Schnittstelle von Trac

Die RPC-Schnittstelle von Trac kann nur von den SSELab-Admins freigegeben werden. Dazu reicht ein Ticket beim SD, das wird dann entsprechend weitergeleitet.

Auslesen des Secret Tokens von Gitlab

Für den Zugriff auf die Web API von Gitlab wird das Secret Token aus dem Benutzerprofil von Gitlab benötigt, dieses ist dort unter Profile Settings → Account zu finden.

Erstellen eines Gitlab Projektes und Herausfinden der ID des Projektes

Um die Migration durchführen zu können, muss vorher ein Projekt im Gitlab erstellt werden. Leider unterstützt die Gitlab Web API kein Zugriff auf Projekte mit dem Projektnamen, sondern nur mit der ID. Die ID eines Projektes kann über die Seite https://git.rwth-aachen,de/api/v3/projects?private_token=<secret token> ausgelesen werden.

Durchführen der Migration

Um die Migration durchzuführen, reicht folgender Aufruf (im trac-to-gitlab Verzeichnis):

 

php migrate.php -t https://<username>%40rwth:<passwort>@sselab.rwth-aachen.de/lab2/private/trac/<Projektname> -g https://git.rwth-aachen.de -k <secret-token> -p <ID> -q <Ticket query> -m "<ab123456@rwth=john.doe, cd345678@sselab=jane.doe"

 

Zur Ticket Query (-q): Hier kann eine beliebige Anfrage eingefügt werden, Beispiele sind hier zu finden. Um beispielsweise alle neuen Tickets zu migrieren, reicht "status=new".
Wahlweise kann anstelle der Ticket Query auch eine Trac Komponente mit dem Parameter -c angegeben werden, Standard in Trac ist component1. Der Aufruf sähe dann wie folgt aus:

 

php migrate.php -t https://<username>%40rwth:<passwort>@sselab.rwth-aachen.de/lab2/private/trac/<Projektname> -g https://git.rwth-aachen.de -k <secret-token> -p <ID> -c component1 -m "<ab123456@rwth=john.doe, cd345678@sselab=jane.doe"

 

Zur User Map (-t): Das Format ist <SSELab-Benutzer=Gitlab-Benutzer>.