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

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 Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Fährnisse des Buildprozesses unter Windows

    17.07.2019

    Nachdem ich begonnen hatte, mich mit der Beschleunigung der Berechnung des Mandelbrot-Fraktals unter Zuhilfenahme der Shadereinheiten in Graphikkarten zu beschäftigen und erste Erfolge feiern konnte, wollte ich das mal auf einer richtigen Graphikkarte ausprobieren...

    Weiterlesen...

Neueste Artikel

  • Datenvalidierung UTF8 mit BiDi-Steuerzeichen (TrojanSource 2.0)

    Ich bin heute nochmal inspiriert worden, weiter über die Trojan Source Vulnerability nachzudenken. Meiner Meinung nach bestehen hier noch Probleme - speziell bei Nutzereingaben oder Daten, die über externe Schnittstellen ampfangen werden.

    Weiterlesen...
  • OpenStreetMap Navi als Docker-Container

    Ich habe die auf OpenStreetMap basierende OpenSource Navigationslösung Graphhopper in einen Docker-Container gepackt und als neuestes Mitglied in meinem Docker-Zoo willkommen geheißen.

    Weiterlesen...
  • SQL-Aggregatfunktionen in SQLite als BeanShell-Scripts

    Ich habe neulich über eine Möglichkeit berichtet, SQLite mittels der sQLshell und Beanshell-Skripten um SQL-Funktionen zu erweitern. In diesem Artikel versprach ich auch, über eine solche Möglichkeit für Aggregatfunktionen zu berichten.

    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, muß 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 GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.