VanillaMine Plugins

API de plugins

Todo es JSON público con CORS activado. Las herramientas hechas para Poggit funcionan cambiando el dominio.

Endpoints compatibles con Poggit

EndpointQué devuelve
GET /releases.jsonTodas las versiones públicas, con los mismos campos que Poggit (name, version, artifact_url, api[{from,to}], deps, categories, state…) más type, sha256, size, advisory. Filtros: ?name=, ?id=, ?latest-only.
GET /releases.min.jsonLos mismos datos (se mantiene por compatibilidad).
GET /get/{name}Redirige al .phar estable más reciente. ?prerelease permite betas.
GET /get/{name}/{version}Redirige a esa versión.
GET /r/{id}/{file}.pharEl archivo (cabecera X-Checksum-Sha256).
GET /v.dl/{virion}/{constraint}La virion más reciente que cumpla ^1.2.0, ~1.2, 1.2.3, *.

v1

GET /api/v1/pluginsProyectos con su versión más reciente. Filtros: q, category, type=plugin|library, sort=downloads|updated|new|rating|name, api=5.46.0.
GET /api/v1/plugins/{name}Un proyecto con todas sus versiones públicas.
POST /api/v1/releasesPublicar (requiere token). Campos multipart: phar o git_url + git_ref [+ git_path]; opcionales tagline, description, changelog, major_category, categories, keywords, license, repo_url, api_to, pre_release. Responde 201 con el estado, o 422 con las comprobaciones fallidas.

Publicar desde el CI

Crea un token en tu panel y guárdalo como variable enmascarada del CI (HUB_TOKEN).

Compila el .phar en un paso anterior del job y luego súbelo:

GitLab CI

publish:
  image: alpine:3.20
  rules:
    - if: $CI_COMMIT_TAG
  script:
    # ...the steps that build build/MyPlugin.phar...
    - apk add --no-cache curl
    - curl --fail-with-body -H "Authorization: Bearer $HUB_TOKEN"
        -F phar=@build/MyPlugin.phar
        -F changelog="$CI_COMMIT_TAG_MESSAGE"
        https://plugins.vanillamine.com/api/v1/releases

GitHub Actions

on: { push: { tags: ["v*"] } }
jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      # ...the steps that build build/MyPlugin.phar...
      - run: >
          curl --fail-with-body -H "Authorization: Bearer ${{ secrets.HUB_TOKEN }}"
          -F phar=@build/MyPlugin.phar
          https://plugins.vanillamine.com/api/v1/releases