✨ feat(supply-chain): enumerate active advisory exceptions in passing audit output - #47
Merged
Merged
Conversation
Contributor
Author
Independent review — APPROVE (coordinator-dispatched, not the author)Head: Verified with evidence:
Finding (P3, note only): if two report advisories ever shared one GHSA id, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Resolves F1 (P3) from the independent review of PR #44: a passing
scripts/dependency-audit.mjsrun printed only the raw count line (high=2) plus a generic "no unexcepted high or critical advisories" message, so an operator reading CI logs could not tell which advisories were waived without openingsupply-chain/dependency-audit.json.A passing run now appends an
Active exceptions (N):block naming each valid exception — GHSA id, waived package (from the matched advisory'smodule_name), expiry date, and reason — right next to the green verdict. An exception with no matching advisory in the current run is still listed, flagged(no matching advisory in this run). A pass with zero exceptions keeps the plain one-line message.What did NOT change
scripts/dependency-audit.mjs,scripts/dependency-audit.test.mjsonly. Nosupply-chain/README.mdchange needed — the behavior is self-describing in the output.TDD / mutation evidence
Gates
node scripts/dependency-audit.mjs— exit 0, both GHSA-w3rx-r6r6-pgpr and GHSA-5p2g-fcmc-qvqq enumerated with package/expiry/reasonnode --test scripts/dependency-audit.test.mjs— 26/26 passpnpm build— greenpnpm test:deck— 57/57 pass (lockfile untouched)