enqueue endpoint. Incidents move through triggered, acknowledged and resolved, and escalation policies assign them over simulated time. Its key is pagerduty. It was tested with @pagerduty/pdjs.
Connect
Node
ancha connect pagerduty --lang ts prints. Pass the full local URL on every PDJS call; its server option, all helpers and Events helpers assume production HTTPS. Send events with fetch instead. ancha connect has no Python snippet for PagerDuty.
Endpoints
All endpoints are partial. Any other route returns HTTP 501 with PagerDuty’s error shape andx-ancha-gap: 1.
Users and services
Escalation, schedules and on-call
Schedules hold explicit on-call intervals. Rotations, layers, restrictions and overrides are not modeled.
Incidents
PUT /incidents/:id acknowledges, resolves, reassigns to a user or hands the incident to an escalation policy or level. It needs the From header. Reopening, urgency changes, snoozing and bulk updates are coverage gaps. Incident lists cover the previous 30 days by default.
Events
POST /v2/enqueue takes Events API v2 trigger, acknowledge and resolve payloads with a service’s routing key. Each incident holds one alert, and open events with the same dedup key and routing key update the same incident.
Starter data
Thepagerduty-starter dataset is Acme’s on-call setup: four services, two escalation policies and five resolved incidents.
Checks
pagerduty.incident selects an incident by ref ({ ref: $pagerduty_previous }) or the first one created for a service, including incidents created during the attempt. It needs at least one of status, assigned_to, acknowledged_within or resolved_within. assigned_to is the exact final set of assignees. The _within durations run from creation to the first real transition. See Checks reference.
Limits
- No contact methods, notification rules, teams, rotations or overrides.
- One alert per incident; no alert grouping or event orchestration.
- Escalation timers advance with the simulated clock.