dsh-pr-watch
监控并报告用户提交的拉取请求状态变化 适合需要跟踪自己提交的PR是否合并、关闭或长期未更新的用户;项目仍在开发中。
安裝
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Shyboy0499/dsh-pr-watch說明文件
閱讀完整 README ↗Usage
Ask the agent to check your pull requests, or call the tool directly.
{
"staleDays": 14,
"all": false
}
Typical output:
✅ Merged (2):
octo/repo#41 — Add Russian locale (last activity 1 day ago)
octo/repo#38 — Fix broken link (last activity 3 days ago)
⏳ Became stale (1):
octo/repo#29 — docs: clarify install steps (last activity 21 days ago)
🆕 Newly noticed (1):
octo/repo#44 — Add MCP server entry (last activity today)
Run it a second time and only genuine changes appear. A merge reported today is never reported again.
Parameters
| Parameter | Type | Description |
|---|---|---|
staleDays | integer | Whole days without activity before a pull request counts as stale. Defaults to 14. Must be between 1 and 3650; 0 is refused as a likely mistake. |
all | boolean | List every open pull request instead of only what changed. Useful on first run, where everything is "newly noticed". Defaults to false. |
Configuration
v1 exposes everything through the tool's two parameters above. It reads no settings file, so there is nothing else to configure yet.
| Setting | Default | Settable in v1 | Purpose |
|---|---|---|---|
staleDays | 14 | Yes — tool parameter | Days without activity before a pull request is reported stale |
pruneDays | 90 | No — compile-time constant | Drop entries that reached a terminal state this long ago |
forgottenDays | 180 | No — compile-time constant | How long a pruned outcome is remembered before it can be reported again |
| Snapshot path | $DSH_HOME/pr-watch/snapshot.json | No — derived from the environment | Falls back to ~/.dsh/pr-watch/snapshot.json when DSH_HOME is unset |
Two further keys appear in the design doc —
ignoreRepos and a user-settable snapshotPath — but they are deferred to v2
and not implemented. Honouring them needs a settings loader that does not exist
yet, and ignoreRepos additionally needs a rule to evict ignored entries from
the snapshot: an entry dropped from enumeration but kept in the snapshot would
never resolve, so every check would report it as unresolved forever. See the
plan's refinements section for the full reasoning.
Configuration
v1 exposes everything through the tool's two parameters above. It reads no settings file, so there is nothing else to configure yet.
| Setting | Default | Settable in v1 | Purpose |
|---|---|---|---|
staleDays | 14 | Yes — tool parameter | Days without activity before a pull request is reported stale |
pruneDays | 90 | No — compile-time constant | Drop entries that reached a terminal state this long ago |
forgottenDays | 180 | No — compile-time constant | How long a pruned outcome is remembered before it can be reported again |
| Snapshot path | $DSH_HOME/pr-watch/snapshot.json | No — derived from the environment | Falls back to ~/.dsh/pr-watch/snapshot.json when DSH_HOME is unset |
Two further keys appear in the design doc —
ignoreRepos and a user-settable snapshotPath — but they are deferred to v2
and not implemented. Honouring them needs a settings loader that does not exist
yet, and ignoreRepos additionally needs a rule to evict ignored entries from
the snapshot: an entry dropped from enumeration but kept in the snapshot would
never resolve, so every check would report it as unresolved forever. See the
plan's refinements section for the full reasoning.