forgejo/renovate.json
2024-08-29 10:17:53 +02:00

195 lines
6.2 KiB
JSON

{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["local>forgejo/renovate-config"],
"ignorePresets": [
":semanticPrefixFixDepsChoreOthers",
"docker:pinDigests",
"helpers:pinGitHubActionDigests"
],
"baseBranches": [
"$default",
"/^v[7-9]\\.\\d+/forgejo$/",
"/^v\\d\\d+\\.\\d+\\/forgejo$/"
],
"postUpdateOptions": ["gomodTidy", "gomodUpdateImportPaths", "npmDedupe"],
"prConcurrentLimit": 10,
"osvVulnerabilityAlerts": true,
"labels": ["dependency-upgrade"],
"packageRules": [
{
"description": "Require approval for python minor version",
"matchPackageNames": ["containerbase/python-prebuild", "python"],
"matchUpdateTypes": ["minor"],
"dependencyDashboardApproval": true
},
{
"description": "Require dashboard approval for some deps",
"matchPackageNames": [
"docker.io/bitnami/minio",
"github.com/go-ap/activitypub",
"github.com/nektos/act",
"gitea.com/gitea/act"
],
"dependencyDashboardApproval": true
},
{
"description": "Schedule some deps less frequently",
"matchPackageNames": [
"code.forgejo.org/f3/gof3/v3",
"github.com/google/pprof",
"github.com/golangci/misspell/cmd/misspell"
],
"extends": ["schedule:quarterly"]
},
{
"description": "elasticsearch CI images are published about once a month and do not use semantic versioning or short tags",
"matchPackageNames": ["elasticsearch"],
"extends": ["schedule:quarterly"]
},
{
"description": "devcontainer is an optional tool used by some Forgejo contributors when working on the codebase",
"groupName": "devcontainer packages",
"extends": ["schedule:quarterly"],
"automerge": true,
"matchPackageNames": [
"ghcr.io/devcontainers/features/**",
"ghcr.io/devcontainers-contrib/features/**"
]
},
{
"description": "Group nodejs packages",
"matchPackageNames": [
"code.forgejo.org/oci/node",
"docker.io/library/node",
"docker.io/node",
"node"
],
"groupName": "nodejs packages",
"versionCompatibility": "^(?<version>[^-]+)(?<compatibility>-.*)?$",
"versioning": "node"
},
{
"description": "x/tools/* are used in the CI only and upgraded together",
"matchUpdateTypes": ["minor", "patch", "digest"],
"automerge": true,
"groupName": "x/tools",
"matchPackageNames": ["golang.org/x/tools{/,}**"]
},
{
"description": "Group postcss minor and patch updates",
"extends": ["packages:postcss"],
"matchUpdateTypes": ["minor", "patch"],
"groupName": "postcss"
},
{
"description": "Split minor and patch updates",
"matchPackageNames": [
"containerbase/python-prebuild",
"github.com/urfave/cli/v2",
"python",
"swagger-ui-dist",
"vue"
],
"separateMinorPatch": true
},
{
"description": "Automerge patch updates",
"matchPackageNames": [
"vue",
"github.com/urfave/cli/v2",
"swagger-ui-dist"
],
"matchUpdateTypes": ["patch"],
"automerge": true
},
{
"description": "Automerge renovate updates",
"matchDatasources": ["docker"],
"matchPackageNames": [
"code.forgejo.org/forgejo-contrib/renovate",
"ghcr.io/visualon/renovate"
],
"matchUpdateTypes": ["minor", "patch", "digest"],
"automerge": true
},
{
"description": "Add reviewer and additional labels to renovate PRs",
"matchDatasources": ["docker"],
"matchPackageNames": [
"code.forgejo.org/forgejo-contrib/renovate",
"ghcr.io/visualon/renovate"
],
"reviewers": ["viceice"],
"addLabels": ["forgejo/ci", "test/not-needed"]
},
{
"description": "Update renovate with higher prio to come through rate limit",
"matchDatasources": ["docker"],
"matchPackageNames": [
"code.forgejo.org/forgejo-contrib/renovate",
"ghcr.io/visualon/renovate"
],
"extends": ["schedule:weekly"],
"prPriority": 10,
"groupName": "renovate"
},
{
"description": "Automerge some packages when CI succeeds",
"extends": ["packages:linters", "packages:test"],
"matchPackageNames": [
"@eslint-community/**",
"@playwright/**",
"@stoplight/spectral-cli",
"@stylistic/**",
"djlint",
"github.com/editorconfig-checker/editorconfig-checker/v2/cmd/editorconfig-checker",
"github.com/golangci/golangci-lint/cmd/golangci-lint",
"github.com/go-testfixtures/testfixtures",
"github.com/PuerkitoBio/goquery",
"happy-dom",
"markdownlint-cli",
"mcr.microsoft.com/devcontainers/**",
"mvdan.cc/gofumpt",
"updates",
"vite-string-plugin",
"@vue/test-utils"
],
"automerge": true
},
{
"description": "Hold back on some package updates for a few days",
"matchPackageNames": ["monaco-editor"],
"minimumReleaseAge": "30 days"
},
{
"description": "disallow `eslint-plugin-no-use-extend-native` v0.6.0+, requires eslint v9",
"matchPackageNames": ["eslint-plugin-no-use-extend-native"],
"allowedVersions": "<0.6.0"
},
{
"description": "Require approval for stable branches (must be last rule to override all others)",
"matchBaseBranches": ["/^v\\d+\\.\\d+\\/forgejo$/"],
"dependencyDashboardApproval": true,
"schedule": ["at any time"]
}
],
"customManagers": [
{
"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>.+?)(?: packageName=(?<packageName>.+?))?( versioning=(?<versioning>.+?))?\\s"
]
}
]
}