1. YoureCom
    1. Über mich
  2. Lösungen
    1. Tipprunde
    2. Aufgaben & Support
    3. Mitglieder-Netzwerk
    4. Online-Shop
    5. Alle Lösungen & Preise
  3. Für Admins
    1. Plugins
    2. ByteMon
    3. ByteMon: Community verwalten
    4. ByteMon: Portalidentität
    5. Individuelle Entwicklung
    6. WSC 6.3 Alpha
    7. GitHub
  4. Neuigkeiten
    1. Kurzmeldungen
  5. Support
    1. Mein Tag
  6. Mein Konto
  7. Lösungen testen
  • Anmelden
  • Registrieren
  • Warenkorb 0
  • Suche
Shop: WoltLab Plugin Shop Erweiterung
  • Alles
  • Shop: WoltLab Plugin Shop Erweiterung
  • Shop: WoltLab Plugin Shop Erweiterung
  • Artikel
  • Seiten
  • Aufgaben
  • Produkte
  • Pulse-Beiträge
  • GitHub Commits
  • GitHub Issues
  • Erweiterte Suche
  1. YoureCom
  2. Arbeitsplatz
  3. YoureCom Shop
  4. Shop: WoltLab Plugin Shop Erweiterung

Integration WoltLab Upload API für automatisierte Releases #309

  • Marcel Beckers
  • 28. März 2026 um 22:34
  • 0 Kommentare
  • Erledigt Erledigt am: 16. Oktober 2026 um 19:37
✔ Erledigt

Die WoltLab Upload API soll integriert werden, um neue Plugin-Versionen direkt aus dem Build-/Release-Prozess automatisiert in den Plugin-Store hochzuladen (inkl. Changelog und Datei-Upload).

Zitat

Der Endpunkt lautet: /1.0/vendor/file/add.json. Erwartet wird wie bei den anderen API-Endpunkten ein POST-Request, der durch PHP verarbeitet werden kann.

