VanillaMine Plugins

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

EndpointO que retorna
GET /releases.jsonTodas 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.jsonOs 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}.pharO 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/pluginsProjetos 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/releasesPublicar (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