Skip to content

Renovate phases

Configurations

The first step is to merge the configurations. From more important to less:

cli > env > file > default

Cloning

Then the platform module interacts with the source control platform and clones the list of configured repositories.

There are some supported platforms we can configure, such as azure, bitbucket, github, gitlab, gitea,...

More information about platforms here:

https://docs.renovatebot.com/modules/platform/

Vulnerabilities

Next there is check for vulnerabilities.

Is it possible to only update dependencies if vulnerabilities have been detected (security:only-security-updates)

Extract dependencies with package managers

Then the manager module looks for files based on their name and extracts the dependencies. It assigns a datasource to each extracted package file or dependency. The datasource tells Renovate how to search for new versions.

Example: The gitlabci manager finds a dependency: python:3.10-alpine which has the docker datasource

Some package managers are ansible, helm-values, argocd,... and it is possible to reconfigure the file match.

More info about the package managers module here:

https://docs.renovatebot.com/modules/manager/

Look up updates

Then the datasource module looks for available versions of the dependency looking up registries.

Example: The docker datasource looks for versions and finds: [python:3.9,python:3.9-alpine,python:3.10,python:3.10-alpine,python:3.11,python:3.11-alpine]

Some datasources are docker, github-releases, helm, ruby-gems

More info about the datasources module here:

https://docs.renovatebot.com/modules/datasource/

Versioning

Once we have located available versions, the versioning module will use a scheme to perform sorting and filtering of results.

Example: The docker versioning returns python:3.11-alpine, because that version is compatible with python:3.10-alpine

It is usually recommended to configure the versioning because the default way can fail in some scenarios.

More info about versioning module here:

https://docs.renovatebot.com/modules/versioning/

Write updates

Once the updates has been chosen, the changes are pushed to the repository depending how it is configured