github.com/argoproj/argo-cd/v3@v3.2.1/renovate-presets/README.md (about)

     1  # Renovate shared presets
     2  
     3  Presets makes rules easier to maintain and reusable across multiple repositories.
     4  
     5  # How to use a preset
     6  
     7  Reference the preset in the `extends` field of the `renovate.json` file in the repository.  
     8  Presets can reference other presets. (read more about [shared presets](https://docs.renovatebot.com/config-presets/))  
     9  
    10  ```json
    11  {
    12    "extends": [
    13      "github>argoproj/argo-cd//renovate-presets/custom-managers/bash.json5"
    14  ]
    15  }
    16  ```
    17  
    18  ### Note :
    19  
    20  It would make sense to move this folder to a new repository in the future.  
    21  
    22  Benefits:  
    23  - Avoids consuming the repository's CI/CD resources.  
    24  - Faster feedback loop for configuration changes.
    25  - Avoid polluting the master git history.  
    26  - The `renovate.json` in each repository can be simplified to only include a single presets :
    27  	```json
    28  	{
    29  	  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
    30  	  "extends": [
    31  	    "github>argoproj/renovate-presets//argoproj/argo-cd/renovate.json5"
    32  	  ],
    33  	  // rules are empty and this file won't need to be modified again.
    34  	  "packageRules": []
    35  	}
    36  	```
    37  Inconvenient:  
    38  - Owners of a repository can impact the configuration of all repositories. Use codeowners to reduce the risk.  
    39  
    40  Example of repo structure :  
    41  ```shell
    42  .
    43  ├── README.md
    44  ├── .github/CODEOWNERS
    45  ├── common.json5       # common presets for all repositories
    46  ├── fix/
    47  │   └── openssf-merge-confidence-columns.json5
    48  ├── custom-managers/
    49  │   ├── bash.json5
    50  │   └── yaml.json5
    51  └── argoproj/ # organization
    52      ├── argo-cd/ # repository
    53      │   ├── devtools.json5 # rules specific to the devtool (CI and dev environment...)
    54      │   ├── docs.json5 # rules specific to the docs folder.
    55      │   ├── # etc...
    56      │   └── renovate.json5 # this is the single preset referenced from the repository argopro/argo-cd.
    57      └── argo-rollouts/ # repository
    58          └── renovate.json5
    59  
    60  ```