API de plugins
Tudo é JSON público com CORS ativado. As ferramentas feitas para o Poggit funcionam trocando o domínio.
Endpoints compatíveis com o Poggit
| Endpoint | O que retorna |
|---|---|
GET /releases.json | Todas as versões públicas, com os mesmos campos do Poggit (name, version, artifact_url, api[{from,to}], deps, categories, state…) mais type, sha256, size, advisory. Filtros: ?name=, ?id=, ?latest-only. |
GET /releases.min.json | Os mesmos dados (mantido por compatibilidade). |
GET /get/{name} | Redireciona para o .phar estável mais recente. ?prerelease permite betas. |
GET /get/{name}/{version} | Redireciona para essa versão. |
GET /r/{id}/{file}.phar | O arquivo (cabeçalho X-Checksum-Sha256). |
GET /v.dl/{virion}/{constraint} | A virion mais recente que atende a ^1.2.0, ~1.2, 1.2.3, *. |
v1
GET /api/v1/plugins | Projetos com a versão mais recente. Filtros: q, category, type=plugin|library, sort=downloads|updated|new|rating|name, api=5.46.0. |
GET /api/v1/plugins/{name} | Um projeto com todas as suas versões públicas. |
POST /api/v1/releases | Publicar (requer token). Campos multipart: phar ou git_url + git_ref [+ git_path]; opcionais tagline, description, changelog, major_category, categories, keywords, license, repo_url, api_to, pre_release. Responde 201 com o estado, ou 422 com as verificações que falharam. |
Publicar a partir do CI
Crie um token no seu painel e salve-o como variável mascarada do CI (HUB_TOKEN).
Compile o .phar em uma etapa anterior do job e depois envie:
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