Narrow the autoupdate.ymlpull_request trigger to types: [opened, reopened, ready_for_review], dropping the default synchronize event so a per-commit push to any open PR no longer triggers a rebase-of-all-PRs (PR_FILTER: all) — the runner storm reported 2026-07-03.
Add PR_READY_STATE: "all" to the action's env: block so draft PRs are still explicitly guaranteed to be updated (this is the action's default, but pinning it removes ambiguity).
Draft PRs stay covered because push: [main] (with PR_FILTER/PR_READY_STATE both "all") rebases every behind PR — including drafts — whenever main advances, and opened catches a draft that's already behind at creation time. synchronize only ever fired on new commits to a PR, which doesn't make that PR behind main, so dropping it doesn't leave anything stale.
actionlint .github/workflows/autoupdate.yml — clean, no errors
Manual diff review — only the two documented lines added, rest of the file (SPDX header, name, comment block, permissions, concurrency, environment: CI_CD, GITHUB_TOKEN line) untouched
Post-merge / post-re-enable: observe that draft and behind PRs get updated without a per-commit rebase storm (per issue's sequencing note — workflow is currently disabled and should stay that way until the in-flight PR crunch clears)
## Summary
- Narrow the `autoupdate.yml` `pull_request` trigger to `types: [opened, reopened, ready_for_review]`, dropping the default `synchronize` event so a per-commit push to any open PR no longer triggers a rebase-of-all-PRs (`PR_FILTER: all`) — the runner storm reported 2026-07-03.
- Add `PR_READY_STATE: "all"` to the action's `env:` block so draft PRs are still explicitly guaranteed to be updated (this is the action's default, but pinning it removes ambiguity).
Draft PRs stay covered because `push: [main]` (with `PR_FILTER`/`PR_READY_STATE` both `"all"`) rebases every behind PR — including drafts — whenever `main` advances, and `opened` catches a draft that's already behind at creation time. `synchronize` only ever fired on new commits to a PR, which doesn't make that PR behind `main`, so dropping it doesn't leave anything stale.
Closes #262
## Test plan
- [x] `actionlint .github/workflows/autoupdate.yml` — clean, no errors
- [x] Manual diff review — only the two documented lines added, rest of the file (SPDX header, name, comment block, `permissions`, `concurrency`, `environment: CI_CD`, `GITHUB_TOKEN` line) untouched
- [ ] Post-merge / post-re-enable: observe that draft and behind PRs get updated without a per-commit rebase storm (per issue's sequencing note — workflow is currently disabled and should stay that way until the in-flight PR crunch clears)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
autoupdate.ymlpull_requesttrigger totypes: [opened, reopened, ready_for_review], dropping the defaultsynchronizeevent so a per-commit push to any open PR no longer triggers a rebase-of-all-PRs (PR_FILTER: all) — the runner storm reported 2026-07-03.PR_READY_STATE: "all"to the action'senv:block so draft PRs are still explicitly guaranteed to be updated (this is the action's default, but pinning it removes ambiguity).Draft PRs stay covered because
push: [main](withPR_FILTER/PR_READY_STATEboth"all") rebases every behind PR — including drafts — whenevermainadvances, andopenedcatches a draft that's already behind at creation time.synchronizeonly ever fired on new commits to a PR, which doesn't make that PR behindmain, so dropping it doesn't leave anything stale.Closes #262
Test plan
actionlint .github/workflows/autoupdate.yml— clean, no errorspermissions,concurrency,environment: CI_CD,GITHUB_TOKENline) untouched🤖 Generated with Claude Code