Merge 46c8aa3767e8d7e6c566dba248b061bf0c8ada3b into 51c4aa4500132612c5e39d8f33bbc60f4e32e3a7

This commit is contained in:
jimorsm 2025-04-14 22:10:43 +08:00 committed by GitHub
commit bc6a462437
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -8,7 +8,7 @@ from pathlib import Path
from datetime import datetime
import tempfile
import json
import re
import requests
@ -203,9 +203,21 @@ def main():
print(f"syncing {repo} to {repo_dir}")
try:
r = github_get(f"{args.base_url}{repo}/releases")
headers = {"Accept": "application/vnd.github+json"}
releases = []
url_str = f"{args.base_url}{repo}/releases"
pattern = re.compile(r'.*<(.*?)>;\s*rel="next"')
while url_str:
r = github_get(url_str, headers=headers)
r.raise_for_status()
releases = r.json()
releases.extend(r.json())
next_url = re.findall(pattern=pattern,string=r.headers["link"])
if versions > 0 and len(releases) > versions:
url_str = None
elif next_url:
url_str = next_url[0]
else:
url_str = None
except:
print(f"Error: cannot download metadata for {repo}:\n{traceback.format_exc()}")
break