fix: send the github token on every api call

This commit is contained in:
Abdessamad Derraz committed 2026-10-10 12:17:21 +02:00
1 parent fd8db894d8
commit 6a39264fa6
4 files changed
+38 -16

No files matched your search

+10 -7
View File
@@ -88,13 +88,16 @@ class Pack:
def get_latest_release() -> dict:
"""Fetch latest release info from GitHub API."""
url = f"{API}/repos/{REPO}/releases/latest"
req = urllib.request.Request(
url,
headers={
"User-Agent": "retrobios-downloader/1.0",
"Accept": "application/vnd.github.v3+json",
},
)
headers = {
"User-Agent": "retrobios-downloader/1.0",
"Accept": "application/vnd.github.v3+json",
}
# The anonymous quota is 60 calls an hour per address. The token goes to
# GitHub's API only: RETROBIOS_API can name any host.
token = os.environ.get("GITHUB_TOKEN")
if token and urllib.parse.urlsplit(url).hostname == "api.github.com":
headers["Authorization"] = f"Bearer {token}"
req = urllib.request.Request(url, headers=headers)
try:
with urllib.request.urlopen(req, timeout=30) as resp:
+8 -8
View File
@@ -20,7 +20,12 @@ import urllib.error
import urllib.request
try:
from .base_scraper import BaseScraper, BiosRequirement, fetch_github_latest_version
from .base_scraper import (
BaseScraper,
BiosRequirement,
fetch_github_latest_version,
github_headers,
)
except ImportError:
# Allow running directly: python scripts/scraper/coreinfo_scraper.py
import os
@@ -30,6 +35,7 @@ except ImportError:
BaseScraper,
BiosRequirement,
fetch_github_latest_version,
github_headers,
)
PLATFORM_NAME = "libretro_coreinfo"
@@ -209,13 +215,7 @@ class Scraper(BaseScraper):
# Use the tree API to get all files at once
url = f"{GITHUB_API}/git/trees/master?recursive=1"
try:
req = urllib.request.Request(
url,
headers={
"User-Agent": "retrobios-scraper/1.0",
"Accept": "application/vnd.github.v3+json",
},
)
req = urllib.request.Request(url, headers=github_headers())
with urllib.request.urlopen(req, timeout=30) as resp:
data = json.loads(resp.read())
+3 -1
View File
@@ -318,7 +318,9 @@ FBNEO_DATS_API = "https://api.github.com/repos/libretro/FBNeo/contents/dats"
def _api_json(url: str) -> object:
request = urllib.request.Request(url, headers={"User-Agent": "retrobios"})
from .base_scraper import github_headers
request = urllib.request.Request(url, headers=github_headers())
with urllib.request.urlopen(request, timeout=60) as response:
return json.load(response)