Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

docs(key-concepts/presets): rewrite #31358

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 25 additions & 18 deletions docs/usage/key-concepts/presets.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,51 +12,58 @@ To learn how to create your own presets, how to host them, and how to extend fro
Use presets to:

- Set up the bot with good default settings
- Reduce duplication of your configuration
- Avoid duplicating your configuration
- Share your configuration with others
- Use somebody else's configuration and extend it with your own rules
- Use somebody else's configuration as-is, or extend it with your own rules

## How to use presets

Let's say you're using the `config:recommended` preset, and want to pin your GitHub Action digests.
Instead of writing your own Renovate config, you search through Renovate's built-in presets.
You find the the `helpers:pinGitHubActionDigests` preset and add it to the `extends` array:
Say you're using the `config:recommended` preset, and want to pin your GitHub Action digests.
Instead of writing your own Renovate config, you search the docs, and find the `helpers:pinGitHubActionDigests` preset.
Then you add the preset to the `"extends"` array in your Renovate configuration file:

```json
{
"extends": ["config:recommended", "helpers:pinGitHubActionDigests"]
}
```

Renovate now follows the rules for `config:recommended` plus the rules for `helpers:pinGitHubActionDigests`.
If there is a logical conflict between presets, then the last preset in the array wins.
In the example above, Renovate follows the rules from the `config:recommended` preset, plus the rules for `helpers:pinGitHubActionDigests`.

<!-- prettier-ignore -->
!!! tip
If there is a logical conflict between presets, then the _last_ preset in the `"extends"` array "wins".

## Managing config for many repositories

If you manage Renovate for many repositories, then you should create a global preset configuration.
Then you extend the global preset in each repository.
This way you have all global configuration in a single file, in a single repository.
If you manage the Renovate configuration for many repositories, we recommend that you:

1. Create a global preset configuration
1. Extend from the global preset in all of the repositories that should use your global preset as base

This way, when you want to change your global Renovate configuration, you only need to edit the global preset file.

## Presets are modular

Preset configs are modular, they can be as small as a single package rule or as large as an entire configuration.
This is similar to the way you can share ESLint configurations.
Preset configs are modular: a preset can be as small or large as you need.
A preset can even extend from _other_ presets.

## Built-in presets

Renovate comes with a lot of built-in presets that you can use.
Browse [Renovate's default presets](../presets-default.md) to find any that are useful to you.
Once you find a preset you like, put it in an `extends` array in your config file.
Renovate comes with many built-in presets.
We recommend you browse [Renovate's default presets](../presets-default.md).
Again, to use the preset: add it to the `"extends"` array in your Renovate config file.

### Contributing a new built-in preset

If you have a Renovate config that may help others, you can put it into Renovate's built-in presets.

Read [Contributing to presets](../config-presets.md#contributing-to-presets) to learn how.

## Summary

In short:

- Browse [Renovate's default presets](../presets-default.md) to find any that are useful to you
- Publish your own if you wish to reuse them across repositories
- Browse [Renovate's default presets](../presets-default.md), or our other presets, to find helpful presets
- Use presets by putting them in the `"extends"` array in your Renovate config file
- To manage the Renovate configuration for many repositories at once, create a global preset config file
- The order of presets matters: in a logical conflict, the last preset in the `"extends"` array "wins"