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

オープン
#1,946 コメント 2 件 リアクション 2 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@miaulalala がすでに取り組んでいます。

2026年10月1日 から。

評価

この issue はまだ評価されていません。

説明

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.

主要言語
Python
スター
398
フォーク
180
平均マージ
3日 14時間
マージ済み PR(30日)
10

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

nextcloud/appstore のほかの issue

nextcloud/appstore の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。