{ "$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": "^(?[^-]+)(?-.*)?$", "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: ['\"]?(?.+?)['\"]?\\s"], "depNameTemplate": "node", "datasourceTemplate": "node-version" }, { "description": "Update deps inside Makefile", "customType": "regex", "fileMatch": ["^Makefile$"], "matchStrings": [ " \\?= (?.+?)@(?.+?) # renovate: datasource=(?.+?)(?: packageName=(?.+?))?( versioning=(?.+?))?\\s" ] } ] }