ci(renovate): label major and override PRs, and record the create-first trap #52
No reviewers
Labels
No labels
dependencies
major
security-pin
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
trails-cool/trails!52
Loading…
Reference in a new issue
No description provided.
Delete branch "ci/renovate-labels"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The bug behind this
The repo had zero labels — repo and org level. So
labels: ["dependencies"]has been silently doing nothing since Renovate was introduced: every PR came out bare, with"labels": []visible in the run log while the config read as correct.Renovate can attach labels on Forgejo but cannot create them, and a label that doesn't exist is dropped without any warning. That trap is now written down next to the setting.
Created on the repo and backfilled
dependenciesonto the 11 open Renovate PRs (Renovate only labels at creation, so existing PRs needed it by hand):dependenciesmajorsecurity-pinpnpm.overridesCVE pin, not an ordinary depTwo rules
majoron every major bump — these are excluded from auto-merge by design, so they're the set worth filtering for.security-pinon anything touchingpnpm.overrides. Those 13 entries are CVE remediation pins, not dependencies: the correct value for one is the minimum patched version inside the range its consumers expect, not the newest release. Renovate can't know that, so it offers "latest" and produces PRs that are wrong by construction — #44 proposed forcingpath-to-regexp8.x into a tree whereexpress@4.22.2needs the 0.1.x API, and E2E duly failed. The label makes that distinction visible on the PR instead of requiring the reviewer to reconstruct it.Both use
addLabels, notlabels: alabelskey inside apackageRulereplaces the top-level list, which would have silently droppeddependenciesfrom precisely the PRs most worth filtering.Verified
Parsed the config and computed effective labels per case rather than eyeballing rule order:
Also asserted that every label referenced anywhere in the config now exists on the repo — the check that would have caught the original bug.
Deliberately not included
To keep a labels change to labels:
pnpm.overrides— the part that actually stops #44/#46/#47 regenerating every weekosvVulnerabilityAlerts+ asecuritylabel — the real replacement for Dependabot security updatesBoth belong to the CVE follow-up we discussed, alongside
lockFileMaintenanceand the react-router 7.17.0 → 7.18.2 fix.