Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: create dependency dashboard showcase page #11183

Merged
152 changes: 152 additions & 0 deletions docs/usage/key-concepts/dependency-dashboard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
---
title: Dependency Dashboard
description: Learn all about Renovate's Dependency Dashboard
---

# Introduction

Renovate has a Dependency Dashboard that shows a overview of the state of your repositories' dependencies.

When you turn on the Dependency Dashboard, Renovate will create a new issue on the repository.
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
This issue contains a "dashboard" where you can get a overview of the status of all updates.

Having the Dependency Dashboard enabled also allows you to opt-in to different behavior for certain or even all updates with the "Dependency Dashboard Approval" workflow.
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved

## Supported platforms

The Dependency Dashboard requires that the host platforms supports the concept of issues.
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
Read [our FAQ, Renovate core features not supported on all platforms](https://docs.renovatebot.com/faq/#renovate-core-features-not-supported-on-all-platforms) to see if your platform can use the Dependency Dashboard feature.

## How to enable the dashboard

<!-- TODO: It might be nice to change our config presets, so we have one to `:enableDependencyDashboard` and one to `:disableDependencyDashboard`. -->

HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
To turn on the Dashboard manually, add the `:dependencyDashboard` preset to your `extends` array in the Renovate configuration file:

```json
{
"extends": ["config:base", ":dependencyDashboard"]
}
```

Or set `dependencyDashboard` to `true`:

```
{
"dependencyDashboard": true
}
```

<!--
TODO: discuss whether we need to change things.

https://docs.renovatebot.com/configuration-options/#dependencydashboardapproval
says to set `dependencyDashboardApproval` to `true`, but we also have the `:dependencyDashboard`, which is not mentioned in the link.

-->

HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
## How to disable the dashboard

<!-- TODO: It might be nice to change our config presets, so we have one to `:enableDependencyDashboard` and one to `:disableDependencyDashboard`. -->

HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
To disable the Dependency Dashboard, set `dependencyDashboard` to `false`.
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved

```json
{
"extends": ["config:base"],
"dependencyDashboard": false
}
```
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved

## Usecases
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved

This section explains some common usecases where having the Dependency Dashboard can help.
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved

### Visibility into rejected/deferred updates

Renovate's Dependency Dashboard shows a overview of all updates that are still "to do".

If you close a update PR from Renovate, the Dashboard will list this update.
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
If you later change your mind about the update, you can get a new PR by clicking the corresponding checkbox on the dashboard.

### Show errored out updates

<!-- TODO: Not sure if showing errored updates/branches require the dashboard? Do we open a new issue to warn about a branch error? -->

HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
### Dependency Dashboard Approval workflow

Sometimes you want Renovate to wait for your approval before creating a update PR.
You can customize this "wait for approval" behavior however you like best.

At a high level the options are:

- Require approval for _all_ updates
- Require approval for a type of updates (`major` for example)
- Require approval for specific packages

You can mix and match these options as well.

#### Require approval for all updates

We do not recommend that you require approval for _all_ updates.
When you require prior approval, you need to check the dashboard issue regularly to check for important updates.
You'll probably forgot to check often enough, out of sight is out of mind!
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved

Maybe you find Renovate too noisy, and want to opt-out of getting automatic updates whenever they're ready.

In this case, you can tell Renovate to wait for your approval before making any pull requests.
This means that you have full control over when you get updates.

<!-- TODO: question: do you still get security updates when you tell Renovate to wait for approval for all updates? -->

HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
Make sure you explictly enable the Dependency Dashboard this way have visibility into all pending updates.

HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
To require manual approval for _all updates_, add the `:dependencyDashboard` and the `:dependencyDashboardApproval` presets to the `extends` array in your Renovate configuration file:
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved

```json
{
"extends": [
"config:base",
":dependencyDashboard",
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
":dependencyDashboardApproval"
]
}
```

#### Require approval for major updates

Major updates are likely to break tests and/or require manual work before they can be merged.
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
So maybe you only want to get major updates when you approve them.
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved

Dependency Dashboard Approval is far superior to disabling major updates because at least you can fully see what's pending on the dashboard, instead of updates being totally invisible.

If you want to require approval for major updates, set `dependencyDashboardApproval` to `true` within a `major` object:

```json
{
"major": {
"dependencyDashboardApproval": true
}
}
```

#### Require approval for specific packages

Sometimes you only want to update specific packages when you say so.

Maybe a package doesn't follow Semantic Versioning, and has breaking changes on every new release, so you want to update on your terms.

Or maybe you have a package that updates too rapidly for you to keep up with, and you want to update once in a while manually.

If you want to approve specific packages, set `dependencyDashboardApproval` to `true` within a `packageRules` entry where you have defined a specific package or pattern.

```json
{
"packageRules": [
{
"matchPackagePatterns": ["^@package-name"],
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
"dependencyDashboardApproval": true
}
]
}
```