Renovate Bot has two main concepts: data sources and managers.
data sources
are the sources of dependencies. It bundles many popular data sources; some relevant ones for Coopdevs include pypi
, gitlab-releases
, git-refs
, and galaxy
, among others.Managers
are the package managers and, in addition to pip
, regexManager
stands out as a powerful one.Going deeper, the packageRules
allow us to define granular configurations for each individual package. We can exclude them, group them, and automate merging, among other options…
By default, Renovate Bot will create an issue named Dependency Dashboard
. There, it will list all detected dependencies and summarize existing and upcoming merge requests.
Configs can be set in one or more levels: repository, environment, run…
At repository level, they are set in a file named renovate.json
at the root of the repo.
regexManagers
"regexManagers": [
{
"fileMatch": [
".*all.yml$"
],
"matchStrings": [
"odoo_provisioning_version: \"(?<currentValue>.*?)\".*"
],
"depNameTemplate": "coopdevs/odoo/odoo-provisioning/odoo-provisioning",
"datasourceTemplate": "gitlab-releases",
"registryUrlTemplate": "https://git.coopdevs.org",
"versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}semver-coerced{{/if}}"
}
]
In this example, we use the regexManagers
to capture the version of a custom dependency and the gitlab-releases
as datasource template.
packageRules
"packageRules": [
{
"excludeDepPatterns" :[
"odoo14-addon-l10n-es-aeat.*",
"odoo-provisioning"
],
"enabled": false
}
]
This way we can generally disable bot on all dependencies but those that match regex expressions.
"packageRules": [
{
"matchPackagePatterns": [
"addon-account"
],
"groupName": "account"
}
]
"packageRules": [
{
"matchUpdateTypes": [
"patch"
],
"automerge": true
}
]