From bcb47f102cc63447f76cf6281eef14052aabd4cd Mon Sep 17 00:00:00 2001 From: CieanYau Date: Fri, 6 Nov 2026 01:37:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E4=B8=BB=E9=A2=98=E5=88=87=E6=8D=A2=E5=B9=B6=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E4=B8=8E=E9=AA=8C=E8=AF=81=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/frontend.yml | 35 ++++++++++++++++ README.md | 13 +++++- app/layouts/blank.vue | 10 ++--- package-lock.json | 33 +++++++++------ package.json | 4 ++ tests/review-theme.e2e.test.mjs | 72 +++++++++++++++++++++++++++++++++ 6 files changed, 146 insertions(+), 21 deletions(-) create mode 100644 .gitea/workflows/frontend.yml create mode 100644 tests/review-theme.e2e.test.mjs diff --git a/.gitea/workflows/frontend.yml b/.gitea/workflows/frontend.yml new file mode 100644 index 0000000..b38d4eb --- /dev/null +++ b/.gitea/workflows/frontend.yml @@ -0,0 +1,35 @@ +# 仅做前端验证,不包含发布、服务器登录或生产凭证。 +name: 前端验证 +on: + push: + pull_request: + +jobs: + verify: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - name: 获取源码 + uses: https://github.com/actions/checkout@v4 + with: + persist-credentials: false + - name: 准备 Node.js + uses: https://github.com/actions/setup-node@v4 + with: + node-version: "22" + cache: npm + - name: 安装锁定依赖 + run: npm ci + - name: 安装测试浏览器 + run: npx playwright install --with-deps chromium + - name: 检查源码并构建 + run: | + npm run check + npm run build + - name: 验收真实生产构建 + run: | + task_chrome_path="$(node --input-type=module -e 'import { chromium } from "playwright"; process.stdout.write(chromium.executablePath())')" + CHROME_PATH="$task_chrome_path" npm test + # deepmerge 尚无上游修复版本;低危传播项保留在审计输出,不通过降级框架隐藏。 + - name: 阻止中危及以上依赖风险 + run: npm audit --audit-level=moderate diff --git a/README.md b/README.md index 629d62f..aeb0377 100644 --- a/README.md +++ b/README.md @@ -123,10 +123,19 @@ npm test CHROME_PATH=/absolute/path/to/chrome npm test ``` -现有 21 个离线场景覆盖登录协议、短信倒计时、路由保护、会话失效、双标签页退出、SSH 密钥管理、 -请求超时、支付期限及旧登录入口等流程。测试产物保存在被忽略的 `tests/fixtures/runs/`。 +离线场景覆盖登录协议、短信倒计时、路由保护、会话失效、双标签页退出、SSH 密钥管理、 +请求超时、支付期限及旧登录入口,并逐步补充安全组、工单、镜像购买和商品字段回归。 +测试产物保存在被忽略的 `tests/fixtures/runs/`。 详细使用方式见 [测试说明](tests/README.md)。 +仓库包含 `.gitea/workflows/frontend.yml`:安装锁定依赖后运行源码检查、生产构建、浏览器测试和 +`npm audit --audit-level=moderate`,不执行部署。Git 服务需启用 Actions 并配置兼容的 Linux runner; +仅提交工作流不代表远端任务已经运行通过。 + +传递依赖 `glob` 与 `minimatch` 通过精确 overrides 使用修复版本。 +截至 2026-11-06,`deepmerge` 的 GHSA-gcqx-w48m-w2h4 尚无已发布修复版本,低危传播告警仍保留, +未用强制降级 Nuxt 或关闭审计来隐藏。禁止把通过中危及以上门禁解读为依赖零风险。 + 真实支付、第三方登录 / CAPTCHA、安全挑战、短信邮件投递、供应商接口和 VNC 网关仍需在测试环境联调。 ## 维护与交付说明 diff --git a/app/layouts/blank.vue b/app/layouts/blank.vue index 092f588..599a55a 100644 --- a/app/layouts/blank.vue +++ b/app/layouts/blank.vue @@ -19,7 +19,7 @@ onMounted(() => siteConfig.load().catch(() => {}));