> ## Documentation Index
> Fetch the complete documentation index at: https://ona.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Azure DevOps

Gitpod offers built-in Azure DevOps support, allowing you to work with your Azure DevOps repositories in Gitpod seamlessly.

## Registering an Azure DevOps Integration

To integrate Azure DevOps with Gitpod, you need to create a new integration in your Gitpod organization settings and register an application in Azure Active Directory. The process is as follows:

Create a **New Integration** with Azure DevOps under Organization Settings > Git Providers. Provide `dev.azure.com` as the **Provider Host Name** and copy the **Redirect URI** from the form.

<Frame caption="Gitpod New Git Integration form">
  <img src="https://mintcdn.com/gitpod-13c83c2b/e8LRoo3UknjjGZet/images/integrations/ado-new-integration.png?fit=max&auto=format&n=e8LRoo3UknjjGZet&q=85&s=157f43e0a7d8972b9ed9c69a1b2e3a07" width="1816" height="1760" data-path="images/integrations/ado-new-integration.png" />
</Frame>

Go to the [Azure Portal](https://portal.azure.com), sign in, and navigate to the [Microsoft Extra ID](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade) page.

Under the left sidebar, select Manage > **App registrations** and click on **New registration** (you can also find your existing app registration under the **All applications** tab)

<Frame caption="Azure App registration">
  <img src="https://mintcdn.com/gitpod-13c83c2b/e8LRoo3UknjjGZet/images/integrations/ado-app-registration.png?fit=max&auto=format&n=e8LRoo3UknjjGZet&q=85&s=faed25388b433b97419b3f14bfe9ac75" width="3308" height="1186" data-path="images/integrations/ado-app-registration.png" />
</Frame>

Enter `Gitpod` in the **Name** field, select **Web** as the platform, and fill in the Redirect URI with the value you copied from the Gitpod Dashboard. You can modify the Redirect URI later in the Authentication tab if needed.

<Frame caption="Azure App registration">
  <img src="https://mintcdn.com/gitpod-13c83c2b/e8LRoo3UknjjGZet/images/integrations/ado-app-registration-name.png?fit=max&auto=format&n=e8LRoo3UknjjGZet&q=85&s=f83e0af5af23ec88c3598e07b4397db7" width="1892" height="1600" data-path="images/integrations/ado-app-registration-name.png" />
</Frame>

Navigate to the application you just created, where you'll find the **Application (client) ID** on the app's overview page. Retrieve the **OAuth 2.0 token endpoint** and **OAuth 2.0 authorization endpoint** from the **Endpoints** section.

<Frame caption="Azure Client ID">
  <img src="https://mintcdn.com/gitpod-13c83c2b/e8LRoo3UknjjGZet/images/integrations/ado-client-id.png?fit=max&auto=format&n=e8LRoo3UknjjGZet&q=85&s=80502de2b19909b9987ae205512f1be0" width="3276" height="870" data-path="images/integrations/ado-client-id.png" />
</Frame>

<Frame caption="Azure OAuth endpoints">
  <img src="https://mintcdn.com/gitpod-13c83c2b/e8LRoo3UknjjGZet/images/integrations/ado-auth-endpoints.png?fit=max&auto=format&n=e8LRoo3UknjjGZet&q=85&s=49e7db1dc6733ec1c966821c736c6ff4" width="3272" height="1142" data-path="images/integrations/ado-auth-endpoints.png" />
</Frame>

Navigate to Manage > **Certificates & secrets** and create a new client secret (**Client secrets** > **New client secret**). Then, copy the **Value** and **Client secret**.

<Frame caption="Azure Client Secret creation">
  <img src="https://mintcdn.com/gitpod-13c83c2b/e8LRoo3UknjjGZet/images/integrations/ado-client-secret-create.png?fit=max&auto=format&n=e8LRoo3UknjjGZet&q=85&s=5b5c96ae12682f31ea6cb1bf710866f1" width="3282" height="1030" data-path="images/integrations/ado-client-secret-create.png" />
</Frame>

<Frame caption="Azure Client Secret">
  <img src="https://mintcdn.com/gitpod-13c83c2b/e8LRoo3UknjjGZet/images/integrations/ado-client-secret.png?fit=max&auto=format&n=e8LRoo3UknjjGZet&q=85&s=1f3c24d4c2266f20ae7c91ae3289a7cd" width="3276" height="1228" data-path="images/integrations/ado-client-secret.png" />
</Frame>

Go **API permissions** and add the following Azure DevOps permissions:

* `vso.code_write`
* `vso.profile` (`User.Read` is required and selected by default)

<Frame caption="Azure API permission create">
  <img src="https://mintcdn.com/gitpod-13c83c2b/e8LRoo3UknjjGZet/images/integrations/ado-permission-create.png?fit=max&auto=format&n=e8LRoo3UknjjGZet&q=85&s=75cd3945183244cc09c83bb22c7bb548" width="3280" height="1334" data-path="images/integrations/ado-permission-create.png" />
</Frame>

<Frame caption="Azure API permission results">
  <img src="https://mintcdn.com/gitpod-13c83c2b/e8LRoo3UknjjGZet/images/integrations/ado-permission-results.png?fit=max&auto=format&n=e8LRoo3UknjjGZet&q=85&s=deb3a923efb4e91e34756ca2a149e724" width="3828" height="1382" data-path="images/integrations/ado-permission-results.png" />
</Frame>

Back in the Gitpod organization's git integrations settings, fill in the following:

* **Authorization URL**: (authorization endpoint)
* **Token URL**: (token endpoint)
* **Client ID**: (Application (client) ID)
* **Client Secret**

After entering these details, activate the integration.

<Frame caption="Gitpod Git Integration from result">
  <img src="https://mintcdn.com/gitpod-13c83c2b/e8LRoo3UknjjGZet/images/integrations/ado-git-provider-form.png?fit=max&auto=format&n=e8LRoo3UknjjGZet&q=85&s=fb83860d589e379ef2a614b3be75b12b" width="1376" height="1764" data-path="images/integrations/ado-git-provider-form.png" />
</Frame>

Activate the integration, and you should see an Azure connection request prompt. Once approved, the integration will be saved and available in your Gitpod organization.

<Frame caption="Gitpod Azure DevOps approval">
  <img src="https://mintcdn.com/gitpod-13c83c2b/e8LRoo3UknjjGZet/images/integrations/ado-approval.png?fit=max&auto=format&n=e8LRoo3UknjjGZet&q=85&s=f117994aa7e3593dc083792c55bf5fba" width="3142" height="1908" data-path="images/integrations/ado-approval.png" />
</Frame>

## Starting with Azure DevOps Integration

For more details, see the [Azure DevOps integration](/classic/user/integrations/azure-devops) documentation.
