From 7fb3de7be7561fac70536803e7dbd4aabc1a589c Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Fri, 24 Jul 2026 12:30:16 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E4=BF=AE=E5=A4=8Dscripts=E7=9B=AE?= =?UTF-8?q?=E5=BD=95ruff=20F841/B007/F401/F541=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/ci/ci_health_report.py | 2 +- scripts/ci/ci_repeated_failure_detector.py | 16 ++++++++-------- scripts/ci/pr_auto_scan.py | 2 -- scripts/ci_trigger_monitor.py | 8 ++++---- scripts/init_phase4_tasks.py | 2 -- scripts/init_tracker_data.py | 2 -- scripts/init_tracker_direct.py | 1 - scripts/smoke_public_boundary_flow.py | 2 +- scripts/smoke_public_upload_flow.py | 4 ++-- 9 files changed, 16 insertions(+), 23 deletions(-) diff --git a/scripts/ci/ci_health_report.py b/scripts/ci/ci_health_report.py index 12b52bfb4..0ccf0e446 100644 --- a/scripts/ci/ci_health_report.py +++ b/scripts/ci/ci_health_report.py @@ -96,7 +96,7 @@ def build_feishu_card(data: dict) -> dict: # 失败详情(最多显示5条) fail_detail_lines = [] - for i, run in enumerate(failed_runs[:5]): + for _i, run in enumerate(failed_runs[:5]): run_id = run["id"] title = run.get("title", "")[:35] branch = run.get("branch", "") diff --git a/scripts/ci/ci_repeated_failure_detector.py b/scripts/ci/ci_repeated_failure_detector.py index 5a4c8b556..b5dc95d34 100644 --- a/scripts/ci/ci_repeated_failure_detector.py +++ b/scripts/ci/ci_repeated_failure_detector.py @@ -122,8 +122,8 @@ def analyze_failures(runs): for run in sorted_runs: run_id = run.get("id") - run_status = run.get("status", "") - run_conclusion = run.get("conclusion", "") + run.get("status", "") + run.get("conclusion", "") run_started = run.get("started_at", run.get("created_at", "")) event = run.get("event", "") @@ -135,7 +135,7 @@ def analyze_failures(runs): for job in jobs: name = job.get("name", "") - status = job.get("status", "") + job.get("status", "") conclusion = job.get("conclusion", "") # 跳过非CI核心job(如AI Code Review、Preview等) @@ -176,7 +176,7 @@ def analyze_failures(runs): # cancelled不算失败也不打断 # 计算失败率 - for name, stats in job_stats.items(): + for _name, stats in job_stats.items(): total_actual = stats["total"] - stats["skipped"] - stats["cancelled"] if total_actual > 0: stats["failure_rate"] = round((stats["failure"] + stats["error"]) / total_actual * 100, 1) @@ -240,10 +240,10 @@ def generate_report(critical, warning, info, days, total_runs): lines.append(f"**生成时间**: {datetime.now(timezone.utc).strftime('%Y-%m-%d %H:%M UTC')}") lines.append("") - lines.append(f"## 概览") + lines.append("## 概览") lines.append("") - lines.append(f"| 级别 | 数量 |") - lines.append(f"|------|------|") + lines.append("| 级别 | 数量 |") + lines.append("|------|------|") lines.append(f"| 🔴 严重 (连续失败≥{CONSECUTIVE_FAIL_THRESHOLD}次 或 失败率≥50%) | {len(critical)} |") lines.append(f"| 🟡 警告 (失败率≥{FAIL_RATE_THRESHOLD}% 且 失败≥{FAIL_THRESHOLD}次) | {len(warning)} |") lines.append(f"| 🔵 关注 (失败≥2次) | {len(info)} |") @@ -350,7 +350,7 @@ def send_feishu_notification(critical, warning, info, days): def main(): - print(f"=== CI重复失败检测 ===") + print("=== CI重复失败检测 ===") print(f"统计周期: 最近{DAYS}天") print(f"仓库: {REPO}") print() diff --git a/scripts/ci/pr_auto_scan.py b/scripts/ci/pr_auto_scan.py index f17753d27..9efcbe024 100644 --- a/scripts/ci/pr_auto_scan.py +++ b/scripts/ci/pr_auto_scan.py @@ -8,9 +8,7 @@ PR自动扫描器:扫描所有open PR,对CI全绿的进行自动审批/合 import argparse import json -import os import re -import sys import time import urllib.error import urllib.request diff --git a/scripts/ci_trigger_monitor.py b/scripts/ci_trigger_monitor.py index ad147bac7..bdb8b2646 100644 --- a/scripts/ci_trigger_monitor.py +++ b/scripts/ci_trigger_monitor.py @@ -44,7 +44,7 @@ def api_get(path): time.sleep(2**attempt) continue raise - except Exception as e: + except Exception: if attempt < 2: time.sleep(2**attempt) continue @@ -100,7 +100,7 @@ def send_alert(pr_num, pr_title, pr_url, head_sha, commit_age_min): print(" ⚠️ 未配置CI_NOTIFY_WEBHOOK,跳过告警") return - gitea_url = get_env("GITEA_URL", "https://git.xiaoxiajianji.com") + get_env("GITEA_URL", "https://git.xiaoxiajianji.com") content = { "msg_type": "interactive", @@ -185,7 +185,7 @@ def main(): # 解析updated_at(ISO格式) try: # 2026-07-17T09:22:43+08:00 - from datetime import datetime, timedelta, timezone + from datetime import datetime # 简化处理:直接用字符串解析 ts_str = updated_at.replace("Z", "+00:00") @@ -202,7 +202,7 @@ def main(): # 少于2分钟的跳过,给CI一点启动时间 if age_min < 2: - print(f" ⏳ 刚更新,等待CI启动...") + print(" ⏳ 刚更新,等待CI启动...") continue # 获取commit状态 diff --git a/scripts/init_phase4_tasks.py b/scripts/init_phase4_tasks.py index 351e3eae6..d1189d729 100644 --- a/scripts/init_phase4_tasks.py +++ b/scripts/init_phase4_tasks.py @@ -10,8 +10,6 @@ import sys sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8") -import json -from datetime import datetime, timedelta import requests diff --git a/scripts/init_tracker_data.py b/scripts/init_tracker_data.py index 78bdb5433..e3f3405fa 100644 --- a/scripts/init_tracker_data.py +++ b/scripts/init_tracker_data.py @@ -10,8 +10,6 @@ import sys sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8") -import json -from datetime import datetime, timedelta import requests diff --git a/scripts/init_tracker_direct.py b/scripts/init_tracker_direct.py index 476e6923c..574b5f69d 100644 --- a/scripts/init_tracker_direct.py +++ b/scripts/init_tracker_direct.py @@ -35,7 +35,6 @@ def init_database(): """, ("认证与账号体系", "Phase 4", "2026-06-10", "2026-06-17", "completed", "JWT 登录、注册、密码管理"), ) - milestone1_id = cursor.lastrowid auth_tasks = [ ("JWT 工具类实现", "sign/verify/refresh Token 功能", "completed", "high"), diff --git a/scripts/smoke_public_boundary_flow.py b/scripts/smoke_public_boundary_flow.py index 0b57566ab..37939883f 100644 --- a/scripts/smoke_public_boundary_flow.py +++ b/scripts/smoke_public_boundary_flow.py @@ -44,7 +44,7 @@ def main() -> None: owner_headers = _register_login(owner, "owner") intruder_headers = _register_login(intruder, "intruder") - workspace = _json_or_raise( + _json_or_raise( "owner_workspace", owner.post(f"{BASE_URL}/workspaces", json={"name": "Boundary Workspace"}, headers=owner_headers, timeout=30), ) diff --git a/scripts/smoke_public_upload_flow.py b/scripts/smoke_public_upload_flow.py index 777c9990c..20f713a52 100644 --- a/scripts/smoke_public_upload_flow.py +++ b/scripts/smoke_public_upload_flow.py @@ -47,7 +47,7 @@ def main() -> None: ) headers = {"Authorization": f"Bearer {login['access_token']}"} - workspace = _json_or_raise( + _json_or_raise( "workspace", session.post(f"{BASE_URL}/workspaces", json={"name": "Upload Smoke Workspace"}, headers=headers, timeout=30), ) @@ -75,7 +75,7 @@ def main() -> None: timeout=30, ), ) - library_id = library["id"] + library["id"] upload = _json_or_raise( "upload", -- 2.54.0