You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`--match-malware`| Match current SBOM set against cached advisories |
69
69
|`--malware-cache <dir>`| Advisory cache directory (required with malware operations) |
70
+
|`--malware-cutoff <ISO-date>`| Ignore advisories whose publishedAt AND updatedAt are both before this date/time (e.g. `2025-09-29` or full timestamp) |
If you also perform a search in the same invocation (add `--purl` or `--purl-file`), the JSON file will contain both `malwareMatches` and `search` top-level keys.
146
147
148
+
#### Advisory Date Cutoff
149
+
150
+
Use `--malware-cutoff` to exclude older advisories from matching. An advisory will be skipped if **both** its `publishedAt` and `updatedAt` timestamps are strictly earlier than the cutoff.
151
+
152
+
Accepted formats:
153
+
154
+
- Plain date: `YYYY-MM-DD` (interpreted as `YYYY-MM-DDT00:00:00.000Z`)
155
+
- Full ISO timestamp: e.g. `2025-09-29T15:30:00Z`
156
+
157
+
Examples:
158
+
159
+
```bash
160
+
# Ignore advisories published & last updated entirely before Sept 29 2025
Rationale: This lets you focus on newly introduced / recently changed malware advisories (e.g., during incremental monitoring) without re-reporting older historical matches. Advisories updated after the cutoff remain eligible even if originally published earlier.
168
+
147
169
### Progress bar & log noise suppression
148
170
149
171
When collecting a large number of SBOMs you can enable a lightweight progress bar:
Copy file name to clipboardExpand all lines: src/cli.ts
+5-4Lines changed: 5 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -31,6 +31,7 @@ async function main() {
31
31
.option("match-malware",{type: "boolean",default: false,describe: "After sync/load, match SBOM packages against malware advisories"})
32
32
.option("sarif-dir",{type: "string",describe: "Directory to write SARIF 2.1.0 files (one per repository) when --match-malware is used"})
33
33
.option("upload-sarif",{type: "boolean",default: false,describe: "Upload generated SARIF (per-repo) to the Code Scanning API (requires --match-malware)"})
34
+
.option("malware-cutoff",{type: "string",describe: "Ignore advisories whose publishedAt and updatedAt are both before this ISO date (e.g. 2025-09-29)"})
34
35
.option("purl-file",{type: "string",describe: "Path to file with PURL queries (one per line; supports version ranges & wildcards; # or // for comments)"})
35
36
.option("json",{type: "boolean",describe: "Emit search results as JSON to stdout (suppresses human output unless --cli also provided)"})
36
37
.option("cli",{type: "boolean",describe: "When used with --json, also emit human-readable CLI output"})
0 commit comments