incubator-devlake
incubator-devlake copied to clipboard
feat(azuredevops): implement work items as issues
Summary
This PR adds support for Azure DevOps work items as issues. The main thing to consider is that in Azure DevOps, work items are connected to projects and orgs, not repositories. Furthermore, current API definitions in Azure DevOps have a few limitations on retrieving work items data. Finally, work item queries are heavy and consume a lot of TSTUs, meaning that a simple query can impact overall organization usage of Azure DevOps and block access to services.
Thus, the decision was to:
- Break down the retrieval into two API calls, one to obtain the work item ids (using the WQL API) and another one to obtain the actual work items in small chunks (using the work item batch API), avoiding throttling issues.
- Use custom code instead of default converter code to store data in issues table.
- Add issue UI components to azure devops page scope configuration.
- Add issue dashboard panels to Azure DevOps grafana page, but remove repository reference from queries.
Does this close any open issues?
Closes #5996
Screenshots
Other Information
With all work items collected, and their boards stored as component, having incidents mapped is as easy as querying work items with type = bug.