Skip to content

chore(.github): add stale, labeler, templates, and SECURITY.md#58

Merged
pratyush618 merged 4 commits intomainfrom
chore/github-hygiene
Apr 10, 2026
Merged

chore(.github): add stale, labeler, templates, and SECURITY.md#58
pratyush618 merged 4 commits intomainfrom
chore/github-hygiene

Conversation

@pratyush618
Copy link
Copy Markdown
Collaborator

Summary

Production-grade GitHub hygiene layer for the repo, split into four logical commits:

  • Stale bot (.github/workflows/stale.yml) — actions/stale@v9 on a daily cron. Conservative thresholds: PRs stale after 45d inactivity and closed after another 14d; issues stale after 90d and closed after another 30d. Exempts dependencies, pinned, security, help wanted, good first issue labels so Dependabot PRs and long-lived items stay open.
  • PR auto-labeler (.github/workflows/labeler.yml + .github/labeler.yml) — actions/labeler@v5 on pull_request_target. Path rules apply rust, python, javascript, documentation, github_actions, mcp, wasm based on changed files. Safe on fork PRs because labeler only inspects diff paths, never checks out PR code.
  • PR & issue templates — PR template prompting for summary / test plan / related issue. Bug and feature issue forms (YAML) require structured input and auto-apply bug / enhancement labels. Blank issues disabled.
  • SECURITY.md — private disclosure policy pointing at GitHub's vulnerability reporting. Paperjam parses untrusted PDF/DOCX/XLSX/EPUB input, so parser bugs (memory safety, panics, DoS via crafted files) are a real attack surface that warrants a documented channel.

Labels added (out-of-band)

These were created via gh label create on the remote so the labeler and stale workflows don't no-op: python, mcp, wasm, pinned, security.

Test plan

  • All 13 .github/**/*.yml files parse with yaml.safe_load
  • No overlap with existing cleanup.yml (cache-cleanup-on-close, unrelated scope)
  • dependencies label is in the stale exempt list so Dependabot PRs are not touched
  • After merge: open a trivial PR touching crates/paperjam-mcp/src/main.rs and confirm rust + mcp labels auto-applied
  • After merge: gh workflow run stale.yml and check gh run view --log runs clean (should be a no-op on current repo state)
  • After merge: open "New issue" in the GitHub UI and confirm bug/feature forms render and blank issues are disabled
  • After merge: open a new draft PR and confirm the template pre-fills the body

Runs actions/stale@v9 daily at 02:00 UTC with conservative thresholds:
PRs stale after 45 days of inactivity and closed after another 14,
issues stale after 90 days and closed after another 30. Exempts the
dependencies, pinned, security, help wanted, and good first issue
labels so Dependabot and long-lived items stay open.
Applies area labels (rust, python, javascript, documentation,
github_actions, mcp, wasm) based on changed file paths using
actions/labeler@v5. Runs on pull_request_target so fork PRs still
receive labels; safe because labeler inspects diff paths only and
never checks out PR code.
PR template prompts for summary, test plan, and related issue.
Bug and feature issue forms (YAML format) require structured input
and auto-apply the bug/enhancement labels. Blank issues are disabled
so every issue flows through a form.
Paperjam parses untrusted PDF/DOCX/XLSX/EPUB input, so parser bugs
(memory safety, panics, DoS via crafted files) are a real attack
surface. Points reporters at GitHub private vulnerability reporting,
lists expected report contents, sets best-effort response SLAs, and
documents in-scope vs out-of-scope categories.
@pratyush618 pratyush618 merged commit 767ed41 into main Apr 10, 2026
10 checks passed
@pratyush618 pratyush618 deleted the chore/github-hygiene branch April 10, 2026 22:37
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