NAV
http

Introduction

Welcome to the Wago documentation.

Authentication

Wago Addons uses API keys to allow access to the API. You can generate a new API key at our developer portal.

Wago Addons expects for the API key to be included in all API requests to the server in a header that looks like the following:

Authorization: Bearer IAmAKey

BigWigs packager

The easiest way to automate releasing your addon to Wago Addons is using the BigWigs packager. It's an extremely handy tool that helps you with even more automation than just releases, please visit their documentation to get started. Once you're set up with the packager adding Wago as a release target is incredibly easy.

Adding the Wago Project ID

Add the following line anywhere in your .toc file.

## X-Wago-ID: as3Dfg57

As a first step you need to add your addon's project id to your .toc file. You can find this ID on your developer dashboard, it's printed directly beneath your addon's name and should be an 8-digit alpha numeric string.

GitHub actions

  - name: Create Package
    uses: BigWigsMods/packager@master
    env:
      # This section might already create other env variables, just append the WAGO_API_TOKEN to these
      WAGO_API_TOKEN: ${{ secrets.WAGO_API_TOKEN }}

If you are using the packager with GitHub action please add a secret to your GitHub repository settings that you call WAGO_API_TOKEN. Once you've done that edit your GitHub Actions workflow file to export the necessary env variable. Check out the attached code example.

That's it, now upon the next push to your repository the packager will start publishing releases to Wago Addons as well!

Running the packager

export WAGO_API_TOKEN="IAmAKey"

In order to access your addon project trough our API you need to configure the packager to use your API key. To do that you simply export the WAGO_API_TOKEN environment variable containing the key.

Manual API integration

In case you are not using the packager and want to automate the upload of your releases via API Wago Addons offers a convenient multipart form API for you to use.

Prepare the metadata

{
  "label": "1.2.3", // replace with your release name
  "stability": "stable", // one of: stable, beta, alpha
  "changelog": "#Changelog...", // your release changelog as a markdown string

  // You have to add at least one of the following game properties.
  "supported_retail_patch": "9.1.0",
  "supported_wotlk_patch": "3.4.0",
  "supported_bc_patch": "2.5.1",
  "supported_classic_patch": "1.13.7"
}

The API expects release metadata to be a JSON string in one of the properties. The JSON object looks like show in the code example.

You can find all available patch versions using our API at https://addons.wago.io/api/data/game. Generally we follow Blizzard's SemVer versioning of the WoW client.

With the upcoming addition of multi interface support we already allow to publish addons to target all the game flavors. You can find a detailed explanation of this here.

However, if you prefer to publish separate artifacts for the different game flavors please send a separate release upload request per targeted client.

Sending the upload request

HTTP Request

  curl -f -X POST \
      -F "metadata=$METADATASTRING \
      -F "file=@<path-to-file>" \
      -H "authorization: Bearer $WAGO_API_KEY"
      -H "accept: application/json" \
      https://addons.wago.io/api/projects/<project id>/version

POST https://addons.wago.io/api/projects/<project id>/version

Headers

Name Value Description
Authorization Your Wago Addons API token You can find your token here.
Accept application/json This should be set to your preferred response Content-Type, typically application/json.

Parameters

Name Value
file The release file
metadata The JSON object described above as string