Configuring Renovate
Introduction
There are a vast amount of ways that Renovate can be configured, and keeping your configurations organized is vital to successfully managing your repository’s configurations. Due to this, Renovate allows multiple different ways of storing configuration files for later use. Although there are multiple different options, only choosing a maximum of 2 or 3 of them for hosting your configuration is recommended to ensure easy troubleshooting. A good place to start is by getting an understanding of Renovate configurations from some examples.
The Default Configuration
Each setting has its own default in Renovate. To get the default for each setting, it is recommended to look up the setting itself in the Renovate Documentation Website where a table displays information on each setting. For instance:
Here, the default value for gitAuthor
is null
, and will remain that way unless it is changed either via an environment variable, or a CLI flag.
The config.js file
For any self-hosted Renovate version, using a config.js
file allows users to store configurations in the filesystem of the machine that runs Renovate, in the same directory where Renovate is run. This creates a global configuration and allows users to add base settings that cannot be changed by users who do not have access to the underlying machine.
This file typically looks like:
module.exports = {
// Renovate Settings
key: "value"
}
More information on the config.js
file can be found here.
Inherited Configuration
A default.json
file inside of a repository that Renovate has access to can be accessed using the “extends"
setting. This method of storing and accessing configurations is called a “Shareable Config Preset”. Read the documentation listed to understand how to host a Shareable config Preset on different platforms. When accessing the configuration users would typically specify:
(platform)>(repo-location)
If a default.json
file is not used, but something else, then this would instead look like:
(platform)>(repo-location)//(file/location/and/name.json)
WARNING: If you are on a platform that is not in the list of supported systems in the documentation above, then use the local
platform and then continue as normal. An example of this is shown in our documentation here.
Repository Configuration
The last form of configuration, is directly on the repository. This configuration is typically hosted at the root level of the repository, with the name renovate.json
. This file provides information on how only that repository should be treated.