DOCS · INTEGRATIONS

Jira

Import issues, backlink comments and mirror status — one-way, and unable to fail a specd action.

On this page

Jira stays Jira. specd links to the issue and mirrors its own lifecycle back onto it, and nothing Jira does can block your team from approving their own work.

Connecting

Pick Jira Cloud at step 4 of the setup wizard, paste a site URL, an account email and an API token, choose a project, and optionally import its open issues. Create the token at id.atlassian.com → Security → API tokens.

The token is verified against /myself before anything is stored, so a bad credential fails in front of you rather than later inside a spec run. It is then held with the same envelope encryption as every other credential, bound to this project, and never logged.

What specd writes back

  • A backlink comment on the issue when a spec is created for it.
  • A status transition, if you have configured a status map.

Status mapping

Optional, and empty by default — specd does not guess what your "Done" is called. The lifecycle states you can map are draft, in_review, changes_requested, approved, building, delivered and blocked. An unmapped state is simply not mirrored; the comment still happens.

terminal — the wizard does not expose this yet
curl -X PATCH "$SPECD_API/projects/$SLUG/connections/tracker" \
  -H "Authorization: Bearer $SPECD_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "provider": "jira",
    "siteUrl": "https://your-team.atlassian.net",
    "email": "you@your-team.com",
    "apiToken": "'"$JIRA_API_TOKEN"'",
    "projectKey": "AUR",
    "statusMap": { "approved": "In Progress", "delivered": "Done" }
  }'

Names are resolved against the transitions Jira actually offers for that issue at that moment, matching the destination status first and the transition's own label second. If your workflow has no route there from where the issue currently sits, specd logs it and leaves the issue alone — Jira workflows have guards, and a spec being approved does not oblige an issue to be movable.

The rule worth knowing

What is not built yet

  • A status-map editor. The wizard connects Jira and picks a project; the map is set with the PATCH above.
  • Inbound sync. specd writes to Jira but does not listen — moving an issue in Jira does not move the spec. Registering a Jira webhook needs site admin, so this needs a polling fallback as well; neither is built.
  • Field mapping beyond status. Deliberate, not pending.
  • Jira Server / Data Center.