fix(renovate): drop the inert confidence gate, raise npm quarantine to 3 days - #195
Merged
Merged
Conversation
There was a problem hiding this comment.
🟢 Ready to approve
The change cleanly removes an invalid Renovate option and adjusts an already-used, validated gate (minimumReleaseAge) with low risk of unintended configuration behavior.
This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.
Pull request overview
Updates the shared Renovate preset to remove a non-functional (and invalid) npm “merge confidence” gate and instead strengthen the effective safety gate by extending the npm release-age quarantine period.
Changes:
- Removes the inert/invalid
matchMergeConfidencepackageRule option (previously rejected byrenovate-config-validator). - Increases third-party npm
minimumReleaseAgefrom1 dayto3 days. - Rewrites the rule description to accurately reflect the actual gating behavior and why
matchConfidencewas not adopted.
File summaries
| File | Description |
|---|---|
| default.json | Removes invalid confidence gating from the third-party npm rule and raises the npm minimum release age quarantine to 3 days, updating the description to match reality. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 0
- Review effort level: Lite
We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.
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.
Closes #193
The third-party npm rule advertised two gates — a release-age quarantine and a merge-confidence check — but only one of them existed.
matchMergeConfidenceis not a Renovate option (the real one ismatchConfidence), so it matched nothing and constrained nothing. Every third-party npm patch and minor has been auto-merging on release age alone, across every repo consuming this preset.renovate-config-validatoronmainbefore this change:Approach
Option 2 from the issue — remove the dead option and strengthen the gate that actually works.
The alternative was renaming to
matchConfidence, which sounds like the obvious fix but is not: it needs a Mend merge-confidence API key, and without one every package reportsneutral, which would not match["high", "very high"]. The rule would stop matching entirely and npm auto-merge would silently switch off org-wide — a large behavioural change arriving as a side effect of a typo fix. That is a decision worth making deliberately, not by accident, so it stays available as a follow-up rather than being smuggled in here.Change
matchMergeConfidenceremovedminimumReleaseAge:1 day→3 daysThree days is where most malicious publishes are detected and yanked; one day catches only the fastest cases. This deliberately makes npm stricter than the sibling Cargo rule (still 1 day) — npm is where these attacks actually land, and that rule's own comment already acknowledges release age is its only gate.
The description now states what the rule does rather than what it was believed to do, and records why
matchConfidencewas not adopted, so the next reader does not re-litigate it.Verification
The file is now clean end to end — this and the
vulnerabilityAlerts.prPriorityremoval in #192 were the only two findings the validator had.Trade-off worth naming
Routine patches now wait three days instead of one. For a security-relevant bump that is too slow — but those come through
vulnerabilityAlerts, which has its ownminimumReleaseAge: 0and is unaffected by this rule.