GitHub Action: Apprise-Notifikationen

Beim Experimentieren mit der Beta-Version von GitHub Actions (Einem Tool für Build-Prozesse, Continous Integration, Deployment etc.) wollte ich mir Notifikationen aus Pipelines zukommen lassen. Zwar gab es schon einige Actions welche mit einzelnen Services funktionierten, aber jede dieser Action war unterschiedlich zu konfigurieren und benutzen.

Kurzerhand habe ich mich durch die lückenhafte Dokumentation gekämpft und eine eigene generelle Notifikation-Action erstellt: Apprise-GA.

Dank der Python-Bibliothek Apprise kann diese Action Nachrichten an Dutzende verschiedene Services schicken: Slack, Discord, IFTTT, Matrix, Telegram, Twitter, Pushover etc. etc.

Und mit dem Einsatz von Templates können auch dynamische Texte verschickt werden:

action "Send push notification" {
  uses = "cstuder/apprise-ga@master"
  secrets = ["APPRISE_URL"]
  args = [
    "Push received on {{ ref }}",
    "Commit by {{ head_commit.author.name }}: {{ head_commit.message | truncate(128) }} ({{ head_commit.id[0:7] }})"]
}

Ich finde meine Action überzeugt.

Dokumentation auf GitHub: https://github.com/cstuder/apprise-ga

GitLab CI YAML Validator Extension für Visual Studio Code

Direkter Link zum Extension-Marketplace.

In dem Titel steckt einige Technologie, ich entpacke mal:

  • GitLab ist die Open Source-Versionskontrollsoftware welche wir im Geschäft sowie ich persönlich einsetze, für allen Code welcher nicht auf GitHub passt.
  • GitLab verfügt über ein Continuous Integration-System namens GitLab CI.
  • Das CI-System wird mit einer YAML-Datei konfiguriert.
  • Um YAML zu schreiben musst du ein paar wichtige syntaktische Details beachten (Korrekte Einrückung, keine Tabs, Unterschied zwischen Listen und Dictionaries etc.)
  • Ein intelligenter Texteditor wie Visual Studio Code* unterstützt dich dabei.
  • Und meine Extension GitLab CI YAML Validator überprüft dein YAML nicht nur auf Syntaxfehler, sondern auch inhaltlich auf dessen Korrektheit als GitLab CI YAML-Konfiguration

Das ist meine erste Extension welche ich mit Ach und Krach zusammengeschrieben habe. Das Debugging von Extensions in Visual Studio Code ist zwar einfach, aber weder bin ich mit TypeScript vertraut noch ist die Entwickler-Dokumentation über alle Zweifel erhaben.

Schlussendlich habe ich mich auf eine minimale Extension beschränkt: Auf Kommando wird das YAML validiert und die Auswertung in einem halb-modalen Dialog angezeigt.

Weitere Features wie automatische Überprüfung nach dem Speichern und einer Statusanzeige sind naheliegend, aber müssen warten bis der Leidensdruck für mich gross genug wird. Im Moment ist die Extension gut genug.

Wünsche und Feedback schickst du am einfachsten direkt in den Issuetracker.

* = Visual Studio Code hat bis auf den Namen nichts mit der Entwicklungsumgebung Visual Studio zu tun. Und dem Umstand, dass es von Microsoft kommt. Aber dafür nichts kostet und Open Source ist. Ja, ich habe soeben Microsoft und Open Source ohne Ironie im gleichen Absatz geschrieben.