← Blog

November 2, 2026 · 5 min read

An outdated dependency is not a security alert

Triage GitHub Dependabot alerts separately from version-update reports, and make scan failures visible in an OpenClaw maintenance runbook.

If a package has a newer release, that is a maintenance item. If GitHub reports an open Dependabot advisory affecting a dependency in your repository, that is a security triage item. Put them in different queues. Neither a quiet outdated report nor a successful command exit establishes that the repository has no vulnerabilities, especially if an alert query was denied or the dependency inventory is incomplete.

Make the scan state visible before counting alerts

GitHub's repository Dependabot-alerts endpoint accepts a state filter. Run the read-only query with an identity authorized for each repository; fine-grained tokens need Dependabot alerts read permission. Paginate the response. Record the repository and observation time alongside the result. A 403, a disabled alert feature, or another failed query is an unknown scan state, not an empty list. An empty successful response is still limited to what GitHub identified in that repository's dependency data.

gh api --paginate 'repos/OWNER/REPO/dependabot/alerts?state=open&per_page=100'

Replace OWNER/REPO with a repository you are authorized to inspect. This command reads alerts; it does not configure Dependabot, fix a dependency, or verify that a deployed service is safe. If your organization uses a different advisory source, document its coverage separately rather than merging inventories and calling the total a vulnerability count.

Route the result to the right owner

Observed stateWhat the report can sayNext action
New open advisoryA vulnerable dependency was identified in the repository dataCheck affected package, advisory URL, scope, exposure, and available fix with the owner
Newer registry release, no matching advisory in this checkA version update is available; security status remains bounded by the advisory scanQueue a routine upgrade and test it
Alert query denied or failedSecurity-alert status is unknownRepair permissions or scan coverage; do not send a green report
Previously reported open advisoryStill open, not a new incidentKeep it in the owner backlog; re-alert on material change or agreed escalation

npm outdated compares the installed version with the version wanted by the manifest and the registry's latest tag. It does not interpret an advisory. Use the package manager actually used by the repository, such as pnpm for a pnpm lockfile, and keep this version inventory apart from the Dependabot result. A failed registry lookup also belongs in the incomplete-scan bucket.

Make the runbook repeatable without inventing urgency

Our Dependency Checker gallery checklist previously said 'Every Monday at 9am' inside a HEARTBEAT.md item. That text alone does not create a 9 AM schedule. The revised checklist asks the operator to install a weekly OpenClaw Automation in the intended time zone, verify its run history and alert delivery, and persist last-seen alert IDs so an unchanged advisory is not paged again every week. A weekly scan cannot promise immediate detection between runs; use your existing security notification path if you require faster response.

The agent can summarize the advisory, version inventory, and missing coverage for a human. It should not silently dismiss an alert, upgrade a package, or assert exploitability from a severity label alone. Before relying on the workflow, test a controlled advisory notification and a denied-query case. The Runbooks gallery item is an operating checklist, not a deployed scan or evidence that a patch reached production.

Inspect the Dependency Checker checklist

Sources and further reading

More posts

October 30, 2026

Your certificate renewed. Is the public hostname serving it?

October 27, 2026

Your GitHub Actions run history is not your bill

October 23, 2026

A DNS record changed. Should your OpenClaw monitor alert?

October 20, 2026

Zero errors is not always good news: checking the log pipeline before an agent alerts

October 17, 2026

A running container is not a healthy service: an OpenClaw monitoring runbook

October 14, 2026

OpenClaw database backup checks vs restore tests: what each proves

October 5, 2026

OpenClaw automation ran, but no message arrived: diagnose execution and delivery

October 2, 2026

OpenClaw SecretRefs for recurring workflows: a practical migration checklist

September 29, 2026

The scheduled blog queue ran dry: a runway check that catches it early

August 24, 2026

Agent workflow validation checklist before you reuse a template

August 21, 2026

Bounded background tasks for coding agents

August 18, 2026

Agent runbook status files that actually work

August 15, 2026

7 OpenClaw workflows worth running, and 5 that are not

August 12, 2026

The OpenClaw workflow security checklist we use before turning on tools

August 9, 2026

Your HEARTBEAT.md should be boring

August 6, 2026

How to build an OpenClaw automation that survives retries

August 3, 2026

OpenClaw cron vs heartbeat: the production rule that actually works

April 30, 2026

OpenClaw just shipped real voice agent calls. Here are 5 workflows worth setting up.

March 27, 2026

The best OpenClaw skills nobody knows about

March 25, 2026

Top AI agent workflow templates for developers in 2026

March 23, 2026

OpenClaw vs n8n: when to use each for agent automation

March 20, 2026

How to automate Make.com workflows with AI agents

March 18, 2026

Best n8n workflow templates for email automation

March 15, 2026

OpenClaw starter packs: the fastest way to a useful agent

March 12, 2026

How to build your own OpenClaw runbook from scratch

March 9, 2026

5 OpenClaw workflows that save 10 hours/week