Skip to content

Add Azure DevOps integration #124

@RalfvandenBurg

Description

@RalfvandenBurg

This issue tracks the implementation of an integration for Azure DevOps in Elsa Workflows. The module should allow workflows to interact with Azure DevOps, supporting Git repositories, pull requests, work items, and builds (and optionally pipelines), in line with the structure used for the GitHub integration.

Tasks

  • Create a new module: Elsa.DevOps.AzureDevOps
  • Implement Workflow Activities:
    • Repositories
      • GetRepository – Retrieves details of a Git repository.
      • GetBranch – Retrieves details of a specific branch.
      • ListBranches – Lists branches in a repository.
    • Pull Requests
      • GetPullRequest – Retrieves details of a pull request.
      • CreatePullRequest – Creates a new pull request.
      • ListPullRequests – Lists pull requests in a repository.
    • Work Items
      • GetWorkItem – Retrieves a work item by ID.
      • CreateWorkItem – Creates a new work item (Task, Bug, User Story, etc.).
      • UpdateWorkItem – Updates an existing work item.
      • QueryWorkItems – Queries work items using WIQL.
    • Builds
      • GetBuild – Retrieves a build by ID.
      • ListBuilds – Lists builds in a project (with optional filters).
      • QueueBuild – Queues a new build.
    • Triggers (optional / future)
      • Event-driven triggers (e.g. when a PR or work item is updated) would require Azure DevOps Service Hooks or webhooks; can be stubbed like GitHubTriggerActivity with NotImplementedException for now.
  • Add input validation (e.g. via CanExecuteAsync) so missing or invalid inputs are reported clearly.
  • Add Documentation (README.md) with installation, registration, authentication, and activity list.

References

Notes

  • Follow the same structure and patterns as Elsa.DevOps.GitHub (base activity with org URL + token, connection factory, feature registration, UseAzureDevOps() extension).
  • Authentication via organization URL (e.g. https://dev.azure.com/{org}) and personal access token (PAT); document required PAT scopes (Code, Work Items, Build) per activity.
  • Works for both Azure DevOps Services (dev.azure.com) and Azure DevOps Server (on-prem) via the organization URL.
  • Use SDK types for outputs (e.g. GitRepository, GitPullRequest, WorkItem, Build) for strong typing in workflows and designer.

Contributor Guidelines

If you're interested in working on this issue:

  1. Comment below to claim it.
  2. Follow the CONTRIBUTING.md guide.
  3. Submit a PR referencing this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions