mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-26 13:47:20 -05:00
fix: name a repository the forge renamed
GitHub, GitLab and Gitea redirect a renamed repository, and every call follows the redirect: AloysHF/NicaiEmu answers as AloysHF/CoolbarEmu and the profile read as current. profile_sync now reads the name the forge answers under and counts a move as review work.
This commit is contained in:
1 parent
d6fc66274f
commit
b784a73d5c
4 files changed
+99
-2
No files matched your search
@@ -455,6 +455,25 @@ def _first_sha(payload: object) -> str | None:
|
||||
return None
|
||||
|
||||
|
||||
def current_slug(repo: Repo, cache_dir: str, offline: bool = False) -> str | None:
|
||||
"""The owner/name the forge answers for a repository today.
|
||||
|
||||
A renamed or transferred repository keeps answering under its old name:
|
||||
GitHub redirects (AloysHF/NicaiEmu answers as AloysHF/CoolbarEmu), GitLab
|
||||
and Gitea do the same. Every later call follows the redirect, so only the
|
||||
name in the payload tells the project moved.
|
||||
"""
|
||||
if repo.family == "gitlab":
|
||||
url, key = f"{repo.api_base}/projects/{_project(repo)}", "path_with_namespace"
|
||||
else:
|
||||
url, key = f"{repo.api_base}/repos/{repo.slug}", "full_name"
|
||||
payload = _api(url, cache_dir, offline, MOVING_TTL)
|
||||
if not isinstance(payload, dict):
|
||||
return None
|
||||
value = payload.get(key)
|
||||
return str(value) if value else None
|
||||
|
||||
|
||||
def resolve_head(
|
||||
repo: Repo, cache_dir: str, offline: bool = False, branch: str | None = None
|
||||
) -> str | None:
|
||||
|
||||
Reference in new issue
Block a user