revert: remove pagination, only fetch first 100 releases
This commit is contained in:
parent
9d489247f2
commit
680094b87d
@ -124,45 +124,29 @@ class GitHubClient(BaseHTTPClient):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
def get_releases(
|
def get_releases(
|
||||||
self, owner: str, repo: str, per_page: int = 100, max_pages: int = 10
|
self, owner: str, repo: str, per_page: int = 100
|
||||||
) -> list[dict[str, Any]]:
|
) -> list[dict[str, Any]]:
|
||||||
"""Get all releases for a repository with pagination.
|
"""Get releases for a repository (first page only).
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
owner: Repository owner.
|
owner: Repository owner.
|
||||||
repo: Repository name.
|
repo: Repository name.
|
||||||
per_page: Number of releases per page (max 100).
|
per_page: Number of releases to fetch (max 100).
|
||||||
max_pages: Maximum number of pages to fetch.
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
List of release data dictionaries.
|
List of release data dictionaries.
|
||||||
"""
|
"""
|
||||||
url = GitHubAPI.releases(owner, repo)
|
url = GitHubAPI.releases(owner, repo)
|
||||||
all_releases: list[dict[str, Any]] = []
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
for page in range(1, max_pages + 1):
|
|
||||||
response = self.get(
|
response = self.get(
|
||||||
url,
|
url,
|
||||||
headers=self._headers,
|
headers=self._headers,
|
||||||
params={"per_page": per_page, "page": page},
|
params={"per_page": per_page},
|
||||||
)
|
)
|
||||||
releases = response.json()
|
return response.json()
|
||||||
|
|
||||||
if not releases:
|
|
||||||
break
|
|
||||||
|
|
||||||
all_releases.extend(releases)
|
|
||||||
|
|
||||||
# If we got fewer than per_page, we've reached the end
|
|
||||||
if len(releases) < per_page:
|
|
||||||
break
|
|
||||||
|
|
||||||
logger.debug(f"Fetched {len(all_releases)} releases for {owner}/{repo}")
|
|
||||||
return all_releases
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(f"Failed to get releases for {owner}/{repo}: {e}")
|
logger.warning(f"Failed to get releases for {owner}/{repo}: {e}")
|
||||||
return all_releases if all_releases else []
|
return []
|
||||||
|
|
||||||
def get_release(
|
def get_release(
|
||||||
self, owner: str, repo: str, tag: str
|
self, owner: str, repo: str, tag: str
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user