-
Notifications
You must be signed in to change notification settings - Fork 496
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature][Azure Devops] Support Azure DevOps #2604
Comments
hello, I would like to tackle this one. Please assign it to me. |
Great, happy coding, haha |
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. |
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. |
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? |
Hi @mxwlf, we have a very basic plugin for Azure DevOps that only collects |
Hi! @hezyin I'm the same situation as @mxwlf. Our use cases would be having reporting from all of our ADO repositories on each of the four the dora metrics and having the reports be visible on a dashboard. Would you have some rough time estimate on when the plugin would be ready for end user use? Thanks! |
Hi @Sarakanerva, to track DORA metrics, DevLake would need three key entities: code changes (usually in the form of pull requests), deployments (from CI/CD systems), and incidents (from issue trackers or dedicated incident management systems). Do you think you could describe what DevOps tools you’re using internally for these entities? With this information, I can evaluate what needs to be done on the DevLake side to help you implement DORA metrics. And if it makes communication easier, feel free to join our Slack channel and ping me there: https://join.slack.com/t/devlake-io/shared_invite/zt-17b6vuvps-x98pqseoUagM7EAmKC82xQ |
Hi @hezyin sure I can take a look at that plugin and as well as @Sarakanerva I'm looking to implement DORA metrics in our project. I will take a look and even see if I can contribute with something. On my side we are using Azure DevOps as code repo and Jira for issue management, so we are halfway to be feasible to implement DevLake. Will join your Slack channel as well but I may be more active until next year. Thanks! |
Appreciate it @mxwlf! Do you also track incidents entity with Jira? With multiple users requesting Azure DevOps plugin, we plan to add this plugin to our v0.16 release (around Feb 2023). It would be very helpful if you could pilot this plugin once its beta version is ready. Let me know when you join Slack, I'll create a channel for Azure DevOps plugin users. Have a wonderful holiday season! |
We'll look into developing this plugin using the new Python SDK being developed here: #3701 |
Sounds really good @keon94 - are you still aiming for v0.16? |
@KasperSJensen At the moment yes. Will update this thread if there are changes to timelines. |
Hi @KasperSJensen @mxwlf . I'm currently trying to write the logic that is needed for DORA metric collection, and would appreciate your input as we are not very familiar with Azure Devops. Azure treats Pipeline builds and Release deployments as two separate entities, both UI-wise and on the API side. My question is, for the sake of DORA, should we be targeting only release deployments in our data collections, or can pipeline builds also potentially trigger deployments (perhaps not by Azure standards per se)? cc @hezyin |
I can answer that one, as @KasperSJensen and I are working on the same. Azure Devops has two ways of deploying. The "classic"/legacy way where release is its own entity. And the newer multi-stage yaml-pipelines. Here's a SO thread discussing the two. Ideally both should be supported by DevLake, but yaml-pipelines should have priority as that is the way going forward. Actually, Github Actions is forked from Azure Pipelines (yaml-pipelines) so perhaps the implementation can be based on that. |
@AThomsen Okay, that's good to know. The yaml-pipelines scheme is what we are working on supporting for now. Another question: Do you run pipelines for "non-Azure repos"? e.g. Github, Bitbucket, etc. cc @KasperSJensen |
We personally don't, but it is possible. |
Thank you all for helping to developer this feature. It means alot for us and we are looking so much forward to the release so we can test it |
Likewise, would be very interested in seeing this land as we use Azure Devops heavily. |
Can i use apache devlake for taking DORA Metrics from release pipelines ? Specifically production. ? |
@Startrekzky Please have a look at this. |
Hi @DimDob , DevLake allows you to configure the |
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. |
@Startrekzky @hezyin What do you think? |
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. |
@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:
|
@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. |
Thanks for the quick reply and the offering. LGTM. |
@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:
|
Search before asking
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:
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:
Frontend
Add Config-UI for Azure DevOps. This will be tracked in #3321
Child PRs/Issues:
Are you willing to submit a PR?
Code of Conduct
The text was updated successfully, but these errors were encountered: