1. YoureCom
    1. About me
  2. YoureCom Insights
  3. Work Place
    1. My Account
  4. Support
  5. GitHub
  6. Pulse
  7. ByteMon
    1. Manage Community
    2. Design Portal Identity
  • Login
  • Register
  • Cart
  • Search
Shop: WoltLab Plugin Shop Plugin
  • Everywhere
  • Shop: WoltLab Plugin Shop Plugin
  • Shop: WoltLab Plugin Shop Plugin
  • Articles
  • Pages
  • Tasks
  • Products
  • More Options
  1. YoureCom – Custom Software Solutions
  2. Workplace
  3. Shop
  4. Shop: WoltLab Plugin Shop Plugin

Integration WoltLab Upload API für automatisierte Releases #309

  • Marcel Beckers
  • March 28, 2026 at 10:34 PM
  • 0 Comments
  • Not done
🟢 Not done

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).

Quote

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,
Display More
Display More
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

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!

Register Yourself Login

Ready to make your community smarter?

Whether you need a ready-made product or a custom software solution – see for yourself.

Buy Now Try the Demo

Over 4,978 satisfied customers • Direct support from the developer

Last completed Tasks

  1. Fehlermeldung wenn Beitrag gemeldet wird Pulse – Social Feed

    bosocialc Done on September 9, 2026 at 7:30 AM
  2. Fehlende Sprachvariable Clan Verwaltung

    KleinCrafter Done on September 7, 2026 at 8:22 PM
  3. Begriff wird nicht angezeigt Definitions

    negteit Done on September 7, 2026 at 8:03 PM
  4. Begriff vorschlagen erzeugt leere Fehlermeldung Definitions

    benzel Done on September 5, 2026 at 3:47 AM
  5. Upgrade 6.2.7 - HTML Tags Definitions

    benzel Done on September 3, 2026 at 9:02 PM
  6. Verfügbarkeit auf CMS-Seiten, Artikeln und Datenbank Definitions

    benzel Done on September 3, 2026 at 5:39 AM
YoureCom – Custom Software Solutions

YoureCom – Over 20 Years of Professional Software Solutions.

Custom software solutions for communities, associations, and businesses — from Wuppertal to customers around the world.

Products

  • Pulse
  • Workplace
  • Clan Management
  • Competitions
  • Shop
  • MultiHunter

Company

  • About
  • Contact
  • YoureCom Insights
  • GitHub

Legal

  • Privacy Policy
  • Legal Notice
  • Terms & Conditions
  • Cancel Contract
  • Cancel Subscriptions
  • Right of Withdrawal
© 2026 YoureCom · Marcel Beckers