Skip to content

Validate Dependencies 因 brace-expansion 5.0.8 新公告判红 —— pnpm-workspace override 停在上一次公告的边界 #4946

Description

@xuyushun441-sys

未认领。 实现 #4930(PR #4941)时撞到:那条 PR 只动了三个 scripts/check-*.mjs 和根 package.json 的一行,但 **/package.json 命中了 validate-deps.yml 的 paths 过滤,于是 Validate Package Dependencies 被触发并判红——红在 pnpm-lock.yaml,一个该 PR 从未碰过的文件。按 Prime Directive #10 单独归档,不在那条 PR 里顺手改。

现象

google/osv-scanner-actionpnpm-lock.yaml:

Total 1 package affected by 1 known vulnerability (0 Critical, 1 High, 0 Medium, 0 Low, 0 Unknown) from 1 ecosystem.
1 vulnerability can be fixed.

+-------------------------------------+------+-----------+-----------------+---------+---------------+----------------+
| OSV URL                             | CVSS | ECOSYSTEM | PACKAGE         | VERSION | FIXED VERSION | SOURCE         |
+-------------------------------------+------+-----------+-----------------+---------+---------------+----------------+
| https://osv.dev/GHSA-rgw5-rvv9-x895 | 7.5  | npm       | brace-expansion | 5.0.8   | 5.0.9         | pnpm-lock.yaml |
+-------------------------------------+------+-----------+-----------------+---------+---------------+----------------+
Exit code: 1

Job:https://github.com/objectstack-ai/objectstack/actions/runs/30834687809/job/91756879046

原因

pnpm-lock.yaml:29 已经有一条为上一次同包公告加的 override:

brace-expansion@>=5.0.0 <5.0.8: ^5.0.8

新公告把 5.0.8 本身划进受影响区间(fixed 在 5.0.9),而这条 override 的上界正好停在 5.0.8,于是它不再覆盖。锁文件里 brace-expansion@5.0.85.0.9 同时存在(5222/5226、12070/12074 行),说明仍有依赖解析到 5.0.8。修法应是把 pnpm-workspace.yaml 里对应的 override 区间推到 <5.0.9: ^5.0.9 并重装锁文件,而不是给扫描器加豁免。

为什么之前没红

validate-deps.yml 的 PR 触发是 paths 过滤的(**/package.jsonpnpm-lock.yamlpnpm-workspace.yaml、两个 check 脚本、工作流自身),schedule 是每周一 03:00 UTC。所以:

也就是说这条红与改动内容无关,是数据库时间线 + paths 过滤共同造成的:它会在下一次周一定时运行时(或任何一条动 package.json 的 PR 上)照样出现。副作用是,在修掉之前,每一条改 package.json 的 PR 都会带着一条与自己无关的红,这正是让人学会略过红勾的那种噪声。

复现

改任意 package.json 一行开 PR,或 workflow_dispatch 手动跑 validate-deps.yml

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions