forgejo/renovate.json
Earl Warren dd6ea5f3c8
chore(renovate): always set the test/not-needed label
Under the assumption that all dependencies have at least some test
coverage. It may not be always true but it is generally true. Ideally
there would be an inventory, a checklist of dependencies that miss
test coverage, but that does not exist.
2024-11-12 12:48:35 +01:00

199 lines
6.5 KiB
JSON

{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["local>forgejo/renovate-config"],
"ignorePresets": [
":semanticPrefixFixDepsChoreOthers",
"docker:pinDigests",
"helpers:pinGitHubActionDigests"
],
"baseBranches": [
"$default",
"/^v7\\.\\d+/forgejo$/",
"/^v9\\.\\d+/forgejo$/",
"/^v10\\.\\d+/forgejo$/"
],
"postUpdateOptions": ["gomodTidy", "gomodUpdateImportPaths", "npmDedupe"],
"prConcurrentLimit": 10,
"osvVulnerabilityAlerts": true,
"automergeStrategy": "squash",
"labels": ["dependency-upgrade","test/not-needed"],
"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": "Group Forgejo go-chi packages",
"matchUpdateTypes": ["minor", "patch", "digest"],
"matchPackageNames": ["code.forgejo.org/go-chi/**"],
"groupName": "forgejo go-chi packages"
},
{
"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"],
"matchUpdateTypes": ["minor", "patch", "digest"],
"automerge": true
},
{
"description": "Add reviewer and additional labels to renovate PRs",
"matchDatasources": ["docker"],
"matchPackageNames": ["code.forgejo.org/forgejo-contrib/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"],
"extends": ["schedule:weekly"],
"prPriority": 10,
"groupName": "renovate"
},
{
"description": "Disable renovate self-updates for release branches",
"matchBaseBranches": ["/^v\\d+\\.\\d+\\/forgejo$/"],
"matchDatasources": ["docker"],
"matchPackageNames": [
"code.forgejo.org/forgejo-contrib/renovate",
"ghcr.io/visualon/renovate"
],
"enabled": false
},
{
"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": "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"
]
}
]
}