{ $schema: 'https://docs.renovatebot.com/renovate-schema.json', extends: [ 'config:best-practices', 'security:openssf-scorecard', // automerge minor updates ':automergeMinor', ':automergeBranch', ], ignorePresets: [ ':dependencyDashboard', ':semanticPrefixFixDepsChoreOthers', ], labels: [ '📦 dependencies', ], minimumReleaseAge: '4 days', semanticCommits: 'enabled', semanticCommitType: 'build', rangeStrategy: 'bump', rebaseWhen: 'conflicted', lockFileMaintenance: { enabled: true, extends: [ 'schedule:weekly', ], groupName: 'lockfile maintenance', automerge: true, }, packageRules: [ // group updates to related packages { groupName: 'clap crates', matchDatasources: [ 'crate', ], matchPackageNames: [ 'clap{/,}**', ], }, { groupName: 'gitoxide crates', matchDatasources: [ 'crate', ], matchPackageNames: [ 'gix{/,}**', ], }, { groupName: 'pest crates', matchDatasources: [ 'crate', ], matchPackageNames: [ 'pest{/,}**', ], }, { groupName: 'toml crates', matchDatasources: [ 'crate', ], matchPackageNames: [ 'toml{/,}**', ], }, { groupName: 'unicode crates', matchDatasources: [ 'crate', ], matchPackageNames: [ 'unicode{/,}**', ], }, // Prevent too many PRs by grouping certain updates together and only updating them weekly { groupName: 'dprint plugins', extends: [ 'schedule:weekly', ], matchPackageNames: [ 'dprint{/,}**', ], }, { groupName: 'npm', matchDatasources: [ 'npm', ], extends: [ 'schedule:weekly', ], }, // Avoid frequent updates due to pinned digest values in GitHub Actions { matchDepTypes: [ 'action', ], extends: [ 'schedule:weekly', ], }, ], // custom regex update managers customManagers: [ { customType: 'regex', managerFilePatterns: [ '/(^|\\/)\\.?dprint.json/', ], matchStrings: [ '"https://github.com/(?.+)/releases/download/(?.+)/plugin.wasm"', ], datasourceTemplate: 'github-releases', }, { customType: 'regex', managerFilePatterns: [ '/^(workflow-templates|\\.github\\/workflows)\\/[^/]+\\.ya?ml$/', ], matchStrings: [ 'cargo install.*--version (?\\S+).*\\s(?\\S+)', ], datasourceTemplate: 'crate', }, { customType: 'regex', managerFilePatterns: [ '/^(workflow-templates|\\.github\\/workflows)\\/[^/]+\\.ya?ml$/', ], matchStrings: [ '^\\s+tool: (?[\\w-]+)@(?[^\\s]+)', ], datasourceTemplate: 'crate', }, { customType: 'regex', managerFilePatterns: [ '/^(workflow-templates|\\.github\\/workflows)\\/[^/]+\\.ya?ml$/', ], matchStrings: [ 'ziglang==(?\\S+)', ], datasourceTemplate: 'pypi', depNameTemplate: 'ziglang', }, ], }