lanrtop
|
c1632a0549
|
fix(gitea-integration): 删除项目登记时同一事务解除 Gitea 绑定,轮询跳过已删除项目的遗留绑定(G8)
删除登记(UI 删除项目、MCP unregister_project)原来不清 gitea_repos,
后台轮询每 10 分钟仍把 commit 与 PR 事件写到已删除的项目 ID 下。
- gitea:解绑本体拆为 remove_repo_link_records(只动数据库,可进调用方事务)
与 cleanup_removed_repo_link(提交后尽力删 Gitea 侧 webhook 与本机签名凭证),
UI 解绑 gitea_unlink_repo 与删除登记共用
- projects:抽出 delete_project_records(连接注入),关联表、Gitea 绑定、
workspace、孤儿 profile 同一事务删除;delete_project 提交后再做 Gitea 外部清理
- 轮询兜底:load_poll_targets 把所属项目已不存在的遗留绑定排除在 commit / PR
轮询之外,每个绑定每次运行只记一次 warn
- 契约:unregister_project 描述与 project-context.yaml 同步
回归测试 deleting_project_registration_unbinds_its_gitea_repo 修复前失败、修复后通过;
变异验证通过;全量 cargo test 307 passed / 0 failed / 5 ignored。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 10:18:49 +09:00 |
|