更新: 2 个文件 - 2026-03-18 17:30:05
这个提交包含在:
@@ -7,7 +7,7 @@ import requests
|
|||||||
|
|
||||||
from intel.http_client import build_session, request
|
from intel.http_client import build_session, request
|
||||||
from intel.models import Candidate
|
from intel.models import Candidate
|
||||||
from intel.utils import unique
|
from intel.utils import parse_dt, unique
|
||||||
|
|
||||||
|
|
||||||
QUERY_BATCH_URL = "https://api.osv.dev/v1/querybatch"
|
QUERY_BATCH_URL = "https://api.osv.dev/v1/querybatch"
|
||||||
@@ -92,6 +92,7 @@ def fetch(system: Dict[str, Any], source: Dict[str, Any]) -> List[Candidate]:
|
|||||||
packages = system.get("package_names", [])
|
packages = system.get("package_names", [])
|
||||||
if not packages:
|
if not packages:
|
||||||
return []
|
return []
|
||||||
|
since_dt = source.get("_since_dt")
|
||||||
|
|
||||||
queries = [{"package": {"name": pkg["name"], "ecosystem": pkg["ecosystem"]}} for pkg in packages]
|
queries = [{"package": {"name": pkg["name"], "ecosystem": pkg["ecosystem"]}} for pkg in packages]
|
||||||
session = build_session(source)
|
session = build_session(source)
|
||||||
@@ -113,6 +114,9 @@ def fetch(system: Dict[str, Any], source: Dict[str, Any]) -> List[Candidate]:
|
|||||||
vuln_id = summary.get("id")
|
vuln_id = summary.get("id")
|
||||||
if not vuln_id:
|
if not vuln_id:
|
||||||
continue
|
continue
|
||||||
|
modified = parse_dt(summary.get("modified"))
|
||||||
|
if since_dt is not None and modified is not None and modified < since_dt:
|
||||||
|
continue
|
||||||
if vuln_id not in detail_cache:
|
if vuln_id not in detail_cache:
|
||||||
detail_cache[vuln_id] = _fetch_detail(session, vuln_id)
|
detail_cache[vuln_id] = _fetch_detail(session, vuln_id)
|
||||||
vuln = detail_cache[vuln_id]
|
vuln = detail_cache[vuln_id]
|
||||||
|
|||||||
@@ -143,7 +143,9 @@ def _collect_source_candidates(
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
items = handler(system, source)
|
source_with_context = dict(source)
|
||||||
|
source_with_context["_since_dt"] = since_dt
|
||||||
|
items = handler(system, source_with_context)
|
||||||
filtered = [item for item in items if _passes_since(item, since_dt, include_undated)]
|
filtered = [item for item in items if _passes_since(item, since_dt, include_undated)]
|
||||||
return filtered, None
|
return filtered, None
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户