diff --git a/Renovate b/Renovate new file mode 100644 index 00000000000000..2bbee031f525d6 --- /dev/null +++ b/Renovate @@ -0,0 +1,2883 @@ +title": "JSON schema for Renovate config files (https://renovatebot.com/)", + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "addLabels": { + "description": "Labels to add to Pull Request.", + "type": "array", + "items": { + "type": "string" + } + }, + "additionalBranchPrefix": { + "description": "Additional string value to be appended to `branchPrefix`.", + "type": "string", + "default": "" + }, + "additionalReviewers": { + "description": "Additional reviewers for Pull Requests (in contrast to `reviewers`, this option adds to the existing reviewer list, rather than replacing it).", + "type": "array", + "items": { + "type": "string" + } + }, + "allowCustomCrateRegistries": { + "description": "Set this to `true` to allow custom crate registries.", + "type": "boolean", + "default": false + }, + "allowPlugins": { + "description": "Set this to `true` if repositories are allowed to run install plugins.", + "type": "boolean", + "default": false + }, + "allowPostUpgradeCommandTemplating": { + "description": "Set this to `false` to disable template compilation for post-upgrade commands.", + "type": "boolean", + "default": true + }, + "allowScripts": { + "description": "Set this to `true` if repositories are allowed to run install scripts.", + "type": "boolean", + "default": false + }, + "allowedPostUpgradeCommands": { + "description": "A list of regular expressions that decide which post-upgrade tasks are allowed.", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "ansible": { + "description": "Configuration object for the ansible manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)tasks/[^/]+\\.ya?ml$"] + }, + "$ref": "#" + }, + "ansible-galaxy": { + "description": "Configuration object for the ansible-galaxy manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)requirements\\.ya?ml$", "(^|/)galaxy\\.ya?ml$"] + }, + "$ref": "#" + }, + "argocd": { + "description": "Configuration object for the argocd manager", + "type": "object", + "default": { + "fileMatch": [] + }, + "$ref": "#" + }, + "asdf": { + "description": "Configuration object for the asdf manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)\\.tool-versions$"] + }, + "$ref": "#" + }, + "assignAutomerge": { + "description": "Assign reviewers and assignees even if the PR is to be automerged.", + "type": "boolean", + "default": false + }, + "assignees": { + "description": "Assignees for Pull Request (either username or email address depending on the platform).", + "type": "array", + "items": { + "type": "string" + } + }, + "assigneesFromCodeOwners": { + "description": "Determine assignees based on configured code owners and changes in PR.", + "type": "boolean", + "default": false + }, + "assigneesSampleSize": { + "description": "Take a random sample of given size from `assignees`.", + "type": "integer", + "default": null + }, + "autoApprove": { + "description": "Set to `true` to automatically approve PRs.", + "type": "boolean", + "default": false + }, + "autoReplaceGlobalMatch": { + "description": "Control whether replacement regular expressions are global matches or only the first match.", + "type": "boolean", + "default": true + }, + "autodiscover": { + "description": "Autodiscover all repositories.", + "type": "boolean", + "default": false + }, + "autodiscoverFilter": { + "description": "Filter the list of autodiscovered repositories.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "default": null + }, + "autodiscoverTopics": { + "description": "Filter the list of autodiscovered repositories by topics.", + "type": "array", + "items": { + "type": "string" + }, + "default": null + }, + "automerge": { + "description": "Whether to automerge branches/PRs automatically, without human intervention.", + "type": "boolean", + "default": false + }, + "automergeComment": { + "description": "PR comment to add to trigger automerge. Only used if `automergeType=pr-comment`.", + "type": "string", + "default": "automergeComment" + }, + "automergeSchedule": { + "description": "Limit automerge to these times of day or week.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "default": ["at any time"] + }, + "automergeStrategy": { + "description": "The merge strategy to use when automerging PRs. Used only if `automergeType=pr`.", + "type": "string", + "enum": ["auto", "fast-forward", "merge-commit", "rebase", "squash"], + "default": "auto" + }, + "automergeType": { + "description": "How to automerge, if enabled.", + "type": "string", + "enum": ["branch", "pr", "pr-comment"], + "default": "pr" + }, + "azure-pipelines": { + "description": "Configuration object for the azure-pipelines manager", + "type": "object", + "default": { + "fileMatch": ["azure.*pipelines?.*\\.ya?ml$"], + "enabled": false + }, + "$ref": "#" + }, + "azureWorkItemId": { + "description": "The id of an existing work item on Azure Boards to link to each PR.", + "type": "integer", + "default": 0 + }, + "baseBranches": { + "description": "List of one or more custom base branches defined as exact strings and/or via regex expressions.", + "type": "array", + "items": { + "type": "string" + } + }, + "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.", + "type": "string" + }, + "batect": { + "description": "Configuration object for the batect manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)batect(-bundle)?\\.ya?ml$"] + }, + "$ref": "#" + }, + "batect-wrapper": { + "description": "Configuration object for the batect-wrapper manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)batect$"], + "versioning": "semver" + }, + "$ref": "#" + }, + "bazel": { + "description": "Configuration object for the bazel manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)WORKSPACE(|\\.bazel)$", "\\.bzl$"] + }, + "$ref": "#" + }, + "bazel-module": { + "description": "Configuration object for the bazel-module manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)MODULE\\.bazel$"] + }, + "$ref": "#" + }, + "bazelisk": { + "description": "Configuration object for the bazelisk manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)\\.bazelversion$"], + "pinDigests": false + }, + "$ref": "#" + }, + "bbUseDefaultReviewers": { + "description": "Use the default reviewers (Bitbucket only).", + "type": "boolean", + "default": true + }, + "bbUseDevelopmentBranch": { + "description": "Use the repository's [development branch](https://support.atlassian.com/bitbucket-cloud/docs/branch-a-repository/#The-branching-model) as the repository's default branch.", + "type": "boolean", + "default": false + }, + "bicep": { + "description": "Configuration object for the bicep manager", + "type": "object", + "default": { + "fileMatch": ["\\.bicep$"] + }, + "$ref": "#" + }, + "binarySource": { + "description": "Controls how third-party tools like npm or Gradle are called: directly, via Docker sidecar containers, or via dynamic install.", + "type": "string", + "enum": ["global", "docker", "install", "hermit"], + "default": "install" + }, + "bitbucket-pipelines": { + "description": "Configuration object for the bitbucket-pipelines manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)\\.?bitbucket-pipelines\\.ya?ml$"] + }, + "$ref": "#" + }, + "branchConcurrentLimit": { + "description": "Limit to a maximum of x concurrent branches. 0 means no limit, `null` (default) inherits value from `prConcurrentLimit`.", + "type": "integer", + "default": null + }, + "branchName": { + "description": "Branch name template.", + "type": "string", + "default": "{{{branchPrefix}}}{{{additionalBranchPrefix}}}{{{branchTopic}}}" + }, + "branchNameStrict": { + "description": "Whether to be strict about the use of special characters within the branch name.", + "type": "boolean", + "default": false + }, + "branchPrefix": { + "description": "Prefix to use for all branch names.", + "type": "string", + "default": "renovate/" + }, + "branchPrefixOld": { + "description": "Old branchPrefix value to check for existing PRs.", + "type": "string", + "default": "renovate/" + }, + "branchTopic": { + "description": "Branch topic.", + "type": "string", + "default": "{{{depNameSanitized}}}-{{{newMajor}}}{{#if separateMinorPatch}}{{#if isPatch}}.{{{newMinor}}}{{/if}}{{/if}}.x{{#if isLockfileUpdate}}-lockfile{{/if}}" + }, + "buildkite": { + "description": "Configuration object for the buildkite manager", + "type": "object", + "default": { + "fileMatch": ["buildkite\\.ya?ml", "\\.buildkite/.+\\.ya?ml$"], + "commitMessageTopic": "buildkite plugin {{depName}}", + "commitMessageExtra": "to {{#if isMajor}}{{{prettyNewMajor}}}{{else}}{{{newValue}}}{{/if}}" + }, + "$ref": "#" + }, + "bumpVersion": { + "description": "Bump the version in the package file being updated.", + "type": "string", + "enum": ["major", "minor", "patch", "prerelease"] + }, + "bundler": { + "description": "Configuration object for the bundler manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)Gemfile$"], + "versioning": "ruby" + }, + "$ref": "#" + }, + "cacheDir": { + "description": "The directory where Renovate stores its cache. If left empty, Renovate creates a subdirectory within the `baseDir`.", + "type": "string" + }, + "cacheHardTtlMinutes": { + "description": "Maximum duration in minutes to keep datasource cache entries.", + "type": "integer", + "default": 1440 + }, + "cake": { + "description": "Configuration object for the cake manager", + "type": "object", + "default": { + "fileMatch": ["\\.cake$"] + }, + "$ref": "#" + }, + "cargo": { + "description": "Configuration object for the cargo manager", + "type": "object", + "default": { + "commitMessageTopic": "Rust crate {{depName}}", + "fileMatch": ["(^|/)Cargo\\.toml$"], + "versioning": "cargo" + }, + "$ref": "#" + }, + "cdnurl": { + "description": "Configuration object for the cdnurl manager", + "type": "object", + "default": { + "fileMatch": [], + "versioning": "semver" + }, + "$ref": "#" + }, + "checkedBranches": { + "description": "A list of branch names to mark for creation or rebasing as if it was selected in the Dependency Dashboard issue.", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "circleci": { + "description": "Configuration object for the circleci manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)\\.circleci/config\\.ya?ml$"] + }, + "$ref": "#" + }, + "cloneSubmodules": { + "description": "Set to `true` to initialize submodules during repository clone.", + "type": "boolean", + "default": false + }, + "cloudbuild": { + "description": "Configuration object for the cloudbuild manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)cloudbuild\\.ya?ml"] + }, + "$ref": "#" + }, + "cocoapods": { + "description": "Configuration object for the cocoapods manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)Podfile$"], + "versioning": "ruby" + }, + "$ref": "#" + }, + "commitBody": { + "description": "Commit message body template. Will be appended to commit message, separated by two line returns.", + "type": "string" + }, + "commitBodyTable": { + "description": "If enabled, append a table in the commit message body describing all updates in the commit.", + "type": "boolean", + "default": false + }, + "commitMessage": { + "description": "Message to use for commit messages and pull request titles.", + "type": "string", + "default": "{{{commitMessagePrefix}}} {{{commitMessageAction}}} {{{commitMessageTopic}}} {{{commitMessageExtra}}} {{{commitMessageSuffix}}}" + }, + "commitMessageAction": { + "description": "Action verb to use in commit messages and PR titles.", + "type": "string", + "default": "Update" + }, + "commitMessageExtra": { + "description": "Extra description used after the commit message topic - typically the version.", + "type": "string", + "default": "to {{#if isPinDigest}}{{{newDigestShort}}}{{else}}{{#if isMajor}}{{prettyNewMajor}}{{else}}{{#if isSingleVersion}}{{prettyNewVersion}}{{else}}{{#if newValue}}{{{newValue}}}{{else}}{{{newDigestShort}}}{{/if}}{{/if}}{{/if}}{{/if}}" + }, + "commitMessageLowerCase": { + "description": "Lowercase PR- and commit titles.", + "type": "string", + "enum": ["auto", "never"], + "default": "auto" + }, + "commitMessagePrefix": { + "description": "Prefix to add to start of commit messages and PR titles. Uses a semantic prefix if `semanticCommits` is enabled.", + "type": "string" + }, + "commitMessageSuffix": { + "description": "Suffix to add to end of commit messages and PR titles.", + "type": "string" + }, + "commitMessageTopic": { + "description": "The upgrade topic/noun used in commit messages and PR titles.", + "type": "string", + "default": "dependency {{depName}}" + }, + "composer": { + "description": "Configuration object for the composer manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)([\\w-]*)composer\\.json$"], + "versioning": "composer" + }, + "$ref": "#" + }, + "composerIgnorePlatformReqs": { + "description": "Configure use of `--ignore-platform-reqs` or `--ignore-platform-req` for the Composer package manager.", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "conan": { + "description": "Configuration object for the conan manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)conanfile\\.(txt|py)$"], + "datasource": "conan", + "versioning": "conan", + "enabled": false + }, + "$ref": "#" + }, + "confidential": { + "description": "If enabled, issues created by Renovate are set as confidential.", + "type": "boolean", + "default": false + }, + "configMigration": { + "description": "Enable this to get config migration PRs when needed.", + "type": "boolean", + "default": false + }, + "configWarningReuseIssue": { + "description": "Set this to `false` to make Renovate create a new issue for each config warning, instead of reopening or reusing an existing issue.", + "type": "boolean", + "default": true + }, + "constraints": { + "description": "Configuration object to define language or manager version constraints.", + "type": "object", + "default": {}, + "$ref": "#" + }, + "constraintsFiltering": { + "description": "Perform release filtering based on language constraints.", + "type": "string", + "enum": ["none", "strict"], + "default": "none" + }, + "containerbaseDir": { + "description": "The directory where Renovate stores its containerbase cache. If left empty, Renovate creates a subdirectory within the `cacheDir`.", + "type": "string" + }, + "cpanfile": { + "description": "Configuration object for the cpanfile manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)cpanfile$"] + }, + "$ref": "#" + }, + "customDatasources": { + "description": "Defines custom datasources for usage by managers", + "type": "object", + "default": {}, + "$ref": "#", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "A custom description for this configuration object" + }, + "defaultRegistryUrlTemplate": { + "description": "Template for generating a defaultRegistryUrl for custom datasource", + "type": "string", + "default": "" + }, + "format": { + "description": "Format of the custom datasource", + "type": "string", + "enum": ["json", "plain"], + "default": "json" + }, + "transformTemplates": { + "description": "List of jsonata transformation rules", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + } + } + } + ] + } + }, + "customEnvVariables": { + "description": "Custom environment variables for child processes and sidecar Docker containers.", + "type": "object", + "default": {}, + "$ref": "#" + }, + "customizeDashboard": { + "description": "Customize sections in the dependency dashboard issue.", + "type": "object", + "default": {}, + "additionalProperties": { + "type": "string" + }, + "$ref": "#" + }, + "defaultRegistryUrls": { + "description": "List of registry URLs to use as the default for a datasource.", + "type": "array", + "items": { + "type": "string" + }, + "default": null + }, + "dependencyDashboard": { + "description": "Whether to create a \"Dependency Dashboard\" issue in the repository.", + "type": "boolean", + "default": false + }, + "dependencyDashboardApproval": { + "description": "Controls if updates need manual approval from the Dependency Dashboard issue before PRs are created.", + "type": "boolean", + "default": false + }, + "dependencyDashboardAutoclose": { + "description": "Set to `true` to let Renovate close the Dependency Dashboard issue if there are no more updates.", + "type": "boolean", + "default": false + }, + "dependencyDashboardFooter": { + "description": "Any text added here will be placed last in the Dependency Dashboard issue body, with a divider separator before it.", + "type": "string" + }, + "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." + }, + "dependencyDashboardLabels": { + "description": "These labels will always be applied on the Dependency Dashboard issue, even when they have been removed manually.", + "type": "array", + "items": { + "type": "string" + }, + "default": null + }, + "dependencyDashboardOSVVulnerabilitySummary": { + "description": "Control if the Dependency Dashboard issue lists CVEs supplied by [osv.dev](https://osv.dev).", + "type": "string", + "enum": ["none", "all", "unresolved"], + "default": "none" + }, + "dependencyDashboardTitle": { + "description": "Title for the Dependency Dashboard issue.", + "type": "string", + "default": "Dependency Dashboard" + }, + "deps-edn": { + "description": "Configuration object for the deps-edn manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)(?:deps|bb)\\.edn$"], + "versioning": "maven" + }, + "$ref": "#" + }, + "description": { + "description": "Plain text description for a config or preset.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "detectGlobalManagerConfig": { + "description": "If `true`, Renovate tries to detect global manager configuration from the file system.", + "type": "boolean", + "default": false + }, + "detectHostRulesFromEnv": { + "description": "If `true`, Renovate tries to detect host rules from environment variables.", + "type": "boolean", + "default": false + }, + "digest": { + "description": "Configuration to apply when updating a digest (no change in tag/version).", + "type": "object", + "default": { + "branchTopic": "{{{depNameSanitized}}}-digest", + "commitMessageExtra": "to {{newDigestShort}}", + "commitMessageTopic": "{{{depName}}} digest" + }, + "$ref": "#" + }, + "docker-compose": { + "description": "Configuration object for the docker-compose manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)(?:docker-)?compose[^/]*\\.ya?ml$"] + }, + "$ref": "#" + }, + "dockerChildPrefix": { + "description": "Change this value to add a prefix to the Renovate Docker sidecar container names and labels.", + "type": "string", + "default": "renovate_" + }, + "dockerCliOptions": { + "description": "Pass CLI flags to `docker run` command when `binarySource=docker`.", + "type": "string" + }, + "dockerSidecarImage": { + "description": "Change this value to override the default Renovate sidecar image.", + "type": "string", + "default": "ghcr.io/containerbase/sidecar:9.9.0" + }, + "dockerUser": { + "description": "Set the `UID` and `GID` for Docker-based binaries if you use `binarySource=docker`.", + "type": "string" + }, + "dockerfile": { + "description": "Configuration object for the dockerfile manager", + "type": "object", + "default": { + "fileMatch": [ + "(^|/|\\.)([Dd]ocker|[Cc]ontainer)file$", + "(^|/)([Dd]ocker|[Cc]ontainer)file[^/]*$" + ] + }, + "$ref": "#" + }, + "draftPR": { + "description": "If set to `true` then Renovate creates draft PRs, instead of normal status PRs.", + "type": "boolean", + "default": false + }, + "droneci": { + "description": "Configuration object for the droneci manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)\\.drone\\.yml$"] + }, + "$ref": "#" + }, + "dryRun": { + "description": "If enabled, perform a dry run by logging messages instead of creating/updating/deleting branches and PRs.", + "type": "string", + "enum": ["extract", "lookup", "full"], + "default": null + }, + "enabled": { + "description": "Enable or disable Renovate bot.", + "type": "boolean" + }, + "enabledManagers": { + "description": "A list of package managers to enable. Only managers on the list are enabled.", + "type": "array", + "items": { + "type": "string" + } + }, + "encrypted": { + "description": "An object containing configuration encrypted with project key.", + "type": "object", + "default": null, + "$ref": "#" + }, + "endpoint": { + "description": "Custom endpoint to use.", + "type": "string", + "default": null + }, + "excludeCommitPaths": { + "description": "A file matching any of these glob patterns will not be committed, even if the file has been updated.", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "executionTimeout": { + "description": "Default execution timeout in minutes for child processes Renovate creates.", + "type": "integer", + "default": 15 + }, + "exposeAllEnv": { + "description": "Set this to `true` to allow passing of all environment variables to package managers.", + "type": "boolean", + "default": false + }, + "extends": { + "description": "Configuration presets to use or extend.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "extractVersion": { + "description": "A regex (`re2`) to extract a version from a datasource's raw version string.", + "type": "string", + "format": "regex" + }, + "fetchReleaseNotes": { + "description": "Controls if and when release notes are fetched.", + "type": "string", + "enum": ["off", "branch", "pr"], + "default": "pr" + }, + "fileMatch": { + "description": "RegEx (`re2`) pattern for matching manager files.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "format": "regex" + } + }, + { + "type": "string", + "format": "regex" + } + ] + }, + "filterUnavailableUsers": { + "description": "Filter reviewers and assignees based on their availability.", + "type": "boolean", + "default": false + }, + "fleet": { + "description": "Configuration object for the fleet manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)fleet\\.ya?ml"] + }, + "$ref": "#" + }, + "flux": { + "description": "Configuration object for the flux manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)flux-system/(?:.+/)?gotk-components\\.ya?ml$"] + }, + "$ref": "#" + }, + "followTag": { + "description": "If defined, packages will follow this release tag exactly.", + "type": "string" + }, + "force": { + "description": "Any configuration set in this object will force override existing settings.", + "type": "object", + "$ref": "#" + }, + "forceCli": { + "description": "Decides if CLI configuration options are moved to the `force` config section.", + "type": "boolean", + "default": true + }, + "forkModeDisallowMaintainerEdits": { + "description": "Disallow maintainers to push to Renovate pull requests when running in fork mode.", + "type": "boolean", + "default": false + }, + "forkOrg": { + "description": "The preferred organization to create or find forked repositories, when in fork mode.", + "type": "string" + }, + "forkProcessing": { + "description": "Whether to process forked repositories. By default, all forked repositories are skipped when in `autodiscover` mode.", + "type": "string", + "enum": ["auto", "enabled", "disabled"], + "default": "auto" + }, + "forkToken": { + "description": "Set a personal access token here to enable \"fork mode\".", + "type": "string" + }, + "fvm": { + "description": "Configuration object for the fvm manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)\\.fvm/fvm_config\\.json$"], + "versioning": "semver" + }, + "$ref": "#" + }, + "git-submodules": { + "description": "Configuration object for the git-submodules manager", + "type": "object", + "default": { + "enabled": false, + "versioning": "git", + "fileMatch": ["(^|/)\\.gitmodules$"] + }, + "$ref": "#" + }, + "gitAuthor": { + "description": "Author to use for Git commits. Must conform to [RFC5322](https://datatracker.ietf.org/doc/html/rfc5322).", + "type": "string" + }, + "gitIgnoredAuthors": { + "description": "Additional Git authors which are ignored by Renovate. Must conform to [RFC5322](https://datatracker.ietf.org/doc/html/rfc5322).", + "type": "array", + "items": { + "type": "string" + } + }, + "gitLabIgnoreApprovals": { + "description": "Ignore approval rules for MRs created by Renovate, which is useful for automerge.", + "type": "boolean", + "default": false + }, + "gitNoVerify": { + "description": "Which Git commands will be run with the `--no-verify` option.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": ["commit", "push"] + } + }, + { + "type": "string", + "enum": ["commit", "push"] + } + ], + "default": ["commit", "push"] + }, + "gitPrivateKey": { + "description": "PGP key to use for signing Git commits.", + "type": "string" + }, + "gitTimeout": { + "description": "Configure the timeout with a number of milliseconds to wait for a Git task.", + "type": "integer", + "default": 0 + }, + "gitUrl": { + "description": "Overrides the default resolution for Git remote, e.g. to switch GitLab from HTTPS to SSH-based.", + "type": "string", + "enum": ["default", "ssh", "endpoint"], + "default": "default" + }, + "github-actions": { + "description": "Configuration object for the github-actions manager", + "type": "object", + "default": { + "fileMatch": [ + "^(workflow-templates|\\.github/workflows)/[^/]+\\.ya?ml$", + "(^|/)action\\.ya?ml$" + ] + }, + "$ref": "#" + }, + "githubTokenWarn": { + "description": "Display warnings about GitHub token not being set.", + "type": "boolean", + "default": true + }, + "gitlabci": { + "description": "Configuration object for the gitlabci manager", + "type": "object", + "default": { + "fileMatch": ["\\.gitlab-ci\\.ya?ml$"] + }, + "$ref": "#" + }, + "gitlabci-include": { + "description": "Configuration object for the gitlabci-include manager", + "type": "object", + "default": { + "fileMatch": ["\\.gitlab-ci\\.ya?ml$"] + }, + "$ref": "#" + }, + "globalExtends": { + "description": "Configuration presets to use or extend for a self-hosted config.", + "type": "array", + "items": { + "type": "string" + } + }, + "goGetDirs": { + "description": "Directory pattern to run `go get` on", + "type": "array", + "items": { + "type": "string" + }, + "default": ["./..."] + }, + "gomod": { + "description": "Configuration object for the gomod manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)go\\.mod$"], + "pinDigests": false + }, + "$ref": "#" + }, + "gradle": { + "description": "Configuration object for the gradle manager", + "type": "object", + "default": { + "fileMatch": [ + "\\.gradle(\\.kts)?$", + "(^|/)gradle\\.properties$", + "(^|/)gradle/.+\\.toml$", + "(^|/)buildSrc/.+\\.kt$", + "\\.versions\\.toml$", + "(^|/)versions.props$", + "(^|/)versions.lock$" + ], + "timeout": 600, + "versioning": "gradle" + }, + "$ref": "#" + }, + "gradle-wrapper": { + "description": "Configuration object for the gradle-wrapper manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)gradle/wrapper/gradle-wrapper\\.properties$"], + "versioning": "gradle" + }, + "$ref": "#" + }, + "group": { + "description": "Config if `groupName` is enabled.", + "type": "object", + "default": { + "branchTopic": "{{{groupSlug}}}", + "commitMessageTopic": "{{{groupName}}}" + }, + "$ref": "#" + }, + "groupName": { + "description": "Human understandable name for the dependency group.", + "type": "string", + "default": null + }, + "groupSlug": { + "description": "Slug to use for group (e.g. in branch name). Slug is calculated from `groupName` if `null`.", + "type": "string", + "default": null + }, + "hashedBranchLength": { + "description": "If enabled, branch names will use a hashing function to ensure each branch has that length.", + "type": "integer", + "default": null + }, + "helm-requirements": { + "description": "Configuration object for the helm-requirements manager", + "type": "object", + "default": { + "registryAliases": { + "stable": "https://charts.helm.sh/stable" + }, + "commitMessageTopic": "helm chart {{depName}}", + "fileMatch": ["(^|/)requirements\\.ya?ml$"] + }, + "$ref": "#" + }, + "helm-values": { + "description": "Configuration object for the helm-values manager", + "type": "object", + "default": { + "commitMessageTopic": "helm values {{depName}}", + "fileMatch": ["(^|/)values\\.ya?ml$"], + "pinDigests": false + }, + "$ref": "#" + }, + "helmfile": { + "description": "Configuration object for the helmfile manager", + "type": "object", + "default": { + "registryAliases": { + "stable": "https://charts.helm.sh/stable" + }, + "commitMessageTopic": "helm chart {{depName}}", + "fileMatch": ["(^|/)helmfile\\.ya?ml$"] + }, + "$ref": "#" + }, + "helmsman": { + "description": "Configuration object for the helmsman manager", + "type": "object", + "default": { + "fileMatch": [] + }, + "$ref": "#" + }, + "helmv3": { + "description": "Configuration object for the helmv3 manager", + "type": "object", + "default": { + "registryAliases": { + "stable": "https://charts.helm.sh/stable" + }, + "commitMessageTopic": "helm chart {{depName}}", + "fileMatch": ["(^|/)Chart\\.ya?ml$"] + }, + "$ref": "#" + }, + "hermit": { + "description": "Configuration object for the hermit manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)bin/hermit$"], + "excludeCommitPaths": ["**/bin/hermit"], + "versioning": "hermit" + }, + "$ref": "#" + }, + "homebrew": { + "description": "Configuration object for the homebrew manager", + "type": "object", + "default": { + "commitMessageTopic": "Homebrew Formula {{depName}}", + "fileMatch": ["^Formula/[^/]+[.]rb$"] + }, + "$ref": "#" + }, + "hostRules": { + "description": "Host rules/configuration including credentials.", + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "A custom description for this configuration object" + }, + "abortIgnoreStatusCodes": { + "description": "A list of HTTP status codes safe to ignore even when `abortOnError=true`.", + "type": "array", + "items": { + "type": "number" + } + }, + "abortOnError": { + "description": "If enabled, Renovate aborts its run when HTTP request errors occur.", + "type": "boolean", + "default": false + }, + "artifactAuth": { + "description": "A list of package managers to enable artifact auth. Only managers on the list are enabled. All are enabled if `null`", + "type": "array", + "items": { + "type": "string", + "enum": ["composer"] + }, + "default": null + }, + "authType": { + "description": "Authentication type for HTTP header. e.g. `\"Bearer\"` or `\"Basic\"`. Use `\"Token-Only\"` to use only the token without an authorization type.", + "type": "string", + "default": "Bearer" + }, + "concurrentRequestLimit": { + "description": "Limit concurrent requests per host.", + "type": "integer", + "default": null + }, + "dnsCache": { + "description": "Enable got DNS cache.", + "type": "boolean", + "default": false + }, + "enableHttp2": { + "description": "Enable got HTTP/2 support.", + "type": "boolean", + "default": false + }, + "hostType": { + "description": "hostType for a package rule. Can be a platform name or a datasource name.", + "type": "string" + }, + "insecureRegistry": { + "description": "Explicitly turn on insecure Docker registry access (HTTP).", + "type": "boolean" + }, + "keepalive": { + "description": "Enable HTTP keepalives for hosts.", + "type": "boolean", + "default": false + }, + "matchHost": { + "description": "A domain name, host name or base URL to match against.", + "type": "string" + }, + "maxRequestsPerSecond": { + "description": "Limit requests rate per host.", + "type": "integer", + "default": 0 + }, + "timeout": { + "description": "Timeout (in milliseconds) for queries to external endpoints.", + "type": "integer" + } + } + } + ] + }, + "default": [ + { + "timeout": 60000 + } + ] + }, + "html": { + "description": "Configuration object for the html manager", + "type": "object", + "default": { + "fileMatch": ["\\.html?$"], + "versioning": "semver", + "digest": { + "enabled": false + }, + "pinDigests": false + }, + "$ref": "#" + }, + "ignoreDeprecated": { + "description": "Avoid upgrading from a non-deprecated version to a deprecated one.", + "type": "boolean", + "default": true + }, + "ignoreDeps": { + "description": "Dependencies to ignore.", + "type": "array", + "items": { + "type": "string" + } + }, + "ignorePaths": { + "description": "Skip any package file whose path matches one of these. Can be a string or glob pattern.", + "type": "array", + "items": { + "type": "string" + }, + "default": ["**/node_modules/**", "**/bower_components/**"] + }, + "ignorePlugins": { + "description": "Set this to `true` if `allowPlugins=true` but you wish to skip running plugins when updating lock files.", + "type": "boolean", + "default": false + }, + "ignorePrAuthor": { + "description": "Set to `true` to fetch the entire list of PRs instead of only those authored by the Renovate user.", + "type": "boolean", + "default": false + }, + "ignorePresets": { + "description": "A list of presets to ignore, including any that are nested inside an `extends` array.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "ignoreReviewers": { + "description": "Reviewers to be ignored in PR reviewers presence (either username or email address depending on the platform).", + "type": "array", + "items": { + "type": "string" + } + }, + "ignoreScripts": { + "description": "Set this to `false` if `allowScripts=true` and you wish to run scripts when updating lock files.", + "type": "boolean", + "default": true + }, + "ignoreTests": { + "description": "Set to `true` to enable automerging without tests.", + "type": "boolean", + "default": false + }, + "ignoreUnstable": { + "description": "Ignore versions with unstable SemVer.", + "type": "boolean" + }, + "includeMirrors": { + "description": "Whether to process repositories that are mirrors. By default, repositories that are mirrors are skipped.", + "type": "boolean", + "default": false + }, + "includePaths": { + "description": "Include package files only within these defined paths.", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "internalChecksAsSuccess": { + "description": "Whether to consider passing internal checks such as `minimumReleaseAge` when determining branch status.", + "type": "boolean", + "default": false + }, + "internalChecksFilter": { + "description": "When and how to filter based on internal checks.", + "type": "string", + "enum": ["strict", "flexible", "none"], + "default": "strict" + }, + "jenkins": { + "description": "Configuration object for the jenkins manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)plugins\\.(txt|ya?ml)$"] + }, + "$ref": "#" + }, + "jsonnet-bundler": { + "description": "Configuration object for the jsonnet-bundler manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)jsonnetfile\\.json$"], + "datasource": "git-tags" + }, + "$ref": "#" + }, + "kotlin-script": { + "description": "Configuration object for the kotlin-script manager", + "type": "object", + "default": { + "fileMatch": ["^.+\\.main\\.kts$"] + }, + "$ref": "#" + }, + "kubernetes": { + "description": "Configuration object for the kubernetes manager", + "type": "object", + "default": { + "fileMatch": [] + }, + "$ref": "#" + }, + "kustomize": { + "description": "Configuration object for the kustomize manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)kustomization\\.ya?ml$"], + "pinDigests": false + }, + "$ref": "#" + }, + "labels": { + "description": "Labels to set in Pull Request.", + "type": "array", + "items": { + "type": "string" + } + }, + "leiningen": { + "description": "Configuration object for the leiningen manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)project\\.clj$"], + "versioning": "maven" + }, + "$ref": "#" + }, + "lockFileMaintenance": { + "description": "Configuration for lock file maintenance.", + "type": "object", + "default": { + "enabled": false, + "recreateWhen": "always", + "rebaseStalePrs": true, + "branchTopic": "lock-file-maintenance", + "commitMessageAction": "Lock file maintenance", + "commitMessageTopic": null, + "commitMessageExtra": null, + "schedule": ["before 4am on monday"], + "groupName": null, + "prBodyDefinitions": { + "Change": "All locks refreshed" + } + }, + "$ref": "#" + }, + "logContext": { + "description": "Add a global or per-repo log context to each log entry.", + "type": "string", + "default": null + }, + "logFile": { + "description": "Log file path.", + "type": "string" + }, + "logFileLevel": { + "description": "Set the log file log level.", + "type": "string", + "default": "debug" + }, + "major": { + "description": "Configuration to apply when an update type is `major`.", + "type": "object", + "default": {}, + "$ref": "#" + }, + "maven": { + "description": "Configuration object for the maven manager", + "type": "object", + "default": { + "fileMatch": [ + "(^|/|\\.)pom\\.xml$", + "^(((\\.mvn)|(\\.m2))/)?settings\\.xml$" + ], + "versioning": "maven" + }, + "$ref": "#" + }, + "maven-wrapper": { + "description": "Configuration object for the maven-wrapper manager", + "type": "object", + "default": { + "fileMatch": ["(^|\\/).mvn/wrapper/maven-wrapper.properties$"], + "versioning": "maven" + }, + "$ref": "#" + }, + "meteor": { + "description": "Configuration object for the meteor manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)package\\.js$"] + }, + "$ref": "#" + }, + "migratePresets": { + "description": "Define presets here which have been removed or renamed and should be migrated automatically.", + "type": "object", + "default": {}, + "additionalProperties": { + "type": "string" + }, + "$ref": "#" + }, + "minimumReleaseAge": { + "description": "Time required before a new release is considered stable.", + "type": "string", + "default": null + }, + "minor": { + "description": "Configuration to apply when an update type is `minor`.", + "type": "object", + "default": {}, + "$ref": "#" + }, + "mint": { + "description": "Configuration object for the mint manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)Mintfile$"] + }, + "$ref": "#" + }, + "mix": { + "description": "Configuration object for the mix manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)mix\\.exs$"], + "versioning": "hex" + }, + "$ref": "#" + }, + "nix": { + "description": "Configuration object for the nix manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)flake\\.nix$"], + "commitMessageTopic": "nixpkgs", + "commitMessageExtra": "to {{newValue}}", + "enabled": false + }, + "$ref": "#" + }, + "nodenv": { + "description": "Configuration object for the nodenv manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)\\.node-version$"], + "versioning": "node" + }, + "$ref": "#" + }, + "npm": { + "description": "Configuration object for the npm manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)package\\.json$"], + "versioning": "npm", + "digest": { + "prBodyDefinitions": { + "Change": "{{#if displayFrom}}`{{{displayFrom}}}` -> {{else}}{{#if currentValue}}`{{{currentValue}}}` -> {{/if}}{{/if}}{{#if displayTo}}`{{{displayTo}}}`{{else}}`{{{newValue}}}`{{/if}}" + } + }, + "prBodyDefinitions": { + "Change": "[{{#if displayFrom}}`{{{displayFrom}}}` -> {{else}}{{#if currentValue}}`{{{currentValue}}}` -> {{/if}}{{/if}}{{#if displayTo}}`{{{displayTo}}}`{{else}}`{{{newValue}}}`{{/if}}]({{#if depName}}https://renovatebot.com/diffs/npm/{{replace '/' '%2f' depName}}/{{{currentVersion}}}/{{{newVersion}}}{{/if}})" + } + }, + "$ref": "#" + }, + "npmToken": { + "description": "npm token used to authenticate with the default registry.", + "type": "string" + }, + "npmrc": { + "description": "String copy of `.npmrc` file. Use `\\n` instead of line breaks.", + "type": "string" + }, + "npmrcMerge": { + "description": "Whether to merge `config.npmrc` with repo `.npmrc` content if both are found.", + "type": "boolean", + "default": false + }, + "nuget": { + "description": "Configuration object for the nuget manager", + "type": "object", + "default": { + "fileMatch": [ + "\\.(?:cs|fs|vb)proj$", + "\\.(?:props|targets)$", + "(^|/)dotnet-tools\\.json$", + "(^|/)global\\.json$" + ] + }, + "$ref": "#" + }, + "nvm": { + "description": "Configuration object for the nvm manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)\\.nvmrc$"], + "versioning": "node", + "pinDigests": false + }, + "$ref": "#" + }, + "onboarding": { + "description": "Require a Configuration PR first.", + "type": "boolean" + }, + "onboardingBranch": { + "description": "Change this value to override the default onboarding branch name.", + "type": "string", + "default": "renovate/configure" + }, + "onboardingCommitMessage": { + "description": "Change this value to override the default onboarding commit message.", + "type": "string", + "default": null + }, + "onboardingConfig": { + "description": "Configuration to use for onboarding PRs.", + "type": "object", + "default": { + "$schema": "https://docs.renovatebot.com/renovate-schema.json" + }, + "$ref": "#" + }, + "onboardingConfigFileName": { + "description": "Change this value to override the default onboarding config file name.", + "type": "string", + "default": "renovate.json" + }, + "onboardingNoDeps": { + "description": "Onboard the repository even if no dependencies are found.", + "type": "boolean", + "default": false + }, + "onboardingPrTitle": { + "description": "Change this value to override the default onboarding PR title.", + "type": "string", + "default": "Configure Renovate" + }, + "onboardingRebaseCheckbox": { + "description": "Set to enable rebase/retry markdown checkbox for onboarding PRs.", + "type": "boolean", + "default": false + }, + "optimizeForDisabled": { + "description": "Set to `true` to perform a check for disabled config prior to cloning.", + "type": "boolean", + "default": false + }, + "osgi": { + "description": "Configuration object for the osgi manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)src/main/features/.+\\.json$"] + }, + "$ref": "#" + }, + "osvVulnerabilityAlerts": { + "description": "Use vulnerability alerts from `osv.dev`.", + "type": "boolean", + "default": false + }, + "packageRules": { + "description": "Rules for matching packages.", + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "A custom description for this configuration object" + }, + "allowedVersions": { + "description": "A version range or regex pattern capturing allowed versions for dependencies.", + "type": "string" + }, + "customChangelogUrl": { + "description": "If set, Renovate will use this URL to fetch changelogs for a matched dependency. Valid only within a `packageRules` object.", + "type": "string" + }, + "excludeDepNames": { + "description": "Dep names to exclude. Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "excludeDepPatterns": { + "description": "Dep name patterns to exclude. Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "format": "regex" + } + }, + { + "type": "string", + "format": "regex" + } + ] + }, + "excludePackageNames": { + "description": "Package names to exclude. Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "excludePackagePatterns": { + "description": "Package name patterns to exclude. Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "format": "regex" + } + }, + { + "type": "string", + "format": "regex" + } + ] + }, + "excludePackagePrefixes": { + "description": "Package name prefixes to exclude. Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "excludeRepositories": { + "description": "List of repositories to exclude (e.g. `[\"**/*-archived\"]`). Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "matchBaseBranches": { + "description": "List of strings containing exact matches (e.g. `[\"main\"]`) and/or regex expressions (e.g. `[\"/^release/.*/\"]`). Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "matchCategories": { + "description": "List of categories to match (for example: `[\"python\"]`). Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "matchConfidence": { + "description": "Merge confidence levels to match against (`low`, `neutral`, `high`, `very high`). Valid only within `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": ["low", "neutral", "high", "very high"] + } + }, + { + "type": "string", + "enum": ["low", "neutral", "high", "very high"] + } + ] + }, + "matchCurrentValue": { + "description": "A regex to match against the raw `currentValue` string of a dependency. Valid only within a `packageRules` object.", + "type": "string" + }, + "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" + }, + "matchDatasources": { + "description": "List of datasources to match (e.g. `[\"orb\"]`). Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "matchDepNames": { + "description": "Dep names to match. Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "matchDepPatterns": { + "description": "Dep name patterns to match. Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "format": "regex" + } + }, + { + "type": "string", + "format": "regex" + } + ] + }, + "matchDepTypes": { + "description": "List of depTypes to match (e.g. [`peerDependencies`]). Valid only within `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "matchFileNames": { + "description": "List of strings to do an exact match against package and lock files with full path. Only works inside a `packageRules` object.", + "type": "array", + "items": { + "type": "string" + } + }, + "matchManagers": { + "description": "List of package managers to match (e.g. `[\"pipenv\"]`). Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "matchPackageNames": { + "description": "Package names to match. Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "matchPackagePatterns": { + "description": "Package name patterns to match. Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "format": "regex" + } + }, + { + "type": "string", + "format": "regex" + } + ] + }, + "matchPackagePrefixes": { + "description": "Package name prefixes to match. Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "matchRepositories": { + "description": "List of repositories to match (e.g. `[\"**/*-archived\"]`). Valid only within a `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "matchSourceUrlPrefixes": { + "description": "A list of source URL prefixes to match against, commonly used to group monorepos or packages from the same organization.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "matchSourceUrls": { + "description": "A list of source URLs to exact match against.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "matchUpdateTypes": { + "description": "Update types to match against (`major`, `minor`, `pin`, `pinDigest`, etc). Valid only within `packageRules` object.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "major", + "minor", + "patch", + "pin", + "pinDigest", + "digest", + "lockFileMaintenance", + "rollback", + "bump", + "replacement" + ] + } + }, + { + "type": "string", + "enum": [ + "major", + "minor", + "patch", + "pin", + "pinDigest", + "digest", + "lockFileMaintenance", + "rollback", + "bump", + "replacement" + ] + } + ] + }, + "replacementName": { + "description": "The name of the new dependency that replaces the old deprecated dependency.", + "type": "string" + }, + "replacementNameTemplate": { + "description": "Controls what the replacement package name.", + "type": "string", + "default": "{{{packageName}}}" + }, + "replacementVersion": { + "description": "The version of the new dependency that replaces the old deprecated dependency.", + "type": "string" + } + } + } + ] + } + }, + "password": { + "description": "Password for authentication.", + "type": "string" + }, + "patch": { + "description": "Configuration to apply when an update type is `patch`.", + "type": "object", + "default": {}, + "$ref": "#" + }, + "pep621": { + "description": "Configuration object for the pep621 manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)pyproject\\.toml$"] + }, + "$ref": "#" + }, + "persistRepoData": { + "description": "If set to `true`: keep repository data between runs instead of deleting the data.", + "type": "boolean", + "default": false + }, + "pin": { + "description": "Configuration to apply when an update type is `pin`.", + "type": "object", + "default": { + "rebaseWhen": "behind-base-branch", + "groupName": "Pin Dependencies", + "groupSlug": "pin-dependencies", + "commitMessageAction": "Pin", + "group": { + "commitMessageTopic": "dependencies", + "commitMessageExtra": "" + } + }, + "$ref": "#" + }, + "pinDigest": { + "description": "Configuration to apply when pinning a digest (no change in tag/version).", + "type": "object", + "default": { + "groupName": "Pin Dependencies", + "groupSlug": "pin-dependencies", + "commitMessageAction": "Pin", + "group": { + "commitMessageTopic": "dependencies", + "commitMessageExtra": "" + } + }, + "$ref": "#" + }, + "pinDigests": { + "description": "Whether to add digests to Dockerfile source images.", + "type": "boolean", + "default": false + }, + "pip-compile": { + "description": "Configuration object for the pip-compile manager", + "type": "object", + "default": { + "fileMatch": [], + "lockFileMaintenance": { + "enabled": true, + "branchTopic": "pip-compile-refresh", + "commitMessageAction": "Refresh pip-compile outputs" + } + }, + "$ref": "#" + }, + "pip_requirements": { + "description": "Configuration object for the pip_requirements manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)[\\w-]*requirements(-\\w+)?\\.(txt|pip)$"] + }, + "$ref": "#" + }, + "pip_setup": { + "description": "Configuration object for the pip_setup manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)setup\\.py$"] + }, + "$ref": "#" + }, + "pipenv": { + "description": "Configuration object for the pipenv manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)Pipfile$"] + }, + "$ref": "#" + }, + "platform": { + "description": "Platform type of repository.", + "type": "string", + "enum": [ + "azure", + "bitbucket", + "bitbucket-server", + "codecommit", + "gitea", + "github", + "gitlab", + "local" + ], + "default": "github" + }, + "platformAutomerge": { + "description": "Controls if platform-native auto-merge is used.", + "type": "boolean", + "default": true + }, + "platformCommit": { + "description": "Use platform API to perform commits instead of using Git directly.", + "type": "boolean", + "default": false + }, + "poetry": { + "description": "Configuration object for the poetry manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)pyproject\\.toml$"] + }, + "$ref": "#" + }, + "postUpdateOptions": { + "description": "Enable post-update options to be run after package/artifact updating.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "bundlerConservative", + "gomodMassage", + "gomodTidy", + "gomodTidy1.17", + "gomodTidyE", + "gomodUpdateImportPaths", + "helmUpdateSubChartArchives", + "npmDedupe", + "pnpmDedupe", + "yarnDedupeFewer", + "yarnDedupeHighest" + ] + }, + "default": [] + }, + "postUpgradeTasks": { + "description": "Post-upgrade tasks that are executed before a commit is made by Renovate.", + "type": "object", + "default": { + "commands": [], + "fileFilters": [], + "executionMode": "update" + }, + "$ref": "#", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "A custom description for this configuration object" + }, + "commands": { + "description": "A list of post-upgrade commands that are executed before a commit is made by Renovate.", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "executionMode": { + "description": "Controls when the post upgrade tasks run: on every update, or once per upgrade branch.", + "type": "string", + "enum": ["update", "branch"], + "default": "update" + }, + "fileFilters": { + "description": "Files that match the glob pattern will be committed after running a post-upgrade task.", + "type": "array", + "items": { + "type": "string" + }, + "default": ["**/*"] + } + } + } + ] + } + }, + "prBodyColumns": { + "description": "List of columns to use in PR bodies.", + "type": "array", + "items": { + "type": "string" + }, + "default": ["Package", "Type", "Update", "Change", "Pending"] + }, + "prBodyDefinitions": { + "description": "Table column definitions to use in PR tables.", + "type": "object", + "default": { + "Package": "{{{depNameLinked}}}", + "Type": "{{{depType}}}", + "Update": "{{{updateType}}}", + "Current value": "{{{currentValue}}}", + "New value": "{{{newValue}}}", + "Change": "`{{{displayFrom}}}` -> `{{{displayTo}}}`", + "Pending": "{{{displayPending}}}", + "References": "{{{references}}}", + "Package file": "{{{packageFile}}}", + "Age": "[![age](https://developer.mend.io/api/mc/badges/age/{{datasource}}/{{replace '/' '%2f' depName}}/{{{newVersion}}}?slim=true)](https://docs.renovatebot.com/merge-confidence/)", + "Adoption": "[![adoption](https://developer.mend.io/api/mc/badges/adoption/{{datasource}}/{{replace '/' '%2f' depName}}/{{{newVersion}}}?slim=true)](https://docs.renovatebot.com/merge-confidence/)", + "Passing": "[![passing](https://developer.mend.io/api/mc/badges/compatibility/{{datasource}}/{{replace '/' '%2f' depName}}/{{{currentVersion}}}/{{{newVersion}}}?slim=true)](https://docs.renovatebot.com/merge-confidence/)", + "Confidence": "[![confidence](https://developer.mend.io/api/mc/badges/confidence/{{datasource}}/{{replace '/' '%2f' depName}}/{{{currentVersion}}}/{{{newVersion}}}?slim=true)](https://docs.renovatebot.com/merge-confidence/)" + } + }, + "prBodyNotes": { + "description": "List of additional notes/templates to include in the Pull Request body.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "default": [] + }, + "prBodyTemplate": { + "description": "Pull Request body template. Controls which sections are rendered in the body of the pull request.", + "type": "string", + "default": "{{{header}}}{{{table}}}{{{warnings}}}{{{notes}}}{{{changelogs}}}{{{configDescription}}}{{{controls}}}{{{footer}}}" + }, + "prCommitsPerRunLimit": { + "description": "Set the maximum number of commits per Renovate run. By default there is no limit.", + "type": "integer", + "default": 0 + }, + "prConcurrentLimit": { + "description": "Limit to a maximum of x concurrent branches/PRs. 0 means no limit.", + "type": "integer", + "default": 10 + }, + "prCreation": { + "description": "When to create the PR for a branch.", + "type": "string", + "enum": ["immediate", "not-pending", "status-success", "approval"], + "default": "immediate" + }, + "prFooter": { + "description": "Text added here will be placed last in the PR body, with a divider separator before it.", + "type": "string", + "default": "This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate)." + }, + "prHeader": { + "description": "Text added here will be placed first in the PR body.", + "type": "string" + }, + "prHourlyLimit": { + "description": "Rate limit PRs to maximum x created per hour. 0 means no limit.", + "type": "integer", + "default": 2 + }, + "prNotPendingHours": { + "description": "Timeout in hours for when `prCreation=not-pending`.", + "type": "integer", + "default": 25 + }, + "prPriority": { + "description": "Set sorting priority for PR creation. PRs with higher priority are created first, negative priority last.", + "type": "integer", + "default": 0 + }, + "prTitle": { + "description": "Pull Request title template (deprecated). Inherits from `commitMessage` if null.", + "type": "string", + "default": null + }, + "prTitleStrict": { + "description": "Whether to bypass appending extra context to the Pull Request title.", + "type": "boolean", + "default": false + }, + "pre-commit": { + "description": "Configuration object for the pre-commit manager", + "type": "object", + "default": { + "commitMessageTopic": "pre-commit hook {{depName}}", + "enabled": false, + "fileMatch": ["(^|/)\\.pre-commit-config\\.ya?ml$"], + "prBodyNotes": [ + "Note: The `pre-commit` manager in Renovate is not supported by the `pre-commit` maintainers or community. Please do not report any problems there, instead [create a Discussion in the Renovate repository](https://github.com/renovatebot/renovate/discussions/new) if you have any questions." + ] + }, + "$ref": "#" + }, + "printConfig": { + "description": "If enabled, Renovate logs the fully resolved config for each repository, plus the fully resolved presets.", + "type": "boolean", + "default": false + }, + "privateKey": { + "description": "Server-side private key.", + "type": "string" + }, + "privateKeyOld": { + "description": "Secondary or old private key to try.", + "type": "string" + }, + "privateKeyPath": { + "description": "Path to the Server-side private key.", + "type": "string" + }, + "privateKeyPathOld": { + "description": "Path to the Server-side old private key.", + "type": "string" + }, + "productLinks": { + "description": "Links which are used in PRs, issues and comments.", + "type": "object", + "default": { + "documentation": "https://docs.renovatebot.com/", + "help": "https://github.com/renovatebot/renovate/discussions", + "homepage": "https://github.com/renovatebot/renovate" + }, + "additionalProperties": { + "type": "string", + "format": "uri" + }, + "$ref": "#" + }, + "pruneBranchAfterAutomerge": { + "description": "Set to `true` to enable branch pruning after automerging.", + "type": "boolean", + "default": true + }, + "pruneStaleBranches": { + "description": "Set to `false` to disable pruning stale branches.", + "type": "boolean", + "default": true + }, + "pub": { + "description": "Configuration object for the pub manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)pubspec\\.ya?ml$"], + "versioning": "npm" + }, + "$ref": "#" + }, + "puppet": { + "description": "Configuration object for the puppet manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)Puppetfile$"] + }, + "$ref": "#" + }, + "pyenv": { + "description": "Configuration object for the pyenv manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)\\.python-version$"], + "versioning": "docker" + }, + "$ref": "#" + }, + "rangeStrategy": { + "description": "Determines how to modify or update existing ranges.", + "type": "string", + "enum": [ + "auto", + "pin", + "bump", + "replace", + "widen", + "update-lockfile", + "in-range-only" + ], + "default": "auto" + }, + "rebaseLabel": { + "description": "Label to request a rebase from Renovate bot.", + "type": "string", + "default": "rebase" + }, + "rebaseWhen": { + "description": "Controls when Renovate rebases an existing branch.", + "type": "string", + "enum": ["auto", "never", "conflicted", "behind-base-branch"], + "default": "auto" + }, + "recreateWhen": { + "description": "Recreate PRs even if same ones were closed previously.", + "type": "string", + "enum": ["auto", "always", "never"], + "default": "auto" + }, + "redisUrl": { + "description": "If set, this Redis URL will be used for caching instead of the file system.", + "type": "string" + }, + "regex": { + "description": "Configuration object for the regex manager", + "type": "object", + "default": { + "pinDigests": false + }, + "$ref": "#" + }, + "regexManagers": { + "description": "Custom managers using regex matching.", + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "A custom description for this configuration object" + }, + "autoReplaceStringTemplate": { + "description": "Optional `extractVersion` for extracted dependencies. Valid only within a `regexManagers` object.", + "type": "string" + }, + "currentValueTemplate": { + "description": "Optional `currentValue` for extracted dependencies. Valid only within a `regexManagers` object.", + "type": "string" + }, + "datasourceTemplate": { + "description": "Optional datasource for extracted dependencies. Valid only within a `regexManagers` object.", + "type": "string" + }, + "depNameTemplate": { + "description": "Optional depName for extracted dependencies. Valid only within a `regexManagers` object.", + "type": "string" + }, + "depTypeTemplate": { + "description": "Optional `depType` for extracted dependencies. Valid only within a `regexManagers` object.", + "type": "string" + }, + "extractVersionTemplate": { + "description": "Optional `extractVersion` for extracted dependencies. Valid only within a `regexManagers` object.", + "type": "string" + }, + "matchStrings": { + "description": "Regex capture rule to use. Valid only within a `regexManagers` object.", + "type": "array", + "items": { + "type": "string", + "format": "regex" + } + }, + "matchStringsStrategy": { + "description": "Strategy how to interpret matchStrings.", + "type": "string", + "enum": ["any", "recursive", "combination"], + "default": "any" + }, + "packageNameTemplate": { + "description": "Optional packageName for extracted dependencies, else defaults to `depName` value. Valid only within a `regexManagers` object.", + "type": "string" + }, + "registryUrlTemplate": { + "description": "Optional registry URL for extracted dependencies. Valid only within a `regexManagers` object.", + "type": "string" + }, + "versioningTemplate": { + "description": "Optional versioning for extracted dependencies. Valid only within a `regexManagers` object.", + "type": "string" + } + } + } + ] + }, + "default": [] + }, + "registryAliases": { + "description": "Aliases for registries.", + "type": "object", + "default": {}, + "additionalProperties": { + "type": "string", + "format": "uri" + }, + "$ref": "#" + }, + "registryUrls": { + "description": "List of URLs to try for dependency lookup. Package manager specific.", + "type": "array", + "items": { + "type": "string" + }, + "default": null + }, + "replacement": { + "description": "Configuration to apply when replacing a dependency.", + "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 `{{{depNameSanitized}}}` with the community suggested minimal stable replacement version." + ] + }, + "$ref": "#" + }, + "repositories": { + "description": "List of Repositories.", + "type": "array", + "items": { + "type": "string" + } + }, + "repositoryCache": { + "description": "This option decides if Renovate uses a JSON cache to speed up extractions.", + "type": "string", + "enum": ["disabled", "enabled", "reset"], + "default": "disabled" + }, + "repositoryCacheType": { + "description": "Set the type of renovate repository cache if `repositoryCache` is enabled.", + "type": "string", + "default": "local" + }, + "requireConfig": { + "description": "Controls Renovate's behavior regarding repository config files such as `renovate.json`.", + "type": "string", + "enum": ["required", "optional", "ignored"], + "default": "required" + }, + "respectLatest": { + "description": "Ignore versions newer than npm \"latest\" version.", + "type": "boolean" + }, + "reviewers": { + "description": "Requested reviewers for Pull Requests (either username or email address depending on the platform).", + "type": "array", + "items": { + "type": "string" + } + }, + "reviewersFromCodeOwners": { + "description": "Determine reviewers based on configured code owners and changes in PR.", + "type": "boolean", + "default": false + }, + "reviewersSampleSize": { + "description": "Take a random sample of given size from `reviewers`.", + "type": "integer", + "default": null + }, + "rollback": { + "description": "Configuration to apply when rolling back a version.", + "type": "object", + "default": { + "branchTopic": "{{{depNameSanitized}}}-rollback", + "commitMessageAction": "Roll back", + "semanticCommitType": "fix" + }, + "$ref": "#" + }, + "rollbackPrs": { + "description": "Create PRs to roll back versions if the current version is not found in the registry.", + "type": "boolean", + "default": false + }, + "ruby-version": { + "description": "Configuration object for the ruby-version manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)\\.ruby-version$"], + "versioning": "ruby" + }, + "$ref": "#" + }, + "sbt": { + "description": "Configuration object for the sbt manager", + "type": "object", + "default": { + "fileMatch": [ + "\\.sbt$", + "project/[^/]*\\.scala$", + "project/build\\.properties$" + ], + "versioning": "ivy" + }, + "$ref": "#" + }, + "schedule": { + "description": "Limit branch creation to these times of day or week.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "default": ["at any time"] + }, + "secrets": { + "description": "Object which holds secret name/value pairs.", + "type": "object", + "default": {}, + "additionalProperties": { + "type": "string" + }, + "$ref": "#" + }, + "semanticCommitScope": { + "description": "Commit scope to use if Semantic Commits are enabled.", + "type": "string", + "default": "deps" + }, + "semanticCommitType": { + "description": "Commit type to use if Semantic Commits is enabled.", + "type": "string", + "default": "chore" + }, + "semanticCommits": { + "description": "Enable Semantic Commit prefixes for commits and PR titles.", + "type": "string", + "enum": ["auto", "enabled", "disabled"], + "default": "auto" + }, + "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" + }, + "separateMinorPatch": { + "description": "If set to `true`, Renovate will separate `minor` and `patch` updates into separate branches.", + "type": "boolean", + "default": false + }, + "separateMultipleMajor": { + "description": "If set to `true`, PRs will be raised separately for each available `major` upgrade version.", + "type": "boolean", + "default": false + }, + "setup-cfg": { + "description": "Configuration object for the setup-cfg manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)setup\\.cfg$"], + "versioning": "pep440" + }, + "$ref": "#" + }, + "skipInstalls": { + "description": "Skip installing modules/dependencies if lock file updating is possible without a full install.", + "type": "boolean", + "default": null + }, + "stopUpdatingLabel": { + "description": "Label to make Renovate stop updating a PR.", + "type": "string", + "default": "stop-updating" + }, + "suppressNotifications": { + "description": "Options to suppress various types of warnings and other notifications.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "artifactErrors", + "branchAutomergeFailure", + "configErrorIssue", + "dependencyLookupWarnings", + "deprecationWarningIssues", + "lockFileErrors", + "missingCredentialsError", + "onboardingClose", + "prEditedNotification", + "prIgnoreNotification" + ] + }, + "default": ["deprecationWarningIssues"] + }, + "swift": { + "description": "Configuration object for the swift manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)Package\\.swift"], + "versioning": "swift", + "pinDigests": false + }, + "$ref": "#" + }, + "tekton": { + "description": "Configuration object for the tekton manager", + "type": "object", + "default": { + "fileMatch": [] + }, + "$ref": "#" + }, + "terraform": { + "description": "Configuration object for the terraform manager", + "type": "object", + "default": { + "commitMessageTopic": "Terraform {{depName}}", + "fileMatch": ["\\.tf$"], + "pinDigests": false + }, + "$ref": "#" + }, + "terraform-version": { + "description": "Configuration object for the terraform-version manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)\\.terraform-version$"], + "versioning": "hashicorp", + "extractVersion": "^v(?.*)$" + }, + "$ref": "#" + }, + "terragrunt": { + "description": "Configuration object for the terragrunt manager", + "type": "object", + "default": { + "commitMessageTopic": "Terragrunt dependency {{depName}}", + "fileMatch": ["(^|/)terragrunt\\.hcl$"] + }, + "$ref": "#" + }, + "terragrunt-version": { + "description": "Configuration object for the terragrunt-version manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)\\.terragrunt-version$"], + "versioning": "hashicorp", + "extractVersion": "^v(?.+)$" + }, + "$ref": "#" + }, + "tflint-plugin": { + "description": "Configuration object for the tflint-plugin manager", + "type": "object", + "default": { + "commitMessageTopic": "TFLint plugin {{depName}}", + "fileMatch": ["\\.tflint\\.hcl$"], + "extractVersion": "^v(?.*)$" + }, + "$ref": "#" + }, + "timezone": { + "description": "[IANA Time Zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)", + "type": "string" + }, + "token": { + "description": "Repository Auth Token.", + "type": "string" + }, + "transitiveRemediation": { + "description": "Enable remediation of transitive dependencies.", + "type": "boolean", + "default": false + }, + "travis": { + "description": "Configuration object for the travis manager", + "type": "object", + "default": { + "fileMatch": ["^\\.travis\\.ya?ml$"], + "major": { + "enabled": false + }, + "versioning": "node" + }, + "$ref": "#" + }, + "unicodeEmoji": { + "description": "Enable or disable Unicode emoji.", + "type": "boolean", + "default": true + }, + "updateInternalDeps": { + "description": "Whether to update internal dep versions in a monorepo. Works on Lerna or Yarn Workspaces.", + "type": "boolean", + "default": false + }, + "updateLockFiles": { + "description": "Set to `false` to disable lock file updating.", + "type": "boolean" + }, + "updateNotScheduled": { + "description": "Whether to update branches when not scheduled. Renovate will not create branches outside of the schedule.", + "type": "boolean" + }, + "updatePinnedDependencies": { + "description": "Whether to update pinned (single version) dependencies or not.", + "type": "boolean", + "default": true + }, + "useBaseBranchConfig": { + "description": "Whether to read configuration from `baseBranches` instead of only the default branch.", + "type": "string", + "enum": ["merge", "none"], + "default": "none" + }, + "userStrings": { + "description": "User-facing strings for the Renovate comment when a PR is closed.", + "type": "object", + "default": { + "ignoreTopic": "Renovate Ignore Notification", + "ignoreMajor": "Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for *any* future {{{newMajor}}}.x releases. But if you manually upgrade to {{{newMajor}}}.x then Renovate will re-enable `minor` and `patch` updates automatically.", + "ignoreDigest": "Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for the `{{{depName}}}` `{{{newDigestShort}}}` update again.", + "ignoreOther": "Because you closed this PR without merging, Renovate will ignore this update ({{{newValue}}}). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the `ignoreDeps` array of your Renovate config." + } + }, + "username": { + "description": "Username for authentication.", + "type": "string" + }, + "velaci": { + "description": "Configuration object for the velaci manager", + "type": "object", + "default": { + "fileMatch": ["(^|/)\\.vela\\.ya?ml$"] + }, + "$ref": "#" + }, + "versioning": { + "description": "Versioning to use for filtering and comparisons.", + "type": "string", + "oneOf": [ + { + "enum": [ + "aws-machine-image", + "azure-rest-api", + "bazel-module", + "cargo", + "composer", + "conan", + "deb", + "debian", + "docker", + "git", + "go-mod-directive", + "gradle", + "hashicorp", + "helm", + "hermit", + "hex", + "ivy", + "kubernetes-api", + "loose", + "maven", + "nixpkgs", + "node", + "npm", + "nuget", + "pep440", + "perl", + "poetry", + "python", + "redhat", + "regex", + "rez", + "ruby", + "semver", + "semver-coerced", + "swift", + "ubuntu" + ] + }, + { + "type": "string", + "pattern": "^regex:" + } + ] + }, + "vulnerabilityAlerts": { + "description": "Config to apply when a PR is needed due to a vulnerability in the existing package version.", + "type": "object", + "default": { + "groupName": null, + "schedule": [], + "dependencyDashboardApproval": false, + "minimumReleaseAge": null, + "rangeStrategy": "update-lockfile", + "commitMessageSuffix": "[SECURITY]", + "branchTopic": "{{{datasource}}}-{{{depName}}}-vulnerability", + "prCreation": "immediate" + }, + "$ref": "#" + }, + "woodpecker": { + "description": "Configuration object for the woodpecker manager", + "type": "object", + "default": { + "fileMatch": ["^\\.woodpecker(?:/[^/]+)?\\.ya?ml$"] + }, + "$ref": "#" + }, + "writeDiscoveredRepos": { + "description": "Writes discovered repositories to a JSON file and then exit.", + "type": "string" + } + } +}