Skip to main content

Jira and Azure DevOps

Opt-in, community-maintained

GitHub is the first-class provider. Jira and Azure DevOps support push and close. Nothing beyond that is guaranteed. If an agent promises richer Jira or ADO behaviour, it is guessing.

SpecWeave 2.0 removed the 1.x Jira/ADO stacks for multi-project routing, hierarchy mapping and per-project field mapping, along with the per-provider sw-jira: / sw-ado: command namespaces. What remains is the same specweave sync surface as GitHub, pointed at a different provider.

Connect

specweave sync setup --provider jira
specweave sync setup --provider ado

The wizard writes the provider block into .specweave/config.json:

{
"sync": {
"enabled": true,
"jira": { "enabled": true, "domain": "acme.atlassian.net", "projectKey": "APP" }
}
}
{
"sync": {
"enabled": true,
"ado": { "enabled": true, "organization": "acme", "project": "Platform" }
}
}

Both providers default to enabled: false. Validate an existing config with specweave sync setup --validate.

Use

Every verb takes --provider so a multi-provider project stays explicit:

specweave sync push 0042 --provider jira
specweave sync push 0042 --provider ado --dry-run
specweave sync pull --provider jira --since 14
specweave sync status --provider ado

Closing an increment closes the linked work item when sync.enabled is true and the provider block is enabled.

Mapping

SpecWeaveJiraAzure DevOps
IncrementIssueWork item
Acceptance criteriaDescription checklistDescription checklist
TasksChecklist itemsChecklist items
completeIssue transitioned to DoneWork item closed

Increment ids and commit shas go into the issue body; the issue key comes back into metadata.json under externalLinks. Do not edit either side by hand.

What was removed in 2.0

RemovedReplacement
sw-jira:*, sw-ado:* command namespacessw:sync / specweave sync --provider …
Jira/ADO multi-project routing and board importNot supported. One project per repository.
Hierarchy mapping (epic → story → task levels)Not supported. Increment → issue, flat.
Per-project field mapping configurationNot supported.
Queued sync mode (sync.mode: "queued")Removed — it dropped events on a partial flush. Sync is now a direct call that fails visibly.

If you depended on any of these, keep the increments and drive the tracker manually; SpecWeave will not silently half-sync them.

See also: GitHub sync · specweave sync reference