openclaw/scripts/github
Peter Steinberger 53ad69c6ee
ci: hourly sweeper re-fires dropped pull_request CI runs (#110889)
* ci: add hourly PR CI sweeper for dropped pull_request runs

Fresh PRs race GitHub's merge-ref computation: the open-event CI run can
drop entirely or be created as an un-rerunnable startup_failure (~10-16
runs daily). The sweeper lists recently updated open PRs hourly, finds
heads whose only pull_request-event CI runs are startup failures (or
missing), and re-fires the event by close/reopen with the Barnacle app
token (GITHUB_TOKEN events would not trigger workflows).

Safety: 10-minute quiet window, 24h lookback, skips drafts, merge
conflicts, pending mergeability, and auto-merge PRs (close cancels
auto-merge); revalidates state, head, and CI attachment immediately
before mutating; per-PR budget of two sweeper closes and a per-sweep cap
of ten; reopen-on-unknown ownership so a stranded close (silent) always
loses to a spurious reopen (visible); manual dispatch supports dry_run.

Accepted tradeoffs are documented inline: shared-SHA PR topologies can
mask a dropped run (skip-only miss; run.pull_requests matching would
break fork PRs), and app-auth failover at worst doubles the close budget.

* test(ci): exercise pr-ci-sweeper runner with a faked client

* fix(test): lint-clean pr-ci-sweeper runner fakes
2026-07-18 20:18:57 +01:00
..
barnacle-auto-response.d.mts chore(tooling): typecheck root test/** with a dedicated tsgo lane (#104475) 2026-07-11 06:15:41 -07:00
barnacle-auto-response.mjs refactor(scripts): share regexp literal escaping (#99778) 2026-07-03 20:20:28 -07:00
dependency-guard.d.mts fix(ui): prevent generated locale rebase conflicts (#109393) 2026-07-16 18:48:20 -07:00
dependency-guard.mjs refactor(deadcode): localize script constants (#101892) 2026-07-07 15:17:41 -07:00
find-reusable-release-validation.sh fix(release): separate code and release SHA validation (#105948) 2026-07-13 13:38:19 +08:00
guard-shared.mjs fix(ui): prevent generated locale rebase conflicts (#109393) 2026-07-16 18:48:20 -07:00
pr-ci-sweeper.d.mts ci: hourly sweeper re-fires dropped pull_request CI runs (#110889) 2026-07-18 20:18:57 +01:00
pr-ci-sweeper.mjs ci: hourly sweeper re-fires dropped pull_request CI runs (#110889) 2026-07-18 20:18:57 +01:00
real-behavior-proof-check.mjs
real-behavior-proof-policy.d.mts fix(ci): catch script declaration drift before merge (#110248) 2026-07-18 02:54:26 +01:00
real-behavior-proof-policy.mjs refactor(deadcode): enforce repository hard zero (#108641) 2026-07-15 22:40:00 -07:00
resolve-openclaw-ref.sh
run-openclaw-cross-os-release-checks.sh fix(ci): remove cross-os TypeScript loader bootstrap (#103195) 2026-07-09 18:15:12 -07:00
security-sensitive-guard.d.mts fix(ui): prevent generated locale rebase conflicts (#109393) 2026-07-16 18:48:20 -07:00
security-sensitive-guard.mjs refactor(deadcode): localize script constants (#101892) 2026-07-07 15:17:41 -07:00