Skip to content

Azure DevOps Setup

Prerequisites

Configuration

Open SettingsTrackerAzure 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.