Comparison
Stackwatch and Dependabot: what’s the difference?
In short: keep Dependabot. It keeps your packages up to date and costs nothing. Stackwatch looks where Dependabot, by its own documentation, does not: at the runtime in your Dockerfile and at vulnerabilities that are not listed in any package registry.
Updated · Stackwatch team
The short version
Dependabot is free, built into GitHub and good at keeping the packages in your lockfiles up to date. It does not alert on vulnerabilities in the runtime itself, meaning the PHP interpreter, Node.js or Python, because GitHub’s dependency graph does not parse Dockerfiles. Stackwatch closes exactly that gap and does not replace Dependabot.
What Dependabot checks
Dependabot has three features that are often lumped together:
- Dependabot alerts report known vulnerabilities in dependencies. They are based on the dependency graph, meaning manifests and lockfiles such as
composer.lock,package-lock.json,requirements.txtorpoetry.lock. - Security updates open pull requests that raise a vulnerable dependency to a fixed version.
- Version updates keep dependencies current in general, including Docker images in
Dockerfileanddocker-compose.yml.
The catch is in the details: version updates for Docker bump image tags but have nothing to do with vulnerabilities. According to GitHub’s docs, security updates are not supported for Docker, and the dependency graph does not know Dockerfiles. On top of that, security alerts only exist for GitHub-reviewed advisories for package ecosystems such as Composer, npm and pip, plus GitHub Actions (and optional malware alerts). A vulnerability in the PHP source itself is not a Composer package.
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-fpmDependabot alerts: none, because the affected component is not a package in composer.lock but the PHP version in the image. A version update to php:8.3.36-fpm arrives at some point as a regular pull request, with no hint that it closes a critical vulnerability.
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. How this works in detail is described in how it works.
The comparison
| Dependabot | Stackwatch | |
|---|---|---|
| What is checked | Packages from manifests and lockfiles | 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) | No alerts, Dockerfiles are not in the dependency graph | Yes, version matching with evidence (file and line) |
| Sources | GitHub Advisory Database (reviewed advisories) | OSV including GitHub Advisories, NVD, CISA KEV, security feeds of PHP, Node.js and Python |
| Output | Alert in GitHub, pull request | Email alert with fix and workaround for your repo, acknowledge via link |
| After the patch | Alert closes once the dependency is updated | Re-scan verifies, entry in the audit log (CSV export) |
| Cost | Free | By plan, see pricing |
| Data | GitHub; EU data residency is available with paid GitHub Enterprise Cloud | Hosted in Germany, DPA under Art. 28 GDPR |
As of 24 October 2026. Stackwatch details refer to the beta.
When Dependabot alone is enough
If you do not run your own runtimes, for example because your application runs entirely on a platform that patches PHP or Node.js for you, Dependabot covers the most important part: your packages. Then the main thing is not to let alerts go stale. Auto-triage rules (custom rules on private repos need GitHub Code Security) and clear ownership help more than another tool.
When you need more
- Your repos contain Dockerfiles,
.php-version,.nvmrcor CI configs with pinned runtime versions. 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.
- You want more than “affected”: the concrete fix for each repo.
How they work together
Let Dependabot maintain your packages and open its pull requests. Stackwatch reads runtime and packages from your repos, reports matches with evidence and tells you what to do. Duplicate alerts are not the goal: Stackwatch should warn you where there would otherwise be silence. We compare more tools in the overview Dependabot alternatives in 2026.
Sources
Frequently asked questions
Does Dependabot report vulnerabilities in the PHP, Node.js or Python runtime?
No. The GitHub dependency graph does not evaluate Dockerfiles, and security alerts exist only for advisories reviewed by GitHub for package ecosystems such as Composer, npm and pip, as well as GitHub Actions.
What is the difference between Dependabot alerts, security updates and version updates?
Alerts report known vulnerabilities in dependencies from manifests and lockfiles, security updates open pull requests to a fixed version, and version updates keep dependencies up to date in general, including Docker images. Version updates for Docker raise image tags but have nothing to do with security vulnerabilities.
When is Dependabot enough on its own?
If you run no runtimes of your own, for example because your application runs on a platform that patches PHP or Node.js for you, Dependabot covers the most important part: your packages. Then a fixed owner for alerts and auto-triage rules help more than another tool.
When do I need an additional tool for the runtime?
When your repos contain Dockerfiles, .php-version, .nvmrc or CI configs with fixed runtime versions, or when you have to prove in an audit when you knew about a vulnerability and how you responded.
Does Dependabot offer EU data residency?
Yes, but only with the paid GitHub Enterprise Cloud.
Can Stackwatch replace Dependabot?
No. Dependabot keeps maintaining your packages and opening its pull requests. Stackwatch reads runtime and packages from your repos and reports hits with evidence, and it aims to warn you where there would otherwise be silence.