Skip to content

feat(incidentio): add on-call, alert, catalog, and team tools - #6529

Merged
waleedlatif1 merged 2 commits into
stagingfrom
incidentio-missing-tools
Aug 11, 2026
Merged

feat(incidentio): add on-call, alert, catalog, and team tools#6529
waleedlatif1 merged 2 commits into
stagingfrom
incidentio-missing-tools

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Summary

  • Adds 19 tools to the incident.io block, taking it from 46 to 65 operations
  • Who is on call had no reachable answer before. There is no dedicated endpoint for it — the data lives in ScheduleV2.current_shifts, and both schedules_list and schedules_show returned it but never declared it. New incidentio_on_call_now flattens current and upcoming shifts to one row per person per schedule; the two existing schedule tools now declare the fields they were already returning
  • Alerts: list, show, resolve, fire via HTTP alert source, and list incident↔alert connections
  • Catalog (v3): list types and entries. Teams (v3): list and show
  • Follow-ups and actions: create and update. Escalations: cancel
  • Incident people: list participants, grant and revoke private-incident membership
  • Two pre-existing bugs fixed: block declared output schedule_override while the tool emits override, and the on-call handoff skill described a lookup the integration couldn't perform

Every endpoint, param, and response field comes from the official OpenAPI spec at api.incident.io/v1/openapiV3.json — nothing inferred. Things that would have been wrong if guessed:

  • page_size is required on /v2/alerts, /v2/incident_alerts, and /v3/catalog_entries
  • Alert filters use bracket-operator syntax (status[one_of]=firing); the source filter param is alert_source, not alert_source_id
  • alert_events_create authenticates with the alert-source token, not the org API key, so it has its own credential field
  • creator is an actor envelope ({user?, api_key?, workflow?, alert?}), not a user

Type of Change

  • New feature

Testing

Typecheck, lint, check:api-validation, tool-metadata:check, and integration-catalog:check all pass. Wrote a throwaway script asserting every dropdown operation has a registry entry, a selector case, reachable required params, and declared block outputs — 65/65 clean.

Not exercised against a live incident.io account (no credentials).

Known gap left alone

actions_show and follow_ups_show read creator.id/name/email, which don't exist on the actor envelope — those fields return undefined today. Fixing it changes existing tool outputs, so I left it out of this PR.

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

Adds 19 tools to the incident.io block, taking it from 46 to 65
operations. Every endpoint, param, and response field is taken from the
official OpenAPI spec at api.incident.io/v1/openapiV3.json.

Who is on call had no reachable answer before: the data lives in
ScheduleV2.current_shifts, and both schedules_list and schedules_show
returned it but never declared it. The new incidentio_on_call_now tool
flattens current and upcoming shifts to one row per person, and the two
existing schedule tools now declare the fields they were already
returning.

Also fixes two pre-existing wiring bugs: the block declared an output
named schedule_override while the tool emits override, and the on-call
handoff skill described a lookup the integration could not perform.
@vercel

vercel Bot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Skipped Skipped Aug 11, 2026 4:58am

Request Review

@cursor

cursor Bot commented Aug 11, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Large surface area across paging, alerting, and membership APIs with new credential handling for alert events; changes are mostly additive but misconfigured filters or tokens could affect live incident.io data.

Overview
Expands the incident.io integration from 46 to 65 operations, with matching updates to the workflow block, integration catalog, and docs.

On-call: Adds incidentio_on_call_now to flatten current and upcoming shifts (one row per person per schedule). Schedule list/create outputs now document current_shifts, next_shifts, permalink, and team_ids.

Alerts & escalations: New list/show/resolve, HTTP alert event firing (separate alert_source_token), incident↔alert links, and cancel escalation. Alert list filters use bracket-operator query params; toTriState stops has_notes / include_maintenance_window “Any” values from reaching the API.

Catalog, teams, incident work: Catalog types/entries, team list/show, follow-up and action create/update, incident participants, and private-incident membership grant/revoke.

Fixes: Block output schedule_override renamed to override to match the tool. On-call handoff and new skills/templates updated for the new operations.

Reviewed by Cursor Bugbot for commit 6c89d4f. Configure here.

@greptile-apps

greptile-apps Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR expands the incident.io integration with on-call, alert, catalog, team, follow-up, action, escalation, and incident-membership operations, while correcting schedule output declarations.

  • Adds and registers 19 Incident.io tools.
  • Extends block inputs, transformations, operation selectors, and output schemas.
  • Updates generated tool catalogs and public integration documentation.

Confidence Score: 5/5

The PR appears safe to merge because no blocking failure remains within the eligible follow-up-review scope.

No blocking failure remains.

Important Files Changed

Filename Overview
apps/sim/blocks/blocks/incidentio.ts Adds operation choices, conditional inputs, parameter transformations, and output declarations for the expanded Incident.io toolset.
apps/sim/tools/incidentio/index.ts Exports the newly added Incident.io tools for registry consumption.
apps/sim/tools/registry.ts Registers the new Incident.io operations with the shared tool runtime.
apps/sim/tools/incidentio/on_call_now.ts Adds an operation that retrieves schedules and flattens current and upcoming shifts into on-call rows.
apps/sim/tools/incidentio/alerts_list.ts Adds alert listing with pagination and bracket-operator filters, including tri-state boolean handling.
apps/sim/tools/incidentio/alert_events_create.ts Adds HTTP alert-event creation using a separately supplied alert-source credential.
apps/sim/tools/incidentio/types.ts Extends Incident.io parameter, response, and output types for the new operations.
apps/docs/content/docs/en/integrations/incidentio.mdx Documents the expanded operation set, parameters, and workflow outputs.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  User[Workflow block inputs] --> Block[Incident.io block config]
  Block --> Transform[Parameter transforms]
  Transform --> Registry[Tool registry]
  Registry --> Tool[Selected Incident.io tool]
  Tool --> API[incident.io API]
  API --> Response[Response transform]
  Response --> Outputs[Declared workflow outputs]
Loading

Reviews (2): Last reviewed commit: "fix(incidentio): stop the alert filter s..." | Re-trigger Greptile

Comment thread apps/sim/blocks/blocks/incidentio.ts Outdated
The has_notes and include_maintenance_window dropdowns default to the
string "any", meaning "do not filter". The params transform skipped the
key in that case, but the executor merges its output over the raw inputs
(`{ ...inputs, ...transformedParams }`), so the sentinel survived and the
tool sent has_notes[is]=any, which incident.io rejects.

The transform now always assigns the key, mapping "any" to undefined so
it overwrites the sentinel instead of leaving it in place. The tool also
only serializes these filters when it actually has a boolean.

Adds tests covering the sentinel, both real boolean values, and the
documented bracket-operator filter syntax.
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 6c89d4f. Configure here.

@waleedlatif1
waleedlatif1 merged commit a64ce49 into staging Aug 11, 2026
30 checks passed
@waleedlatif1
waleedlatif1 deleted the incidentio-missing-tools branch August 11, 2026 05:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant