Gestionar versiones y descargas de extensiones de browser desde una API JSON.
Ver /api/extensions.jsonGET /api/extensions.json devuelve un objeto JSON con cada extensión y su última versión:
{
"com.ejemplo.extension": {
"version": "1.2.0",
"url": "https://github.com/user/repo/releases/download/v1.2.0/extension.zip"
},
"org.otra.app": {
"version": "3.0.1",
"url": "https://cdn.example.com/app-3.0.1.crx"
}
} POST /api/admin/extensions.json
Registra una extensión nueva. Solo necesita el ID.
{
"id": "com.ejemplo.extension"
} POST /api/admin/versions.json
Añade una versión a una extensión ya existente.
{
"extId": "com.ejemplo.extension",
"version": "1.2.0",
"url": "https://github.com/user/repo/releases/download/v1.2.0/extension.zip"
} POST /api/publish.json
Usa API Key en vez de sesión. Ideal para GitHub Actions. La extensión se crea automáticamente si no existe.
{
"extId": "com.ejemplo.extension",
"version": "1.2.0",
"url": "https://github.com/user/repo/releases/download/v1.2.0/extension.zip"
} curl -s -X POST https://extension-updater.pages.dev/api/publish.json \
-H "Content-Type: application/json" \
-H "X-API-Key: $EXT_UPDATER_KEY" \
-d '{
"extId": "com.ejemplo.extension",
"version": "1.0.0",
"url": "https://github.com/user/repo/releases/download/v1.0.0/extension.zip"
}' Guarda la API Key como secret en el repo (Settings > Secrets > Actions):
name: Publish extension
on:
release:
types: [published]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Publish to Extension Updater
run: |
curl -s -X POST https://extension-updater.pages.dev/api/publish.json \
-H "Content-Type: application/json" \
-H "X-API-Key: ${{ secrets.EXT_UPDATER_KEY }}" \
-d '{
"extId": "com.ejemplo.extension",
"version": "${{ github.event.release.tag_name }}",
"url": "${{ github.event.release.html_url }}"
}' | Código | Causa |
|---|---|
401 | Sesión no válida o no autenticado |
404 | La extensión no existe (creala primero) |
409 | La extensión ya existe |
400 | Campos requeridos faltantes o formato inválido |