Dynamische Gitlab Badges

vorhergehende Artikel in: Git(lab|hub) Python
16.02.2019

In einem früheren Artikel untersuchte ich bereits verschiedene Möglichkeiten, Badges in Gitlab zu erzeugen - allerdings stellte mich die gefundene Lösung noch nicht endgültig zufrieden - bis jetzt...

Die bisher erreichten Ergebnisse stellten mich aus einem ganz einfachen Grund nicht zufrieden: Als Beispiel sollen die im letzten Artikel gezeigten Beispiele dienen, die Anzahl von Issues (offen und geschlosen) in Badges darzustellen: Mit der dort gezeigten Methode werden die Badges aktualisiert, wenn die Pipeline läuft. Änderungen, die geschehen bevor die nächste Pipeline gestartet wird, bleiben verborgen, da auch der Badge nicht aktualisiert wird. Die Beispiele wurden realisiert mittels der Nutzung der Gitlab-API in Bash-Skripten.

Es gibt zwar Facetten an Gitlab, die sich nur durch Commits ändern - und für solche ist die Variante der Erzeugung von Badges in der CI/CD-Pipeline gut und richtig. Aber die Issues selbst zählen eben gerade genau nicht dazu - die Zeitpunkte, zu denen Issues neu erstellt werden sind nicht mit denen von Commits korrelliert und die Zeitpunkte des Schließens von Issues müssen es nicht sein.

Dadurch ergibt sich, dass bei Nutzung der Lösung wie sie im vorhergehenden Artikel zu diesem Thema präsentiert wurde die Zahl in denBadges für die offenen und geschlossenen Issues nie stimmen kann.

Daher benötigt man hier wirklich dynamische Badges - etwas, das in Github bereits integriert ist, in Gitlab dagegen bisher nicht. Aber nach dem alten Motto aus dem Amiga-Magazin "Fehlt Dir was? Programmier Dirs doch!" - das kann man ändern. Alles, was ich dazu brauchte war Python, eine Installation Apache2 und die Gitlab-API-Bindings für Python und natürlich die Bibliothek zur Erzeugung von Badges.

Damit war ich dann in der Lage, das in diesem Gist niedergelegte Script zu erstellen, das mir über die Gitlab-API bei jedem Aufruf ein Badge mit den akuellsten Werten erstellt. So habe ich gleich mehrere Fliegen mit einer Klappe geschlagen - da es Python ist, rechne ich mir das nämlich mal gleich auf meine Liste von Vorhaben für 2019 an!

Eingebunden werden diese in Git dann zum Beispiel so:

http://<apache2-host>/gitlab_issues.py?label=closed%20issues&action=closedissues&projid=%{project_id}

Artikel, die hierher verlinken

Alte Rechner zukunftsfähig (?)

01.05.2019

Ich mache immer wieder gerne Experimente mit Terminalsessions - meistens wegen der zentral möglichen Administration. Nunhabe ich das Thema von neuem angepackt: wegen einem alten(sehr alten) Laptop, der bei mir schon so lange im Schrank lag, dass sogar die BIOS-Batterie inzwischen leer war...

Dynamische Gitlab Badges II

21.02.2019

In einem früheren Artikel habe ich eine Möglichkeit vorgestellt, echt dynamische Badges für Gitlab zu erstellen. diese Herangehensweise hat aber einen großen Nachteil

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.