From 69c26b203f62ce000797fe60ea4fbd81b56ec56b Mon Sep 17 00:00:00 2001 From: massy-o Date: Thu, 14 May 2026 16:57:26 +0900 Subject: [PATCH 1/2] Add timeout to contributor avatar fetch --- shell/contributors.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/shell/contributors.py b/shell/contributors.py index 84f0474c2..1d8ed49bf 100644 --- a/shell/contributors.py +++ b/shell/contributors.py @@ -7,6 +7,8 @@ import requests from PIL import Image +REQUEST_TIMEOUT_SECONDS = 10 + def main(directory): contributors = [] @@ -38,7 +40,9 @@ def main(directory): for index, contributor in enumerate(contributors): file_name = os.path.join(directory, str(index) + ".jpeg") - response = requests.get(contributor["avatar_url"]) + response = requests.get( + contributor["avatar_url"], timeout=REQUEST_TIMEOUT_SECONDS + ) file = open(file_name, "wb") file.write(response.content) file.close() From 1e1baefb30643d94eee5c2ff576a6e4c911c9685 Mon Sep 17 00:00:00 2001 From: massy-o Date: Thu, 14 May 2026 17:55:56 +0900 Subject: [PATCH 2/2] Fail fast on avatar download errors --- shell/contributors.py | 1 + 1 file changed, 1 insertion(+) diff --git a/shell/contributors.py b/shell/contributors.py index 1d8ed49bf..d3e94948a 100644 --- a/shell/contributors.py +++ b/shell/contributors.py @@ -43,6 +43,7 @@ def main(directory): response = requests.get( contributor["avatar_url"], timeout=REQUEST_TIMEOUT_SECONDS ) + response.raise_for_status() file = open(file_name, "wb") file.write(response.content) file.close()