py
All checks were successful
API接口参数变更检测 / api-param-check (push) Successful in 16s

This commit is contained in:
2026-06-04 17:29:13 +08:00
parent 2d7abbb4ff
commit 4f28d46729

View File

@@ -75,7 +75,7 @@ def build_markdown_notification(
""" """
parts: List[str] = [] parts: List[str] = []
# 分组:路径变更、参数变更、新增、删除 # 所有 API 级变更(新增、修改路径、删除、参数变更)统一走 model1.md 路径变更通知
renamed_reports = [r for r in reports if r.is_renamed_endpoint] renamed_reports = [r for r in reports if r.is_renamed_endpoint]
new_reports = [r for r in reports if r.is_new_endpoint] new_reports = [r for r in reports if r.is_new_endpoint]
changed_reports = [ changed_reports = [
@@ -84,13 +84,24 @@ def build_markdown_notification(
] ]
removed_reports = [r for r in reports if r.is_removed_endpoint] removed_reports = [r for r in reports if r.is_removed_endpoint]
# 路径变更优先使用 model1.md 模板 # 1. 新增接口 → 走 API路径变更通知
for report in renamed_reports: for report in new_reports:
old_uri = report.old_uri or "-"
new_uri = report.uri or "已删除"
path_md = build_path_change_markdown( path_md = build_path_change_markdown(
old_uri=old_uri, old_uri="-",
new_uri=new_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="修改路径", change_type="修改路径",
push_user=push_user, push_user=push_user,
push_time=push_time, push_time=push_time,
@@ -99,27 +110,30 @@ def build_markdown_notification(
parts.append(path_md) parts.append(path_md)
parts.append("") parts.append("")
if new_reports or changed_reports or removed_reports: # 3. 删除接口 → 走 API路径变更通知
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("")
for report in removed_reports: 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("") 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: if llm_summary:
cleaned = llm_summary.strip() cleaned = llm_summary.strip()
# 去掉 LLM 可能输出的「排除框架注入」类说明 # 去掉 LLM 可能输出的「排除框架注入」类说明
@@ -247,29 +261,42 @@ def build_path_change_markdown(
push_time: str, push_time: str,
file_name: str, file_name: str,
) -> str: ) -> str:
"""构建 API路径变更通知匹配 model1.md 模板,并加强高亮。""" """构建 API路径变更通知匹配 model1.md 模板,并加强高亮。
old_display = f"<font color=\"warning\">~~`{old_uri}`~~</font>" if old_uri else "-"
new_display = f"<font color=\"info\">**`{new_uri}`**</font>" if new_uri else "<font color=\"comment\">已删除</font>" 支持的 change_type
- 新增接口:原路径显示 "-",新路径高亮显示
- 修改路径:原路径删除线,新路径高亮
- 删除接口:原路径高亮,新路径显示 "已删除"
"""
if change_type == "新增接口":
old_display = "-"
new_display = f"<font color=\"info\">**`{new_uri}`**</font>"
elif change_type == "删除接口":
old_display = f"<font color=\"warning\">**`{old_uri}`**</font>"
new_display = "<font color=\"comment\">已删除</font>"
else: # 修改路径
old_display = f"<font color=\"warning\">~~`{old_uri}`~~</font>" if old_uri else "-"
new_display = f"<font color=\"info\">**`{new_uri}`**</font>" if new_uri else "<font color=\"comment\">已删除</font>"
parts = [ parts = [
"# API路径变更通知", "# API路径变更通知",
f"- **变更类型:** <font color=\"warning\">**{change_type}**</font>", f"- **变更类型:** <font color=\"warning\">**{change_type}**</font>",
f"- **修改人:** {push_user}", f"- **修改人:** {push_user}",
f"- **修改时间:** {push_time}", f"- **修改时间:** {push_time}",
f"- **全路径类名:** <font color=\"info\">**{file_name}**</font>", f"- **全路径类名:** <font color=\"info\">**{file_name}**</font>",
"", "",
"---------------", "---",
"", "",
"## URI变更详情", "## URI变更详情",
"", "",
"---------------", "---",
"", "",
"| 项目 | 路径 |", "| 项目 | 路径 |",
"|------|------|", "|------|------|",
f"| 原路径 | {old_display} |", f"| 原路径 | {old_display} |",
f"| 新路径 | {new_display} |", f"| 新路径 | {new_display} |",
"", "",
"---------------", "---",
] ]
return "\n".join(parts).strip() return "\n".join(parts).strip()