feat: shared Renovate preset for project repos
This commit is contained in:
commit
1372b457f5
2 files changed
+178
No files matched your search
@@ -0,0 +1,34 @@
|
||||
# renovate
|
||||
|
||||
Shared Renovate preset for project repositories. Public on purpose: most project
|
||||
repos are private and some are public, and a preset that lives in a private repo
|
||||
resolves for the bot only, while leaking the private repo path to everyone else.
|
||||
There are no secrets here, only rules.
|
||||
|
||||
Use it from a project repo as the whole of its `renovate.jsonc`:
|
||||
|
||||
```json
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": ["local>templates/renovate"]
|
||||
}
|
||||
```
|
||||
|
||||
What it does: docker digests, patches and minors merge themselves after a
|
||||
three day wait; docker majors and database majors wait for a click on the
|
||||
dependency dashboard; code dependencies (npm, pip, go.mod, actions) are
|
||||
collected into one pull request per repo and never merge themselves. Registries
|
||||
without a release timestamp get the `wait-3d` label instead, and the age gate
|
||||
merges those. The edge (`caddy/**`), `_legacy/**` and worktree compose files are
|
||||
out of scope.
|
||||
|
||||
The repo has to carry the `renovate`, `wait-3d` and `deps-code` labels before
|
||||
the first run: Renovate fails on a label that does not exist.
|
||||
|
||||
Extending this preset does NOT subscribe a repo to anything. The bot only visits
|
||||
repos listed in `repositories` in its own config
|
||||
(`projects/personal/renovate/renovate-config.js` in `infra/komodo`).
|
||||
|
||||
`infra/komodo` deliberately does not use this preset: it is the private infra
|
||||
repo, its scope is a set of `includePaths` and it only ever looks at
|
||||
docker-compose.
|
||||
+144
@@ -0,0 +1,144 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"config:recommended",
|
||||
":dependencyDashboard"
|
||||
],
|
||||
"timezone": "Europe/Warsaw",
|
||||
"enabledManagers": [
|
||||
"docker-compose",
|
||||
"dockerfile",
|
||||
"npm",
|
||||
"bun",
|
||||
"pep621",
|
||||
"pip_requirements",
|
||||
"gomod",
|
||||
"github-actions"
|
||||
],
|
||||
"ignorePaths": [
|
||||
"**/caddy/**",
|
||||
"_legacy/**",
|
||||
"**/docker-compose.worktree.yml"
|
||||
],
|
||||
"pinDigests": true,
|
||||
"minimumReleaseAge": "3 days",
|
||||
"minimumReleaseAgeBehaviour": "timestamp-required",
|
||||
"internalChecksFilter": "strict",
|
||||
"labels": [
|
||||
"renovate"
|
||||
],
|
||||
"rebaseWhen": "behind-base-branch",
|
||||
"platformAutomerge": true,
|
||||
"automergeStrategy": "squash",
|
||||
"prHourlyLimit": 8,
|
||||
"prConcurrentLimit": 25,
|
||||
"packageRules": [
|
||||
{
|
||||
"matchDatasources": [
|
||||
"docker"
|
||||
],
|
||||
"matchUpdateTypes": [
|
||||
"patch",
|
||||
"minor",
|
||||
"digest",
|
||||
"pinDigest"
|
||||
],
|
||||
"automerge": true
|
||||
},
|
||||
{
|
||||
"matchDatasources": [
|
||||
"docker"
|
||||
],
|
||||
"matchUpdateTypes": [
|
||||
"pin",
|
||||
"pinDigest"
|
||||
],
|
||||
"groupName": null,
|
||||
"automerge": true
|
||||
},
|
||||
{
|
||||
"matchDatasources": [
|
||||
"docker"
|
||||
],
|
||||
"matchUpdateTypes": [
|
||||
"major"
|
||||
],
|
||||
"automerge": false,
|
||||
"dependencyDashboardApproval": true
|
||||
},
|
||||
{
|
||||
"matchPackageNames": [
|
||||
"postgres",
|
||||
"docker.io/library/postgres",
|
||||
"postgis/postgis",
|
||||
"redis",
|
||||
"docker.io/library/redis",
|
||||
"mongo",
|
||||
"docker.io/library/mongo",
|
||||
"mariadb",
|
||||
"docker.io/library/mariadb",
|
||||
"timescale/timescaledb"
|
||||
],
|
||||
"matchUpdateTypes": [
|
||||
"major"
|
||||
],
|
||||
"automerge": false,
|
||||
"dependencyDashboardApproval": true
|
||||
},
|
||||
{
|
||||
"matchDatasources": [
|
||||
"docker"
|
||||
],
|
||||
"matchPackageNames": [
|
||||
"ghcr.io/**",
|
||||
"lscr.io/**",
|
||||
"quay.io/**",
|
||||
"public.ecr.aws/**",
|
||||
"docker.elastic.co/**"
|
||||
],
|
||||
"minimumReleaseAgeBehaviour": "timestamp-optional",
|
||||
"automerge": false,
|
||||
"addLabels": [
|
||||
"wait-3d"
|
||||
]
|
||||
},
|
||||
{
|
||||
"matchDatasources": [
|
||||
"docker"
|
||||
],
|
||||
"matchCurrentValue": "/^(latest|stable|main|edge|main-stable|latest-full|s6|dind)$/",
|
||||
"minimumReleaseAgeBehaviour": "timestamp-optional",
|
||||
"automerge": false,
|
||||
"addLabels": [
|
||||
"wait-3d"
|
||||
]
|
||||
},
|
||||
{
|
||||
"matchDatasources": [
|
||||
"!docker"
|
||||
],
|
||||
"matchUpdateTypes": [
|
||||
"pin",
|
||||
"patch",
|
||||
"minor",
|
||||
"digest",
|
||||
"pinDigest"
|
||||
],
|
||||
"groupName": "code dependencies",
|
||||
"automerge": false,
|
||||
"addLabels": [
|
||||
"deps-code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"matchDatasources": [
|
||||
"!docker"
|
||||
],
|
||||
"matchUpdateTypes": [
|
||||
"major"
|
||||
],
|
||||
"automerge": false,
|
||||
"dependencyDashboardApproval": true
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user