-
-
Notifications
You must be signed in to change notification settings - Fork 29
Update renovate config #2398
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update renovate config #2398
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,200 +1,30 @@ | ||
| { | ||
| "extends": [ | ||
| "config:recommended" | ||
| ], | ||
| "branchPrefix": "deps/", | ||
| "labels": [ | ||
| "Dependencies" | ||
| ], | ||
| "assignees": [], | ||
| "ignorePresets": [ | ||
| ":prHourlyLimit2" | ||
| ], | ||
| "extends": ["config:recommended"], | ||
| "automerge": true, | ||
| "rangeStrategy": "bump", | ||
| "timezone": "UTC", | ||
| "configMigration": true, | ||
| "ignorePaths": [ | ||
| ".vortex/**" | ||
| ], | ||
| "enabledManagers": [ | ||
| "composer", | ||
| "npm", | ||
| "dockerfile", | ||
| "docker-compose", | ||
| "github-actions", | ||
| "custom.regex" | ||
| ], | ||
| "dependencyDashboard": true, | ||
| "pinDigests": true, | ||
| "branchPrefix": "deps/", | ||
| "packageRules": [ | ||
| { | ||
| "groupName": "PHP - Language version - Skipped to update manually", | ||
| "groupSlug": "php-language-version", | ||
| "matchDepNames": [ | ||
| "php" | ||
| ], | ||
| "matchManagers": [ | ||
| "composer" | ||
| ], | ||
| "matchDepNames": ["php"], | ||
| "matchManagers": ["composer"], | ||
| "enabled": false | ||
| }, | ||
| { | ||
| "groupName": "JavaScript - Language versions - Skipped to update manually", | ||
| "groupSlug": "js-language-versions", | ||
| "matchDepNames": [ | ||
| "node", | ||
| "yarn" | ||
| ], | ||
| "matchManagers": [ | ||
| "npm" | ||
| ], | ||
| "matchDepNames": ["node", "yarn"], | ||
| "matchManagers": ["npm"], | ||
| "enabled": false | ||
| }, | ||
| { | ||
| "groupName": "PHP - All packages - Major - Skipped to update manually", | ||
| "groupSlug": "php-all-major", | ||
| "matchDatasources": [ | ||
| "packagist" | ||
| ], | ||
| "matchFileNames": [ | ||
| "composer.json" | ||
| ], | ||
| "matchUpdateTypes": [ | ||
| "major" | ||
| ], | ||
| "enabled": false, | ||
| "matchPackageNames": [ | ||
| "/.*/" | ||
| ] | ||
| }, | ||
| { | ||
| "groupName": "PHP - All packages except core - Minor and patch", | ||
| "groupSlug": "php-all-except-core-minor-patch", | ||
| "matchDatasources": [ | ||
| "packagist" | ||
| ], | ||
| "matchFileNames": [ | ||
| "composer.json" | ||
| ], | ||
| "separateMinorPatch": false, | ||
| "schedule": [ | ||
| "before 2am on Sunday" | ||
| ], | ||
| "matchPackageNames": [ | ||
| "/.*/", | ||
| "!drupal/core-composer-scaffold", | ||
| "!drupal/core-project-message", | ||
| "!drupal/core-recommended", | ||
| "!drupal/core-dev" | ||
| ] | ||
| }, | ||
| { | ||
| "groupName": "PHP - Drupal core - Minor and patch", | ||
| "groupSlug": "php-drupal-core-minor-patch", | ||
| "matchFileNames": [ | ||
| "composer.json" | ||
| ], | ||
| "schedule": [ | ||
| "before 2am" | ||
| ], | ||
| "matchDatasources": [ | ||
| "packagist" | ||
| ], | ||
| "matchUpdateTypes": [ | ||
| "patch", | ||
| "minor" | ||
| ], | ||
| "matchDepNames": [ | ||
| "drupal/core-composer-scaffold", | ||
| "drupal/core-project-message", | ||
| "drupal/core-recommended", | ||
| "drupal/core-dev" | ||
| ] | ||
| }, | ||
| { | ||
| "groupName": "JavaScript - Non-root packages - Skipped to update manually", | ||
| "groupSlug": "js-non-root", | ||
| "matchDatasources": [ | ||
| "npm" | ||
| ], | ||
| "matchFileNames": [ | ||
| "!package.json" | ||
| ], | ||
| "enabled": false, | ||
| "matchPackageNames": [ | ||
| "/.*/" | ||
| ] | ||
| }, | ||
| { | ||
| "groupName": "JavaScript - All packages - Major - Skipped to update manually", | ||
| "groupSlug": "js-all-major", | ||
| "matchDatasources": [ | ||
| "npm" | ||
| ], | ||
| "matchFileNames": [ | ||
| "package.json" | ||
| ], | ||
| "matchUpdateTypes": [ | ||
| "major" | ||
| ], | ||
| "enabled": false, | ||
| "matchPackageNames": [ | ||
| "/.*/" | ||
| ] | ||
| }, | ||
| { | ||
| "groupName": "JavaScript - All packages - Minor and patch", | ||
| "groupSlug": "js-all-minor-patch", | ||
| "matchDatasources": [ | ||
| "npm" | ||
| ], | ||
| "matchFileNames": [ | ||
| "package.json" | ||
| ], | ||
| "separateMinorPatch": false, | ||
| "schedule": [ | ||
| "before 2am on Sunday" | ||
| ], | ||
| "matchPackageNames": [ | ||
| "/.*/" | ||
| ] | ||
| }, | ||
| { | ||
| "groupName": "Container images - All - Major, minor and patch", | ||
| "groupSlug": "container-images-all-major-minor-patch", | ||
| "matchFileNames": [ | ||
| ".docker/**" | ||
| ], | ||
| "schedule": [ | ||
| "before 3am" | ||
| ], | ||
| "matchManagers": [ | ||
| "dockerfile", | ||
| "docker-compose", | ||
| "custom.regex" | ||
| ] | ||
| "matchManagers": ["npm", "composer"], | ||
| "matchUpdateTypes": ["major"], | ||
| "enabled": false | ||
|
Comment on lines
+20
to
+22
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "Detecting common non-npm/composer manifests that Renovate may manage:"
fd -HI '(Dockerfile|docker-compose\.ya?ml|Chart\.yaml|values\.yaml|\.github/workflows/.*\.ya?ml|requirements\.txt|pyproject\.toml|Pipfile|go\.mod|pom\.xml|build\.gradle|Gemfile|Cargo\.toml)$' .
echo
echo "If files are listed above, consider whether major updates for those managers should also be disabled."Repository: drevops/vortex Length of output: 2612 🏁 Script executed: cat -n renovate.jsonRepository: drevops/vortex Length of output: 1021 🏁 Script executed: fd -HI '(renovate\.json|\.renovaterc|\.renovaterc\.json|\.renovaterc\.js|\.renovaterc\.cjs|renovate\.json5)$' .Repository: drevops/vortex Length of output: 402 Major-update blocking is too narrow for repo-wide automerge. This rule disables majors only for Suggested guardrail {
- "matchManagers": ["npm", "composer"],
"matchUpdateTypes": ["major"],
"enabled": false
},🤖 Prompt for AI Agents |
||
| }, | ||
| { | ||
| "groupName": "GitHub Actions - All - Major, minor and patch", | ||
| "groupSlug": "github-actions-all-major-minor-patch", | ||
| "schedule": [ | ||
| "before 3am" | ||
| ], | ||
| "matchManagers": [ | ||
| "github-actions" | ||
| ], | ||
| "pinDigests": true | ||
| } | ||
| ], | ||
| "customManagers": [ | ||
| { | ||
| "customType": "regex", | ||
| "managerFilePatterns": [ | ||
| "/^docker-compose\\.yml$/" | ||
| ], | ||
| "matchStrings": [ | ||
| "IMAGE:\\s*\"?\\${(?:.*):-(?<depName>.*?):(?<currentValue>.*?)(?:\\@sha256:.*)?}\"?" | ||
| ], | ||
| "datasourceTemplate": "docker", | ||
| "versioningTemplate": "docker" | ||
| "matchPackageNames": ["*"], | ||
| "groupName": "all dependencies", | ||
| "groupSlug": "all" | ||
| } | ||
| ] | ||
| } | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
In Renovate, does root-levelautomerge: trueapply to grouped PRs created by a catch-allpackageRulesgroup (matchPackageNames: ["*"])? What do Renovate docs recommend as a safe automerge strategy for grouped updates?💡 Result:
Yes. In Renovate, a root-level
"automerge": truebecomes the default for all updates (including grouped PRs) unless a matchingpackageRulesentry overrides it. Renovate evaluates all matchingpackageRulesand merges their resulting config, with later rules able to override earlier ones—so a catch-all grouping rule likematchPackageNames: ["*"]+groupName: ...will still inherit rootautomerge: trueif it doesn’t setautomergeitself. [1] Grouping (groupName) just changes how updates are bundled into branches/PRs; it doesn’t disable automerge by itself. [2]Docs’ safer automerge strategy for grouped updates: Renovate maintainers recommend enabling automerge only for updates you’d “merge anyway,” and commonly for lower-risk updates (e.g., lock file maintenance, dev tooling, and non-major updates when you have good tests). [3] Their examples show scoping automerge with
packageRules(e.g., onlypatch/minor, and excluding pre-1.0.0 because SemVer allows breaking changes there), which is especially important if you’re grouping. [4] They also explicitly show automerging within a group by combiningmatchUpdateTypes: ["patch","minor"]withautomerge: true. [5] If you want extra safety, the docs also note splitting patch vs minor (so you can automerge patch while reviewing minor) usingseparateMinorPatch: true. [6]Sources
[1] https://docs.renovatebot.com/configuration-options/
[2] https://docs.renovatebot.com/configuration-options/#groupname
[3] https://docs.renovatebot.com/key-concepts/automerge/
[4] https://docs.renovatebot.com/key-concepts/automerge/#automerge-non-major-updates
[5] https://docs.renovatebot.com/key-concepts/automerge/#automerge-monorepo-prs
[6] https://docs.renovatebot.com/configuration-options/#separateminorpatch
Remove root-level automerge or scope it to safe update types.
Root-level
"automerge": true(line 3) applies to all PRs, including the catch-all dependency group (lines 25–27). This creates high blast radius: a single large mixed-update PR can auto-merge on green CI, bypassing staged rollout safety.Renovate docs recommend scoping automerge to lower-risk updates only (e.g., patch, minor, digest). Set root automerge to false and add a packageRule to automerge only specific update types:
Safer config
🤖 Prompt for AI Agents