Bidirectional ticket sync
Jira and GitHub Issues: close the ticket, the finding closes. Close the finding, the ticket transitions. Custom status maps per workspace.
Last updated Jun 1, 2026
What it is
Two-way sync between Umbra findings and your ticketing system. A status change in Jira or GitHub flows back into Umbra; a status change in Umbra transitions the linked ticket. Operator- tunable status maps for both directions so any custom workflow fits.
What it produces
- Inbound webhook → Umbra
- Jira Cloud webhook: when an issue’s status changes, the linked finding’s status updates. Authenticated by URL token (mirrors Sentry/PagerDuty/Linear).
- GitHub Issues webhook: when an issue is closed / reopened / labeled, the linked finding’s status updates. Authenticated by HMAC-SHA256 (GitHub’s native scheme).
- Reverse sync (Umbra → external)
- Close a finding in Umbra → the linked Jira issue transitions to the configured “done” state.
- Close a finding in Umbra → the linked GitHub issue closes.
- Status-map editor UI: operator-tunable per channel.
Inbound maps the external state name → one of the
Umbra lifecycle states.
Reverse maps the Umbra state → the external transition name
(Jira) or state (GitHub
open/closed). - Sensible defaults: every new channel starts with a working map covering the standard Jira workflow (To Do, In Progress, Done, Won’t Do) and the two GitHub states.
What to use it for
- Stop the manual “close the finding too” step after the engineering team fixes a ticket.
- Run your remediation program from Jira / GitHub if that’s where the engineering team lives. Findings stay in sync.
- Custom workflows (multi-stage QA, label-based GitHub workflows) by editing the map instead of writing code.
Why it matters
One-way “create ticket from finding” is table stakes. The slow part of a security program is the close-out: keeping the two systems aligned without manual reconciliation. Two-way sync removes that friction so the operator can run the remediation program from whichever surface their team prefers, knowing both sides stay coherent.
Why it’s valuable
- URL-token auth for Jira; HMAC for GitHub. Each integration uses the auth model the platform actually supports, not a lowest-common-denominator hack.
- Defaults work out of the box for ~80% of installs. The editor is there for the 20% that need a label-based or multi-stage workflow.
- Empty map = “use defaults”. Clearing the table doesn’t break sync; it falls back to the shipped defaults on receive.
- Status maps round-trip cleanly through the audit log so a change is attributable.
How to use it
- Admin → Notifications → Add channel → Jira or GitHub Issues. Fill in the host + token + project (Jira) or owner+repo+PAT (GitHub).
- Save. An inbound webhook URL (and HMAC secret for GitHub) appears on the edit modal. Paste it into the external system’s webhook config.
- Edit the four status maps (Jira inbound, Jira reverse, GH inbound, GH reverse) if your workflow differs from the defaults. Each has a one-click Reset to defaults and a Show defaults disclosure.
- From any finding, Create ticket to bind a ticket to the finding. From that point, status flows both ways.