Skip to content

Commit 62cd23d

Browse files
matthewelwellclaude
andcommitted
chore(renovate): enable lock file maintenance
Renovate raises security PRs from manifest entries, so a CVE in a package that appears only in a lock file is never actioned. That is the bulk of our exposure: of 95 findings currently open against flagsmith-ee, which shares these four lock files, 69 are transitive pins and only 26 are declared in a manifest. There is no longer a dedicated option for this. transitiveRemediation, which handled exactly this case, was npm@6-only and has been removed from Renovate; it is absent from the current schema. Refreshing the lock file within existing ranges is the only remaining mechanism that reaches transitive pins. security:only-security-updates disables everything via a blanket matchPackageNames ['*'] rule, so lock file maintenance needs an explicit packageRule to escape it. The top-level block alone silently no-ops. Measured against the real backlog before committing: - frontend/ + docs/ `npm update --package-lock-only` clears 38 of 53 npm findings. The rest are pinned by a parent or capped by a declared range, and need an override or a manifest bump. - mcp/ `uv lock --upgrade` clears both open findings. - api/ see #8469, which lands the first refresh along with the constraints that keep it reviewable. api/ needs no special handling for CodeArtifact. renovate.yml already mints a token over OIDC and passes it as RENOVATE_HOST_RULES; Renovate's uv processor reads [[tool.uv.index]] from pyproject.toml, matches the host rule, and exports UV_INDEX_FLAGSMITH_PYPI_PRODUCTION_{USERNAME,PASSWORD} for the uv subprocess - precisely what `make codeartifact-login` writes. That path is already exercised in production, since it is how Renovate resolves flagsmith-private versions for the eager-bump rule. Verified with `renovate --platform=local --dry-run=full` on renovate/renovate:44.62.2-full: four lock file maintenance candidates, none filtered, grouped into a single renovate/lock-file-maintenance branch. Config validates against renovate 44.64.0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 2ce9498 commit 62cd23d

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

renovate.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,16 @@
44
"security:only-security-updates",
55
":semanticCommitTypeAll(deps)"
66
],
7+
"lockFileMaintenance": {
8+
"enabled": true,
9+
"schedule": ["before 4am on monday"]
10+
},
711
"packageRules": [
12+
{
13+
"description": "Re-enable lock file maintenance, which security:only-security-updates disables via its blanket matchPackageNames ['*'] rule. Renovate raises security PRs from manifest entries, so a CVE in a package that appears only in a lock file is never actioned; refreshing the lock file within existing ranges is the only mechanism that reaches transitive pins.",
14+
"matchUpdateTypes": ["lockFileMaintenance"],
15+
"enabled": true
16+
},
817
{
918
"matchManagers": ["pep621"],
1019
"matchFileNames": ["api/**"],

0 commit comments

Comments
 (0)