Dashboardcraftgetsentry/publish: label-based state ma…

getsentry/publish: label-based state machine for publish gating

Category: pattern
Confidence: 1.00
ID: 019daf66-fed6-7031-9a7c-b94791a71647
Project ID: e16af391-c497-4837-b681-c849a5514499
Cross-project: No
Recalled in other projects: 1
Source session: (none)
Created: 2026-07-28 10:15:42
Updated: 2026-07-28 10:15:42

Cross-Project Recalls

ProjectHitsLast recalled
opencode-lore 2 2d ago

Content

getsentry/publish label state machine (post-PR #7881 + retry-race fix): accepted (human/auto-approve, added first), ci-pending (added by waiting-for-ci in publish.yml AFTER accepted), ci-ready (added by poller when CI passes), ci-failed (added by poller on failure, also removes accepted). Publish gate fires ONLY on ci-ready label event — not accepted — to prevent race where publish and waiting-for-ci run in parallel on the same labeled: accepted event when ci-ready is stale from a previous failed publish. waiting-for-ci job (on accepted labeled, when ci-pending or ci-failed present): removes ci-failed AND ci-ready (critical: stale ci-ready must be cleared so poller's re-add generates a fresh labeled event), adds ci-pending, comments, triggers poller. Concurrency group uses github.event.issue.title to lock on repo@version.

Move to: