Files

151 lines
4.0 KiB
Plaintext

{
$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/(?<depName>.+)/releases/download/(?<currentValue>.+)/plugin.wasm"',
],
datasourceTemplate: 'github-releases',
},
{
customType: 'regex',
managerFilePatterns: [
'/^(workflow-templates|\\.github\\/workflows)\\/[^/]+\\.ya?ml$/',
],
matchStrings: [
'cargo install.*--version (?<currentValue>\\S+).*\\s(?<depName>\\S+)',
],
datasourceTemplate: 'crate',
},
{
customType: 'regex',
managerFilePatterns: [
'/^(workflow-templates|\\.github\\/workflows)\\/[^/]+\\.ya?ml$/',
],
matchStrings: [
'^\\s+tool: (?<depName>[\\w-]+)@(?<currentValue>[^\\s]+)',
],
datasourceTemplate: 'crate',
},
{
customType: 'regex',
managerFilePatterns: [
'/^(workflow-templates|\\.github\\/workflows)\\/[^/]+\\.ya?ml$/',
],
matchStrings: [
'ziglang==(?<currentValue>\\S+)',
],
datasourceTemplate: 'pypi',
depNameTemplate: 'ziglang',
},
],
}