Folgende Felder sind verfügbar (und notwendig):

  • apiKey: Bekannt aus RE: WoltLab API
  • vendorID: Dito.
  • fileID: Dito.
    • Achtung: Durch die Mehrsprachigkeit ist die ID in der Adressleiste nicht die korrekte. Der „Share“-Button liefert im BBCode die korrekte ID.
  • versionNumber: Dito.
  • description_de: Deutsche Beschreibung. Läuft durch den HtmlInputProcessor, entsprechend muss hier HTML gesendet werden, wie es auch aus dem Editor kommen würde.
  • description_en: Analog.
  • filename: Der Dateiname. Wird durch den regulären Ausdruck /^[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+(_[a-zA-Z0-9_]+)?\.(tar|tar\.gz)$/ validiert. Anders gesagt: Package-Identifier, Unterstrich, Versionsnummer, Dateiendung.
  • payload: base64-kodierter Dateiinhalt.

Als Antwort gibt es dann JSON mit:

  • versionID: Bekannt aus RE: WoltLab API
  • fileHash: Dito.
  • versionNumber: Dito.

Eine gültige Anfrage sieht dann etwa so aus (wenn wir mal ignorieren, dass foo kein gültiger Dateiinhalt ist):

HTTP

Code
POST /1.0/vendor/file/add.json HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 186
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Host: api.woltlab.com
User-Agent: HTTPie/1.0.3

apiKey=123&vendorID=1336766&fileID=30&versionNumber=1.0.0&description_de=%3Cp%3Efoo%3C%2Fp%3E&description_en=%3Cp%3Ebar%3C%2Fp%3E&filename=com.example.test_1.0.0.tar&payload=Zm9vCg%3D%3D

Ein gültiger Guzzle-Request kann (ungetestet) wie folgt erzeugt werden:

PHP

Code
$payload = [
  'apiKey' => 123,
  'vendorID' => 1336766,
  'fileID' => 30,
  'versionNumber' => '1.0.0',
  'description_de' => '<p>foo</p>',
  'description_en' => '<p>bar</p>',
  'filename' => 'com.example.test_1.0.0.tar',
  'payload' => Base64::encode(file_get_contents(…)), // ParagonIE\ConstantTime\Base64 wird am Server genutzt, weil die Validierung besser ist.
];
  
$request = new Request('POST', 'https://api.woltlab.com/1.0/vendor/file/add.json', [
  'accept' => 'application/json',
  'content-type' => 'application/x-www-form-urlencoded',
  'user-agent' => HttpFactory::getDefaultUserAgent(Email::getHost()),
], \http_build_query($payload,
Alles anzeigen
Alles anzeigen
ByteMon Alpha

Öffne deiner Community das Tor zur ByteMon-Welt

Deine Mitglieder spielen mit ihrem bestehenden Konto, treffen Spieler aus anderen Communities und erkunden eine gemeinsame Welt. Der Client ist kostenlos.

ByteMon entdecken Jetzt spielen
ByteMon Alpha

Open the gateway to the ByteMon world for your community

Your members play with their existing accounts, meet players from other communities and explore one shared world. The client is free.

Discover ByteMon Play now
Vorherige offene Aufgabe Nächste offene Aufgabe

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!

Benutzerkonto erstellen Anmelden

Bereit, deine Community smarter zu machen?

Ob fertiges Produkt oder individuelle Softwarelösung – überzeuge dich selbst.

Jetzt kaufen Demo testen

Direkter Support vom Entwickler

Kategorie Verantwortlicher

  • Marcel Beckers

    Administrator

Zuletzt erledigte Aufgaben

  1. MultiHunter: „Data too long for column ‘webglFingerprint’“ bei Android-Geräten mit PowerVR-GPU Multihunter Multihunter: Forenbenachrichtigung

    Wasserlasser Erledigt am 9. November 2026 um 14:44
  2. Änderung an Rennwertung wird erst übernommen nach Renntag-änderung Wettbewerbe Basissystem Wettbewerbe: Rennen

    doerek Erledigt am 7. November 2026 um 16:30
  3. Fehlermeldung bei "Benutzer aktualisieren" Clan Verwaltung

    Gentlemantis Erledigt am 5. November 2026 um 08:51
  4. Frage KO-Turnier-Ligen-RennenTippspiel Wettbewerbe Basissystem

    Glyon Erledigt am 5. November 2026 um 07:44
  5. Implementierung des Infraction Systems Clan Verwaltung Clan Verwaltung: Foren

    Marcel Beckers Erledigt am 3. November 2026 um 14:52
  6. Fehler bei Erinnerung noch nicht getippt Wettbewerbe Basissystem

    villain Erledigt am 2. November 2026 um 12:36
YoureCom

YoureCom – Software für Vereine, Teams & Communities. Seit 2004.

Fertig eingerichtete Lösungen für Verein, Team und Community, dazu Erweiterungen für die WoltLab Suite. Aus Wuppertal, für Kunden weltweit.

Lösungen

  • Tipprunde
  • Aufgaben & Support
  • Mitglieder-Netzwerk
  • Online-Shop
  • Alle Lösungen & Preise

Für Administratoren

  • Plugins
  • Clan Verwaltung
  • Wettbewerbe
  • MultiHunter
  • ByteMon
  • Individuelle Entwicklung

YoureCom

  • Über mich
  • Shop
  • Kontakt
  • Neuigkeiten
  • GitHub

Cloud-Verträge

  • AGB Cloud
  • AVV Cloud
  • Rechtswidrige Inhalte melden
  • Datenwechsel

Rechtliches

  • Datenschutzerklärung
  • Impressum
  • AGB
  • Vertrag widerrufen
  • Abonnements kündigen
  • Widerrufsbelehrung
© 2026 YoureCom · Marcel Beckers