fix
This commit is contained in:
@@ -130,9 +130,9 @@ class GitServiceGiteaMixin:
|
||||
# endregion list_gitea_repositories
|
||||
|
||||
# region create_gitea_repository [TYPE Function]
|
||||
# @PURPOSE: Create repository in Gitea for authenticated user.
|
||||
# @PURPOSE: Create repository in Gitea for authenticated user. Idempotent — returns existing repo if name already taken.
|
||||
# @PRE name is non-empty and PAT has repo creation permission.
|
||||
# @POST Returns created repository payload.
|
||||
# @POST Returns created or existing repository payload.
|
||||
# @RETURN dict
|
||||
async def create_gitea_repository(
|
||||
self, server_url: str, pat: str, name: str, private: bool = True,
|
||||
@@ -143,7 +143,19 @@ class GitServiceGiteaMixin:
|
||||
payload["description"] = description
|
||||
if default_branch:
|
||||
payload["default_branch"] = default_branch
|
||||
created = await self._gitea_request("POST", server_url, pat, "/user/repos", payload=payload)
|
||||
try:
|
||||
created = await self._gitea_request("POST", server_url, pat, "/user/repos", payload=payload)
|
||||
except HTTPException as exc:
|
||||
if exc.status_code == 409:
|
||||
logger.reason(
|
||||
f"Repository '{name}' already exists on Gitea, fetching existing repo",
|
||||
extra={"src": "create_gitea_repository"},
|
||||
)
|
||||
username = await self.get_gitea_current_user(server_url, pat)
|
||||
existing = await self._gitea_request("GET", server_url, pat, f"/repos/{username}/{name}")
|
||||
if isinstance(existing, dict):
|
||||
return existing
|
||||
raise
|
||||
if not isinstance(created, dict):
|
||||
raise HTTPException(status_code=500, detail="Unexpected Gitea response while creating repository")
|
||||
return created
|
||||
|
||||
Reference in New Issue
Block a user