Wunschliste aus der Praxis: Entwicklerbereich / Module Store

Moin zusammen, moin Niels, moin paresy,

ich habe die Tage meinen Release-Ablauf für die Module (Roborock, BlindControl, iCal & Co.) ein Stück weit automatisiert — konkret erledigt das inzwischen ein Claude-Agent für mich, der per Browser-Automatisierung durch den Entwicklerbereich klickt. Die folgenden Punkte sind also im Wesentlichen die Rückmeldung aus dieser Agenten-Sicht, die ich euch nicht vorenthalten will.

Vorweg: Der Store läuft rund, die Deep-Links auf die Modulseiten sind klasse, und das Einreichen ging schneller als gedacht. Das hier ist also Jammern auf hohem Niveau — eher eine Wunschliste als eine Mängelliste. :wink:

1. Release-API

Der größte Wunsch: den Ablauf im Entwicklerbereich (neue Version vorbereiten, Commit setzen, Versionsinfos, einreichen) auch per API machen zu können. Ihr habt mit der JSON-RPC-API der Installation (/api/, Basic Auth, praktisch jeder Befehl aufrufbar) ja vorgemacht, wie gut so etwas sein kann — die wird bei mir übrigens fleißig benutzt, vom Auslesen einzelner Werte bis zur automatisierten Verifikation nach Modul-Änderungen. Dasselbe für den Store, und Releases ließen sich direkt aus der CI oder vom Agenten anstoßen, ganz ohne Browser-Geklicke. Schon ein Minimal-Umfang würde völlig reichen:

  • Kanalstand lesen (Stable/Beta/Testing: Commit, Version, Status)
  • Release anlegen mit Commit-SHA + Versionsinfos (de/en)

2. Download-Zahlen per API

Die übertrage ich aktuell von Hand in meine eigene Übersicht. Ein kleiner authentifizierter Endpoint und das Thema wäre durch.

3. Formularfelder zugänglicher machen

Daran hat sich der Agent tatsächlich die Zähne ausgebissen: Die Eingabefelder stecken so tief im Shadow DOM, dass sie im Accessibility-Tree schlicht nicht auftauchen (keine aria-labels auf den inneren Feldern), und Tastatureingaben gingen je nach Fokus kommentarlos verloren — er musste am Ende per JavaScript direkt in die Felder schreiben. Mit ein paar durchgereichten Attributen wäre viel gewonnen — und Screenreader-Nutzer hätten genauso etwas davon, nicht nur Automatisierer.

4. „Auf Branch-HEAD aktualisieren"

Der Commit-Dialog ist gut, aber es ist doch immer derselbe Klick: neuester Commit vom Release-Branch. Ein Knopf dafür (oder irgendwann mal ein GitHub-Webhook) und der halbe Ablauf entfällt.

5. Kleinigkeit zu „Einreichen"

Überraschend war, dass die Beta damit sofort live ist; erwartet hatten wir einen Review-Schritt. Ein kurzer Bestätigungsdialog („Beta wird sofort veröffentlicht: Commit …, Build …"), gern mit Hinweis, falls der Build nicht höher ist als der bisherige, würde Versehen abfangen — gerade wenn ein Automat am Werk ist, ist so ein letzter Plausibilitätscheck Gold wert.


Wie gesagt: alles Komfort, nichts Dringendes. Aber falls ihr davon etwas einplant — die Release-API stünde ganz oben. Bei Fragen zu den Details (gerade zum Shadow-DOM-Thema) liefere ich gern Konkretes nach.

Liebe Grüße
Burkhard

3 „Gefällt mir“

Prinzipiell gibt es eine undokumentierte API über die auch der Browser dann ja geht. Da könntest du also was extrahieren und für deine Agenten nutzen. Du weist dich halt mit deinem AWS Cognito Token aus, den müsstest du entweder jedes mal aus irgend einer Anfrage rauskopieren oder dir den per Skript vorher holen.

Hallo Niels,

danke für den Tipp, hat sofort geklappt. Ich hole den Token jetzt per Skript direkt bei Cognito (USER_PASSWORD_AUTH) und lese damit publish/modules — Kanalstände und Download-Zahlen muss ich also nicht mehr abtippen.

Zwei Fragen:

  1. Ist das auch schreibend okay (module-git, module-localization, publish-module)?

  2. Gibt es einen besseren Auth-Weg als mein Kontopasswort in einer Config-Datei — etwa ein API-Token pro Entwickler?

Die API ist natürlich auch fürs schreiben vorhanden. Verwendung aber natürlich auf eigene Verantwortung :wink:

Mir fällt aktuell keine bessere Lösung ein als das Passwort zu speichern. Ich habe da bisher aber auch nie eine wirkliche Alternative gebraucht

Hallo Niels,

kurze Rückmeldung: hat geklappt — die ebusdMQTT-Beta 1.3 #25 ist heute komplett über die API rausgegangen (Vorlage anlegen, Commit setzen, Versionsinfo, einreichen). Die Parameternamen habe ich mir aus der bundle.js vom Kontobereich gegriffen. Danke für den Tipp!

1 „Gefällt mir“