fix(labels): state:needs-human means a human could merge it right now
#128
2 changed files with 12 additions and 3 deletions
|
|
@ -83,8 +83,9 @@ actually cutting it, and this file starts there.
|
||||||
**clears** it once the PR stops being mergeable-by-a-human. Ported from
|
**clears** it once the PR stops being mergeable-by-a-human. Ported from
|
||||||
heavy-duty/box#137 so the three repos' reconcilers stay byte-identical; both
|
heavy-duty/box#137 so the three repos' reconcilers stay byte-identical; both
|
||||||
live shapes, the mixed round, the in-flight run superseding a finished one —
|
live shapes, the mixed round, the in-flight run superseding a finished one —
|
||||||
in both spellings of an absent completion — and the whole check-outcome enum
|
in both spellings of an absent completion, and in both directions — and the
|
||||||
are pinned in `test/labels-reconcile.sh` (fixtures 19 → 48).
|
whole check-outcome enum are pinned in `test/labels-reconcile.sh`
|
||||||
|
(fixtures 19 → 49).
|
||||||
|
|
||||||
## 0.1.1 — 2026-07-19
|
## 0.1.1 — 2026-07-19
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -277,11 +277,19 @@ expect "a replacement in flight for a CANCELLED run is pending, not failed" PEND
|
||||||
"$(rollup "[$(run_ build CANCELLED 2026-07-20T15:00:00Z),\
|
"$(rollup "[$(run_ build CANCELLED 2026-07-20T15:00:00Z),\
|
||||||
$(inflight_ build 2026-07-20T15:10:00Z)]" | checks_state)"
|
$(inflight_ build 2026-07-20T15:10:00Z)]" | checks_state)"
|
||||||
# an entry carrying no usable timestamp is treated as newest, not oldest —
|
# an entry carrying no usable timestamp is treated as newest, not oldest —
|
||||||
# ambiguity resolves toward "not settled" rather than toward a stale success
|
# ambiguity resolves toward "not settled" rather than toward a stale success.
|
||||||
|
# Guarded by the sort tiebreak rather than the dating expression: reverting
|
||||||
|
# only `at:` leaves this passing, so the two changes are separately pinned.
|
||||||
expect "an undateable in-flight run is not discarded for a stale success" PENDING \
|
expect "an undateable in-flight run is not discarded for a stale success" PENDING \
|
||||||
"$(rollup "[$(run_ build SUCCESS 2026-07-20T15:00:00Z),\
|
"$(rollup "[$(run_ build SUCCESS 2026-07-20T15:00:00Z),\
|
||||||
$(jq -n '{__typename:"CheckRun",workflowName:"ci",name:"build",conclusion:"",startedAt:null,completedAt:null}')]" \
|
$(jq -n '{__typename:"CheckRun",workflowName:"ci",name:"build",conclusion:"",startedAt:null,completedAt:null}')]" \
|
||||||
| checks_state)"
|
| checks_state)"
|
||||||
|
# ...and the reverse direction, which stops "in flight sorts last" being
|
||||||
|
# widened into "in flight always wins": a run that FINISHED after an earlier
|
||||||
|
# in-flight entry is the newer word, and the context is settled.
|
||||||
|
expect "a finished re-run supersedes an earlier in-flight run" SUCCESS \
|
||||||
|
"$(rollup "[$(inflight_ build 2026-07-20T15:19:00Z),\
|
||||||
|
$(run_ build SUCCESS 2026-07-20T15:19:45Z)]" | checks_state)"
|
||||||
|
|
||||||
# -- the classifier feeds the state machine: a cancelled required check must
|
# -- the classifier feeds the state machine: a cancelled required check must
|
||||||
# take the PR off the human's plate, which is the whole point of #136.
|
# take the PR off the human's plate, which is the whole point of #136.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue