{
	"$schema": "https://docs.renovatebot.com/renovate-schema.json",
	"extends": ["config:recommended", ":semanticCommits", ":dependencyDashboard"],
	"rebaseWhen": "behind-base-branch",
	"labels": ["dependencies"],
	"lockFileMaintenance": {
		"enabled": true,
		"schedule": ["before 6am on monday"]
	},
	"customManagers": [
		{
			"customType": "regex",
			"managerFilePatterns": ["/^crates/alef-core/src/template_versions\\.rs$/"],
			"matchStrings": [
				"// renovate:\\s*datasource=(?<datasource>\\S+)(?:\\s+depName=(?<depName>\\S+))?(?:\\s+packageName=(?<packageName>\\S+))?(?:\\s+versioning=(?<versioning>\\S+))?(?:\\s+extractVersion=(?<extractVersion>\\S+))?\\s*\\n\\s*pub const [A-Z_]+: &str = \"(?<currentValue>[^\"]+)\";"
			],
			"depNameTemplate": "{{#if depName}}{{{depName}}}{{else}}{{{packageName}}}{{/if}}",
			"packageNameTemplate": "{{#if packageName}}{{{packageName}}}{{else}}{{{depName}}}{{/if}}"
		}
	],
	"packageRules": [
		{
			"description": "Group Rust crate version pins emitted into generated bindings",
			"matchManagers": ["custom.regex"],
			"matchDatasources": ["crate"],
			"groupName": "generated rust crate pins"
		},
		{
			"description": "Group Python tooling pins",
			"matchManagers": ["custom.regex"],
			"matchDatasources": ["pypi"],
			"groupName": "python tooling pins"
		},
		{
			"description": "Group npm tooling pins",
			"matchManagers": ["custom.regex"],
			"matchDatasources": ["npm"],
			"groupName": "npm tooling pins"
		},
		{
			"description": "Group RubyGems tooling pins",
			"matchManagers": ["custom.regex"],
			"matchDatasources": ["rubygems"],
			"groupName": "rubygems tooling pins"
		},
		{
			"description": "Group Packagist (PHP) tooling pins",
			"matchManagers": ["custom.regex"],
			"matchDatasources": ["packagist"],
			"groupName": "php tooling pins"
		},
		{
			"description": "Group Maven (Java/Kotlin) tooling pins",
			"matchManagers": ["custom.regex"],
			"matchDatasources": ["maven"],
			"groupName": "jvm tooling pins"
		},
		{
			"description": "Group NuGet (C#) tooling pins",
			"matchManagers": ["custom.regex"],
			"matchDatasources": ["nuget"],
			"groupName": "csharp tooling pins"
		},
		{
			"description": "Group Hex (Elixir/Gleam) tooling pins",
			"matchManagers": ["custom.regex"],
			"matchDatasources": ["hex"],
			"groupName": "beam tooling pins"
		},
		{
			"description": "Group pub.dev (Dart) tooling pins",
			"matchManagers": ["custom.regex"],
			"matchDatasources": ["pub"],
			"groupName": "dart tooling pins"
		},
		{
			"description": "Group CRAN (R) tooling pins",
			"matchManagers": ["custom.regex"],
			"matchDatasources": ["cran"],
			"groupName": "r tooling pins"
		},
		{
			"description": "Group pre-commit hook revisions tracked via github-tags",
			"matchManagers": ["custom.regex"],
			"matchDatasources": ["github-tags"],
			"groupName": "pre-commit hook revisions"
		},
		{
			"description": "Group GitHub Actions",
			"matchManagers": ["github-actions"],
			"groupName": "github actions"
		}
	]
}
