Skip to content

Merge backstop sweep (GET)

GET
/cron/merge-backstop
curl --request GET \
--url 'https://example.com/api/cron/merge-backstop?dry_run=1&catch_up=1'

Restored by HO-8020. Runs the merged-role repair, sweepUnmergedTickets (open un-merged tickets re-classified against recent push events, keyset-paged on updated_at) and sweepRecentGithubPrs (recently merged PRs that reference an HO ticket without a closing keyword). Query params: dry_run=1 classifies without writing, catch_up=1 widens the pass for a backlog drain, before=<ISO> is the paging cursor echoed back as nextCursor. Protected by CRON_SECRET via the x-cron-secret header only (no token query parameter).

dry_run
string
Allowed values: 1

Classify and report without writing any merge-close.

catch_up
string
Allowed values: 1

Widen the pass (200 tickets, 30 pushes per project, 7-day PR lookback) for a backlog drain.

before
string format: date-time

Keyset cursor — only tickets with updated_at strictly before this timestamp; take it from a previous response’s nextCursor.

Backstop run result

Media type application/json
object
ok
required
boolean
dryRun
required
boolean
catchUp
required
boolean
truncated
required

True when the ticket sweep stopped before every candidate was seen (full page or deadline).

boolean
nextCursor
required

Pass back as before to continue paging; null when nothing remains.

string | null
repair

RepairMergedRolesWhereMergedAtSet counters.

object
key
additional properties
any
sweep

SweepUnmergedTickets counters; null when that sweep threw.

object | null
prSweep

SweepRecentGithubPrs counters; null when that sweep threw.

object | null

Missing or invalid CRON_SECRET