Skip to content

Check PR descriptions, and close the ones nobody fills in - #156

Merged
geetxnshgoyal merged 1 commit into
mainfrom
feat/pr-description-bot
Sep 23, 2026
Merged

geetxnshgoyal merged 1 commit into
mainfrom
feat/pr-description-bot

Conversation

@geetxnshgoyal

Copy link
Copy Markdown
Contributor

Why

Most student PRs arrive with the template untouched — Fixes # with no number, no What, nothing about testing. Today that was #147, #144, #139 and #136. Reviewers can't act on them, and the linked issue never closes, so it stays "taken" and nobody else can pick it up. I've been nudging each one by hand; this does it automatically, the moment the PR is opened, before a reviewer has to.

What

pr-description.yml — on open/edit/push, comments with exactly what's missing, labels the PR needs-description, and says it will be closed in 2 days. Editing the description re-runs the check and the comment turns into a ✅. It never runs PR code: it reads the description through the API and checks out only this repo's scripts.

pr-description-sweep.yml — daily, re-checks every labelled PR and closes only those still unfixed after the grace period, with a comment explaining that nothing is lost and how to reopen. Has a dry-run mode (workflow_dispatch).

What counts as filled in

  • A Fixes #<number> line (Closes/Resolves also fine).
  • Something real under What (or, if they didn't use the template, ≥80 characters of actual prose — a good plain description passes).
  • Something about testing: npm run lint/test/build, "tested", "screenshot", …
  • If the checklist is present, at least one box ticked.

Tested

Rules run against all 12 open PRs: 8 pass, 4 fail — exactly the four I'd flagged by hand, no false positives. Plus 9 synthetic cases (empty, template-untouched, Fixes # with no number, prose without headings, template hints only, thin sections). Both workflows parse; lint clean.

Most student PRs arrive with the template headings untouched: 'Fixes #'
with no number, no What, nothing about testing (#147, #144, #139, #136
today). Reviewers can't act on those, and the linked issue never closes.

- pr-description.yml: on open/edit, comments with exactly what's missing,
  labels the PR, and says it will be closed in 2 days. Editing the
  description re-runs it; the comment turns into a tick.
- pr-description-sweep.yml: daily, re-checks labelled PRs and closes the
  ones still unfixed after the grace period, explaining that nothing is
  lost and how to reopen. Has a dry-run mode.
- A description written as prose instead of the template passes, as long
  as it says what changed and how it was tested.
@vercel

vercel Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
dev-forge Ignored Ignored Preview Sep 23, 2026 9:06am UTC

@geetxnshgoyal
geetxnshgoyal requested a review from a team as a code owner September 23, 2026 09:06
@geetxnshgoyal
geetxnshgoyal merged commit 2eeae7c into main Sep 23, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant