Azure DevOps

Azure DevOps is an end-to-end solution providing services for collaboration during the application development lifecycle: Version control, reporting, requirements management, project management, automated builds, testing, and release management capabilities.

Data integration: Skyvia supports importing data to and from Azure DevOps, exporting Azure DevOps data to CSV files, replicating Azure DevOps data to relational databases, and synchronizing Azure DevOps data with other cloud apps and relational databases.

Backup: Skyvia Backup does not support Azure DevOps backup.

Query: Skyvia Query supports Azure DevOps.

Establishing Connection

When creating a connection to Azure DevOps, you have to log in to Azure DevOps via OAuth 2.0 and enter the Azure Organization name.

Getting Credentials

You can find the Organization value on the Azure DevOps main page in the list of available organizations or the page URL. For example, if the URL looks like dev.azure.com/your_organization, you enter only your_organization part of the URL in Skyvia.

Creating Connection

To create an Azure DevOps connection in Skyvia, perform the following steps:

  1. Enable the Third-party application access via OAuth option for your organization. To do this, sign in with Azure DevOps and go to Organization settings -> Security -> Policy.

    Azure DevOps app access

  2. Click Sign In with Azure DevOps on the Connection Editor page.

    Azure DevOps connection

  3. Enter your credentials.

    Azure DevOps sign-in

  4. Give your consent to the access request from Skyvia.

    Azure DevOps scopes

  5. Specify the Organization.

Additional Connection Parameteres

Use Custom Fields

Select this checkbox to make Azure DevOps custom fields available in Skyvia.

Connector Specifics

Object Peculiarities

NotificationSubscriptions

When you create an account in Azure DevOps, several default records are created automatically in the NotificationSubscriptions object. Such records contain an empty UpdatedDate field, and they cannot be replicated incrementally and synchronized. Manually inserted records in this object contain the values in the UpdatedDate field. Such records can be replicated incrementally and synced.

You must map the Filter_type field to perform the import to the NotificationSubscriptions object. Other fields may become required for mapping depending on the specified Filter_type value.

Profile

This object is read-only. To get data from this object, set the filter by the ProfileId field. To get data about the current authorized user, use the filter ProfileId = me.

Make sure you have the right to access the specified profile. Otherwise, you get an error.

WorkItems

The WorkItems object supports the following operators for filtering: =, >, <, >=, <=.

You can select a maximum of 20000 records by one query from this object.

There are several work item types: Bug, Feature, Epic, Test Case, Impediment, Task, or Product Backlog Item. Work item types define the list of fields for mapping when importing to this object. Required fields for mapping may differ depending on the work item type.

WorkItemProcessQueries and WorkItemProcessChildrenQueries

WorkItemProcessQueries object stores parent folders and queries data only. Data from child folders and queries is stored in the Children array field. For user convenience, the child array field values are stored in the separate WorkItemProcessChildrenQueries object.

To insert a record into the WorkItemProcessChildrenQueries object, you must map the parent folder or query Id.

WorkItemRevisions

This object is read-only. It is related to Project and WorkItems objects as a child object. Due to Azure devOps API specifics, when you query the WorkItemRevisions object, Skyvia gets data from both parent objects first. Thus it takes time and additional API calls to query this object. We recommend using filters by the Project and/or WorkItemId field.

Complex Structured Objects

Some of the Azure DevOps objects have complex hierarchic structures. These objects are WorkItemTrackingComments, ProjectDashboardWidgets, and TeamDashboardWidgets. You can update these objects only via their parent objects.

For example, to update ProjectDashboardWidgets, Azure DevOps API requires mapping the ProjectDashboards.Id field. Optionally you can map the name of the corresponding Project. To get TeamDashboardWidgets records, Azure DevOps API requires mapping the TeamDashboards.Id field. Optionally you can map the related Teams.Id.

Skyvia does not require filtering by the parent object record Id when querying data from a child object or importing data to such an object. Without filtering by parent record Id, Skyvia first queries all the parent object records reading each record Id. Then Skyvia looks up child object records to each parent object record Id. This approach allows querying child objects without knowing their parents, but this method consumes time and API calls. It uses at least one API call for every parent object record. Thus, working with such objects may affect performance. We strongly recommend using filters on the parent object fields when querying data from child objects.

For example, to update the WorkItemTrackingComments, map the Id field, and optionally add mappings for ProjectId and WorkItemId. In this case, Skyvia has parent ProjectId and WorkItemId values and retrieves the child WorkItemTrackingComments records directly without going through all records in the WorkItems object.

Custom Fields

The WorkItems and WorkItemRevisions objects support custom fields. Work items may differ for each project, thus custom fields are supported on the project level. When you add custom fields to the project, Skyvia creates additional objects containing custom fields for each project with the names in the following format: <ProjectName>_WorkItems and <ProjectName>_WorkItemRevisions. Custom fields added for a specific work item type are available for other work item types within the project.

Incremental Replication and Synchronization

Replication with Incremental Updates is supported for the following objects: AuditStreams, NotificationSubscriptions, Projects, TfvcShelvesets, TfvsLabels, WorkItemProcessChildrenQueries, WorkItemProcessQueries, WorkItems, WorkItemTrackingComments

The TfvcShelvesets object contains the CreatedDate field and doesn’t contain the UpdatedDate field. Thus only the new records can be processed by Incremental Replication.

Synchronization is supported for the following objects: AuditStreams, NotificationSubscriptions, Projects, WorkItemProcessChildrenQueries, WorkItemProcessQueries, and WorkItemTrackingComments.

DML Operations Support

Skyvia supports the following DML operations for Azure DevOps objects:

Operation Object
INSERT, UPDATE, DELETE AuditStreams, NotificationSubscriptions, ProjectDashboardWidgets, Projects, TeamDashboardWidgets, Teams, WorkItemProcessChildrenQueries, WorkItemProcessQueries, WorkItems, WorkItemTrackingComments, WorkItemTrackingProcesses
INSERT, DELETE ProjectDashboards, TeamDashboards
DELETE WorkIterations

Supported Actions

Skyvia supports all the common actions for Azure DevOps.