Skip to content

Fix invalid Renovate packageRules matcher - #96

Merged
febus982 merged 2 commits into
mainfrom
fix/renovate-config
Aug 3, 2026
Merged

Fix invalid Renovate packageRules matcher#96
febus982 merged 2 commits into
mainfrom
fix/renovate-config

Conversation

@febus982

@febus982 febus982 commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Closes: #93

Renovate is currently refusing to open PRs on this repo:

packageRules[0].matchPackageNames: Your input contains * or ** along with other patterns. Please remove them, as * or ** matches all patterns.

Root cause

matchPackagePatterns and excludePackageNames are both deprecated. Renovate's config migration collapses them into a single key:

"matchPackageNames": ["*", "!python"]

* is a special value meaning "match everything" and cannot be combined with any other pattern — so the migrated config is invalid. That's why the error names a key the file didn't literally contain.

Fix

Use the negation-only form. A match succeeds when at least one positive pattern matches (vacuously true when there are none) and no negative pattern matches, so every package is still grouped except python — same behaviour as before.

-      "matchPackagePatterns": [
-        "*"
+      "matchPackageNames": [
+        "!python"
       ],
-      "excludePackageNames": ["python"],

Verification

renovate-config-validator reproduces the reported error on the old config and passes on the new one:

$ npx --package renovate renovate-config-validator old-renovate.json
ERROR: Found errors in configuration
       "message": "packageRules[0].matchPackageNames: Your input contains * or ** along with other patterns. ..."

$ npx --package renovate renovate-config-validator renovate.json
 INFO: Config validated successfully against 1 file(s)

🤖 Generated with Claude Code

https://claude.ai/code/session_01BJb27fB7d7HbQqfXc7U66V

febus982 and others added 2 commits August 3, 2026 22:05
`matchPackagePatterns` and `excludePackageNames` are both deprecated.
Renovate's config migration rewrites them into a single
`matchPackageNames: ["*", "!python"]`, which is invalid: `*` means
"match everything" and cannot be combined with other patterns.

Use the negation-only form instead. With no positive patterns present,
every package matches unless a negative pattern rejects it, so this
preserves the original intent of grouping all minor/patch updates
except `python`.

Verified with `renovate-config-validator`: the previous config fails
with the reported error, the new one validates cleanly.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJb27fB7d7HbQqfXc7U66V
@febus982
febus982 merged commit 0abf5b6 into main Aug 3, 2026
11 checks passed
@febus982
febus982 deleted the fix/renovate-config branch August 3, 2026 21:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Action Required: Fix Renovate Configuration

1 participant