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:
-
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.
-
Click Sign In with Azure DevOps on the Connection Editor page.
-
Enter your credentials.
-
Give your consent to the access request from Skyvia.
-
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.