Download statistics page shows "not available" for GitHub-hosted releases

Aperta
#1,946 2 commenti 2 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@miaulalala ci sta già lavorando.

Dal 1/10/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

bug feature: frontend

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_TOKEN defaults to None. 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:

  1. Configure GITHUB_API_TOKEN in production, if it isn't set yet (5,000 requests/hour).
  2. Cache the counts per repository for some minutes.
  3. Stop paging when a page has fewer than per_page items, which saves one request per view in the common case.
  4. 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.

Lingua principale
Python
Stelle
398
Fork
180
Merge medio
3g 14h
PR unite (30g)
10

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di nextcloud/appstore

Tutte le issue di nextcloud/appstore

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.