renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
1,998 lines • 89.3 kB
JavaScript
import { PLATFORM_HOST_TYPES } from "../../constants/platforms.js";
import { managerDefaultConfigs } from "../../manager-default-configs.generated.js";
import { AllManagersListLiteral } from "../../manager-list.generated.js";
import { AllVersioningsListLiteral } from "../../versioning-list.generated.js";
import { supportedDatasources } from "../presets/internal/merge-confidence.preset.js";
import { UpdateTypesOptions } from "../types.js";
import { isArray, isObject } from "@sindresorhus/is";
//#region lib/config/options/index.ts
const options = [
{
name: "mode",
description: "Mode of operation.",
type: "string",
default: "full",
allowedValues: ["full", "silent"]
},
{
name: "allowedHeaders",
description: "List of allowed patterns for header names in repository hostRules config.",
type: "array",
default: ["X-*"],
subType: "string",
globalOnly: true,
patternMatch: true
},
{
name: "autodiscoverRepoOrder",
description: "The order method for autodiscover server side repository search.",
type: "string",
default: null,
globalOnly: true,
allowedValues: ["asc", "desc"],
supportedPlatforms: [
"forgejo",
"gitea",
"gitlab"
]
},
{
name: "autodiscoverRepoSort",
description: "The sort method for autodiscover server side repository search.",
type: "string",
default: null,
globalOnly: true,
allowedValues: [
"alpha",
"created",
"created_at",
"updated",
"updated_at",
"size",
"id"
],
supportedPlatforms: [
"forgejo",
"gitea",
"gitlab"
]
},
{
name: "allowedEnv",
description: "List of allowed patterns for environment variable names in repository env config.",
type: "array",
default: [],
subType: "string",
globalOnly: true,
patternMatch: true,
mergeable: true
},
{
name: "detectGlobalManagerConfig",
description: "If `true`, Renovate tries to detect global manager configuration from the file system.",
type: "boolean",
default: false,
globalOnly: true
},
{
name: "detectHostRulesFromEnv",
description: "If `true`, Renovate tries to detect host rules from environment variables.",
type: "boolean",
default: false,
globalOnly: true
},
{
name: "mergeConfidenceEndpoint",
description: "If set, Renovate will query this API for Merge Confidence data.",
stage: "global",
type: "string",
default: "https://developer.mend.io/",
advancedUse: true,
globalOnly: true
},
{
name: "mergeConfidenceDatasources",
description: "If set, Renovate will query the merge-confidence JSON API only for datasources that are part of this list.",
stage: "global",
allowedValues: supportedDatasources,
default: supportedDatasources,
type: "array",
subType: "string",
globalOnly: true
},
{
name: "useCloudMetadataServices",
description: "If `false`, Renovate does not try to access cloud metadata services.",
type: "boolean",
default: true,
globalOnly: true,
cli: false
},
{
name: "userAgent",
description: "Sets the `user-agent` header to be sent with HTTP requests. Supports `{{renovateVersion}}` as a template variable for the current Renovate version.",
type: "string",
default: `Renovate/{{renovateVersion}} (https://github.com/renovatebot/renovate)`,
globalOnly: true,
supportsTemplating: true
},
{
name: "allowedCommands",
description: "A list of regular expressions that decide which commands are allowed in post-upgrade tasks.",
type: "array",
subType: "string",
default: [],
globalOnly: true,
patternMatch: true
},
{
name: "bumpVersions",
description: "A list of bumpVersion config options to bump generic version numbers.",
type: "array",
subType: "object",
default: [],
cli: false,
env: false,
experimental: true
},
{
name: "bumpType",
description: "The semver level to use when bumping versions. This is used by the `bumpVersions` feature.",
type: "string",
parents: ["bumpVersions"],
allowedValues: [
"major",
"minor",
"patch",
"sync"
],
supportsTemplating: true
},
{
name: "filePatterns",
description: "A list of patterns to match files that contain the version string.",
type: "array",
subType: "string",
parents: ["bumpVersions"],
supportsTemplating: true
},
{
name: "name",
description: "A name for the bumpVersion config. This is used for logging and debugging.",
type: "string",
parents: ["bumpVersions"]
},
{
name: "postUpgradeTasks",
description: "Post-upgrade tasks that are executed before a commit is made by Renovate.",
type: "object",
default: {
commands: [],
fileFilters: [],
executionMode: "update",
installTools: {}
}
},
{
name: "commands",
description: "A list of post-upgrade commands that are executed before a commit is made by Renovate.",
type: "array",
subType: "string",
parents: ["postUpgradeTasks"],
default: [],
cli: false,
supportsTemplating: true
},
{
name: "workingDirTemplate",
description: "A template describing the working directory in which post-upgrade tasks should be executed.",
type: "string",
parents: ["postUpgradeTasks"],
cli: false,
env: false,
supportsTemplating: true
},
{
name: "dataFileTemplate",
description: "A template to create post-upgrade command data file from.",
type: "string",
parents: ["postUpgradeTasks"],
cli: false,
env: false,
supportsTemplating: true
},
{
name: "fileFilters",
description: "Files that match the glob pattern will be committed after running a post-upgrade task.",
type: "array",
subType: "string",
parents: ["postUpgradeTasks"],
default: ["**/*"],
cli: false
},
{
name: "installTools",
description: "Install tools before executing commands",
type: "object",
parents: ["postUpgradeTasks"],
default: {},
additionalProperties: {
type: "object",
properties: {},
additionalProperties: false
},
mergeable: false,
freeChoice: true,
cli: false
},
{
name: "format",
description: "Format of the custom datasource.",
type: "string",
parents: ["customDatasources"],
default: "json",
allowedValues: ["json", "plain"],
cli: false,
env: false
},
{
name: "executionMode",
description: "Controls when the post upgrade tasks run: on every update, or once per upgrade branch.",
type: "string",
parents: ["postUpgradeTasks"],
allowedValues: ["update", "branch"],
default: "update",
cli: false
},
{
name: "onboardingBranch",
description: "Change this value to override the default onboarding branch name.",
type: "string",
default: "renovate/configure",
globalOnly: true,
inheritConfigSupport: true,
cli: false
},
{
name: "onboardingAutoCloseAge",
description: "Maximum number of days after which Renovate will stop trying to onboard the repository, and will close any existing onboarding PRs",
type: "integer",
default: null,
globalOnly: true,
inheritConfigSupport: true,
cli: false
},
{
name: "onboardingCommitMessage",
description: "Change this value to override the default onboarding commit message.",
type: "string",
default: null,
globalOnly: true,
inheritConfigSupport: true,
cli: false
},
{
name: "configFileNames",
description: "List of filenames where repository config will be stored.",
type: "array",
subType: "string",
default: null,
globalOnly: true,
inheritConfigSupport: true
},
{
name: "onboardingConfigFileName",
description: "Change this value to override the default onboarding config file name.",
type: "string",
default: "renovate.json",
globalOnly: true,
inheritConfigSupport: true,
cli: false
},
{
name: "onboardingNoDeps",
description: "Onboard the repository even if no dependencies are found.",
type: "string",
default: "auto",
allowedValues: [
"auto",
"enabled",
"disabled"
],
globalOnly: true,
inheritConfigSupport: true
},
{
name: "onboardingPrTitle",
description: "Change this value to override the default onboarding PR title.",
type: "string",
default: "Configure Renovate",
globalOnly: true,
inheritConfigSupport: true,
cli: false
},
{
name: "configMigration",
description: "Enable this to get config migration PRs when needed.",
stage: "repository",
type: "boolean",
default: false,
experimental: true,
experimentalDescription: "Config migration PRs are still being improved, in particular to reduce the amount of reordering and whitespace changes.",
experimentalIssues: [16359]
},
{
name: "productLinks",
description: "Links which are used in PRs, issues and comments.",
type: "object",
globalOnly: true,
mergeable: true,
default: {
documentation: "https://docs.renovatebot.com/",
help: "https://github.com/renovatebot/renovate/discussions",
homepage: "https://github.com/renovatebot/renovate"
},
additionalProperties: {
type: "string",
format: "uri"
}
},
{
name: "secrets",
description: "Object which holds secret name/value pairs.",
type: "object",
globalOnly: true,
mergeable: true,
default: {},
additionalProperties: { type: "string" }
},
{
name: "variables",
description: "Object which holds variable name/value pairs.",
type: "object",
globalOnly: true,
mergeable: true,
default: {},
additionalProperties: { type: "string" }
},
{
name: "statusCheckNames",
description: "Custom strings to use as status check names.",
type: "object",
mergeable: true,
advancedUse: true,
default: {
artifactError: "renovate/artifacts",
configValidation: "renovate/config-validation",
mergeConfidence: "renovate/merge-confidence",
minimumReleaseAge: "renovate/stability-days"
}
},
{
name: "extends",
description: "Configuration presets to use or extend.",
stage: "package",
type: "array",
subType: "string",
allowString: true,
cli: false
},
{
name: "ignorePresets",
description: "A list of presets to ignore, including any that are nested inside an `extends` array.",
stage: "package",
type: "array",
subType: "string",
allowString: true,
cli: false
},
{
name: "migratePresets",
description: "Define presets here which have been removed or renamed and should be migrated automatically.",
type: "object",
globalOnly: true,
default: {},
additionalProperties: { type: "string" }
},
{
name: "minimumGroupSize",
description: "The minimum number of updates which must be in a group for branches to be created.",
type: "integer",
default: 1
},
{
name: "presetCachePersistence",
description: "Cache resolved presets in package cache.",
type: "boolean",
default: false,
globalOnly: true
},
{
name: "globalExtends",
description: "Configuration presets to use or extend for a self-hosted config.",
type: "array",
subType: "string",
globalOnly: true
},
{
name: "description",
description: "Plain text description for a config or preset.",
type: "array",
subType: "string",
stage: "repository",
allowString: true,
mergeable: true,
cli: false,
env: false
},
{
name: "enabled",
description: `Enable or disable corresponding functionality.`,
stage: "package",
type: "boolean",
default: true,
parents: [
".",
"packageRules",
...AllManagersListLiteral,
"hostRules",
"vulnerabilityAlerts",
...UpdateTypesOptions
]
},
{
name: "constraintsFiltering",
description: "Perform release filtering based on language constraints.",
type: "string",
allowedValues: ["none", "strict"],
cli: false,
default: "none"
},
{
name: "repositoryCache",
description: "This option decides if Renovate uses a JSON cache to speed up extractions.",
globalOnly: true,
type: "string",
allowedValues: [
"disabled",
"enabled",
"reset"
],
stage: "repository",
default: "disabled"
},
{
name: "repositoryCacheType",
description: "Set the type of renovate repository cache if `repositoryCache` is enabled.",
globalOnly: true,
type: "string",
stage: "repository",
default: "local"
},
{
name: "repositoryCacheForceLocal",
description: "If set to `true`, Renovate will persist repository cache locally after uploading to S3.",
type: "boolean",
default: false,
globalOnly: true
},
{
name: "reportType",
description: "Set how, or if, reports should be generated.",
globalOnly: true,
type: "string",
default: null,
experimental: true,
allowedValues: [
"logging",
"file",
"s3"
]
},
{
name: "reportPath",
description: "Path to where the file should be written. In case of `s3` this has to be a full S3 URI.",
globalOnly: true,
type: "string",
default: null,
experimental: true
},
{
name: "reportFormatting",
description: "If set to `true`, Renovate will format the report JSON with Prettier before writing.",
globalOnly: true,
type: "boolean",
default: false,
experimental: true,
cli: false
},
{
name: "force",
description: "Any configuration set in this object will force override existing settings.",
stage: "package",
globalOnly: true,
type: "object",
cli: false,
mergeable: true
},
{
name: "forceCli",
description: "Decides if CLI configuration options are moved to the `force` config section.",
stage: "global",
type: "boolean",
default: true,
globalOnly: true
},
{
name: "draftPR",
description: "If set to `true` then Renovate creates draft PRs, instead of normal status PRs.",
type: "boolean",
default: false,
supportedPlatforms: [
"azure",
"forgejo",
"gitea",
"github",
"gitlab",
"scm-manager"
]
},
{
name: "dryRun",
description: "If enabled, perform a dry run by logging messages instead of creating/updating/deleting branches and PRs.",
type: "string",
globalOnly: true,
allowedValues: [
"extract",
"lookup",
"full"
],
default: null
},
{
name: "printConfig",
description: "If enabled, Renovate logs the fully resolved config for each repository, plus the fully resolved presets.",
type: "boolean",
default: false
},
{
name: "binarySource",
description: "Controls how third-party tools like npm or Gradle are called: directly, via Docker sidecar containers, or via dynamic install.",
globalOnly: true,
type: "string",
allowedValues: [
"global",
"docker",
"install",
"hermit"
],
default: "install"
},
{
name: "redisUrl",
description: "If set, this Redis URL will be used for caching instead of the file system.",
stage: "global",
type: "string",
globalOnly: true
},
{
name: "redisPrefix",
description: "Key prefix for redis cache entries.",
stage: "global",
type: "string",
globalOnly: true
},
{
name: "baseDir",
description: "The base directory for Renovate to store local files, including repository files and cache. If left empty, Renovate will create its own temporary directory to use.",
stage: "global",
type: "string",
globalOnly: true
},
{
name: "cacheDir",
description: "The directory where Renovate stores its cache. If left empty, Renovate creates a subdirectory within the `baseDir`.",
globalOnly: true,
type: "string"
},
{
name: "containerbaseDir",
description: "The directory where Renovate stores its containerbase cache. If left empty, Renovate creates a subdirectory within the `cacheDir`.",
globalOnly: true,
type: "string"
},
{
name: "customEnvVariables",
description: "Custom environment variables for child processes and sidecar Docker containers.",
globalOnly: true,
type: "object",
default: {}
},
{
name: "env",
description: "Environment variables that Renovate uses when executing package manager commands.",
type: "object",
default: {}
},
{
name: "customDatasources",
description: "Defines custom datasources for usage by managers.",
type: "object",
experimental: true,
experimentalIssues: [23286],
default: {},
mergeable: true
},
{
name: "dockerChildPrefix",
description: "Change this value to add a prefix to the Renovate Docker sidecar container names and labels.",
type: "string",
globalOnly: true,
default: "renovate_",
deprecationMsg: "The usage of `binarySource=docker` is deprecated, and will be removed in the future"
},
{
name: "dockerCliOptions",
description: "Pass CLI flags to `docker run` command when `binarySource=docker`.",
type: "string",
globalOnly: true,
deprecationMsg: "The usage of `binarySource=docker` is deprecated, and will be removed in the future"
},
{
name: "dockerSidecarImage",
description: "Change this value to override the default Renovate sidecar image.",
type: "string",
default: "ghcr.io/renovatebot/base-image:13.57.1",
globalOnly: true,
deprecationMsg: "The usage of `binarySource=docker` is deprecated, and will be removed in the future"
},
{
name: "dockerUser",
description: "Set the `UID` and `GID` for Docker-based binaries if you use `binarySource=docker`.",
globalOnly: true,
type: "string",
deprecationMsg: "The usage of `binarySource=docker` is deprecated, and will be removed in the future",
default: "12021"
},
{
name: "composerIgnorePlatformReqs",
description: "Configure use of `--ignore-platform-reqs` or `--ignore-platform-req` for the Composer package manager.",
type: "array",
subType: "string",
default: []
},
{
name: "goGetDirs",
description: "Directory pattern to run `go get` on.",
type: "array",
subType: "string",
default: ["./..."],
supportedManagers: ["gomod"]
},
{
name: "logContext",
description: "Add a global or per-repo log context to each log entry.",
globalOnly: true,
type: "string",
default: null,
stage: "global"
},
{
name: "onboarding",
description: "Require a Configuration PR first.",
stage: "repository",
type: "boolean",
globalOnly: true,
inheritConfigSupport: true
},
{
name: "onboardingConfig",
description: "Configuration to use for onboarding PRs.",
stage: "repository",
type: "object",
default: { $schema: "https://docs.renovatebot.com/renovate-schema.json" },
globalOnly: true,
inheritConfigSupport: true,
mergeable: true
},
{
name: "onboardingRebaseCheckbox",
description: "Set to enable rebase/retry markdown checkbox for onboarding PRs.",
type: "boolean",
default: false,
supportedPlatforms: [
"forgejo",
"gitea",
"github",
"gitlab"
],
globalOnly: true,
experimental: true,
experimentalIssues: [17633]
},
{
name: "forkProcessing",
description: "Whether to process forked repositories. By default, all forked repositories are skipped when in `autodiscover` mode.",
stage: "repository",
type: "string",
allowedValues: [
"auto",
"enabled",
"disabled"
],
default: "auto"
},
{
name: "includeMirrors",
description: "Whether to process repositories that are mirrors. By default, repositories that are mirrors are skipped.",
type: "boolean",
default: false,
supportedPlatforms: ["gitlab"],
globalOnly: true
},
{
name: "forkCreation",
description: "Whether to create forks as needed at runtime when running in \"fork mode\".",
stage: "repository",
type: "boolean",
globalOnly: true,
supportedPlatforms: ["github"],
experimental: true,
default: true
},
{
name: "forkToken",
description: "Set a personal access token here to enable \"fork mode\".",
stage: "repository",
type: "string",
globalOnly: true,
supportedPlatforms: ["github"],
experimental: true
},
{
name: "forkOrg",
description: "The preferred organization to create or find forked repositories, when in fork mode.",
stage: "repository",
type: "string",
globalOnly: true,
supportedPlatforms: ["github"],
experimental: true
},
{
name: "githubTokenWarn",
description: "Display warnings about GitHub token not being set.",
type: "boolean",
default: true,
globalOnly: true
},
{
name: "encryptedWarning",
description: "Warning text to use if encrypted config is found.",
type: "string",
globalOnly: true,
advancedUse: true
},
{
name: "inheritConfig",
description: "If `true`, Renovate will inherit configuration from the `inheritConfigFileName` file in `inheritConfigRepoName`.",
type: "boolean",
default: false,
globalOnly: true
},
{
name: "inheritConfigRepoName",
description: "Renovate will look in this repo for the `inheritConfigFileName`.",
type: "string",
default: "{{parentOrg}}/renovate-config",
globalOnly: true,
supportsTemplating: true
},
{
name: "inheritConfigFileName",
description: "Renovate will look for this config file name in the `inheritConfigRepoName`.",
type: "string",
default: "org-inherited-config.json",
globalOnly: true
},
{
name: "inheritConfigStrict",
description: "If `true`, any `inheritedConfig` fetch error will result in an aborted run.",
type: "boolean",
default: false,
globalOnly: true
},
{
name: "requireConfig",
description: "Controls Renovate's behavior regarding repository config files such as `renovate.json`.",
stage: "repository",
type: "string",
default: "required",
allowedValues: [
"required",
"optional",
"ignored"
],
globalOnly: true,
inheritConfigSupport: true
},
{
name: "optimizeForDisabled",
description: "Set to `true` to perform a check for disabled config prior to cloning.",
stage: "repository",
type: "boolean",
default: false,
globalOnly: true
},
{
name: "dependencyDashboard",
description: "Whether to create a \"Dependency Dashboard\" issue in the repository.",
type: "boolean",
default: false
},
{
name: "dependencyDashboardApproval",
description: "Controls if updates need manual approval from the Dependency Dashboard issue before PRs are created.",
type: "boolean",
default: false
},
{
name: "dependencyDashboardAutoclose",
description: "Set to `true` to let Renovate close the Dependency Dashboard issue if there are no more updates.",
type: "boolean",
default: false
},
{
name: "dependencyDashboardTitle",
description: "Title for the Dependency Dashboard issue.",
type: "string",
default: `Dependency Dashboard`
},
{
name: "dependencyDashboardCategory",
description: "The category to group branches on the Dependency Dashboard issue.",
type: "string",
default: null,
cli: false,
env: false
},
{
name: "dependencyDashboardHeader",
description: "Any text added here will be placed first in the Dependency Dashboard issue body.",
type: "string",
default: "This issue lists Renovate updates and detected dependencies. Read the [Dependency Dashboard](https://docs.renovatebot.com/key-concepts/dashboard/) docs to learn more.",
supportsTemplating: true
},
{
name: "dependencyDashboardFooter",
description: "Any text added here will be placed last in the Dependency Dashboard issue body, with a divider separator before it.",
type: "string",
supportsTemplating: true
},
{
name: "dependencyDashboardLabels",
description: "These labels will always be applied on the Dependency Dashboard issue, even when they have been removed manually.",
type: "array",
subType: "string",
default: null
},
{
name: "dependencyDashboardOSVVulnerabilitySummary",
description: "Control if the Dependency Dashboard issue lists CVEs supplied by [osv.dev](https://osv.dev).",
type: "string",
allowedValues: [
"none",
"all",
"unresolved"
],
default: "none",
experimental: true
},
{
name: "configWarningReuseIssue",
description: "Set this to `true` to make Renovate reuse/reopen an existing closed Config Warning issue, instead of opening a new one each time.",
type: "boolean",
default: false
},
{
name: "privateKey",
description: "Server-side private key.",
stage: "repository",
type: "string",
replaceLineReturns: true,
globalOnly: true
},
{
name: "privateKeyOld",
description: "Secondary or old private key to try.",
stage: "repository",
type: "string",
replaceLineReturns: true,
globalOnly: true
},
{
name: "privateKeyPath",
description: "Path to the Server-side private key.",
stage: "repository",
type: "string",
globalOnly: true
},
{
name: "privateKeyPathOld",
description: "Path to the Server-side old private key.",
stage: "repository",
type: "string",
globalOnly: true
},
{
name: "encrypted",
description: "An object containing configuration encrypted with project key.",
stage: "repository",
type: "object",
default: null
},
{
name: "timezone",
description: "Must conform to [IANA Time Zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) format.",
type: "string"
},
{
name: "schedule",
description: "Limit branch creation to these times of day or week.",
type: "array",
subType: "string",
allowString: true,
cli: true,
env: false,
default: ["at any time"]
},
{
name: "automergeSchedule",
description: "Limit automerge to these times of day or week.",
type: "array",
subType: "string",
allowString: true,
cli: true,
env: false,
default: ["at any time"]
},
{
name: "updateNotScheduled",
description: "Whether to update branches when not scheduled. Renovate will not create branches outside of the schedule.",
stage: "branch",
type: "boolean",
default: true
},
{
name: "persistRepoData",
description: "If set to `true`: keep repository data between runs instead of deleting the data.",
type: "boolean",
default: false,
globalOnly: true
},
{
name: "exposeAllEnv",
description: "Set this to `true` to allow passing of all environment variables to package managers.",
globalOnly: true,
type: "boolean",
default: false,
advancedUse: true
},
{
name: "allowPlugins",
description: "Set this to `true` if repositories are allowed to run install plugins.",
globalOnly: true,
type: "boolean",
default: false
},
{
name: "allowScripts",
description: "Set this to `true` if repositories are allowed to run install scripts.",
globalOnly: true,
type: "boolean",
default: false
},
{
name: "allowShellExecutorForPostUpgradeCommands",
description: "Whether to run commands for `postUpgradeTasks` inside a shell. This has security implications, as it means that they can call out to other commands or access shell variables. It is difficult to craft an `allowedCommands` regex to restrict this.",
globalOnly: true,
type: "boolean",
default: false
},
{
name: "allowCustomCrateRegistries",
description: "Set this to `true` to allow custom crate registries.",
globalOnly: true,
type: "boolean",
default: false
},
{
name: "ignorePlugins",
description: "Set this to `true` if `allowPlugins=true` but you wish to skip running plugins when updating lock files.",
type: "boolean",
default: false
},
{
name: "ignoreScripts",
description: "Set this to `false` if `allowScripts=true` and you wish to run scripts when updating lock files.",
type: "boolean",
default: true,
supportedManagers: [
"npm",
"bun",
"composer",
"copier"
]
},
{
name: "platform",
description: "Platform type of repository.",
type: "string",
allowedValues: [...PLATFORM_HOST_TYPES],
default: "github",
globalOnly: true
},
{
name: "endpoint",
description: "Custom endpoint to use.",
type: "string",
globalOnly: true,
default: null
},
{
name: "token",
description: "Repository Auth Token.",
stage: "repository",
type: "string",
globalOnly: true
},
{
name: "username",
description: "Username for authentication.",
stage: "repository",
type: "string",
supportedPlatforms: [
"azure",
"bitbucket",
"bitbucket-server",
"scm-manager"
],
globalOnly: true
},
{
name: "password",
description: "Password for authentication.",
stage: "repository",
type: "string",
supportedPlatforms: [
"azure",
"bitbucket",
"bitbucket-server"
],
globalOnly: true
},
{
name: "npmrc",
description: "String copy of `.npmrc` file. Use `\\n` instead of line breaks.",
stage: "branch",
type: "string"
},
{
name: "npmrcMerge",
description: "Whether to merge `config.npmrc` with repo `.npmrc` content if both are found.",
stage: "branch",
type: "boolean",
default: false
},
{
name: "npmToken",
description: "npm token used to authenticate with the default registry.",
stage: "branch",
type: "string"
},
{
name: "skipArtifactsUpdate",
description: "Skip Renovate's automatic artifact updating.",
type: "boolean",
default: false
},
{
name: "skipInstalls",
description: "Skip installing modules/dependencies if lock file updating is possible without a full install.",
type: "boolean",
default: null,
supportedManagers: ["npm"]
},
{
name: "autodiscover",
description: "Autodiscover all repositories.",
stage: "global",
type: "boolean",
default: false,
globalOnly: true
},
{
name: "autodiscoverFilter",
description: "Filter the list of autodiscovered repositories.",
stage: "global",
type: "array",
subType: "string",
allowString: true,
default: null,
globalOnly: true,
patternMatch: true
},
{
name: "autodiscoverNamespaces",
description: "Filter the list of autodiscovered repositories by namespaces.",
stage: "global",
type: "array",
subType: "string",
default: null,
globalOnly: true,
supportedPlatforms: [
"forgejo",
"gitea",
"gitlab"
]
},
{
name: "autodiscoverProjects",
description: "Filter the list of autodiscovered repositories by project names.",
stage: "global",
type: "array",
subType: "string",
default: null,
globalOnly: true,
supportedPlatforms: ["bitbucket"],
patternMatch: true
},
{
name: "autodiscoverTopics",
description: "Filter the list of autodiscovered repositories by topics.",
stage: "global",
type: "array",
subType: "string",
default: null,
globalOnly: true,
supportedPlatforms: [
"forgejo",
"gitea",
"github",
"gitlab"
]
},
{
name: "prCommitsPerRunLimit",
description: "Set the maximum number of commits per Renovate run. By default there is no limit.",
stage: "global",
type: "integer",
default: 0,
globalOnly: true
},
{
name: "repositories",
description: "List of Repositories.",
stage: "global",
type: "array",
subType: "string",
cli: false,
globalOnly: true
},
{
name: "baseBranchPatterns",
description: "List of one or more custom base branches defined as exact strings and/or via regex expressions.",
type: "array",
subType: "string",
stage: "package",
cli: false,
patternMatch: true
},
{
name: "useBaseBranchConfig",
description: "Whether to read configuration from base branches instead of only the default branch.",
type: "string",
allowedValues: ["merge", "none"],
default: "none"
},
{
name: "gitAuthor",
description: "Author to use for Git commits. Must conform to [RFC5322](https://datatracker.ietf.org/doc/html/rfc5322).",
type: "string",
supportsTemplating: true
},
{
name: "gitPrivateKey",
description: "PGP key to use for signing Git commits.",
type: "string",
cli: false,
globalOnly: true,
stage: "global"
},
{
name: "gitPrivateKeyPassphrase",
description: "Passphrase for the `gitPrivateKey`",
type: "string",
cli: false,
globalOnly: true,
stage: "global"
},
{
name: "gitIgnoredAuthors",
description: "Git authors which are ignored by Renovate. Must conform to [RFC5322](https://datatracker.ietf.org/doc/html/rfc5322).",
type: "array",
subType: "string",
stage: "repository"
},
{
name: "gitTimeout",
description: "Configure the timeout with a number of milliseconds to wait for a Git task.",
type: "integer",
globalOnly: true,
default: 0
},
{
name: "enabledManagers",
description: "A list of package managers to enable. Only managers on the list are enabled.",
type: "array",
subType: "string",
mergeable: false,
stage: "repository"
},
{
name: "includePaths",
description: "Include package files only within these defined paths.",
type: "array",
subType: "string",
stage: "repository",
default: [],
patternMatch: true
},
{
name: "ignorePaths",
description: "Skip any package file whose path matches one of these. Can be a string or glob pattern.",
type: "array",
mergeable: false,
subType: "string",
stage: "repository",
default: ["**/node_modules/**", "**/bower_components/**"],
patternMatch: true
},
{
name: "excludeCommitPaths",
description: "A file matching any of these glob patterns will not be committed, even if the file has been updated.",
type: "array",
subType: "string",
default: [],
advancedUse: true,
patternMatch: true
},
{
name: "executionTimeout",
description: "Default execution timeout in minutes for child processes Renovate creates.",
type: "integer",
default: 15,
globalOnly: true
},
{
name: "registryAliases",
description: "Aliases for registries.",
mergeable: true,
type: "object",
default: {},
additionalProperties: { type: "string" },
supportedManagers: [
"ansible",
"bitbucket-pipelines",
"buildpacks",
"crossplane",
"crow",
"devcontainer",
"docker-compose",
"dockerfile",
"droneci",
"gitlabci",
"helm-requirements",
"helmfile",
"helmv3",
"kubernetes",
"kustomize",
"maven",
"terraform",
"vendir",
"woodpecker"
]
},
{
name: "defaultRegistryUrls",
description: "List of registry URLs to use as the default for a datasource.",
type: "array",
subType: "string",
default: null,
stage: "branch",
cli: false,
env: false
},
{
name: "defaultRegistryUrlTemplate",
description: "Template for generating a `defaultRegistryUrl` for custom datasource.",
type: "string",
default: "",
parents: ["customDatasources"],
cli: false,
env: false,
supportsTemplating: true
},
{
name: "registryUrls",
description: "List of URLs to try for dependency lookup. Package manager specific.",
type: "array",
subType: "string",
default: null,
stage: "branch",
cli: false,
env: false
},
{
name: "extractVersion",
description: "A regex (`re2`) to extract a version from a datasource's raw version string.",
type: "string",
format: "regex",
cli: false,
env: false
},
{
name: "versionCompatibility",
description: "A regex (`re2`) with named capture groups to show how version and compatibility are split from a raw version string.",
type: "string",
format: "regex",
cli: false,
env: false
},
{
name: "versioning",
description: "Versioning to use for filtering and comparisons.",
type: "string",
allowedValues: [...AllVersioningsListLiteral],
cli: false,
env: false
},
{
name: "azureWorkItemId",
description: "The id of an existing work item on Azure Boards to link to each PR.",
type: "integer",
default: 0,
supportedPlatforms: ["azure"]
},
{
name: "autoApprove",
description: "Set to `true` to automatically approve PRs.",
type: "boolean",
default: false,
supportedPlatforms: [
"azure",
"gerrit",
"gitlab"
]
},
{
name: "ignoreDeps",
description: "Dependencies to ignore.",
type: "array",
subType: "string",
stage: "package",
mergeable: true
},
{
name: "updateInternalDeps",
description: "Whether to update internal dep versions in a monorepo. Works on Yarn Workspaces.",
type: "boolean",
default: false,
stage: "package"
},
{
name: "packageRules",
description: "Rules for matching packages.",
type: "array",
stage: "package",
mergeable: true
},
{
name: "matchCurrentAge",
description: "Matches the current age of the package derived from its release timestamp. Valid only within a `packageRules` object.",
type: "string",
parents: ["packageRules"],
stage: "package",
mergeable: true,
cli: false,
env: false
},
{
name: "matchCategories",
description: "List of categories to match (for example: `[\"python\"]`). Valid only within a `packageRules` object.",
type: "array",
subType: "string",
allowString: true,
parents: ["packageRules"],
stage: "package",
mergeable: true,
cli: false,
env: false,
patternMatch: true
},
{
name: "matchRepositories",
description: "List of repositories to match (e.g. `[\"**/*-archived\"]`). Valid only within a `packageRules` object.",
type: "array",
subType: "string",
allowString: true,
stage: "package",
parents: ["packageRules"],
mergeable: true,
cli: false,
env: false,
patternMatch: true
},
{
name: "matchBaseBranches",
description: "List of strings containing exact matches (e.g. `[\"main\"]`) and/or regex expressions (e.g. `[\"/^release/.*/\"]`). Valid only within a `packageRules` object.",
type: "array",
subType: "string",
allowString: true,
parents: ["packageRules"],
stage: "package",
mergeable: true,
cli: false,
env: false,
patternMatch: true
},
{
name: "matchManagers",
description: "List of package managers to match (e.g. `[\"pipenv\"]`). Valid only within a `packageRules` object.",
type: "array",
subType: "string",
allowString: true,
parents: ["packageRules"],
stage: "package",
mergeable: true,
patternMatch: true,
cli: false,
env: false
},
{
name: "matchDatasources",
description: "List of datasources to match (e.g. `[\"orb\"]`). Valid only within a `packageRules` object.",
type: "array",
subType: "string",
allowString: true,
parents: ["packageRules"],
stage: "package",
mergeable: true,
cli: false,
env: false,
patternMatch: true
},
{
name: "matchDepTypes",
description: "List of depTypes to match (e.g. [`peerDependencies`]). Valid only within `packageRules` object.",
type: "array",
subType: "string",
allowString: true,
parents: ["packageRules"],
stage: "package",
mergeable: true,
cli: false,
env: false,
patternMatch: true
},
{
name: "matchPackageNames",
description: "Package names to match. Valid only within a `packageRules` object.",
type: "array",
subType: "string",
allowString: true,
stage: "package",
parents: ["packageRules"],
mergeable: true,
cli: false,
env: false,
patternMatch: true
},
{
name: "matchDepNames",
description: "Dep names to match. Valid only within a `packageRules` object.",
type: "array",
subType: "string",
allowString: true,
stage: "package",
parents: ["packageRules"],
mergeable: true,
cli: false,
env: false,
patternMatch: true
},
{
name: "matchCurrentValue",
description: "A regex or glob pattern to match against the raw `currentValue` string of a dependency. Valid only within a `packageRules` object.",
type: "string",
stage: "package",
parents: ["packageRules"],
mergeable: true,
cli: false,
env: false,
patternMatch: true
},
{
name: "matchCurrentVersion",
description: "A version, or range of versions, to match against the current version of a package. Valid only within a `packageRules` object.",
type: "string",
stage: "package",
parents: ["packageRules"],
mergeable: true,
cli: false,
env: false
},
{
name: "matchNewValue",
description: "A regex or glob pattern to match against the raw `newValue` string of a dependency. Valid only within a `packageRules` object.",
type: "string",
stage: "package",
parents: ["packageRules"],
mergeable: true,
cli: false,
env: false,
patternMatch: true
},
{
name: "sourceUrl",
description: "The source URL of the package.",
type: "string",
parents: ["packageRules"],
cli: false,
env: false,
supportsTemplating: true
},
{
name: "sourceDirectory",
description: "The source directory in which the package is present at its source.",
type: "string",
parents: ["packageRules"],
cli: false,
env: false,
supportsTemplating: true
},
{
name: "matchSourceUrls",
description: "A list of exact match URLs (or URL patterns) to match sourceUrl against.",
type: "array",
subType: "string",
allowString: true,
stage: "package",
parents: ["packageRules"],
mergeable: true,
cli: false,
env: false,
patternMatch: true
},
{
name: "matchRegistryUrls",
description: "A list of URLs (or URL patterns) to match against registryUrls.",
type: "array",
subType: "string",
allowString: true,
stage: "package",
patternMatch: true,
parents: ["packageRules"],
mergeable: true,
cli: false,
env: false
},
{
name: "autoReplaceGlobalMatch",
description: "Control whether replacement regular expressions are global matches or only the first match.",
type: "boolean",
default: true
},
{
name: "replacementName",
description: "The name of the new dependency that replaces the old deprecated dependency.",
type: "string",
stage: "package",
parents: ["packageRules"],
cli: false,
env: false
},
{
name: "replacementNameTemplate",
description: "Controls what the replacement package name.",
type: "string",
default: "{{{packageName}}}",
stage: "package",
parents: ["packageRules"],
cli: false,
env: false,
supportsTemplating: true
},
{
name: "replacementVersion",
description: "The version of the new dependency that replaces the old deprecated dependency.",
type: "string",
stage: "package",
parents: ["packageRules"],
cli: false,
env: false
},
{
name: "replacementVersionTemplate",
description: "Template field for the version of the new dependency that replaces the old deprecated dependency.",
type: "string",
stage: "package",
parents: ["packageRules"],
cli: false,
env: false,
supportsTemplating: true
},
{
name: "replacementApproach",
description: "Select whether to perform a direct replacement or alias replacement.",
type: "string",
stage: "branch",
allowedValues: ["replace", "alias"],
supportedManagers: ["npm"],
default: "replace"
},
{
name: "matchConfidence",
description: "Merge confidence levels to match against (`low`, `neutral`, `high`, `very high`). Valid only within `packageRules` object.",
type: "array",
subType: "string",
allowedValues: [
"low",
"neutral",
"high",
"very high"
],
allowString: true,
stage: "package",
parents: ["packageRules"],
mergeable: true,
cli: false,
env: false
},
{
name: "matchUpdateTypes",
description: "Update types to match against (`major`, `minor`, `pin`, `pinDigest`, etc). Valid only within `packageRules` object.",
type: "array",
subType: "string",
allowedValues: [
"major",
"minor",
"patch",
"pin",
"pinDigest",
"digest",
"lockFileMaintenance",
"rollback",
"bump",
"replacement"
],
allowString: true,
stage: "package",
parents: ["packageRules"],
mergeable: true,
cli: false,
env: false,
patternMatch: true
},
{
name: "matchFileNames",
description: "List of patterns to match against package and lock file paths. Valid only within a `packageRules` object.",
type: "array",
subType: "string",
stage: "repository",
parents: ["packageRules"],
cli: false,
env: false,
patternMatch: true
},
{
name: "matchJsonata",
description: "A JSONata expression to match against the full config object. Valid only within a `packageRules` object.",
type: "array",
subType: "string",
stage: "package",
parents: ["packageRules"],
mergeable: true,
cli: false,
env: false
},
{
name: "allowedVersions",
description: "A version range or regex pattern capturing allowed versions for dependencies.",
type: "string",
parents: ["packageRules"],
stage: "package",
cli: false,
env: false,
supportsTemplating: true
},
{
name: "changelogUrl",
description: "Set a custom URL for the changelog. Renovate will put this URL in the PR body text.",
type: "string",
stage: "pr",
parents: ["packageRules"],
cli: false,
env: false
},
{
name: "pinDigests",
description: "Whether to add digests to Dockerfile source images.",
type: "boolean",
default: false
},
{
name: "separateMajorMinor",
description: "If set to `false`, Renovate will upgrade dependencies to their latest release only. Renovate will not separate major or minor branches.",
type: "boolean",
default: true
},
{
name: "separateMultipleMajor",
description: "If set to `true`, PRs will be raised separately for each available `major` upgrade version.",
stage: "package",
type: "boolean",
default: false
},
{
name: "separateMultipleMinor",
description: "If set to `true`, Renovate creates separate PRs for each `minor` stream.",
stage: "package",
type: "boolean",
default: false,
experimental: true
},
{
name: "separateMinorPatch",
description: "If set to `true`, Renovate will separate `minor` and `patch` updates into separate branches.",
type: "boolean",
default: false
},
{
name: "ignoreUnstable",
description: "Ignore versions with unstable SemVer.",
stage: "package",
type: "boolean",
default: true
},
{
name: "ignoreDeprecated",
description: "Avoid upgrading from a non-deprecated version to a deprecated one.",
stage: "package",
type: "boolean",
default: true
},
{
name: "followTag",
description: "If defined, packages will follow this release tag exactly.",
stage: "package",
type: "string",
cli: false,
env: false,
advancedUse: true
},
{
name: "maxMajorIncrement",
description: "Limit the maximum major version increment allowed. Set to 0 to disable.",
stage: "package",
type: "integer",
default: 500,
cli: false,
env: false
},
{
name: "respectLatest",
description: "Ignore versions newer than npm \"latest\" version.",
stage: "package",
type: "boolean",
default: true
},
{
name: "rangeStrategy",
description: "Determines how to modify or update existing ranges.",
type: "string",
default: "auto",
allowedValues: [
"auto",
"pin",
"bump",
"replace",
"widen",
"update-lockfile",
"in-range-only"
],
cli: false,
env: false
},
{
name: "branchPrefix",
description: "Prefix to use for all branch names.",
stage: "branch",
type: "string",
default: `renovate/`,
supportsTemplating: true
},
{
name: "branchPrefixOld",
description: "Old branchPrefix value to check for existing PRs.",
stage: "branch",
type: "string",
default: `renovate/`
},
{
name: "bumpVersion",
description: "Bump the version in the package file being updated.",
type: "string",
allowedValues: [
"major",
"minor",
"patch",
"prerelease"
],
supportedManagers: [
"helmv3",
"npm",
"nuget",
"maven",
"sbt"
]
},
{
name: "major",
description: "Configuration to apply when an update type is `major`.",
stage: "package",
type: "object",
default: {},
cli: false,
mergeable: true
},
{
name: "minor",
description: "Configuration to apply when an update type is `minor`.",
stage: "package",
type: "object",
default: {},
cli: false,
mergeable: true
},
{
name: "patch",
description: "Configuration to apply when an update type is `patch`.",
stage: "package",
type: "object",
default: {},
cli: false,
mergeable: true
},
{
name: "pin",
description: "Configuration to apply when an update type is `pin`.",
stage: "package",
type: "object",
default: {
rebaseWhen: "behind-base-branch",
groupName: "Pin Dependencies",
groupSlug: "pin-dependencies",
commitMessageAction: "Pin",
group: {
commitMessageTopic: "dependencies",
commitMessageExtra: ""
}
},
cli: false,
mergeable: true
},
{
name: "digest",
description: "Configuration to apply when updating a digest (no change in tag/version).",
stage: "package",
type: "object",
default: {
branchTopic: "{{{depNameSanitized}}}-digest",
commitMessageExtra: "to {{newDigestShort}}",
commitMessageTopic: "{{{depName}}} digest"
},
cli: false,
mergeable: true
},
{
name: "pinDigest",
description: "Configuration to apply when pinning a digest (no change in tag/version).",
stage: "package",
type: "object",
default: {
groupName: "Pin Dependencies",
groupSlug: "pin-dependencies",
commitMessageAction: "Pin",
group: {
commitMessageTopic: "dependencies",
commitMessageExtra: ""
}
},
cli: false,
mergeable: true
},
{
name: "rollback",
description: "Configuration to apply when rolling back a version.",
stage: "package",
type: "object",
default: {
branchTopic: "{{{depNameSanitized}}}-rollback",
commitMessageAction: "Roll back",
semanticCommitType: "fix"
},
cli: false,
mergeable: true
},
{
name: "replacement",
description: "Configuration to apply when replacing a dependency.",
stage: "package",
type: "object",
default: {
branchTopic: "{{{depNameSanitized}}}-replacement",
commitMessageAction: "Replace",
commitMessageExtra: "with {{newName}} {{#if isMajor}}{{{prettyNewMajor}}}{{else}}{{#if isSingleVersion}}{{{prettyNewVersion}}}{{else}}{{{newValue}}}{{/if}}{{/if}}",
prBodyNotes: ["This is a special PR that replaces `{{{depName}}}` with the community suggested minimal stable replacement version."]
},
cli: false,
mergeable: true
},
{
name: "semanticCommits",
description: "Enable Semantic Commit prefixes for commits and PR titles.",
type: "string",
allowedValues: [
"auto",
"enabled",
"disabled"
],
default: "auto"
},
{
name: "semanticCommitType",
description: "Commit type to use if Semantic Commits is enabled.",
type: "string",
default: "chore",
supportsTemplating: true
},
{
name: "semanticCommitScope",
description: "Commit scope to use if Semantic Commits are enabled.",
type: "string",
default: "deps",
supportsTemplating: true
},
{
name: "commitMessageLowerCase",
description: "Lowercase PR- and commit titles.",
type: "string",
allowedValues: ["auto", "never"],
default: "auto"
},
{
name: "keepUpdatedLabel",
description: "If set, users can add this label to PRs to request they be kept updated with the base branch.",
type: "string",
supportedPlatforms: [
"azure",
"forgejo",
"gerrit",
"gitea",
"github",
"gitlab"
]
},
{
name: "rollbackPrs",
description: "Create PRs to roll back versions if the current version