Skip to content

Latest commit

 

History

History

renovate-presets

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

Renovate shared presets

Presets makes rules easier to maintain and reusable across multiple repositories.

How to use a preset

Reference the preset in the extends field of the renovate.json file in the repository.
Presets can reference other presets. (read more about shared presets)

{
  "extends": [
    "github>argoproj/argo-cd//renovate-presets/custom-managers/bash.json5"
]
}

Note :

It would make sense to move this folder to a new repository in the future.

Benefits:

  • Avoids consuming the repository's CI/CD resources.
  • Faster feedback loop for configuration changes.
  • Avoid polluting the master git history.
  • The renovate.json in each repository can be simplified to only include a single presets :
     {
       "$schema": "https://docs.renovatebot.com/renovate-schema.json",
       "extends": [
         "github>argoproj/renovate-presets//argoproj/argo-cd/renovate.json5"
       ],
       // rules are empty and this file won't need to be modified again.
       "packageRules": []
     }

Inconvenient:

  • Owners of a repository can impact the configuration of all repositories. Use codeowners to reduce the risk.

Example of repo structure :

.
├── README.md
├── .github/CODEOWNERS
├── common.json5       # common presets for all repositories
├── fix/
│   └── openssf-merge-confidence-columns.json5
├── custom-managers/
│   ├── bash.json5
│   └── yaml.json5
└── argoproj/ # organization
    ├── argo-cd/ # repository
    │   ├── devtools.json5 # rules specific to the devtool (CI and dev environment...)
    │   ├── docs.json5 # rules specific to the docs folder.
    │   ├── # etc...
    │   └── renovate.json5 # this is the single preset referenced from the repository argopro/argo-cd.
    └── argo-rollouts/ # repository
        └── renovate.json5