forgejo/renovate.json
Earl Warren d4bb667051
chore(dependency): automerge all JavaScript CI dependencies
Make a pass to have a full inventory of JavaScript dependencies that
can be automerged because they only have an impact on the CI. It is
easier than to examine them one by one when an update is proposed.

- add packages:test which indirectly includes packages:jsUnitTest and
  a number of test dependencies such as vitest
- add prefixes for dependencies which are known to be exclusively
  used for testing (playwright, ...)
- add modules

Refs: https://docs.renovatebot.com/presets-packages
2024-05-08 19:32:24 +02:00

150 lines
4.5 KiB
JSON

{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:best-practices",
":approveMajorUpdates",
":maintainLockFilesWeekly",
"group:postcss",
"group:linters",
"schedule:daily",
"schedule:automergeDaily"
],
"ignorePresets": [
":semanticPrefixFixDepsChoreOthers",
"docker:pinDigests",
"helpers:pinGitHubActionDigests"
],
"semanticCommits": "disabled",
"automergeStrategy": "merge-commit",
"postUpdateOptions": ["gomodTidy", "gomodUpdateImportPaths", "npmDedupe"],
"prConcurrentLimit": 5,
"internalChecksFilter": "strict",
"packageRules": [
{
"description": "Require approval for go and python minor version",
"matchDepNames": [
"go",
"python",
"golang",
"docker.io/golang",
"docker.io/library/golang"
],
"matchUpdateTypes": ["minor"],
"dependencyDashboardApproval": true
},
{
"description": "Require dashboard approval for some deps",
"matchDepNames": [
"bitnami/minio",
"github.com/go-ap/activitypub",
"github.com/nektos/act",
"gitea.com/gitea/act"
],
"dependencyDashboardApproval": true
},
{
"description": "Schedule some deps less frequently",
"matchDepNames": ["github.com/google/pprof"],
"extends": ["schedule:quarterly"]
},
{
"description": "Group golang packages",
"matchDepNames": [
"go",
"golang",
"docker.io/golang",
"docker.io/library/golang"
],
"groupName": "golang packages"
},
{
"description": "Group nodejs packages",
"matchDepNames": ["node", "docker.io/node", "docker.io/library/node"],
"groupName": "nodejs packages",
"versionCompatibility": "^(?<version>[^-]+)(?<compatibility>-.*)?$",
"versioning": "node"
},
{
"description": "Automerge renovate updates",
"matchDatasources": ["docker"],
"matchPackageNames": ["ghcr.io/visualon/renovate"],
"matchUpdateTypes": ["minor", "patch", "digest"],
"automerge": true
},
{
"description": "Split minor and patch updates",
"matchDepNames": ["vue", "github.com/urfave/cli/v2", "swagger-ui-dist"],
"separateMinorPatch": true
},
{
"description": "Automerge patch updates",
"matchDepNames": ["vue", "github.com/urfave/cli/v2", "swagger-ui-dist"],
"matchUpdateTypes": ["patch"],
"automerge": true
},
{
"description": "Update renovate with higher prio to come through rate limit",
"matchDatasources": ["docker"],
"matchDepNames": ["ghcr.io/visualon/renovate"],
"prPriority": 10
},
{
"description": "Disable actions/cascading-pr for now <https://github.com/renovatebot/renovate/issues/28120>",
"matchDepNames": ["actions/cascading-pr"],
"matchManagers": ["github-actions"],
"enabled": false
},
{
"description": "Automerge some packages when CI succeeds",
"extends": ["packages:linters", "packages:test"],
"matchDepNames": [
"github.com/PuerkitoBio/goquery",
"happy-dom",
"markdownlint-cli",
"updates",
"vite-string-plugin",
"@vue/test-utils"
],
"matchPackagePrefixes": [
"@eslint-community/",
"@playwright/",
"@stoplight/spectral-cli",
"@stylistic/"
],
"automerge": true
},
{
"description": "Hold back on some package updates for a few days",
"matchDepNames": ["monaco-editor"],
"minimumReleaseAge": "30 days"
}
],
"customManagers": [
{
"description": "Update go-version in forgejo workflows",
"customType": "regex",
"fileMatch": ["^.forgejo/workflows/.+\\.yml$"],
"matchStrings": ["\\s+go-version: ['\"]?(?<currentValue>.+?)['\"]?\\s"],
"depNameTemplate": "go",
"datasourceTemplate": "golang-version",
"versioningTemplate": "go-mod-directive"
},
{
"description": "Update node-version in forgejo workflows",
"customType": "regex",
"fileMatch": ["^.forgejo/workflows/.+\\.yml$"],
"matchStrings": ["\\s+node-version: ['\"]?(?<currentValue>.+?)['\"]?\\s"],
"depNameTemplate": "node",
"datasourceTemplate": "node-version"
},
{
"description": "Update deps inside Makefile",
"customType": "regex",
"fileMatch": ["^Makefile$"],
"matchStrings": [
" \\?= (?<depName>.+?)@(?<currentValue>.+?) # renovate: datasource=(?<datasource>.+?)\\s"
]
}
]
}