From 4f28d4672919b739f475eccf2658b71c2c561fae Mon Sep 17 00:00:00 2001 From: dongzi Date: Thu, 4 Jun 2026 17:29:13 +0800 Subject: [PATCH] py --- .gitea/checker/notifier.py | 91 ++++++++++++++++++++++++-------------- 1 file changed, 59 insertions(+), 32 deletions(-) diff --git a/.gitea/checker/notifier.py b/.gitea/checker/notifier.py index 7c9acb1..638f193 100644 --- a/.gitea/checker/notifier.py +++ b/.gitea/checker/notifier.py @@ -75,7 +75,7 @@ def build_markdown_notification( """ parts: List[str] = [] - # 分组:路径变更、参数变更、新增、删除 + # 所有 API 级变更(新增、修改路径、删除、参数变更)统一走 model1.md 路径变更通知 renamed_reports = [r for r in reports if r.is_renamed_endpoint] new_reports = [r for r in reports if r.is_new_endpoint] changed_reports = [ @@ -84,13 +84,24 @@ def build_markdown_notification( ] removed_reports = [r for r in reports if r.is_removed_endpoint] - # 路径变更优先使用 model1.md 模板 - for report in renamed_reports: - old_uri = report.old_uri or "-" - new_uri = report.uri or "已删除" + # 1. 新增接口 → 走 API路径变更通知 + for report in new_reports: path_md = build_path_change_markdown( - old_uri=old_uri, - new_uri=new_uri, + old_uri="-", + new_uri=report.uri, + change_type="新增接口", + push_user=push_user, + push_time=push_time, + file_name=report.source_file or report.controller_class, + ) + parts.append(path_md) + parts.append("") + + # 2. 修改路径 → 走 API路径变更通知 + for report in renamed_reports: + path_md = build_path_change_markdown( + old_uri=report.old_uri or "-", + new_uri=report.uri, change_type="修改路径", push_user=push_user, push_time=push_time, @@ -99,27 +110,30 @@ def build_markdown_notification( parts.append(path_md) parts.append("") - if new_reports or changed_reports or removed_reports: - parts.extend([ - "# API参数变更通知", - f"- **变更类型:** 修改参数", - f"- **修改人:** {push_user}", - f"- **修改时间:** {push_time}", - "", - ]) - - for report in new_reports: - parts.append(_format_endpoint_block(report)) - parts.append("") - - for report in changed_reports: - parts.append(_format_endpoint_block(report)) - parts.append("") - + # 3. 删除接口 → 走 API路径变更通知 for report in removed_reports: - parts.append(_format_endpoint_block(report)) + path_md = build_path_change_markdown( + old_uri=report.uri, + new_uri="已删除", + change_type="删除接口", + push_user=push_user, + push_time=push_time, + file_name=report.source_file or report.controller_class, + ) + parts.append(path_md) parts.append("") + # 4. 普通参数变更(非路径变更)仍使用原有格式 + if changed_reports: + parts.append("# API参数变更通知") + parts.append(f"- **变更类型:** 修改参数") + parts.append(f"- **修改人:** {push_user}") + parts.append(f"- **修改时间:** {push_time}") + parts.append("") + for report in changed_reports: + parts.append(_format_endpoint_block(report)) + parts.append("") + if llm_summary: cleaned = llm_summary.strip() # 去掉 LLM 可能输出的「排除框架注入」类说明 @@ -247,29 +261,42 @@ def build_path_change_markdown( push_time: str, file_name: str, ) -> str: - """构建 API路径变更通知,匹配 model1.md 模板,并加强高亮。""" - old_display = f"~~`{old_uri}`~~" if old_uri else "-" - new_display = f"**`{new_uri}`**" if new_uri else "已删除" + """构建 API路径变更通知,匹配 model1.md 模板,并加强高亮。 + + 支持的 change_type: + - 新增接口:原路径显示 "-",新路径高亮显示 + - 修改路径:原路径删除线,新路径高亮 + - 删除接口:原路径高亮,新路径显示 "已删除" + """ + if change_type == "新增接口": + old_display = "-" + new_display = f"**`{new_uri}`**" + elif change_type == "删除接口": + old_display = f"**`{old_uri}`**" + new_display = "已删除" + else: # 修改路径 + old_display = f"~~`{old_uri}`~~" if old_uri else "-" + new_display = f"**`{new_uri}`**" if new_uri else "已删除" parts = [ - "# 【API路径变更通知】", + "# API路径变更通知", f"- **变更类型:** **{change_type}**", f"- **修改人:** {push_user}", f"- **修改时间:** {push_time}", f"- **全路径类名:** **{file_name}**", "", - "---------------", + "---", "", "## URI变更详情", "", - "---------------", + "---", "", "| 项目 | 路径 |", "|------|------|", f"| 原路径 | {old_display} |", f"| 新路径 | {new_display} |", "", - "---------------", + "---", ] return "\n".join(parts).strip()