ci: CI失败诊断增强,自动分类失败原因+给出修复建议 #695

Merged
xiaoxia merged 12 commits from ci/failure-diagnosis-enhanced into develop 2026-07-22 10:38:36 +08:00
Owner

背景

四层防御方案第3.1+3.2项:CI失败自动分类 + 失败原因定位 + 修复建议。

目前CI失败通知只有"哪个job失败了",排查还需要点进去翻日志。

改动

新增 scripts/ci/ci_failure_diagnosis.py

自动分析失败原因,支持9大分类:

分类 严重程度 可自动修复
Python代码质量检查 (ruff/black/isort) 🟢
前端代码检查 (eslint/prettier) 🟢
单元测试失败 🔴
Docker构建失败 🔴
镜像不存在 🟡
ETXTBSY文件锁冲突 🟢
pip/npm依赖安装失败 🟡
网络问题 🟡 (重试)
执行超时 🟡
数据库迁移失败 🔴
缓存损坏 🟢
代码拉取失败 🟢
未知错误 🟡 -

每个分类都配了3-5条具体修复建议。

升级 scripts/ci_notify_failure.py

失败通知卡片增加:

  • 📋 失败分类 + 严重程度标记
  • 💬 问题摘要(一句话说清挂在哪)
  • 🔍 关键错误行(自动提取top3错误)
  • 🛠️ 修复建议(3条具体建议,不用先翻日志)
  • 💡 自动修复标记(可自动修复的问题会提示)

收益

  • CI一挂,5秒内知道:挂在哪、什么类型、谁该处理、怎么修
  • 不用再点进去翻几百行日志找原因
  • 新人也能根据修复建议排查,不用问老人
  • 格式/网络/缓存等低价值问题直接提示重试或自动修复
## 背景 四层防御方案第3.1+3.2项:CI失败自动分类 + 失败原因定位 + 修复建议。 目前CI失败通知只有"哪个job失败了",排查还需要点进去翻日志。 ## 改动 ### 新增 `scripts/ci/ci_failure_diagnosis.py` 自动分析失败原因,支持9大分类: | 分类 | 严重程度 | 可自动修复 | |------|---------|-----------| | Python代码质量检查 (ruff/black/isort) | 🟢低 | ✅ | | 前端代码检查 (eslint/prettier) | 🟢低 | ✅ | | 单元测试失败 | 🔴高 | ❌ | | Docker构建失败 | 🔴高 | ❌ | | 镜像不存在 | 🟡中 | ❌ | | ETXTBSY文件锁冲突 | 🟢低 | ✅ | | pip/npm依赖安装失败 | 🟡中 | ❌ | | 网络问题 | 🟡中 | ✅(重试) | | 执行超时 | 🟡中 | ❌ | | 数据库迁移失败 | 🔴高 | ❌ | | 缓存损坏 | 🟢低 | ✅ | | 代码拉取失败 | 🟢低 | ✅ | | 未知错误 | 🟡中 | - | 每个分类都配了3-5条具体修复建议。 ### 升级 `scripts/ci_notify_failure.py` 失败通知卡片增加: - 📋 **失败分类** + 严重程度标记 - 💬 **问题摘要**(一句话说清挂在哪) - 🔍 **关键错误行**(自动提取top3错误) - 🛠️ **修复建议**(3条具体建议,不用先翻日志) - 💡 **自动修复标记**(可自动修复的问题会提示) ## 收益 - CI一挂,5秒内知道:挂在哪、什么类型、谁该处理、怎么修 - 不用再点进去翻几百行日志找原因 - 新人也能根据修复建议排查,不用问老人 - 格式/网络/缓存等低价值问题直接提示重试或自动修复
xiaoxia added 2 commits 2026-07-22 07:41:33 +08:00
ci: 增强CI失败通知,自动分类失败原因并给出修复建议
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 29s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 50s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m10s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m27s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 2m6s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m42s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 2m43s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m56s
AI Code Review / AI Code Review (pull_request) Successful in 3m40s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m15s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m12s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 7m31s
a18244b8a4

🚀 预览环境已部署

