Azure DevOps icon

Azure DevOps

Overview

Azure DevOps Services is a cloud hosted version of Azure DevOps Server developed and maintained by Microsoft. It provides version control, reporting, requirements management, project management, automated builds, testing and release management capabilities. It covers the entire application lifecycle, and enables DevOps capabilities.

Authentication

The Azure DevOps connector requires an OAuth2 application to be created on the user's Azure DevOps Services account. This allows the user to define granular and precise permission scopes when working with the Tray platform. The section below will guide you through the process of creating and configuring an Microsoft Entra application on the Azure DevOps Services platform so that it can be used with the Tray platform. All action will be done via Microsoft Azure Portal

1. Register new App

  1. In the Azure portal, search App registrations.

azure-devops-app-registration 2. Open App registrationsNew registration.

azure-devops-new-registration 3. Fill the form:

  • Name: e.g., Test Azure DevOps
  • Supported account types: Single tenant (recommended for internal integrations)
  • Redirect URI (Web): https://auth.tray.io/oauth2/token

azure-devops-fill-form 4. Click Register.

azure-devops-register 5. #### Copy the IDs from Overview — you’ll need them later:

  • Application (client) ID
  • Directory (tenant) ID azure-devops-client-id

2. Permissions (grant access to Azure DevOps API)

  1. Go to API permissionsAdd a permission. azure-devops-api-permission
  2. Choose APIs my organization uses, search Azure DevOps, select it. azure-devops-api-permission-2
  3. Add the delegated scopes you actually need. For minimal work of connector is required vso.profile and vso.profile_write . You may need to add additional scopes if you want to work using Raw Http Request
  4. Keep Microsoft Graph → User.Read and offline_access for refreshing acess token).
  5. Click Grant admin consent (tenant admin) so users won’t be prompted individually.

azure-devops-api-permissions-3

3. Keys (Client secret for server-side flows)

If you use authorization code flow from a confidential backend, create a client secret.

  1. Go to Certificates & secretsNew client secret.

azure-devops-key-1 2. Give it a description and expiry → Add.

azure-devops-key-2 3. ##### Copy the secret Value immediately (you won’t see it again).

azure-devops-key-3

You now have: Tenant ID, Client ID, Client Secret (Value).

4. Create a project in Azure DevOps (or ensure you have an organization)

  1. In Azure portal enter Azure DevOps Organizatition

azure-devops-devops-org 2. In Azure DevOps Organizatition window click on **My Azure DevOps Organizations ** azure-devops-my-devops 3. If you don’t have an organization yet, click Create new organization.

azure-devops-new-org 4. Inside your org, create a New project (Repos/Boards/Pipelines as needed). 5. From the org home, open Organization settings (bottom-left gear).

azure-devops-org-settings

5. Connect the Azure DevOps organization with Microsoft Entra ID

This associates your DevOps organization with the Entra directory so users/groups/permissions are governed centrally.

  1. In Organization settings, open Microsoft Entra.
  2. Confirm it shows the correct directory name and Tenant ID.
  3. If needed, use Switch directory to select the right tenant, or Disconnect to rebind. azure-devops-directory-connect

6. Create authenticate between Azure DevOps connector and Microsoft

  1. Click Create Authentication
  2. In new window provide next data copied earlier (Client ID, Tenant ID and Client Secret) and press Create Authentication

azure-devops-create-auth

Using the Raw HTTP Request ('Universal Operation')

As of version 1.0, you can effectively create your own operations. This is a very powerful feature which you can put to use when there is an endpoint in Azure DevOps which is not used by any of our operations. To use this you will first of all need to research the endpoint in the Azure DevOps Services REST API Reference v7.1 , to find the exact format that Azure DevOps will be expecting the endpoint to be passed in. Note that you will only need to add the suffix to the endpoint, as a default base URL will be automatically set. The default base URL for Azure DevOps is: https://dev.azure.com

PLEASE NOTE: Some of the endpoints within the Azure DevOps API have a base URL that is different to the one listed above. Please refer to the second example below for guidance on how to use the Raw HTTP Request operation with a custom base URL.


Example 1: Making a request to the default base URL

For this example, say that the 'Get Project' operation did not exist in our Azure DevOps connector, and you wanted to use this endpoint, you would use the Azure DevOps API docs to find the relevant endpoint - which in this case is a GET request called: /{organization}/_apis/projects/{projectId}?api-version=6.1-preview.4. More details can be found here. azure-devops-get-project-url As you can see there is also the option to include a query parameter, should you wish to do so. There is also a required query parameter in this example in the form of api-version. So if you know what your method, endpoint and details of your query parameters are, you can get the project information with the following settings: Method: GET Endpoint: /{YOUR-ORGANIZATION-ID}/_apis/projects/{YOUR-PROJECT-ID} Query Parameter: Key: api-version Value: 6.1-preview.4 Body Type : None Final Example outcome being: https://dev.azure.com/{YOUR-ORGANIZATION-ID}/_apis/projects/{YOUR-PROJECT-ID}?api-version=6.1-preview.4 azure-devops-get-project-url-raw-http

Example 2: Making a request to custom base URL

For this example, say that the 'Get Me' operation did not exist in our Azure DevOps connector. What makes this endpoint unique is that it uses a different base URL from the default one. To use this endpoint, you would once again use the Azure DevOps API docs to find the relevant endpoint - which in this case is a GET request called: https://app.vssps.visualstudio.com/_apis/profile/profiles/me?api-version=6.0. More details can be found here. azure-devops-get-me-url As with the previous example, there is also the option to include a query parameter, should you wish to do so. There is also a required query parameter in this example in the form of api-version. So if you know what your method, endpoint and details of your query parameters are, you can get the project information with the following settings: Method: GET Full URL: https://app.vssps.visualstudio.com/_apis/profile/profiles/me Query Parameter: Key: api-version Value: 6.0 Body Type : None Final Example outcome being: https://app.vssps.visualstudio.com/_apis/profile/profiles/me azure-devops-get-me-url-raw-http

Was this page helpful?