on
CC-BY-NC-SA-4.0 AGPL-3.0-only
3 mins
π€ This post includes some LLM-derived content π€
Accessing your Renovate Dependency Dashboard, without GitHub/GitLab Issues enabled

When working with Renovate, I heavily recommend having the Dependency Dashboard enabled.
It's a great way to get a central view of all the in-flight, pending or ignored dependency updates, and provides great insight into what's going on under the hood. It even provides a list of "detected dependencies", so you don't have to use something like dependency-management-data to get that insight π
At work I'm currently working with a few repositories which have GitHub Issues disabled (for valid reasons) or are very large monorepos.
For repositories without GitHub Issues, we don't get a Dependency Dashboard. And for the large monorepos, we're often getting to the point where our Dependency Dashboard is truncated by GitHub's limits, resulting in most-but-not-all of the data being available.
This means we're missing out on visibility over PRs that we may want to get raised, reducing our ability to respond accordingly to PRs, especially if you have a rate limit for branches or open PRs on the repo.
Something that's been noodling away in my mind for a bit is how to render a Dependency Dashboard without access to the Dependency Dashboard.
Mend Renovate Cloud does it π
In my usage of Mend Renovate Cloud (the hosted SAAS Mend provide for free π) on personal projects, I've found that their web app manages to render a
When I first saw this - probably a year or so ago? - I was blown away, and intrigued as to how Mend managed to do this.
In the last week, I've managed to work it out π
How?
Digging through network requests + the Renovate execution logs, I noticed the experimental option checkedBranches
being set when triggering a Renovate run via the Mend Renovate Cloud's Dependency Dashboard for a given repository.
This then allows Renovate to process as if it had been triggered when someone had gone in to a real Dependency Dashboard and checked option(s) for Renovate to process it.
Example
As part of testing this out, I've ended up creating an example app, which can be found on GitLab.com.
This requires you to have used Renovate's Report functionality to export the internal state that Renovate has about a given repository.
For instance, following these steps, we can get a copy of Renovate's Report:
# NOTE that the `--dry-run=full` is required to process which branches Renovate will know about
env RENOVATE_REPORT_TYPE=file RENOVATE_REPORT_PATH=renovate.json npx renovate@40 renovatebot/renovate --dry-run=full
From here, the app then shows which repositories it knows about:
When clicking through, we can then see the full Dependency Dashboard:
When you click "Create/Rebase" button, this then loads a page which indicates the command Renovate would run, for instance:
renovate \
renovatebot/renovate \
--checked-branches \
"renovate/main-aggregate-error-5.x,renovate/main-diff-8.x,renovate/main-got-14.x,renovate/main-p-throttle-7.x,renovate/main-node-22.x,renovate/main-renovatebot-github-action-42.x,renovate/main-globals-16.x,renovate/main-ghcr.io-renovatebot-base-image-10.x"
If this were to trigger Renovate itself, it'd then process as if this was ticked on the Dependency Dashboard π