Skip to content

Azure DevOps Setup ​

Prerequisites ​

Configuration ​

Open Settings → Tracker → Azure DevOps:

FieldNotes
Organization URLe.g. https://dev.azure.com/yourorg
Projectproject name
PATentered via a SecretStorage-backed input box
Area Pathoptional
Epic work item typedefault Epic
Story work item typedefault User Story (or Product Backlog Item, depending on process template)

Advanced fields ​

FieldDefaultNotes
Subtask work item typeTaskmatches your process template if it uses a different name
AC field IDMicrosoft.VSTS.Common.AcceptanceCriteriaoverride if your process template uses a custom field
Story points field ID(falls back to the standard field)Microsoft.VSTS.Scheduling.StoryPoints unless overridden

Click Test Connection to verify before pushing anything.

Authentication ​

ADO uses Basic auth with an empty username: base64(:pat).

How pushes work ​

Saga uses JSON Patch operations against the Work Items REST API. Parent-child links (epic → story, story → subtask) use the System.LinkTypes.Hierarchy-Reverse relation, built as a full absolute URL ({orgUrl}/_apis/wit/workItems/{id}) — ADO rejects relative URLs here.

Troubleshooting 400 errors ​

If a push fails with a 400, the error message now includes ADO's own JSON error body (parsed and appended) — check the Saga Output Channel for the specific field or value that was rejected, most commonly a misconfigured ac_field_id or story_points_field_id that doesn't exist on your process template's layout for that work item type.

Released under the MIT License.