upstream-radar 0.33.9 → 0.33.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -18
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/docs/README.zh-CN.md +21 -17
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -91,7 +91,7 @@ The useful part is the exact path and project-specific next step—not another g
|
|
|
91
91
|
Want to try it on a real published DSH plugin immediately?
|
|
92
92
|
|
|
93
93
|
```bash
|
|
94
|
-
npx --yes upstream-radar@0.33.
|
|
94
|
+
npx --yes upstream-radar@0.33.10 inspect dsh-feishu-bot@0.15.4 --deep
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
This runs from an otherwise empty directory and returns a short admission,
|
|
@@ -101,7 +101,7 @@ Want to see a real author-actionable result? This exact published DSH plugin
|
|
|
101
101
|
currently cannot produce a complete dependency graph in a clean npm resolver:
|
|
102
102
|
|
|
103
103
|
```bash
|
|
104
|
-
npx --yes upstream-radar@0.33.
|
|
104
|
+
npx --yes upstream-radar@0.33.10 inspect \
|
|
105
105
|
@sanqi-normal/dsh-webui-market-plugin@0.5.4 \
|
|
106
106
|
--deep --fail-on never
|
|
107
107
|
```
|
|
@@ -311,7 +311,7 @@ uses the real committed graph. Add `--package-path` for a nested plugin,
|
|
|
311
311
|
`--lockfile` when you want to choose a particular lockfile:
|
|
312
312
|
|
|
313
313
|
```bash
|
|
314
|
-
npx --yes upstream-radar@0.33.
|
|
314
|
+
npx --yes upstream-radar@0.33.10 observe \
|
|
315
315
|
https://github.com/PlutoKeating/dsh-lark-bot \
|
|
316
316
|
--state ./observations.json --report ./upstream-radar-observer.md
|
|
317
317
|
```
|
|
@@ -321,7 +321,7 @@ manifest is `dsh-lark-bot`, while its published npm package is
|
|
|
321
321
|
`dsh-feishu-bot`:
|
|
322
322
|
|
|
323
323
|
```bash
|
|
324
|
-
npx --yes upstream-radar@0.33.
|
|
324
|
+
npx --yes upstream-radar@0.33.10 observe \
|
|
325
325
|
https://github.com/PlutoKeating/dsh-lark-bot \
|
|
326
326
|
--package dsh-feishu-bot \
|
|
327
327
|
--lockfile pnpm-lock.yaml --lockfile-type pnpm \
|
|
@@ -332,7 +332,7 @@ Then run one cycle:
|
|
|
332
332
|
|
|
333
333
|
```bash
|
|
334
334
|
export GITHUB_TOKEN='a read-only GitHub token'
|
|
335
|
-
npx --yes upstream-radar@0.33.
|
|
335
|
+
npx --yes upstream-radar@0.33.10 observe \
|
|
336
336
|
./targets.yml \
|
|
337
337
|
--state ./observations.json \
|
|
338
338
|
--report ./upstream-radar-observer.md
|
|
@@ -377,6 +377,10 @@ The checked-in workflow is a dogfood workflow for this repository: it checks out
|
|
|
377
377
|
and builds Radar before running the observer. It persists only the observation
|
|
378
378
|
point. A quiet run does not create a daily commit.
|
|
379
379
|
|
|
380
|
+
For the shortest copy-paste setup, use the [minimal one-repository workflow](examples/github-actions/upstream-observer-minimal.yml).
|
|
381
|
+
It uses the published npm CLI, needs no Radar checkout or build, and only asks
|
|
382
|
+
you to change the repository URL (or enter one through `workflow_dispatch`).
|
|
383
|
+
|
|
380
384
|
The workflow also supports three optional repository secrets—
|
|
381
385
|
`ISSUE_LOCATOR_LLM_BASE_URL`, `ISSUE_LOCATOR_LLM_API_KEY`, and
|
|
382
386
|
`ISSUE_LOCATOR_LLM_MODEL`. When all three exist, the job sends meaningful tasks
|
|
@@ -581,7 +585,7 @@ cd my-dsh-plugin
|
|
|
581
585
|
pnpm install --ignore-scripts
|
|
582
586
|
|
|
583
587
|
# Read the exact graph before adding the plugin to a DSH profile.
|
|
584
|
-
pnpm dlx --package=upstream-radar@0.33.
|
|
588
|
+
pnpm dlx --package=upstream-radar@0.33.10 upstream-radar graph pnpm-lock pnpm-lock.yaml --json
|
|
585
589
|
```
|
|
586
590
|
|
|
587
591
|
The graph includes the exact DSH package versions and keeps unresolved optional peers visible. It does not load the generated plugin or run lifecycle scripts. After reviewing it, copy this complete workflow into `.github/workflows/upstream-radar.yml`:
|
|
@@ -603,7 +607,7 @@ jobs:
|
|
|
603
607
|
runs-on: ubuntu-latest
|
|
604
608
|
steps:
|
|
605
609
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
606
|
-
- uses: MicroMilo/upstream-radar@v0.33.
|
|
610
|
+
- uses: MicroMilo/upstream-radar@v0.33.10
|
|
607
611
|
with:
|
|
608
612
|
fail-on: high
|
|
609
613
|
fail-on-compatibility: breaking
|
|
@@ -614,7 +618,7 @@ The Action auto-detects the one `pnpm-lock.yaml`, checks the same exact graph, a
|
|
|
614
618
|
To check a real published DSH artifact directly, run one command:
|
|
615
619
|
|
|
616
620
|
```bash
|
|
617
|
-
npx --yes upstream-radar@0.33.
|
|
621
|
+
npx --yes upstream-radar@0.33.10 inspect dsh-feishu-bot@0.15.4 --deep
|
|
618
622
|
```
|
|
619
623
|
|
|
620
624
|
The checked result is `REVIEW`: registry integrity, signature, provenance, and
|
|
@@ -771,7 +775,7 @@ To see the two-source vulnerability contract without contacting the network, run
|
|
|
771
775
|
Before wiring a project into a compatibility gate, run the offline rule benchmark:
|
|
772
776
|
|
|
773
777
|
```bash
|
|
774
|
-
pnpm dlx --package=upstream-radar@0.33.
|
|
778
|
+
pnpm dlx --package=upstream-radar@0.33.10 upstream-radar benchmark compatibility
|
|
775
779
|
```
|
|
776
780
|
|
|
777
781
|
It covers six contracts: a safe patch, a change that only needs project analysis, an incompatible DSH peer, a publisher-declared breaking release, a vulnerable candidate dependency, and an incomplete candidate graph. The command does not access the network, install a package, load a plugin, or start DSH. It checks the behavior of Radar's deterministic rules and the `breaking`/`any` gates; it is not a runtime compatibility proof.
|
|
@@ -784,7 +788,7 @@ When you have an exact plugin artifact and want to know whether one exact DSH re
|
|
|
784
788
|
# Pack an exact npm release without running its lifecycle scripts.
|
|
785
789
|
npm pack --ignore-scripts dsh-plugin@1.2.3
|
|
786
790
|
|
|
787
|
-
pnpm dlx --package=upstream-radar@0.33.
|
|
791
|
+
pnpm dlx --package=upstream-radar@0.33.10 upstream-radar probe dsh-load \
|
|
788
792
|
./dsh-plugin-1.2.3.tgz \
|
|
789
793
|
--dsh-version 0.1.0-rc.6
|
|
790
794
|
```
|
|
@@ -810,7 +814,7 @@ It exercises a loadable bundle, a bundle patch DSH rejects, and a package that r
|
|
|
810
814
|
To compare a plugin against more than one DSH release, use the matrix form:
|
|
811
815
|
|
|
812
816
|
```bash
|
|
813
|
-
pnpm dlx --package=upstream-radar@0.33.
|
|
817
|
+
pnpm dlx --package=upstream-radar@0.33.10 upstream-radar probe dsh-matrix \
|
|
814
818
|
./dsh-plugin-1.2.3.tgz \
|
|
815
819
|
--dsh-version 0.1.0-rc.3 \
|
|
816
820
|
--dsh-version 0.1.0-rc.6 \
|
|
@@ -826,7 +830,7 @@ If your team wants the shortest scheduled CI gate before wiring a machine to a l
|
|
|
826
830
|
```yaml
|
|
827
831
|
steps:
|
|
828
832
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
829
|
-
- uses: MicroMilo/upstream-radar@v0.33.
|
|
833
|
+
- uses: MicroMilo/upstream-radar@v0.33.10
|
|
830
834
|
with:
|
|
831
835
|
fail-on: high
|
|
832
836
|
# Optional: also fail on deterministic DSH/plugin compatibility breaks.
|
|
@@ -835,12 +839,12 @@ steps:
|
|
|
835
839
|
threat-intel: true
|
|
836
840
|
```
|
|
837
841
|
|
|
838
|
-
The Action is a thin wrapper around `radar check --frozen --state :memory: --fail-on high --json`; when the optional compatibility input is enabled, it also passes `--fail-on-compatibility breaking` or `any`. `--frozen` is deliberate: it uses the graph in the reviewed config and does not try to read a developer's local DSH profile. `threat-intel` is false by default so an ordinary CI gate stays lean; set it to `true` when the Job Summary and raw JSON should include CISA KEV and FIRST EPSS prioritization evidence. Each run is independent, exits `2` when an active vulnerability or opted-in compatibility change meets its threshold, and exits `1` for an operational or source error. `breaking` catches confirmed or strong incompatibility signals; `any` catches every active compatibility event. The default is `never`, so vulnerability-only behavior stays unchanged. In addition to the raw JSON log, the Action writes a short escaped summary to the GitHub Job Summary so a scheduled failure immediately shows the affected package, exact path, published fix version when available, one-line priority evidence, and a suggested next step. The Action does not deliver a DSH Agent task or modify a branch; the native DSH bundle remains the always-on analysis path. Pin the Action to a release tag such as `v0.33.
|
|
842
|
+
The Action is a thin wrapper around `radar check --frozen --state :memory: --fail-on high --json`; when the optional compatibility input is enabled, it also passes `--fail-on-compatibility breaking` or `any`. `--frozen` is deliberate: it uses the graph in the reviewed config and does not try to read a developer's local DSH profile. `threat-intel` is false by default so an ordinary CI gate stays lean; set it to `true` when the Job Summary and raw JSON should include CISA KEV and FIRST EPSS prioritization evidence. Each run is independent, exits `2` when an active vulnerability or opted-in compatibility change meets its threshold, and exits `1` for an operational or source error. `breaking` catches confirmed or strong incompatibility signals; `any` catches every active compatibility event. The default is `never`, so vulnerability-only behavior stays unchanged. In addition to the raw JSON log, the Action writes a short escaped summary to the GitHub Job Summary so a scheduled failure immediately shows the affected package, exact path, published fix version when available, one-line priority evidence, and a suggested next step. The Action does not deliver a DSH Agent task or modify a branch; the native DSH bundle remains the always-on analysis path. Pin the Action to a release tag such as `v0.33.10`, and pin the checkout Action in your workflow according to your repository's policy.
|
|
839
843
|
|
|
840
844
|
If the repository has no committed Radar config yet, the smallest setup is to omit `config`, `pnpm-lock`, and `npm-lock`. After checkout, the Action automatically uses the only one of `pnpm-lock.yaml` or `package-lock.json` that exists, generates a temporary reviewed config, and runs the same frozen check:
|
|
841
845
|
|
|
842
846
|
```yaml
|
|
843
|
-
- uses: MicroMilo/upstream-radar@v0.33.
|
|
847
|
+
- uses: MicroMilo/upstream-radar@v0.33.10
|
|
844
848
|
with:
|
|
845
849
|
fail-on: high
|
|
846
850
|
```
|
|
@@ -850,7 +854,7 @@ An existing `config` wins over auto-detection. If both lockfiles exist, or neith
|
|
|
850
854
|
To review the exact plugin artifact before it enters DSH, add `inspect-package`:
|
|
851
855
|
|
|
852
856
|
```yaml
|
|
853
|
-
- uses: MicroMilo/upstream-radar@v0.33.
|
|
857
|
+
- uses: MicroMilo/upstream-radar@v0.33.10
|
|
854
858
|
with:
|
|
855
859
|
inspect-package: dsh-cloudflare-browser-run@0.1.1
|
|
856
860
|
# review is the safe default; use block only when incomplete coverage may pass.
|
|
@@ -862,7 +866,7 @@ This downloads that exact npm tarball, verifies the registry integrity/signature
|
|
|
862
866
|
If the repository has a pnpm lockfile but no committed Radar config yet, the Action can generate the config in the same job. See the [copyable pnpm workflow](examples/github-actions/upstream-radar-pnpm.yml):
|
|
863
867
|
|
|
864
868
|
```yaml
|
|
865
|
-
- uses: MicroMilo/upstream-radar@v0.33.
|
|
869
|
+
- uses: MicroMilo/upstream-radar@v0.33.10
|
|
866
870
|
with:
|
|
867
871
|
pnpm-lock: pnpm-lock.yaml
|
|
868
872
|
fail-on: high
|
|
@@ -876,7 +880,7 @@ See the [copyable npm workflow](examples/github-actions/upstream-radar-npm.yml)
|
|
|
876
880
|
The Action requires the caller to check out the repository first. It does not install the project's dependencies or run their lifecycle scripts; it only reads the committed graph and queries the configured upstream sources. For a fully explicit, lower-level invocation, the equivalent command is:
|
|
877
881
|
|
|
878
882
|
```bash
|
|
879
|
-
pnpm dlx --package=upstream-radar@0.33.
|
|
883
|
+
pnpm dlx --package=upstream-radar@0.33.10 upstream-radar radar check \
|
|
880
884
|
./upstream-radar.config.json --frozen --state :memory: --fail-on high \
|
|
881
885
|
--fail-on-compatibility breaking --json
|
|
882
886
|
```
|
|
@@ -884,7 +888,7 @@ pnpm dlx --package=upstream-radar@0.33.9 upstream-radar radar check \
|
|
|
884
888
|
To add the optional DSH load matrix for a published plugin, provide an exact npm package and at least two exact DSH versions:
|
|
885
889
|
|
|
886
890
|
```yaml
|
|
887
|
-
- uses: MicroMilo/upstream-radar@v0.33.
|
|
891
|
+
- uses: MicroMilo/upstream-radar@v0.33.10
|
|
888
892
|
id: radar
|
|
889
893
|
with:
|
|
890
894
|
config: upstream-radar.config.json
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const TOOL_VERSION = "0.33.
|
|
1
|
+
export declare const TOOL_VERSION = "0.33.10";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,YAAY,CAAA"}
|
package/dist/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const TOOL_VERSION = '0.33.
|
|
1
|
+
export const TOOL_VERSION = '0.33.10';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/dist/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAA"}
|
package/docs/README.zh-CN.md
CHANGED
|
@@ -85,7 +85,7 @@ FIRST EPSS estimated exploitation probability: 97.2% (percentile 100.0%)
|
|
|
85
85
|
想立即检查一个真实发布的 DSH 插件,可以在空目录直接运行:
|
|
86
86
|
|
|
87
87
|
```bash
|
|
88
|
-
npx --yes upstream-radar@0.33.
|
|
88
|
+
npx --yes upstream-radar@0.33.10 inspect dsh-feishu-bot@0.15.4 --deep
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
它会直接输出简短的准入结论、覆盖情况、依赖数量、漏洞数量和下一步,不需要先
|
|
@@ -95,7 +95,7 @@ npx --yes upstream-radar@0.33.9 inspect dsh-feishu-bot@0.15.4 --deep
|
|
|
95
95
|
npm 解析环境中目前无法建立完整依赖图:
|
|
96
96
|
|
|
97
97
|
```bash
|
|
98
|
-
npx --yes upstream-radar@0.33.
|
|
98
|
+
npx --yes upstream-radar@0.33.10 inspect \
|
|
99
99
|
@sanqi-normal/dsh-webui-market-plugin@0.5.4 \
|
|
100
100
|
--deep --fail-on never
|
|
101
101
|
```
|
|
@@ -279,7 +279,7 @@ targets:
|
|
|
279
279
|
再加 `--lockfile`:
|
|
280
280
|
|
|
281
281
|
```bash
|
|
282
|
-
npx --yes upstream-radar@0.33.
|
|
282
|
+
npx --yes upstream-radar@0.33.10 observe \
|
|
283
283
|
https://github.com/PlutoKeating/dsh-lark-bot \
|
|
284
284
|
--state ./observations.json --report ./upstream-radar-observer.md
|
|
285
285
|
```
|
|
@@ -288,7 +288,7 @@ npx --yes upstream-radar@0.33.9 observe \
|
|
|
288
288
|
会额外指定 `--package`:
|
|
289
289
|
|
|
290
290
|
```bash
|
|
291
|
-
npx --yes upstream-radar@0.33.
|
|
291
|
+
npx --yes upstream-radar@0.33.10 observe \
|
|
292
292
|
https://github.com/PlutoKeating/dsh-lark-bot \
|
|
293
293
|
--package dsh-feishu-bot \
|
|
294
294
|
--lockfile pnpm-lock.yaml --lockfile-type pnpm \
|
|
@@ -347,6 +347,10 @@ Radar 只读取这次调用需要的接口地址、API key 和模型名,不会
|
|
|
347
347
|
仓库里这份 workflow 会先 checkout 并构建 Radar,再观察这个公开的 DSH/飞书插件,
|
|
348
348
|
所以既是 dogfood 也是一个真实插件示例。它只提交观察点;没有变化时不会每天制造一条 commit。
|
|
349
349
|
|
|
350
|
+
如果想要最短的复制路径,使用[单仓库最小 workflow](../examples/github-actions/upstream-observer-minimal.yml)。
|
|
351
|
+
它直接使用已发布的 npm CLI,不需要 checkout 或构建 Radar;只需修改仓库 URL,或者在
|
|
352
|
+
`workflow_dispatch` 时填写 URL。
|
|
353
|
+
|
|
350
354
|
这个 workflow 支持三个可选的 repository secret:
|
|
351
355
|
`ISSUE_LOCATOR_LLM_BASE_URL`、`ISSUE_LOCATOR_LLM_API_KEY` 和
|
|
352
356
|
`ISSUE_LOCATOR_LLM_MODEL`。三个值都有时,重要变化会交给 issue-locator/OpenAI 兼容
|
|
@@ -548,7 +552,7 @@ cd my-dsh-plugin
|
|
|
548
552
|
pnpm install --ignore-scripts
|
|
549
553
|
|
|
550
554
|
# 把插件放进 DSH profile 前,先读取精确依赖图。
|
|
551
|
-
pnpm dlx --package=upstream-radar@0.33.
|
|
555
|
+
pnpm dlx --package=upstream-radar@0.33.10 upstream-radar graph pnpm-lock pnpm-lock.yaml --json
|
|
552
556
|
```
|
|
553
557
|
|
|
554
558
|
这棵图会保留精确的 DSH 包版本,也会把未解析的可选 peer 明确显示出来;它不会加载生成的插件,也不会运行 lifecycle script。审查后,把下面这个完整 workflow 复制到 `.github/workflows/upstream-radar.yml`:
|
|
@@ -570,7 +574,7 @@ jobs:
|
|
|
570
574
|
runs-on: ubuntu-latest
|
|
571
575
|
steps:
|
|
572
576
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
573
|
-
- uses: MicroMilo/upstream-radar@v0.33.
|
|
577
|
+
- uses: MicroMilo/upstream-radar@v0.33.10
|
|
574
578
|
with:
|
|
575
579
|
fail-on: high
|
|
576
580
|
fail-on-compatibility: breaking
|
|
@@ -581,7 +585,7 @@ Action 会自动识别唯一的 `pnpm-lock.yaml`,检查同一棵精确依赖
|
|
|
581
585
|
也可以直接检查一个真实发布的 DSH 包:
|
|
582
586
|
|
|
583
587
|
```bash
|
|
584
|
-
npx --yes upstream-radar@0.33.
|
|
588
|
+
npx --yes upstream-radar@0.33.10 inspect dsh-feishu-bot@0.15.4 --deep
|
|
585
589
|
```
|
|
586
590
|
|
|
587
591
|
这次检查的结论是 `REVIEW`:registry 完整性、签名、provenance 和 89 个已解析包都
|
|
@@ -747,7 +751,7 @@ pnpm run try:dsh
|
|
|
747
751
|
在把项目接入兼容性门禁前,可以先运行离线规则 benchmark:
|
|
748
752
|
|
|
749
753
|
```bash
|
|
750
|
-
pnpm dlx --package=upstream-radar@0.33.
|
|
754
|
+
pnpm dlx --package=upstream-radar@0.33.10 upstream-radar benchmark compatibility
|
|
751
755
|
```
|
|
752
756
|
|
|
753
757
|
它覆盖六类契约:安全补丁、只需要项目分析的变化、不兼容的 DSH peer、发布者明确声明 breaking、候选传递依赖漏洞,以及候选依赖图不完整。这个命令不会联网、安装包、加载插件或启动 DSH;它验证的是 Radar 的确定性规则以及 `breaking`/`any` 门禁行为,不是运行时兼容性证明。
|
|
@@ -760,7 +764,7 @@ pnpm dlx --package=upstream-radar@0.33.9 upstream-radar benchmark compatibility
|
|
|
760
764
|
# 打包精确版本,并明确不运行它的 lifecycle script。
|
|
761
765
|
npm pack --ignore-scripts dsh-plugin@1.2.3
|
|
762
766
|
|
|
763
|
-
pnpm dlx --package=upstream-radar@0.33.
|
|
767
|
+
pnpm dlx --package=upstream-radar@0.33.10 upstream-radar probe dsh-load \
|
|
764
768
|
./dsh-plugin-1.2.3.tgz \
|
|
765
769
|
--dsh-version 0.1.0-rc.6
|
|
766
770
|
```
|
|
@@ -786,7 +790,7 @@ pnpm run showcase:dsh-probe
|
|
|
786
790
|
如果要比较多个 DSH 版本,可以使用矩阵入口:
|
|
787
791
|
|
|
788
792
|
```bash
|
|
789
|
-
pnpm dlx --package=upstream-radar@0.33.
|
|
793
|
+
pnpm dlx --package=upstream-radar@0.33.10 upstream-radar probe dsh-matrix \
|
|
790
794
|
./dsh-plugin-1.2.3.tgz \
|
|
791
795
|
--dsh-version 0.1.0-rc.3 \
|
|
792
796
|
--dsh-version 0.1.0-rc.6 \
|
|
@@ -804,7 +808,7 @@ JSON 结果结构见[矩阵结果 schema](../schemas/dsh-load-matrix.schema.json
|
|
|
804
808
|
```yaml
|
|
805
809
|
steps:
|
|
806
810
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
807
|
-
- uses: MicroMilo/upstream-radar@v0.33.
|
|
811
|
+
- uses: MicroMilo/upstream-radar@v0.33.10
|
|
808
812
|
with:
|
|
809
813
|
fail-on: high
|
|
810
814
|
# 可选:把确定性的 DSH/插件兼容性破坏也作为 CI 失败条件
|
|
@@ -813,12 +817,12 @@ steps:
|
|
|
813
817
|
threat-intel: true
|
|
814
818
|
```
|
|
815
819
|
|
|
816
|
-
这个 Action 只是 `radar check --frozen --state :memory: --fail-on high --fail-on-compatibility breaking --json` 的薄封装。`--frozen` 是有意的:它只使用配置文件里的依赖图,不会尝试读取 runner 上不存在的本地 DSH profile。`threat-intel` 默认是 `false`,这样普通 CI 门禁不会因为额外查询变重;设置为 `true` 后,Job Summary 和原始 JSON 会包含 CISA KEV 与 FIRST EPSS 的优先级证据。每次运行彼此独立;发现达到阈值的漏洞或选择的兼容性变化时返回 `2`,运行或漏洞源出错时返回 `1`。`breaking` 只拦截有 confirmed/strong 信号的兼容性事件,`any` 会拦截所有活动兼容性事件,默认值是 `never`。除了原始 JSON 日志,Action 还会把经过转义的简短摘要写入 GitHub Job Summary,定时任务失败时可以直接看到受影响的包、准确依赖路径、已经发布的修复版本(如果有)、一行优先级证据和建议的下一步。这个入口不会投递 DSH Agent 任务,也不会修改分支;需要持续监控和项目级分析时,仍使用原生 DSH bundle。建议把 Action 固定到类似 `v0.33.
|
|
820
|
+
这个 Action 只是 `radar check --frozen --state :memory: --fail-on high --fail-on-compatibility breaking --json` 的薄封装。`--frozen` 是有意的:它只使用配置文件里的依赖图,不会尝试读取 runner 上不存在的本地 DSH profile。`threat-intel` 默认是 `false`,这样普通 CI 门禁不会因为额外查询变重;设置为 `true` 后,Job Summary 和原始 JSON 会包含 CISA KEV 与 FIRST EPSS 的优先级证据。每次运行彼此独立;发现达到阈值的漏洞或选择的兼容性变化时返回 `2`,运行或漏洞源出错时返回 `1`。`breaking` 只拦截有 confirmed/strong 信号的兼容性事件,`any` 会拦截所有活动兼容性事件,默认值是 `never`。除了原始 JSON 日志,Action 还会把经过转义的简短摘要写入 GitHub Job Summary,定时任务失败时可以直接看到受影响的包、准确依赖路径、已经发布的修复版本(如果有)、一行优先级证据和建议的下一步。这个入口不会投递 DSH Agent 任务,也不会修改分支;需要持续监控和项目级分析时,仍使用原生 DSH bundle。建议把 Action 固定到类似 `v0.33.10` 的发布标签,并根据团队策略固定 checkout Action。
|
|
817
821
|
|
|
818
822
|
如果仓库还没有提交 Radar 配置,最短接入方式是省略 `config`、`pnpm-lock` 和 `npm-lock`。checkout 之后,Action 会自动使用唯一存在的 `pnpm-lock.yaml` 或 `package-lock.json`,生成临时的审查清单,再执行同一个 frozen 检查:
|
|
819
823
|
|
|
820
824
|
```yaml
|
|
821
|
-
- uses: MicroMilo/upstream-radar@v0.33.
|
|
825
|
+
- uses: MicroMilo/upstream-radar@v0.33.10
|
|
822
826
|
with:
|
|
823
827
|
fail-on: high
|
|
824
828
|
```
|
|
@@ -828,7 +832,7 @@ steps:
|
|
|
828
832
|
如果要在插件进入 DSH 前审查精确发布物,可以增加 `inspect-package`:
|
|
829
833
|
|
|
830
834
|
```yaml
|
|
831
|
-
- uses: MicroMilo/upstream-radar@v0.33.
|
|
835
|
+
- uses: MicroMilo/upstream-radar@v0.33.10
|
|
832
836
|
with:
|
|
833
837
|
inspect-package: dsh-cloudflare-browser-run@0.1.1
|
|
834
838
|
# review 是安全默认值;只有允许覆盖不完整时才使用 block
|
|
@@ -840,7 +844,7 @@ steps:
|
|
|
840
844
|
如果仓库只有 pnpm 锁文件,还没有提交 Radar 配置,可以让 Action 在同一个 job 中生成配置;可直接复制[pnpm workflow 示例](../examples/github-actions/upstream-radar-pnpm.yml):
|
|
841
845
|
|
|
842
846
|
```yaml
|
|
843
|
-
- uses: MicroMilo/upstream-radar@v0.33.
|
|
847
|
+
- uses: MicroMilo/upstream-radar@v0.33.10
|
|
844
848
|
with:
|
|
845
849
|
pnpm-lock: pnpm-lock.yaml
|
|
846
850
|
fail-on: high
|
|
@@ -854,7 +858,7 @@ npm 项目可以改用 `npm-lock: package-lock.json`;`pnpm-lock` 和 `npm-lock
|
|
|
854
858
|
调用方需要先 checkout 仓库。这个 Action 不会安装项目依赖,也不会执行项目的 lifecycle script;它只读取提交到仓库的依赖图并查询配置中的上游漏洞源。如果需要完全显式的底层命令,等价写法是:
|
|
855
859
|
|
|
856
860
|
```bash
|
|
857
|
-
pnpm dlx --package=upstream-radar@0.33.
|
|
861
|
+
pnpm dlx --package=upstream-radar@0.33.10 upstream-radar radar check \
|
|
858
862
|
./upstream-radar.config.json --frozen --state :memory: --fail-on high \
|
|
859
863
|
--fail-on-compatibility breaking --json
|
|
860
864
|
```
|
|
@@ -862,7 +866,7 @@ pnpm dlx --package=upstream-radar@0.33.9 upstream-radar radar check \
|
|
|
862
866
|
如果还要检查一个已发布插件能否跨多个 DSH 版本加载,可以增加三个 input:
|
|
863
867
|
|
|
864
868
|
```yaml
|
|
865
|
-
- uses: MicroMilo/upstream-radar@v0.33.
|
|
869
|
+
- uses: MicroMilo/upstream-radar@v0.33.10
|
|
866
870
|
id: radar
|
|
867
871
|
with:
|
|
868
872
|
config: upstream-radar.config.json
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "upstream-radar",
|
|
3
|
-
"version": "0.33.
|
|
3
|
+
"version": "0.33.10",
|
|
4
4
|
"description": "Always-on dependency security monitoring for DeepSeek Harness (DSH) plugins: find exact installed or candidate transitive vulnerable paths and breaking updates, then route evidence to a DSH Agent.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|