Comparison
Stackwatch and Renovate: updates or early warning?
In short: keep Renovate. It keeps your versions current, including Docker images and version files. It does not tell you which pull request cannot wait today because a new vulnerability hits your runtime. That is Stackwatch’s job.
Published , Stackwatch team
The short version
Renovate keeps versions current through pull requests and understands more files than most update tools: Dockerfiles, docker-compose, .nvmrc, .python-version and .tool-versions. It does not answer whether a new vulnerability hits your stack: on GitHub it takes its security information from Dependabot alerts, and its own OSV integration is experimental and covers only direct dependencies from package registries. Stackwatch answers exactly that question and does not replace Renovate.
What Renovate checks
Renovate works with so-called managers, one per file type. For the stack down to the runtime, these matter:
dockerfileanddocker-composeread image references, meaningFROMlines (including multi-stage builds),COPY --fromand images in Compose files. In Dockerfiles, Renovate also detects Alpine and Debian packages installed with a pinned version inRUN.nvm,nodenvandpyenvread.nvmrc,.node-versionand.python-version.asdfreads.tool-versions, including PHP. There is no dedicated manager for a.php-versionfile, but the regex manager lets you define your own patterns.- Plus the package managers such as
composer,npmand the various pip flavours, andgithub-actions.
For vulnerabilities there are two paths. vulnerabilityAlerts reads the repo’s Dependabot alerts on GitHub (dependency graph and Dependabot alerts must be enabled) and opens fix PRs from them. These PRs skip the schedule and PR limits and carry the [SECURITY] suffix in the commit message. osvVulnerabilityAlerts queries OSV directly, is marked experimental, is off by default and, according to the docs, covers only direct dependencies from certain registries such as npm, Packagist and PyPI. Docker images are not among them. Why Dependabot alerts do not know about runtime vulnerabilities is covered in the Dependabot comparison.
The PHP2Shell example
On 21 October 2026, PHP2Shell (CVE-2026-109618) was published, a critical remote code execution in the PHP core. A typical repo looked like this:
FROM php:8.3.35-fpmRenovate knows this line and proposes a newer image tag as soon as one exists. That is a regular update: it follows your schedule (schedule) and your PR limits and is not marked as a security update. No vulnerability PR is created, because neither Dependabot alerts nor Renovate’s OSV integration cover Docker images. Nobody tells you whether this PR has to be merged today or can wait for the next sprint.
Stackwatch reads the same Dockerfile, detects PHP 8.3.35 with evidence (Dockerfile:1) and matches new advisories against that version. On a match you get an alert with the fixed version, the concrete change for this repo and a workaround in case you cannot patch right away. You then have a good reason to merge the Renovate PR right away. How this works in detail is described in how it works.
The comparison
| Renovate | Stackwatch | |
|---|---|---|
| Job | Keep versions current through pull requests | Tell you whether a new vulnerability hits your stack and what to do now |
| What is read | Packages, Docker images, version files such as .nvmrc, .python-version, .tool-versions, GitHub Actions | The stack down to the runtime: PHP, Node.js and Python versions from Dockerfiles, configs and CI, plus frameworks and packages |
| Runtime vulnerabilities (e.g. PHP2Shell) | Tag update as a regular PR, not marked as security | Yes, version matching with evidence (file and line) |
| Vulnerability sources | Dependabot alerts on GitHub; OSV experimental, direct dependencies from package registries only | OSV including GitHub Advisories, NVD, CISA KEV, security feeds of PHP, Node.js and Python, plus early warnings |
| Output | Pull request, Dependency Dashboard as an issue in the repo | Email alert with fix and workaround for your repo, acknowledge via link |
| Platforms | GitHub, GitLab, Bitbucket, Azure DevOps, Gitea, Forgejo and more | GitHub, plus WordPress sites |
| Cost | Open source (AGPL-3.0); hosted Mend Renovate App with a free Community Cloud, Enterprise Cloud is paid | By plan, see pricing |
| Data | Run it yourself (npm package or container image) or hosted by Mend | Hosted in Germany, DPA under Art. 28 GDPR |
As of 5 November 2026. Stackwatch details refer to the beta.
When Renovate alone is enough
If your dependencies are reliably current because Renovate PRs get merged quickly, including those for Docker tags and version files, you are on a fixed version fast for most vulnerabilities. On GitHub, vulnerabilityAlerts adds fix PRs for packages that do not wait for the schedule. If you also do not run your own runtimes, what you need most is discipline in merging, not another tool.
When you need more
- Renovate PRs sometimes sit for a few days, and you want to know which one cannot wait.
- Your repos contain Dockerfiles,
.php-version,.nvmrcor CI configs with pinned runtime versions, and you want a warning when the runtime is hit, not just the next tag update. Which versions still get security updates is shown in the end-of-life overview for PHP, Node.js and Python. - You need to prove in an audit when you knew about a vulnerability and how you responded (ISO 27001, NIS2). More in the article vulnerability management under NIS2 and ISO 27001.
How they work together
Let Renovate maintain your versions, with your schedule, your rules and the Dependency Dashboard. Stackwatch reads runtime and packages from your repos, reports matches with evidence and tells you which update is due now. Often the matching Renovate PR is already open. We compare more tools in the overview Dependabot alternatives in 2026.
Sources
- Renovate Docs: Overview (platforms, license, ways to run)
- Renovate Docs: Managers
- Renovate Docs: Dockerfile manager
- Renovate Docs: Configuration options (vulnerabilityAlerts, osvVulnerabilityAlerts)
- Renovate Docs: Dependency Dashboard
- Renovate Docs: Mend-hosted Apps
- Renovate source: osvVulnerabilityAlerts option (experimental)
- PHP Security Advisory GHSA-w8hw-w9fx-j79w
Frequently asked questions
Does Renovate report vulnerabilities in the PHP, Node.js or Python runtime?
No. Renovate bumps Docker tags and version files such as .nvmrc but does not mark these updates as security updates. Its security information comes from Dependabot alerts on GitHub and optionally from OSV, and neither covers Docker images.
What does the vulnerabilityAlerts option in Renovate do?
On GitHub it reads the repo’s Dependabot alerts and opens fix pull requests from them. The dependency graph and Dependabot alerts must be enabled. These PRs skip the schedule and PR limits.
What is osvVulnerabilityAlerts?
An option that lets Renovate query the OSV database directly. It is marked experimental, off by default and, according to the docs, covers only direct dependencies from certain package registries such as npm, Packagist and PyPI.
Which version files can Renovate update?
Among others Dockerfiles, docker-compose files, .nvmrc, .node-version, .python-version and .tool-versions, plus GitHub Actions. There is no dedicated manager for a .php-version file; custom patterns can be set up with the regex manager.
When is Renovate enough on its own?
When Renovate PRs get merged quickly, including those for Docker tags and version files, and you run no runtimes of your own. Then you are on a fixed version quickly for most vulnerabilities.
Can Stackwatch replace Renovate?
No. Renovate keeps maintaining your versions and opening its pull requests. Stackwatch reads runtime and packages from your repos, reports matches with evidence and tells you which update is due now.