Download statistics page shows "not available" for GitHub-hosted releases
Los mantenedores suelen responder en 1 día
@miaulalala ya está trabajando en esto.
Desde el 1/10/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
The new download statistics page from #1796 (/apps/<id>/downloads) shows "— not available" for every release of my app, although all releases are GitHub release assets and GitHub reports counts for them.
App: extended_occweb, checked 2026-10-01
| Version | Download URL in the store | Page shows | GitHub API download_count |
|---|---|---|---|
| 0.4.7 | https://github.com/dillardblom/occweb/releases/download/v0.4.7/extended_occweb-0.4.7.tar.gz |
not available | 27 |
| 0.4.6 | …/releases/download/v0.4.6/extended_occweb-0.4.6.tar.gz |
not available | 21 |
| 0.4.5 | …/releases/download/v0.4.5/extended_occweb-0.4.5.tar.gz |
not available | 7 |
The URLs match _GITHUB_RELEASE_URL_RE, and the asset names returned by GET /repos/dillardblom/occweb/releases are exactly the file names in the URLs, so the lookup in get_download_counts() should find them. The repository is public.
That leaves the GitHub API call itself. get_download_counts() catches every requests.RequestException and silently returns None for all releases, so any failure looks like this. A likely cause, from reading the code:
GITHUB_API_TOKENdefaults toNone. Without a token, GitHub allows 60 requests per hour per IP, shared by everything on the app store server.- Each view of the page, and each call to the API endpoint, makes at least two uncached requests (
get_releases()keeps paging until it gets an empty page).
So the limit would be used up quickly once a few developers open the page.
Suggestions:
- Configure
GITHUB_API_TOKENin production, if it isn't set yet (5,000 requests/hour). - Cache the counts per repository for some minutes.
- Stop paging when a page has fewer than
per_pageitems, which saves one request per view in the common case. - Log the exception instead of passing silently, so this shows up in the server logs.
I can't see the server logs, so the rate limit is an educated guess; the log line from (4) would confirm or rule it out.
- Lenguaje dominante
- Python
- Estrellas
- 398
- Forks
- 180
- Merge medio
- 2 d 15 h
- PR fusionados (30 d)
- 15
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de nextcloud/appstore
-
bug priority: medium
Dificultad 3/5 1-2 días Aptitud para principiantes 56/100
nextcloud/appstore#1973 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Releases Page rework (improvements for mobile + more)Posiblemente ocupada @joshuabke la tomó hace 13 días. Abiertoenhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
nextcloud/appstore#1965 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
nextcloud/appstore#1951 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
nextcloud/appstore#1948 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
nextcloud/appstore#1914 · 1 comentario · 2 reacciones ·
Los mantenedores suelen responder en 1 día
Todos los issues de nextcloud/appstore
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
FAIRmat-NFDI/pynxtools#861 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
NVIDIA/nsight-python#88 ·
Los mantenedores suelen responder en 1 día
-
Criteria can pass when the deliverable is missingPosiblemente ocupada @clementtisseau la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
harveyai/harvey-labs#217 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
priority/medium roadmap/v1.1.1 stakeholder/rapr type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
databrickslabs/ontos#1420 ·
Los mantenedores suelen responder en 3 días