fix
This commit is contained in:
@@ -158,10 +158,10 @@ async def get_repository_status(
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
with belief_scope("get_repository_status"):
|
||||
from . import _resolve_dashboard_id_from_ref_async
|
||||
from . import _resolve_dashboard_id_from_ref
|
||||
|
||||
try:
|
||||
dashboard_id = await _resolve_dashboard_id_from_ref_async(
|
||||
dashboard_id = _resolve_dashboard_id_from_ref(
|
||||
dashboard_ref, config_manager, env_id
|
||||
)
|
||||
return _resolve_repository_status(dashboard_id)
|
||||
|
||||
@@ -232,8 +232,8 @@ class GitPlugin(PluginBase):
|
||||
shutil.rmtree(backup_dir, ignore_errors=True)
|
||||
|
||||
try:
|
||||
repo.git.add(A=True)
|
||||
app_logger.reason("Changes staged in git", extra={"src": "_handle_sync"})
|
||||
repo.git.add(A=True, force=True)
|
||||
app_logger.reason("Changes staged in git (force)", extra={"src": "_handle_sync"})
|
||||
except Exception as ge:
|
||||
app_logger.explore(f"Failed to stage changes: {ge}", extra={"src": "_handle_sync"})
|
||||
|
||||
|
||||
@@ -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