API de plugins
Todo es JSON público con CORS activado. Las herramientas hechas para Poggit funcionan cambiando el dominio.
Endpoints compatibles con Poggit
| Endpoint | Qué devuelve |
|---|---|
GET /releases.json | Todas 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.json | Los 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}.phar | El 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/plugins | Proyectos 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/releases | Publicar (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