1
0
Fork 0
mirror of https://github.com/YunoHost/apps.git synced 2024-09-03 20:06:07 +02:00
This commit is contained in:
tituspijean 2024-08-31 09:48:29 +02:00 committed by GitHub
commit d06acface0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -8,13 +8,13 @@ from bs4 import BeautifulSoup
from urllib.parse import urljoin
import requests
ITEMS_LIMIT=100
class RefType(Enum):
tags = 1
commits = 2
releases = 3
class GithubAPI:
def __init__(self, upstream: str, auth: Optional[tuple[str, str]] = None):
self.upstream = upstream.strip("/")
@ -32,7 +32,7 @@ class GithubAPI:
def tags(self) -> list[dict[str, str]]:
"""Get a list of tags for project."""
return self.internal_api(f"repos/{self.upstream_repo}/tags")
return self.internal_api(f"repos/{self.upstream_repo}/tags?per_page={ITEMS_LIMIT}"
def commits(self) -> list[dict[str, Any]]:
"""Get a list of commits for project."""
@ -40,7 +40,7 @@ class GithubAPI:
def releases(self) -> list[dict[str, Any]]:
"""Get a list of releases for project."""
return self.internal_api(f"repos/{self.upstream_repo}/releases?per_page=100")
return self.internal_api(f"repos/{self.upstream_repo}/releases?per_page={ITEMS_LIMIT}"
def url_for_ref(self, ref: str, ref_type: RefType) -> str:
"""Get a URL for a ref."""
@ -102,7 +102,7 @@ class GitlabAPI:
def tags(self) -> list[dict[str, str]]:
"""Get a list of tags for project."""
return self.internal_api(f"projects/{self.project_id}/repository/tags")
return self.internal_api(f"projects/{self.project_id}/repository/tags?per_page={ITEMS_LIMIT}"
def commits(self) -> list[dict[str, Any]]:
"""Get a list of commits for project."""
@ -118,7 +118,7 @@ class GitlabAPI:
def releases(self) -> list[dict[str, Any]]:
"""Get a list of releases for project."""
releases = self.internal_api(f"projects/{self.project_id}/releases")
releases = self.internal_api(f"projects/{self.project_id}/releases?per_page={ITEMS_LIMIT}"
retval = []
for release in releases:
r = {
@ -186,7 +186,7 @@ class GiteaForgejoAPI:
def tags(self) -> list[dict[str, Any]]:
"""Get a list of tags for project."""
return self.internal_api(f"repos/{self.project_path}/tags")
return self.internal_api(f"repos/{self.project_path}/tags?limit={ITEMS_LIMIT}"
def commits(self) -> list[dict[str, Any]]:
"""Get a list of commits for project."""
@ -194,7 +194,7 @@ class GiteaForgejoAPI:
def releases(self) -> list[dict[str, Any]]:
"""Get a list of releases for project."""
return self.internal_api(f"repos/{self.project_path}/releases")
return self.internal_api(f"repos/{self.project_path}/releases?limit={ITEMS_LIMIT}"
def url_for_ref(self, ref: str, _: RefType) -> str:
"""Get a URL for a ref."""