DEV Community

Precious Pendo
Precious Pendo

Posted on

🦞 GitHub PR Watchdog — Never Let a PR Go Cold Again

Challenge: OpenClaw Build Showcase
Category: Developer Productivity / Automation


The Problem

If you've ever juggled multiple open pull requests, you know the feeling: you open GitHub at the end of the day and realize a reviewer left a comment three hours ago, CI silently failed, or a PR you marked "ready for review" has been sitting untouched for two days.

Context-switching to babysit PRs is expensive. But missing a review window is worse — it stalls your whole team.

I wanted a fix that required zero tab-switching. No dashboards. No email notifications buried under newsletters. Just a message, right where I already am.


What I Built

GitHub PR Watchdog is an OpenClaw skill that monitors your open pull requests and delivers smart, actionable alerts directly to your messaging app of choice — Telegram, Slack, Discord, or WhatsApp.

It runs silently in the background on a heartbeat schedule you control, and reaches out only when something actually needs your attention.


How It Works

The skill connects to GitHub's REST API using a personal access token stored securely in your local OpenClaw config. Every N minutes (configurable — I use 20), it:

  1. Fetches all open PRs across your watched repos
  2. Checks each PR for new activity since your last check:
    • New review comments or change requests
    • CI status changes (pass / fail / pending)
    • PRs that have been open longer than your staleness threshold
    • Approvals that are ready to merge
  3. Sends you a concise digest — only for PRs where something changed
  4. Drafts a suggested response for review comments, which you can approve and post with a single reply

No noise. No duplicates. Just signal.


Example Alert (via Telegram)

🔴 CI Failed — my-app / feat/auth-refresh
  ↳ 3 checks failed | View run →

💬 New Review — my-api / fix/rate-limiter
  @sarah_dev: "Can we extract this into a helper?"
  Suggested reply ready — send "reply 1" to post it

✅ Approved & Ready — my-app / chore/upgrade-deps
  2 approvals | No conflicts | Safe to merge
Enter fullscreen mode Exit fullscreen mode

The Skill File

The core logic lives in a single SKILL.md with a small Node.js runner. OpenClaw handles the scheduling, secret management, and message routing — I just had to write the GitHub API calls and the formatting logic.

# skill.yaml (excerpt)
name: pr-watchdog
description: Monitor GitHub PRs and alert on review activity, CI status, and stale PRs
schedule: every 20 minutes
inputs:
  - GITHUB_TOKEN
  - WATCHED_REPOS       # comma-separated list
  - STALE_THRESHOLD_HRS # default: 24
  - ALERT_CHANNEL       # telegram | slack | discord
Enter fullscreen mode Exit fullscreen mode

Total code: ~180 lines of JavaScript. Most of it is just formatting the output to be readable at a glance.


What Surprised Me

OpenClaw made the hard parts trivial.

Secret management, message routing, scheduling — all handled by the platform. I didn't write a single line of cron syntax or deal with webhook setup. The skill just declares what it needs and OpenClaw wires it together.

The part I didn't expect: once the skill was running, I found myself replying to the bot to take action. Typing merge 3 to merge an approved PR, or reply 2 to post a suggested response — all from Telegram, without opening a browser. That emergent interaction pattern wasn't something I planned; it just fell naturally out of how OpenClaw handles conversational context.


Impact

Since deploying PR Watchdog two weeks ago:

  • Average time-to-first-response on reviews dropped from ~4 hours to ~35 minutes
  • Caught 6 CI failures before they were flagged by teammates
  • Zero PRs have gone stale past 24 hours

Small numbers, but real ones — for a solo dev managing 3 active repos.


Try It Yourself

@openclaw skill install pr-watchdog
Enter fullscreen mode Exit fullscreen mode

Check out the full documentation on ClawHub

🦞 PR Watchdog — OpenClaw Skill

Monitor your GitHub pull requests and get smart Telegram alerts when something needs your attention. No dashboards. No tab switching. Just a message.

What it alerts on

  • 🔴 CI failed (or recovered)
  • 💬 New review comments or change requests
  • ✅ PR approved and ready to merge
  • ⏳ PR gone stale (no activity past your threshold)

Reply to take action






























Reply Action
reply 42 Sounds good, will fix Post a review comment on PR #42
merge 42 Squash-merge PR #42
close 42 Close PR #42
remind 42 in 2h Snooze stale alert for 2 hours
status Summary of all open PRs


Setup

Prerequisites

  • Node.js 22.16+ (Node 24 recommended)
  • OpenClaw installed and running
  • Telegram account

Step 1 — Install OpenClaw

npm install -g openclaw@latest
openclaw onboard --install-daemon
Enter fullscreen mode Exit fullscreen mode

Follow the prompts to set up your workspace and connect your first channel.


Step 2 — Create a Telegram

Requirements: OpenClaw installed, a GitHub personal access token, and a connected messaging channel.


What's Next

  • Multi-user support — share a watchdog across a team with role-based alerting
  • PR health scoring — surface PRs at risk of merge conflicts early
  • Auto-assign reviewers based on CODEOWNERS file

Top comments (0)