Skip to content

feat: add PR automation workflows and ball-tracking commands - #1715

Merged
dyoshikawa merged 2 commits into
mainfrom
new-commands
May 28, 2026
Merged

feat: add PR automation workflows and ball-tracking commands#1715
dyoshikawa merged 2 commits into
mainfrom
new-commands

Conversation

@dyoshikawa

Copy link
Copy Markdown
Owner

Summary

  • Add ci-failure-reminder.yml: a daily scheduled workflow (plus workflow_dispatch) that mentions the author of each open, non-draft PR whose CI is failing. De-duplicated to one comment per failing commit (head SHA) via a hidden marker, so authors are not pinged every day for the same failure. Bot authors are skipped.
  • Add auto-close-stale-prs.yml: a daily scheduled workflow that closes open PRs (including drafts) older than 30 days, after leaving an explanatory comment inviting a reopen.
  • Add prs-awaiting-maintainer and prs-awaiting-author rulesync commands that list open PRs by whose court the ball is in (maintainer review/merge vs. author fixes).

Both workflows use actions/github-script and access the GitHub API from JS only, avoiding untrusted-input interpolation into shell per the repository GitHub Actions security guidance. Actions are pinned by SHA.

Test plan

  • pnpm cicheck passes (fmt, lint, typecheck, tests, cspell, secretlint)
  • actionlint passes on the two new workflows
  • Trigger both workflows via workflow_dispatch and confirm comment/close behavior
  • Run the two new commands and confirm the PR lists are reasonable

dyoshikawa and others added 2 commits May 27, 2026 23:33
Add two scheduled GitHub Actions workflows and two rulesync commands to help triage open pull requests.

- ci-failure-reminder.yml: daily workflow that mentions the author of each open, non-draft PR whose CI is failing, de-duplicated to one comment per failing commit (head SHA).

- auto-close-stale-prs.yml: daily workflow that closes open PRs (including drafts) older than 30 days, after leaving an explanatory comment.

- prs-awaiting-maintainer / prs-awaiting-author commands: list open PRs by whose court the ball is in.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- auto-close-stale-prs: measure staleness from updated_at instead of created_at so actively maintained PRs are not closed

- auto-close-stale-prs: guard against null PR authors and isolate per-PR failures with try/catch

- ci-failure-reminder: skip PRs without a resolvable author

- both workflows: add a concurrency guard to prevent overlapping runs

- commands: clarify that author_association comes from the REST comment/review payloads, not gh pr view --json, and treat PR content as untrusted data

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@dyoshikawa
dyoshikawa merged commit 10ddb46 into main May 28, 2026
11 checks passed
@dyoshikawa
dyoshikawa deleted the new-commands branch May 28, 2026 11:25
@dyoshikawa

Copy link
Copy Markdown
Owner Author

@dyoshikawa Thank you!

@dyoshikawa dyoshikawa mentioned this pull request May 28, 2026
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