From 682a70b9af568abeb0b15994ce032fe02e8b25f0 Mon Sep 17 00:00:00 2001 From: repair-agent Date: Sat, 28 Feb 2026 14:47:46 +0800 Subject: [PATCH] fix: auto repair bugs #55 --- app/gitea_client.py | 7 ++++--- app/main.py | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/gitea_client.py b/app/gitea_client.py index c07bf1c..5c683e4 100644 --- a/app/gitea_client.py +++ b/app/gitea_client.py @@ -60,10 +60,11 @@ class GiteaClient: response.raise_for_status() return True, "PR 合并成功" except httpx.HTTPStatusError as e: - error_msg = f"HTTP {e.response.status_code}" if e.response.status_code == 405: - error_msg += ": PR 已经合并或已关闭" - elif e.response.status_code == 409: + # PR 已经被合并或关闭,视为成功(期望的结果已达成) + return True, "PR 已经被合并或关闭" + error_msg = f"HTTP {e.response.status_code}" + if e.response.status_code == 409: error_msg += ": 存在合并冲突" elif e.response.status_code == 403: error_msg += ": Token 权限不足" diff --git a/app/main.py b/app/main.py index c3dd92a..c3a3b67 100644 --- a/app/main.py +++ b/app/main.py @@ -354,7 +354,7 @@ async def approve_report(report_id: int, session: AsyncSession = Depends(get_ses gitea_client = GiteaClient() success, message = gitea_client.merge_pr_by_url(report.pr_url) if not success: - raise HTTPException(status_code=500, detail=f"合并 PR 失败: {message}") + raise HTTPException(status_code=502, detail=f"合并 PR 失败: {message}") # 更新报告状态 report.status = LogStatus.FIXED -- 2.47.2