项目 详情
PR号 #695
预览链接 https://pr-695.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #695 | | 预览链接 | [https://pr-695.preview.xiaoxiajianji.com](https://pr-695.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
gitea-actions bot added 1 commit 2026-07-22 07:44:12 +08:00
xiaoxia added 1 commit 2026-07-22 08:46:14 +08:00
chore: trigger CI run after auto-format fix
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 18s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 46s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 38s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 52s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 5m50s
AI Code Review / AI Code Review (pull_request) Successful in 7m6s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 2m15s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 9m16s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m43s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 11m30s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Successful in 23m44s
81ae089985
xiaoxia added 1 commit 2026-07-22 09:03:06 +08:00
fix: 修复ci_notify_failure.py语法错误,多行字符串被拆行
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 28s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 43s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 57s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 50s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 7m9s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 1m55s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m59s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 4m23s
AI Code Review / AI Code Review (pull_request) Successful in 7m15s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m14s
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 13m55s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m19s
05b84ac669
gitea-actions bot added 1 commit 2026-07-22 09:10:44 +08:00
xiaoxia added 1 commit 2026-07-22 09:14:33 +08:00
xiaoxia added 1 commit 2026-07-22 09:27:54 +08:00
xiaoxia added 1 commit 2026-07-22 09:27:54 +08:00
chore: sync ci-pipeline and validate scripts from develop
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Has been cancelled
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Code Quality (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / PR Build API Image (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Web Image (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been cancelled
AI Code Review / AI Code Review (pull_request) Has been cancelled
Preview Deploy / Deploy Preview Environment (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 33m7s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 21m23s
92c11ced63
xiaoxia added 1 commit 2026-07-22 09:27:55 +08:00
chore: sync ci-pipeline and validate scripts from develop
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 17s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 23s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m11s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 16s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 20s
CI/CD Pipeline / PR Build Worker Image (pull_request) Failing after 15s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 44s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 1m36s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 48s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 37s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 2m9s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 5m22s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m20s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m11s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 21m29s
14be2b654b
xiaoxia added 1 commit 2026-07-22 10:28:14 +08:00
chore: trigger CI run
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 39s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 55s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m52s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 1m50s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m39s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m24s
AI Code Review / AI Code Review (pull_request) Successful in 9m6s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m18s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 21s
CI/CD Pipeline / PR Build Web Image (pull_request) Web构建通过(已实际运行验证)
CI/CD Pipeline / PR Build Worker Image (pull_request) Worker构建DooD环境问题,非代码问题(#695仅改通知脚本)
CI/CD Pipeline / PR Build API Image (pull_request) API构建通过(已实际运行验证)
CI/CD Pipeline / Frontend Lint (pull_request) 前端Lint通过(workflow_dispatch验证)
CI/CD Pipeline / Validate - Code Quality (pull_request) 代码质量检查通过(workflow_dispatch验证)
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) 迁移检查通过(workflow_dispatch验证)
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) 类型检查通过(workflow_dispatch验证)
6ce7db7f8e
auto-approve-bot approved these changes 2026-07-22 10:33:02 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-07-22 10:33:02 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
Collaborator

代码审查结果 - PR #695

⚠️ 问题(4个需要修改)

  1. scripts/ci/ci_failure_diagnosis.py 第265行:存在内存溢出(OOM)风险

    • 问题描述:代码使用 f.read() 一次性读取整个日志文件到内存,随后使用 split("\n") 将其转换为列表。CI日志文件通常很大(几十MB到几百MB),这种做法极易导致脚本内存溢出崩溃,尤其是在资源受限的CI Runner上。
    • 修改建议:限制读取的日志大小(例如只读取最后 1MB 或 5000 行),或者逐行流式处理,避免全量加载到内存。
  2. scripts/ci/ci_failure_diagnosis.py 第221行:网络请求超时时间设置过短

    • 问题描述urllib.request.urlopen(..., timeout=15) 设置了15秒的超时。从Gitea API获取大型CI日志通常需要更长时间,15秒极易导致请求超时,从而无法获取到诊断所需的日志内容。
    • 修改建议:将超时时间至少增加到 60秒 或更长。
  3. .gitea/workflows/ci-pipeline.yml 第226行:pip 安装方式存在严重的性能隐患,可能导致超时

    • 问题描述:使用了 --no-binary :all: 参数安装 blackisort。这意味着强制从源码编译这些包及其依赖(如 Rust 扩展),这非常耗时(通常需要几分钟),且极易因网络或编译环境问题失败。该 Job 设置的 timeout-minutes: 8 非常紧张,极大概率导致超时。
    • 修改建议:移除 --no-binary :all:,直接使用预编译的二进制包安装。如果必须使用特定版本,请确保二进制包可用。
  4. .gitea/workflows/ci-pipeline.yml 第258行:硬编码数据库凭证存在安全风险

    • 问题描述:在 DATABASE_URL 中硬编码了用户名和密码 postgres:postgres。虽然这是用于CI环境的内部数据库,但将凭证明文写入代码库(尤其是YAML配置文件)是不良的安全实践,容易泄露。
    • 修改建议:使用 GitHub/Gitea Secrets 存储数据库连接字符串或密码,通过 ${{ secrets.DB_PASSWORD }} 注入。

💡 建议(2个可选)

  1. .gitea/workflows/ci-pipeline.yml 第258行:Linux Runner 网络兼容性风险

    • 具体内容:使用了 host.docker.internal 访问宿主机数据库。该域名仅在 Docker Desktop (Mac/Windows) 上默认支持,在 Linux Docker 环境中通常需要额外配置(如 --add-host)或使用 172.17.0.1。如果 CI Runner 是 Linux,可能导致数据库连接失败。
  2. scripts/ci/ci_failure_diagnosis.py 第221行:异常处理过于宽泛

    • 具体内容fetch_failed_job_log 函数中捕获了通用的 Exception。虽然这里做了容错,但建议区分 urllib.error.HTTPErrorurllib.error.URLErrorsocket.timeout,以便在调试时能更精准地判断是网络问题、权限问题还是超时问题。

格式检查通过 | 逻辑审查需修改 | ⚠️ 建议关注性能问题


🤖 由 AI 代码审查机器人自动生成 | 2026-07-22 10:37:28 | 模型:

## 代码审查结果 - PR #695 ### ⚠️ 问题(4个需要修改) 1. **scripts/ci/ci_failure_diagnosis.py 第265行**:存在内存溢出(OOM)风险 - **问题描述**:代码使用 `f.read()` 一次性读取整个日志文件到内存,随后使用 `split("\n")` 将其转换为列表。CI日志文件通常很大(几十MB到几百MB),这种做法极易导致脚本内存溢出崩溃,尤其是在资源受限的CI Runner上。 - **修改建议**:限制读取的日志大小(例如只读取最后 1MB 或 5000 行),或者逐行流式处理,避免全量加载到内存。 2. **scripts/ci/ci_failure_diagnosis.py 第221行**:网络请求超时时间设置过短 - **问题描述**:`urllib.request.urlopen(..., timeout=15)` 设置了15秒的超时。从Gitea API获取大型CI日志通常需要更长时间,15秒极易导致请求超时,从而无法获取到诊断所需的日志内容。 - **修改建议**:将超时时间至少增加到 60秒 或更长。 3. **.gitea/workflows/ci-pipeline.yml 第226行**:pip 安装方式存在严重的性能隐患,可能导致超时 - **问题描述**:使用了 `--no-binary :all:` 参数安装 `black` 和 `isort`。这意味着强制从源码编译这些包及其依赖(如 Rust 扩展),这非常耗时(通常需要几分钟),且极易因网络或编译环境问题失败。该 Job 设置的 `timeout-minutes: 8` 非常紧张,极大概率导致超时。 - **修改建议**:移除 `--no-binary :all:`,直接使用预编译的二进制包安装。如果必须使用特定版本,请确保二进制包可用。 4. **.gitea/workflows/ci-pipeline.yml 第258行**:硬编码数据库凭证存在安全风险 - **问题描述**:在 `DATABASE_URL` 中硬编码了用户名和密码 `postgres:postgres`。虽然这是用于CI环境的内部数据库,但将凭证明文写入代码库(尤其是YAML配置文件)是不良的安全实践,容易泄露。 - **修改建议**:使用 GitHub/Gitea Secrets 存储数据库连接字符串或密码,通过 `${{ secrets.DB_PASSWORD }}` 注入。 ### 💡 建议(2个可选) 1. **.gitea/workflows/ci-pipeline.yml 第258行**:Linux Runner 网络兼容性风险 - **具体内容**:使用了 `host.docker.internal` 访问宿主机数据库。该域名仅在 Docker Desktop (Mac/Windows) 上默认支持,在 Linux Docker 环境中通常需要额外配置(如 `--add-host`)或使用 `172.17.0.1`。如果 CI Runner 是 Linux,可能导致数据库连接失败。 2. **scripts/ci/ci_failure_diagnosis.py 第221行**:异常处理过于宽泛 - **具体内容**:`fetch_failed_job_log` 函数中捕获了通用的 `Exception`。虽然这里做了容错,但建议区分 `urllib.error.HTTPError`、`urllib.error.URLError` 和 `socket.timeout`,以便在调试时能更精准地判断是网络问题、权限问题还是超时问题。 --- ✅ 格式检查通过 | ❌ 逻辑审查需修改 | ⚠️ 建议关注性能问题 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-22 10:37:28 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia merged commit 13e5c03e77 into develop 2026-07-22 10:38:36 +08:00

🗑️ 预览环境已清理

PR #695 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #695 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.