github-delivery-watchdog · git:20260916.8058f12 · 2026-09-16 · sha256 536cb76358c784e8

github-delivery-watchdog git:20260916.8058f12A

Immutable. This exact content is served forever at /api/v1/blob/536cb76358c784e8.

---
name: github-delivery-watchdog
description: Periodically check pull requests and merge only current heads with independent review, tests, and passing CI.
triggers:
- /github-delivery-watchdog
---

# GitHub delivery watchdog

This is a deterministic scheduled host command. It creates no agent or
conversation and needs no agent profile. Configure a repository-scoped
fine-grained PAT with Contents and Issues read/write plus Pull requests, Actions,
Commit statuses, and Metadata read. Contents write permits merge; Issues write
retains the review label when the branch is updated. Never put the token value in
the automation definition.

Package `scripts/worker.py` as `worker.py` and the shared
`scripts/github_client.py` as `github_client.py`.
The catalog bundle declares these exact files. Its `config.json` supplies
`repos`, `branch_prefix`, and the saved secret name. The shared GitHub client
resolves only that named secret. Automation owns scheduling and cancellation.

Set `branch_prefix` (default `openhands/issue`), `base_branch` (defaults to the repository's default branch),
and `required_workflow_ids` when particular Actions workflows must run. The
watchdog requires `software-factory/tests` and `software-factory/review` success
statuses on the exact head, all other statuses and Actions passing, a current
base, a non-draft PR, and GitHub reporting it mergeable. Missing, pending, failed,
or inaccessible evidence does not permit merge. A changed head requires fresh
review and tests. When an accepted branch is behind the base, the watchdog asks
GitHub to update it and retains the review trigger label; it considers the new
head only on a later run. The merge request includes the expected head SHA.

Actions are optional when `required_workflow_ids` is empty; the two acceptance
statuses remain mandatory. Configure workflow IDs when GitHub Actions must also
supply evidence. Branch protection remains GitHub's final merge gate.