Repository navigation
Description
Search before asking
- I had searched in the issues and found no similar feature requirement.
Phase 1 - Integrate Azure Pipelines (DONE)
Description
According to issue #2537 , we need to investigate Azure Pipelines to design DevLake's CICD domain schema.
Use case
As DevLake's engineer, I need to investigate Azure Pipeline's data models. We'll compare these with other CI/CD tools such as Jenkins, GitLab CI and GitHub Action, then we can work on #2537 to design a better CICD domain layer model in DevLake.
See the up-to-date CICD domain layer model
Phase 2 - Integrate Azure Repos (v0.17)
According to the comments under this ticket, many Azure DevOps users want to measure DORA metrics. Most of them use Azure Repos for source code management and code review. To calculate DORA metrics, we have to collect these entities from Azure DevOps, which includes:
- source code management entities: repos, refs, commits, commit_files, etc.
- code review entities: prs, pr_comments, etc.
This is a video introduction of Azure DevOps
Phase 3 - Add configuration and config-ui for Azure DevOps (v0.17) (Tracked in #3321)
Backend
Apart from the existing configuration of Azuer pipeline entities, the backend should offer at least 1 more configuration: PR and issue association: to parse Axure's own issues or Jira issues from Azure PR bodies and associate them in table.pr_issues, similar to what we did in GitHub.
Child PRs/issues:
- [feat-2604]: Azure devops plugin (alpha) #4450
- Blueprint v200 python plugins #4480
- Improve test connection #4695
- Fix remote scope azure #4650
- Azuredevops add refdiff and gitextractor tasks + misc improvements #4773
- Test azuredevops plugin #4812
- fix: Fix wrong package name in domain ids #4973
Frontend
Add Config-UI for Azure DevOps. This will be tracked in #3321
Child PRs/Issues:
Are you willing to submit a PR?
- Yes I am willing to submit a PR!
Code of Conduct
- I agree to follow this project's Code of Conduct

Activity
[-][Feature][ArgoCI/CD] Investigate Azure Devops plugin [/-][+][Feature][Azure Devops] Investigate Azure Devops plugin [/+]selectbook commentedon Aug 10, 2022
hello, I would like to tackle this one. Please assign it to me.
warren830 commentedon Aug 10, 2022
Great, happy coding, haha
github-actions commentedon Sep 25, 2022
This issue has been automatically marked as stale because it has not had recent activity for 30 days. It will be closed in next 7 days if no further activity occurs.
github-actions commentedon Oct 2, 2022
This issue has been closed because it has not received response for too long time. You could reopen it if you encountered similar problems in the future.
mxwlf commentedon Dec 1, 2022
I would like my team to adopt Apache Dev Lake but we are using Azure Devops (yeah, I know, sighs), has this been de-scoped?
25 remaining items
Startrekzky commentedon May 15, 2023
This issue has been finished by #4450 and #4504 , which is released in v0.17 beta versions.
DimDob commentedon Nov 22, 2023
Can i use apache devlake for taking DORA Metrics from release pipelines ? Specifically production. ?
d4x1 commentedon Nov 22, 2023
@Startrekzky Please have a look at this.
Startrekzky commentedon Nov 27, 2023
Hi @DimDob , DevLake allows you to configure the
production deploymentsvia regex in the scope config of Azure. Please check this doc for details https://devlake.apache.org/docs/Configuration/AzureDevOps#step-13---add-scope-config-optional .mr-ks commentedon Dec 26, 2023
Is there a specific reason for using Python for the Azure DevOps plugin? Also, would you consider a rewrite in Go? I'm eager to contribute.
klesh commentedon Dec 27, 2023
@Startrekzky @hezyin What do you think?
keon94 commentedon Dec 27, 2023
When we first wrote it we wanted to leverage the Python framework we had developed and have a "proof of concept" that a plugin could be done in Python. That said, there are hardly any advantages to having it in Python, and it all it's doing is complicating the tech stack and logic. Not to mention, it's limited in DB migrations (with ugly workarounds), and the framework lacks support of certain important features we have in Go such as incremental collections. We could implement such things with quite a bit of effort but then the question is exactly why? We'll just end up with duplicated code across two different languages, a lot of extra maintenance; the gain here is both little and unclear to me.
So, IMHO, I personally would support a rewrite in Go. I think if we want to insist on supporting Python it should be reserved for simple plugins, and Azure Devops is NOT one of them.
klesh commentedon Dec 27, 2023
@keon94 Thanks for the input. I personally agree with you. But I would like to add that one of the reasons to write it in Python is that we believed Python is one of the most popular languages, supporting writing plugin in Python could help Apache DevLake grows.
@mr-ks I have a couple of questions after talking to some of our PPMC:
mr-ks commentedon Dec 27, 2023
@klesh Thanks for considering my input.
We are using Azure DevOps at work. Currently, the plugin only supports Repos and Pipelines and I am looking to also integrate Boards (Sprints and Work Items). For this, I‘d rather use Go than Python.
Yes, I‘d like to maintain it in the near feature.
klesh commentedon Dec 29, 2023
Thanks for the quick reply and the offering. LGTM.
@Startrekzky @hezyin @keon94 What do you think?
klesh commentedon Dec 29, 2023
@mr-ks I think you can go ahead and work on it. I suggest that you create the plugin based on one of the following plugins:
because they are the most popular ones and well maintained.