G
YouTube TikTok Games
Skip to content

[Feature][Azure Devops] Support Azure DevOps #2604

Closed

Description

@warren830

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:

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.

image

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?

  • Yes I am willing to submit a PR!

Code of Conduct

Activity

  1. changed the title [-][Feature][ArgoCI/CD] Investigate Azure Devops plugin [/-] [+][Feature][Azure Devops] Investigate Azure Devops plugin [/+] on Jul 26, 2022
  2. selectbook commented on Aug 10, 2022

    @selectbook

    hello, I would like to tackle this one. Please assign it to me.

  3. warren830 commented on Aug 10, 2022

    @warren830
    ContributorAuthor

    Great, happy coding, haha

  4. added this to the v0.14.0 milestone on Aug 25, 2022
  5. github-actions commented on Sep 25, 2022

    @github-actions
    Contributor

    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.

  6. github-actions commented on Oct 2, 2022

    @github-actions
    Contributor

    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.

  7. mxwlf commented on Dec 1, 2022

    @mxwlf

    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?

  8. 25 remaining items

  9. reopened this on Mar 29, 2023
  10. Startrekzky commented on May 15, 2023

    @Startrekzky
    Contributor

    This issue has been finished by #4450 and #4504 , which is released in v0.17 beta versions.

  11. DimDob commented on Nov 22, 2023

    @DimDob

    Can i use apache devlake for taking DORA Metrics from release pipelines ? Specifically production. ?

  12. d4x1 commented on Nov 22, 2023

    @d4x1
    Contributor

    Can i use apache devlake for taking DORA Metrics from release pipelines ? Specifically production. ?

    @Startrekzky Please have a look at this.

  13. Startrekzky commented on Nov 27, 2023

    @Startrekzky
    Contributor

    Hi @DimDob , DevLake allows you to configure the production deployments via 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 .

  14. mr-ks commented on Dec 26, 2023

    @mr-ks
    Contributor

    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.

  15. klesh commented on Dec 27, 2023

    @klesh
    Contributor

    @Startrekzky @hezyin What do you think?

  16. keon94 commented on Dec 27, 2023

    @keon94
    Contributor

    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.

  17. klesh commented on Dec 27, 2023

    @klesh
    Contributor

    @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:

    1. Why would you want to contribute a Golang version of it?
    2. Do you need the AzDo in your work?
    3. Is it too slow or lack of features to fit your need?
    4. Are you willing to maintain it in the near feature?
  18. mr-ks commented on Dec 27, 2023

    @mr-ks
    Contributor

    @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.

  19. klesh commented on Dec 29, 2023

    @klesh
    Contributor

    Thanks for the quick reply and the offering. LGTM.
    @Startrekzky @hezyin @keon94 What do you think?

  20. klesh commented on Dec 29, 2023

    @klesh
    Contributor

    @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:

    • jira
    • github
    • jenkins
    • gitlab
      because they are the most popular ones and well maintained.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

type/epicThis is an epic issuetype/feature-requestThis issue is a proposal for something new

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions