更新: 2531 个文件 - 2026-03-17 21:00:03
这个提交包含在:
@@ -4,12 +4,13 @@ from typing import Any, Dict, List
|
||||
|
||||
import requests
|
||||
|
||||
from intel.http_client import request
|
||||
from intel.models import Candidate
|
||||
from intel.utils import unique
|
||||
|
||||
|
||||
def fetch(system: Dict[str, Any], source: Dict[str, Any]) -> List[Candidate]:
|
||||
response = requests.get(source["url"], headers={"User-Agent": "websafe-intel"}, timeout=30)
|
||||
response = request("GET", source["url"])
|
||||
response.raise_for_status()
|
||||
payload = response.json()
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ from typing import Any, Dict, List
|
||||
|
||||
import requests
|
||||
|
||||
from intel.http_client import request
|
||||
from intel.models import Candidate
|
||||
from intel.utils import unique
|
||||
|
||||
@@ -27,11 +28,11 @@ def fetch(system: Dict[str, Any], source: Dict[str, Any]) -> List[Candidate]:
|
||||
candidates: List[Candidate] = []
|
||||
|
||||
while True:
|
||||
response = requests.get(
|
||||
response = request(
|
||||
"GET",
|
||||
API_URL,
|
||||
headers=headers,
|
||||
params={"per_page": 100, "page": page, "ecosystem": source.get("ecosystem")},
|
||||
timeout=30,
|
||||
)
|
||||
if response.status_code == 403 and "rate limit" in response.text.lower():
|
||||
raise requests.HTTPError("GitHub advisory rate limit exceeded; set GITHUB_TOKEN for higher quota", response=response)
|
||||
|
||||
@@ -7,6 +7,7 @@ from urllib.parse import urljoin
|
||||
|
||||
import requests
|
||||
|
||||
from intel.http_client import request
|
||||
from intel.models import Candidate
|
||||
from intel.utils import unique
|
||||
|
||||
@@ -16,7 +17,7 @@ TAG_RE = re.compile(r"<[^>]+>")
|
||||
|
||||
|
||||
def fetch(system: Dict[str, Any], source: Dict[str, Any]) -> List[Candidate]:
|
||||
response = requests.get(source["url"], headers={"User-Agent": "websafe-intel"}, timeout=30)
|
||||
response = request("GET", source["url"])
|
||||
response.raise_for_status()
|
||||
html = response.text
|
||||
keywords = {kw.lower() for kw in source.get("keywords", [])}
|
||||
|
||||
@@ -5,6 +5,7 @@ from typing import Any, Dict, List
|
||||
|
||||
import requests
|
||||
|
||||
from intel.http_client import request
|
||||
from intel.models import Candidate
|
||||
from intel.utils import unique
|
||||
|
||||
@@ -22,7 +23,7 @@ def fetch(system: Dict[str, Any], source: Dict[str, Any]) -> List[Candidate]:
|
||||
if api_key:
|
||||
headers["apiKey"] = api_key
|
||||
|
||||
response = requests.get(API_URL, headers=headers, params=params, timeout=30)
|
||||
response = request("GET", API_URL, headers=headers, params=params)
|
||||
response.raise_for_status()
|
||||
payload = response.json()
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ from typing import Any, Dict, List
|
||||
|
||||
import requests
|
||||
|
||||
from intel.http_client import build_session, request
|
||||
from intel.models import Candidate
|
||||
from intel.utils import unique
|
||||
|
||||
@@ -16,10 +17,11 @@ NUMERIC_SCORE_RE = re.compile(r"([0-9]+(?:\.[0-9]+)?)")
|
||||
|
||||
|
||||
def _fetch_detail(session: requests.Session, vuln_id: str) -> Dict[str, Any]:
|
||||
response = session.get(
|
||||
response = request(
|
||||
"GET",
|
||||
DETAIL_URL.format(vuln_id=vuln_id),
|
||||
session=session,
|
||||
headers={"User-Agent": "websafe-intel"},
|
||||
timeout=30,
|
||||
)
|
||||
response.raise_for_status()
|
||||
return response.json()
|
||||
@@ -92,12 +94,13 @@ def fetch(system: Dict[str, Any], source: Dict[str, Any]) -> List[Candidate]:
|
||||
return []
|
||||
|
||||
queries = [{"package": {"name": pkg["name"], "ecosystem": pkg["ecosystem"]}} for pkg in packages]
|
||||
session = requests.Session()
|
||||
response = session.post(
|
||||
session = build_session()
|
||||
response = request(
|
||||
"POST",
|
||||
QUERY_BATCH_URL,
|
||||
session=session,
|
||||
json={"queries": queries},
|
||||
headers={"User-Agent": "websafe-intel"},
|
||||
timeout=30,
|
||||
)
|
||||
response.raise_for_status()
|
||||
payload = response.json()
|
||||
|
||||
@@ -5,6 +5,7 @@ from typing import Any, Dict, List
|
||||
|
||||
import requests
|
||||
|
||||
from intel.http_client import request
|
||||
from intel.models import Candidate
|
||||
|
||||
|
||||
@@ -14,7 +15,7 @@ def _text(node: ET.Element, name: str) -> str:
|
||||
|
||||
|
||||
def fetch(system: Dict[str, Any], source: Dict[str, Any]) -> List[Candidate]:
|
||||
response = requests.get(source["url"], headers={"User-Agent": "websafe-intel"}, timeout=30)
|
||||
response = request("GET", source["url"])
|
||||
response.raise_for_status()
|
||||
root = ET.fromstring(response.content)
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户