name: labels on: pull_request_target: # Fork PRs; these carry the head/draft/review facts state:* derives from. # labeled/unlabeled are the handoff wake (state:needs-human confirmed here); # synchronize re-derives on every push. review_requested/review_request_removed # (shipped in 0.3.0, ceremony#137) wake the sweep that clears # blocker:unrequested when the panel is asked. types: [opened, reopened, ready_for_review, converted_to_draft, synchronize, labeled, unlabeled, review_requested, review_request_removed] # Available at 0.2.0 and later (the first tag carrying ceremony#32); a # consumer pinned to 0.1.0 omits this block. issues: # Narrowed (#199) to the actions carrying a queue-state change the hourly # cron cannot wait one cadence for: opened → the mint→needs-triage check, # closed → the blocker-closes→ready self-heal, edited → a body rewrite of the # `Blocked by #N` declaration the sweep parses, reopened → a closed issue # re-entering the queue. Dropped: labeled/unlabeled/assigned/unassigned — # validation + the 48h claim clock, caught within one cadence, and # labeled/unlabeled were the issues-churn source. The handoff wake is # pull_request_target:labeled, not issues, so this leaves it intact. types: [opened, closed, edited, reopened] permissions: contents: read checks: read # mergeability/check-rollup read for PR state statuses: read # commit-status rollup read for PR state actions: write # the trigger job's dispatch of the sweep caller (#209, #205) issues: write pull-requests: write jobs: labels: uses: heavy-duty/ceremony/.github/workflows/labels.yml@0.6.1 # If the sweep caller below is named anything but labels-sweep.yml, # say so: `with: { sweep_workflow: }`. Ceremony's own # dogfood does (self-labels-sweep.yml).