Neuer Konkurrent für Gitlab, Github und Gitea(?)

vorhergehende Artikel in: Java OpenSource Virtualisierung
19.07.2022

In meiner sozialen Blase erfuhr ich neulich von einem weiteren Konkurrenten für Lösungen wie Gitlab, Github oder Gitea: OneDev kannte ich bisher noch nicht - aber dem Versprechen Selfhosting gehe ich zur Erweiterung meines Docker-Zoos immer gerne nach...

Zunächst einmal sei gesagt, dass OneDev wenn man seine aktuelle Versionsnummer 6.x betrachtet vielleicht nur mir neu war aber schon längere Zeit Entwicklung auf dem Buckel hat. Aber in einer Zeit, in der gerne nur noch die Major-Nummer hochgezählt wird kann man daraus auch keine gesicherten Informationen mehr ableiten.

Zunächst wollte ich herausfinden, ob man das System tatsächlich für eionige Tests schnell und unkompliziert ans Laufen bekommen könnte - dazu benutzte ich die in der Dokumentation vorgeschlagene Kommandozeile, wandelte die Volume-Zuweisung noch etwas ab und siehe da - das System, war über das Webfrontend erreichbar und bereit, erste Projekte zu erzeugen:

docker run -t --name onedev --rm -v /var/run/docker.sock:/var/run/docker.sock -v data_dir:/opt/onedev -p 6610:6610 -p 6611:6611 1dev/server

Beim Erzeugen von Projekten wird eine Vielzahl von Import-Möglichkeiten bestehender Systeme angeboten - zu den Platzhirschen Gitlab, Github und Gitea (Codeberg) kommen weitere hinzu. Ich entschied mich für einen ersten Test dennoch zunächst für ein anderes Herangehen: Ich erstellte ein Projekt und importierte es dann direkt. Auch das funktionierte ohne Probleme.

Besser als bei Github und Gitlab in der freien Edition ist, dass es hier sofort möglich ist, mehrere Kanboards anzulegen. Ebenfalls Teil der Standardfunktionalität ist die - von mir - bei Gitlab und Github schmerzlich vermisste Möglichkeit, Eltern-Kind-Beziehungen zwischen Tickets abzubilden (wird das letzte Kind geschlossen, wird auch das Elternticket automatisch geschlossen). Darüber hinaus - und ebenfalls nur hier zu haben - gibt es noch die Möglichkeit, Blockierungen zwischen Tickets einzurichten: Ein Ticket kann in diesem Fall nur dann geschlossen werden, wenn alle Tickets, die es blockieren bereits geschlossen sind.

Es ist ebenfalls möglich, neue Felder zu einem Issue hinzuzudefinieren - das kann benutzt werden, um Tags zu definieren. Die Verwaltung von Tags ist damit ein wenig umständlicher als bei den genannten Konkurrenten, aber nicht unmöglich. Ebenso wie die Konkurrenten bietet OneDev leider keine hierarchischen Tags an - es sei denn, man definiert verschiedene Felder als Tag-Felder und interpretiert das dann als hierarchische Organisation von Tags.

Die API ist - wie nicht anders zu erwarten - state-of-the-art und extrem umfangreich - das geht bis zu dem Punkt, dass man über die API neue Felder für Issues definieren oder solche Definitionen modifizieren kann.

Leider musste ich feststellen, dass dieses System noch keinerlei Geegenmaßnahmen gegen die Trojan Source Angriffe aus dem letzten Jahr ergriffen hatte - weder in den Quelltexten noch den Markdown-Kommentaren oder Ticketbeschreibungen - ich werde dazu demnächst ein Ticket einstellen.

Aktualisierung vom 19. Juli 2022

Einen - für mich - wichtigen Nachtrag gilt es noch zu ergänzen: in meinem speziellen Fall ist die Leidenschaft für OneDev leider inzwischen erkaltet: Ich bin schon seit Zeiten von Trac ein großer Fan von Referenzen in commit-Messages auf Issues. Damit ist es nämlich unmöglich geworden, sich bei nicht existierenden Commit-messages auf "keine Zeit" herauszureden: Die Zeit, in eine commit-Message "re #53" reinzuschreiben hat wohl jeder. Auf diese Weise ist es auch schön einfach, alle Commits zu finden, dei zu einem bestimmten Isseu gehören. Leider musste ich aber feststellen, dass ich dieses Feature mit einem Import meiner Gitlab- und Github-Projekte verlieren würde: zwar werden alle Issues und alle Commit-Messages transferiert, aber die Verbindung, der automatische Link zwischen Commits und den Issues funktioniert nicht mehr, da OneDev eine leicht abweichende Syntax hat: Das System erkennt nicht wie Gitlb und Github "#xyz" als Issue-Link sondern leider nur "issue #xyz" - das Wort "Issue" muss davorstehen. Ich könnte mich jetzt hinsetzen und ein Migrationsskript schreiben aber dafür - das muss ich gestehen - habe ich einfach nicht genug Schmerz mit meinem self-hosted Gitlab...

Artikel, die hierher verlinken

OpenProject als Docker-Container

19.09.2022

Und wieder ist ein neuer Container in meinen Docker-Zoo aufgenomen worden.

Alle Artikel rss Wochenübersicht Monatsübersicht Codeberg Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Multi-User-WebDAV, Docker, GitHub

    17.11.2019

    Nachdem ich mich in letzter Zeit verstärkt mit Docker und dem zugehörigen Ökosystem beschäftige, habe ich begonnen, verschiedenste Dienste in Containern zu testen um zu sehen, ob in manchen Fällen LXC oder KVM nicht doch die bessere Wahl wäre...

    Weiterlesen...

Neueste Artikel

  • Migration der Webseite und aller OpenSource Projekte

    In eigener Sache...

    Weiterlesen...
  • AutoHideToolbar für Java Swing

    Ich habe eine neue Java Swing Komponente erstellt: Es handelt sich um einen Wrapper für von JToolBar abgeleitete Klassen, die die Werkzeugleiste minimieren und sie nur dann einblenden, wenn der Mauszeiger über ihnen schwebt.

    Weiterlesen...
  • Integration von EBMap4D in die sQLshell

    Ich habe bereits in einem früheren Artikel über meine ersten Erfolge berichtet, der sQLshell auf Basis des bestehenden Codes aus dem Projekt EBMap4D eine bessere Integration für Geo-Daten zu spendieren und entsprechende Abfragen, bzw. deren Ergebnisse auf einer Kartenansicht zu visualisieren.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen Codeberg-Repositories findet man hier.