Skip to content

ci: add PR hygiene automation (linked issue check + stale PR cleanup) #518

@andreatgretel

Description

@andreatgretel

Summary

Add automated PR hygiene workflows to enforce contribution quality and clean up abandoned PRs.

Motivation

External contributors often open PRs without addressing failing checks (DCO, semantic title, etc.) and never come back. The PR template and CONTRIBUTING.md already ask for linked issues and proper formatting, but nothing enforces it. PRs rot indefinitely.

Deliverables

Linked issue check (pr-linked-issue.yml)

  • Required status check for non-collaborators: PR must reference a triaged issue via Fixes #N / Closes #N / Resolves #N
  • Collaborators bypass the check (pass with optional soft warning)
  • Re-checks automatically when a maintainer adds the triaged label to the linked issue

Stale PR cleanup (pr-stale.yml)

  • Daily cron scans open PRs with failing checks and no author activity
  • Non-collaborators: reminder at 7 days, auto-close at 14 days
  • Collaborators: reminder at 14 days, auto-close at 28 days
  • keep-open label as escape hatch

New labels

  • triaged - maintainer approval gate for external PRs
  • task - auto-label for development-task issue template (currently missing)
  • keep-open - prevent stale-PR auto-close

Docs

  • CONTRIBUTING.md update explaining the linked-issue requirement
  • Standalone plan in plans/

Non-goals

  • No agent or self-hosted runner involvement - plain GitHub Actions on ubuntu-latest
  • Not part of the agentic CI plan (plans/472)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions