更新: 1 个文件 - 2026-03-18 11:26:00

这个提交包含在:
hao
2026-03-18 11:26:00 -07:00
父节点 dbf9c375bc
当前提交 1e9522e1a8

查看文件

@@ -70,6 +70,45 @@ def _merge_preserved_records(
return preserved_advisories + advisories, preserved_triage + triage
def _merge_advisory_records(
advisories: List[AdvisoryRecord],
incoming: List[AdvisoryRecord],
) -> List[AdvisoryRecord]:
merged: Dict[str, AdvisoryRecord] = {item.canonical_id: item for item in advisories}
for item in incoming:
merged[item.canonical_id] = item
return sorted(merged.values(), key=lambda item: (item.system_id, item.canonical_id))
def _merge_triage_records(
triage: List[Dict[str, Any]],
incoming: List[Dict[str, Any]],
) -> List[Dict[str, Any]]:
merged: Dict[str, Dict[str, Any]] = {}
for item in triage:
canonical_id = item.get("canonical_id")
if canonical_id:
merged[canonical_id] = item
for item in incoming:
canonical_id = item.get("canonical_id")
if canonical_id:
merged[canonical_id] = item
return sorted(
merged.values(),
key=lambda item: (item.get("system_id", ""), item.get("canonical_id", "")),
)
def _merge_existing_registry(
advisories: List[AdvisoryRecord],
triage: List[Dict[str, Any]],
) -> tuple[List[AdvisoryRecord], List[Dict[str, Any]]]:
return (
_merge_advisory_records(_load_existing_advisories(), advisories),
_merge_triage_records(_load_existing_triage(), triage),
)
def _load_existing_selection(
full_source_map: Dict[str, Any],
source_map: Dict[str, Any],
@@ -202,10 +241,10 @@ def pipeline(
advisories = route_advisories(source_map, advisories)
if hotlane_only:
advisories, triage = _select_hotlane(advisories, triage)
advisories, triage = _merge_existing_registry(advisories, triage)
change_summary = _summarize_changes(advisories)
render_map = source_map
if len(source_map["systems"]) != len(full_source_map["systems"]):
advisories, triage = _merge_preserved_records(source_map, advisories, triage)
render_map = full_source_map
_write_outputs(render_map, advisories, triage, failures, change_summary)
return advisories, triage, failures, change_summary