Context
devtown#86 implements webhook-only CI aggregation with pessimistic sticky-failure policy. This has two known limitations:
- Aggregation gap: We don't know the total expected suite count without the REST API. A 'passing' status may be premature if additional workflows have not reported.
- Atomicity race: Two concurrent check_suite webhooks can both read zero existing suites and both signal 'passing.'
What to do
Query the GitHub Checks API combined status for the HEAD SHA before signaling ci.status = 'passing'. This eliminates both the aggregation gap and the atomicity race.
Requires: GitHub REST client (REST client dependency, GitHub App or PAT auth).
Refs #86
Context
devtown#86 implements webhook-only CI aggregation with pessimistic sticky-failure policy. This has two known limitations:
What to do
Query the GitHub Checks API combined status for the HEAD SHA before signaling ci.status = 'passing'. This eliminates both the aggregation gap and the atomicity race.
Requires: GitHub REST client (REST client dependency, GitHub App or PAT auth).
Refs #86