docs: move manager docs out of config options (#5410)

This commit is contained in:
Rhys Arkins 2020-02-25 06:45:00 +01:00 committed by GitHub
parent 763e444962
commit cb5da82acc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 110 additions and 237 deletions

View file

@ -41,14 +41,6 @@ The `aliases` object is used for configuring registry aliases. Currently it is n
Alias values must be properly formatted URIs.
## ansible
Add configuration here if you want to enable or disable something in particular for Ansible files and override the default Docker settings.
## ansible-galaxy
Add configuration here if you want to enable or disable something in particular for Ansible requirements files. Includes and webserver based dependencies in requirement files are not supported at this moment.
## assignAutomerge
By default, Renovate will not assign reviewers and assignees to an automerge-enabled PR unless it fails status checks. By configuring this setting to `true`, Renvoate will instead always assign reviewers and assignees for automerging PRs at time of creation.
@ -143,10 +135,6 @@ By default, Renovate will detect and process only the repository's default branc
It's possible to add this setting into the `renovate.json` file as part of the "Configure Renovate" onboarding PR. If so then Renovate will reflect this setting in its description and use package file contents from the custom base branch(es) instead of default.
## bazel
Bazel is quite unlike most other "package managers" that Renovate supports, which usually focus on a particular ecosystem like JavaScript, Ruby or Docker. Instead, Bazel is a build tool so supports a multitude of languages/datasources. Renovate does not support all possible Bazel references, although would like to, and feature requests are welcoe.
## bbUseDefaultReviewers
Configuring this to `true` means that Renovate will detect and apply the default reviewers rules to PRs (Bitbucket only).
@ -168,8 +156,6 @@ Note that this setting does not change the default _onboarding_ branch name, i.e
This field is combined with `branchPrefix` and `managerBranchPrefix` to form the full `branchName`. `branchName` uniqueness is important for dependency update grouping or non-grouping so be cautious about ever editing this field manually. This is an advance field and it's recommend you seek a config review before applying it.
## buildkite
## bumpVersion
Currently this setting supports `npm` only, so raise a feature request if you have a use for it with other package managers. It's purpose is if you want Renovate to update the `version` field within your file's `package.json` any time it updates depencies within. Usually this is for automatic release purposes, so that you don't need to add another step after Renovate before you can release a new version.
@ -178,26 +164,6 @@ Configure this value to `"patch"`, `"minor"` or `"major"` to have Renovate updat
You can also configure this field to `"mirror:x"` where `x` is the name of a package in the `package.json`. Doing so means that the `package.json` `version` field will mirror whatever the version is that `x` depended on. Make sure that version is a pinned version of course, as otherwise it won't be valid.
## bundler
## cargo
## cdnurl
**Important**: This manager isn't aware of subresource integrity (SRI) hashes. It will search/replace any matching url it finds, without consideration for things such as script integrity hashes.
To enable this manager, add the matching files to `cdnurl.fileMatch`. For example:
```json
{
"cdnurl": {
"fileMatch": ["\\.html?$"]
}
}
```
## circleci
## commitBody
Configure this if you wish Renovate to add a commit body, otherwise Renovate just uses a regular single-line commit.
@ -250,14 +216,10 @@ This is used to manually restrict which versions are possible to upgrade to base
}
```
## composer
## configWarningReuseIssue
Renovate's default behaviour is to reuse/reopen a single Config Warning issue in each repository so as to keep the "noise" down. However for some people this has the downside that the config warning won't be sorted near the top if you view issues by creation date. Configure this option to `false` if you prefer Renovate to open a new issue whenever there is a config warning.
## deps-edn
## description
The description field is used by config presets to describe what they do. They are then collated as part of the onboarding description.
@ -281,18 +243,8 @@ Add config here if you wish it to apply to Docker package managers Dockerfile an
}
```
## docker-compose
Add configuration here if you want to enable or disable something in particular for Docker Compose files and override the default Docker settings.
## dockerfile
Add configuration here if you want to enable or disable something in particular for `Dockerfile` files and override the default Docker settings.
## dotnet
## droneci
## enabled
The most common use of `enabled` is if you want to turn Renovate's functionality off, for some reason.
@ -396,44 +348,14 @@ The primary use case for this option is if you are following a pre-release tag o
Beware that Renovate follows tags strictly. For example, if you are following a tag like `next` and then that stream is released as `stable` and `next` is no longer being updated then that means your dependencies also won't be getting updated.
## git-submodules
## gitLabAutomerge
Caution (fixed in GitLab >= 12.7): when this option is enabled it is possible due to a bug in GitLab that MRs with failing pipelines might still get merged. This is caused by a race condition in GitLab's Merge Request API - [read the corresponding issue](https://gitlab.com/gitlab-org/gitlab/issues/26293) for details.
## github-actions
**Important note**: For security reasons, GitHub has blocked integrations/apps from editing GitHub Actions workflow files in _any_ branch, so this only works on GitHub if using a Personal Access Token instead of using the WhiteSource Renovate app.
Add to this configuration setting if you need to override any of the GitHub Actions default settings.
## gitlabci
Add to this configuration setting if you need to override any of the GitLab CI default settings.
## gitlabci-include
Add to this configuration setting if you need to override any of the GitLab CI Includes default settings. Applies to the `include:` section only.
## golang
Configuration added here applies for all Go-related updates, however currently the only supported package manager for Go is the native Go Modules (the `gomod` manager).
## gomod
Configuration for Go Modules. Supersedes anything in the `golang` config object.
You might be interested to add `"postUpdateOptions": ["gomodTidy"]` to your config if you'd like Renovate to run `go mod tidy` after every update before raising the PR.
## gradle
Configuration for Java gradle projects.
## gradle-wrapper
Configuration for Gradle Wrapper updates. Changes here affect how Renovate updates the version of gradle in the wrapper, not how it uses the wrapper.
## group
Caution: Advanced functionality only. Do not use unless you know what you're doing.
@ -479,27 +401,6 @@ As a result of the above, the branchName would be `renovate/dev-dependencies` in
Note: you shouldn't usually need to configure this unless you really care about your branch names.
## helm-requirements
Renovate supports updating Helm Chart references within `requirements.yaml` files. If your Helm charts make use of Aliases then you will need to configure an `aliases` object in your config to tell Renovate where to look for them.
## helm-values
Renovate supports updating of Docker dependencies within Helm Chart `values.yaml` files or other YAML
files that use the same format (via `fileMatch` configuration). Updates are performed if the files
follow the conventional format used in most of the `stable` Helm charts:
```yaml
image:
repository: 'some-docker/dependency'
tag: v1.0.0
registry: registry.example.com # optional key, will default to "docker.io"
```
## helmfile
## homebrew
## hostRules
Currently the purpose of `hostRules` is to configure credentials for host authentication. You tell Renovate how to match against the host you need authenticated, and then you also tell it which credentials to use.
@ -571,10 +472,6 @@ Use this figure to adjust the timeout for queries. The default is 60s, which is
}
```
## html
Supports subresource integrity (SRI) hashes.
## ignoreDeprecated
By default, Renovate won't update a dependency version to a deprecated release unless the current version was _itself_ deprecated. The goal of this is to make sure you don't upgrade from a non-deprecated version to a deprecated one just because it's higher than the current version.
@ -656,42 +553,6 @@ Use this configuration option for shared config across all java projects (Gradle
Use this configuration option for shared config across npm/yarn/pnpm and meteor package managers.
## kubernetes
Add to this configuration object if you need to override any of the Kubernetes manager default settings. Use the `docker` config object instead if you wish for configuration to apply across all Docker-related package managers.
It's important to note that the `kubernetes` manager by default has no `fileMatch` defined - i.e. so it will never match any files unless you configure it. This is because there is no commonly accepted file/directory naming convention for Kubernetes YAML files and we don't want to download every single `*.yaml` file in repositories just in case any of them contain Kubernetes definitions.
If most `.yaml` files in your repository are Kubnernetes ones, then you could add this to your config:
```json
{
"kubernetes": {
"fileMatch": ["\\.yaml$"]
}
}
```
If instead you have them all inside a `k8s/` directory, you would add this:
```json
{
"kubernetes": {
"fileMatch": ["k8s/.+\\.yaml$"]
}
}
```
Or if it's just a single file then something like this:
```json
{
"kubernetes": {
"fileMatch": ["^config/k8s\\.yaml$"]
}
}
```
## labels
By default, Renovate won't add any labels to its PRs. If you want Renovate to do so then define a `labels` array of one or more label strings. If you want the same label(s) for every PR then you can configure it at the top level of config. However you can also fully override them on a per-package basis.
@ -716,8 +577,6 @@ With the above config, every PR raised by Renovate will have the label `dependen
By default, Renovate will use group names in Pull Request titles only when the PR contains two or more dependencies. For example you may have defined a dependency group calls "All eslint packages" with a `packagePattern` of `^eslint`, but if the only upgrade available at the time is `eslint-config-airbnb` then it makes more sense for the PR to be named "Upgrade eslint-config-airbnb to v2.1.4" than to name it "Upgrade All eslint packages". If ever this behaviour is undesirable then you can override it by setting this option to `false`.
## leiningen
## lockFileMaintenance
This feature can be used to refresh lock files and keep them up-to-date. "Maintaining" a lock file means recreating it so that every dependency version within it is updated to the latest. Supported lock files are `package-lock.json`, `yarn.lock`, `composer.lock` and `poetry.lock`. Others may be added via feature request.
@ -769,33 +628,16 @@ You can configure this to `true` if you prefer Renovate to close an existing Mas
Configure this option if you prefer a different title for the Master Issue.
## maven
## meteor
## minor
Add to this object if you wish to define rules that apply only to minor updates.
## mix
## node
Using this configuration option allows you to apply common configuration and policies across all Node.js version updates even if managed by different package managers (`npm`, `yarn`, etc.).
Check out our [Node.js documentation](https://docs.renovatebot.com/node) for a comprehensive explanation of how the `node` option can be used.
## npm
The following `depTypes` are currently supported by the npm manager :
- `dependencies`
- `devDependencies`
- `optionalDependencies`
- `peerDependencies`
- `engines` : Renovate will update any `node`, `npm` and `yarn` version specified under `engines`.
- `volta` : Renovate will update any `node` and `yarn` version specified under `volta`.
## npmToken
See [Private npm module support](https://docs.renovatebot.com/private-modules) for details on how this is used. Typically you would encrypt it and put it inside the `encrypted` object.
@ -804,14 +646,6 @@ See [Private npm module support](https://docs.renovatebot.com/private-modules) f
See [Private npm module support](https://docs.renovatebot.com/private-modules) for details on how this is used.
## nuget
The `nuget` configuration object is used to control settings for the NuGet package manager. The NuGet package manager supports SDK-style `.csproj`/`.fsproj`/`.vbproj` format, as described [here](https://natemcmaster.com/blog/2017/03/09/vs2015-to-vs2017-upgrade/). This means that .NET Core projects are all supported but any .NET Framework projects need to be updated to the new `.csproj`/`.fsproj`/`.vbproj` format in order to be detected and supported by Renovate.
## nvm
For settings common to all node.js version updates (e.g. travis, nvm, etc) you can use the `node` object instead of this.
## packageRules
`packageRules` is a powerful feature that lets you apply rules to individual packages or to groups of packages using regex pattern matching.
@ -1117,24 +951,6 @@ Add to this object if you wish to define rules that apply only to PRs that pin d
If enabled Renovate will pin docker images by means of their sha256 digest and not only by tag so that they are immutable.
## pip_requirements
Add configuration here to specifically override settings for `pip` requirements files. Supports `requirements.txt` and `requirements.pip` files. The default file pattern is fairly flexible in an attempt to catch similarly named ones too but may be extended/changed.
## pip_setup
Add configuration here to specifically override settings for `setup.py` files.
Warning: `setup.py` support is currently in beta, so is not enabled by default. You will need to configure `{ "pip_setup": { "enabled": true }}` to enable.
## pipenv
Add configuration here to change pipenv settings, e.g. to change the file pattern for pipenv so that you can use filenames other than Pipfile.
Warning: `pipenv` support is currently in beta, so it is not enabled by default. You will need to configure `{ "pipenv": { "enabled": true }}` to enable.
## poetry
## postUpdateOptions
- `gomodTidy`: Run `go mod tidy` after Go module updates
@ -1298,8 +1114,6 @@ The PR title is important for some of Renovate's matching algorithms (e.g. deter
Configure to `false` to disable deleting orphan branches and autoclosing PRs. Defaults to `true`.
## pub
## python
Currently the only Python package manager is `pip` - specifically for `requirements.txt` and `requirequirements.pip` files - so adding any config to this `python` object is essentially the same as adding it to the `pip_requirements` object instead.
@ -1384,15 +1198,8 @@ Configure this to `false` either globally, per-language, or per-package if you w
## ruby
## ruby-version
## rust
## sbt
It isn't supporting Scala version inference well (`%%` operator), just searching for package like `<artifactId>_<scalaVersion>` without any additional resolving.
In case of problems, please use explicit versions with `%` operator.
## schedule
The `schedule` option allows you to define times of week or month for Renovate updates. Running Renovate around the clock may seem too "noisy" for some projects and therefore `schedule` is a good way to reduce the noise by reducing the timeframe in which Renovate will operate on your repository.
@ -1502,54 +1309,10 @@ Use this field to suppress various types of warnings and other notifications fro
The above config will suppress the comment which is added to a PR whenever you close a PR unmerged.
## swift
Anything other than `.exact(<...>)` will be treated as range with respect to Swift specific.
Because of this, some PR descriptions will look like `from: <...> => <...>`.
Examples:
```swift
package(name: "<...>", from: "1.2.3") // => from: "2.0.0"
package(name: "<...>", "1.2.3"...) // => "2.0.0"...
package(name: "<...>", "1.2.3"..."1.3.0") // => "1.2.3"..."2.0.0"
package(name: "<...>", "1.2.3"..<"1.3.0") // => "1.2.3"..<"2.0.0"
package(name: "<...>", ..."1.2.3") // => ..."2.0.0"
package(name: "<...>", ..<"1.2.3") // => ..<"2.0.0"
```
## terraform
Currently Terraform support is limited to Terraform registry sources and github sources that include semver refs, e.g. like `github.com/hashicorp/example?ref=v1.0.0`.
Fixed versions like the following will receive a PR whenever there is a newer version available:
```
module "consul" {
source = "hashicorp/consul/aws"
version = "0.0.5"
servers = 3
}
```
The following _range_ constraints are also supported:
- `>= 1.2.0`: version 1.2.0 or newer
- `<= 1.2.0`: version 1.2.0 or older
- `~> 1.2.0`: any non-beta version >= 1.2.0 and < 1.3.0, e.g. 1.2.X
- `~> 1.2`: any non-beta version >= 1.2.0 and < 2.0.0, e.g. 1.X.Y
- `>= 1.0.0`, <= 2.0.0`: any version between 1.0.0 and 2.0.0 inclusive
## timezone
It is only recommended to configure this field if you wish to use the `schedules` feature and want to write them in your local timezone. Please see the above link for valid timezone names.
## travis
For settings common to all node.js version updates (e.g. travis, nvm, etc) you can use the `node` object instead.
Note: Travis renovation is disabled by default as we cannot be sure of which combination of releases you want until you configure supportPolicy.
## unicodeEmoji
If enabled emoji shortcodes (`:warning:`) are replaced with their unicode equivalents (`⚠️`)

View file

@ -24,6 +24,8 @@ export interface RenovateOptionBase {
freeChoice?: boolean;
mergeable?: boolean;
autogenerated?: boolean;
name: string;
parent?: 'hostRules' | 'packageRules' | 'postUpgradeTasks';
@ -1690,6 +1692,7 @@ function loadManagerOptions(): void {
default: config.defaultConfig,
mergeable: true,
cli: false,
autogenerated: true,
};
options.push(managerConfig);
}

View file

@ -0,0 +1 @@
Add configuration here if you want to enable or disable something in particular for Ansible files and override the default Docker settings.

View file

@ -0,0 +1 @@
Bazel is quite unlike most other "package managers" that Renovate supports, which usually focus on a particular ecosystem like JavaScript, Ruby or Docker. Instead, Bazel is a build tool so supports a multitude of languages/datasources. Renovate does not support all possible Bazel references, although would like to, and feature requests are welcome.

View file

@ -0,0 +1,11 @@
**Important**: This manager isn't aware of subresource integrity (SRI) hashes. It will search/replace any matching url it finds, without consideration for things such as script integrity hashes.
To enable this manager, add the matching files to `cdnurl.fileMatch`. For example:
```json
{
"cdnurl": {
"fileMatch": ["\\.html?$"]
}
}
```

View file

@ -0,0 +1,3 @@
**Important note**: For security reasons, GitHub has blocked integrations/apps from editing GitHub Actions workflow files in _any_ branch, so this only works on GitHub if using a Personal Access Token instead of using the WhiteSource Renovate app.
Add to this configuration setting if you need to override any of the GitHub Actions default settings.

View file

@ -0,0 +1 @@
You might be interested to add `"postUpdateOptions": ["gomodTidy"]` to your config if you'd like Renovate to run `go mod tidy` after every update before raising the PR.

View file

@ -0,0 +1 @@
Configuration for Gradle Wrapper updates. Changes here affect how Renovate updates the version of gradle in the wrapper, not how it uses the wrapper.

View file

@ -0,0 +1 @@
Renovate supports updating Helm Chart references within `requirements.yaml` files. If your Helm charts make use of Aliases then you will need to configure an `aliases` object in your config to tell Renovate where to look for them.

View file

@ -0,0 +1,10 @@
Renovate supports updating of Docker dependencies within Helm Chart `values.yaml` files or other YAML
files that use the same format (via `fileMatch` configuration). Updates are performed if the files
follow the conventional format used in most of the `stable` Helm charts:
```yaml
image:
repository: 'some-docker/dependency'
tag: v1.0.0
registry: registry.example.com # optional key, will default to "docker.io"
```

View file

@ -0,0 +1,33 @@
Add to this configuration object if you need to override any of the Kubernetes manager default settings. Use the `docker` config object instead if you wish for configuration to apply across all Docker-related package managers.
It's important to note that the `kubernetes` manager by default has no `fileMatch` defined - i.e. so it will never match any files unless you configure it. This is because there is no commonly accepted file/directory naming convention for Kubernetes YAML files and we don't want to download every single `*.yaml` file in repositories just in case any of them contain Kubernetes definitions.
If most `.yaml` files in your repository are Kubnernetes ones, then you could add this to your config:
```json
{
"kubernetes": {
"fileMatch": ["\\.yaml$"]
}
}
```
If instead you have them all inside a `k8s/` directory, you would add this:
```json
{
"kubernetes": {
"fileMatch": ["k8s/.+\\.yaml$"]
}
}
```
Or if it's just a single file then something like this:
```json
{
"kubernetes": {
"fileMatch": ["^config/k8s\\.yaml$"]
}
}
```

View file

@ -0,0 +1,8 @@
The following `depTypes` are currently supported by the npm manager :
- `dependencies`
- `devDependencies`
- `optionalDependencies`
- `peerDependencies`
- `engines` : Renovate will update any `node`, `npm` and `yarn` version specified under `engines`.
- `volta` : Renovate will update any `node` and `yarn` version specified under `volta`.

View file

@ -0,0 +1 @@
The `nuget` configuration object is used to control settings for the NuGet package manager. The NuGet package manager supports SDK-style `.csproj`/`.fsproj`/`.vbproj` format, as described [here](https://natemcmaster.com/blog/2017/03/09/vs2015-to-vs2017-upgrade/). This means that .NET Core projects are all supported but any .NET Framework projects need to be updated to the new `.csproj`/`.fsproj`/`.vbproj` format in order to be detected and supported by Renovate.

View file

@ -0,0 +1 @@
Add configuration here to specifically override settings for `pip` requirements files. Supports `requirements.txt` and `requirements.pip` files. The default file pattern is fairly flexible in an attempt to catch similarly named ones too but may be extended/changed.

View file

@ -0,0 +1,2 @@
It isn't supporting Scala version inference well (`%%` operator), just searching for package like `<artifactId>_<scalaVersion>` without any additional resolving.
In case of problems, please use explicit versions with `%` operator.

View file

@ -0,0 +1,13 @@
Anything other than `.exact(<...>)` will be treated as range with respect to Swift specific.
Because of this, some PR descriptions will look like `from: <...> => <...>`.
Examples:
```swift
package(name: "<...>", from: "1.2.3") // => from: "2.0.0"
package(name: "<...>", "1.2.3"...) // => "2.0.0"...
package(name: "<...>", "1.2.3"..."1.3.0") // => "1.2.3"..."2.0.0"
package(name: "<...>", "1.2.3"..<"1.3.0") // => "1.2.3"..<"2.0.0"
package(name: "<...>", ..."1.2.3") // => ..."2.0.0"
package(name: "<...>", ..<"1.2.3") // => ..<"2.0.0"
```

View file

@ -0,0 +1,19 @@
Currently Terraform support is limited to Terraform registry sources and github sources that include semver refs, e.g. like `github.com/hashicorp/example?ref=v1.0.0`.
Fixed versions like the following will receive a PR whenever there is a newer version available:
```
module "consul" {
source = "hashicorp/consul/aws"
version = "0.0.5"
servers = 3
}
```
The following _range_ constraints are also supported:
- `>= 1.2.0`: version 1.2.0 or newer
- `<= 1.2.0`: version 1.2.0 or older
- `~> 1.2.0`: any non-beta version >= 1.2.0 and < 1.3.0, e.g. 1.2.X
- `~> 1.2`: any non-beta version >= 1.2.0 and < 2.0.0, e.g. 1.X.Y
- `>= 1.0.0`, <= 2.0.0`: any version between 1.0.0 and 2.0.0 inclusive

View file

@ -20,6 +20,7 @@ describe('docs', () => {
.filter(option => option.releaseStatus !== 'unpublished')
.filter(option => !option.admin)
.filter(option => !option.parent)
.filter(option => !option.autogenerated)
.map(option => option.name)
.sort();