> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/software-engineering-insights/use-software-engineering-insights/setup-sei/configure-integrations/azure-devops/sei-integration-azure-devops.md).

# Connect with Azure DevOps

Azure DevOps (ADO) is a Microsoft product that 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.

Use the SEI Azure DevOps Services integration to integrate SEI with ADO Services. SEI ingests pipelines, Git repos, Team Foundation Version Control (TFVC), and Azure Boards data from ADO Services.

Azure DevOps Services is a cloud offering. To integrate with the on-premises offering, Azure DevOps Server, you must use an [Ingestion Satellite](/software-engineering-insights/use-software-engineering-insights/setup-sei/sei-ingestion-satellite/satellite-overview.md).

#### Requirements <a href="#requirements" id="requirements"></a>

The following permissions and settings are required to use the **SEI Azure DevOps Services integration**:

{% tabs %}
{% tab title="OAuth" %}

* You have registered for Azure DevOps Services and created organizations and projects in ADO.
* All SEI-relevant ADO projects use **Git** for version control.
* You have enabled **Third-party application access via OAuth** in your [ADO organization policies](https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/change-application-access-policies?view=azure-devops).
* Your Azure DevOps account has one of the following access levels: **Basic**, **Basic + Test Plans**, or **Visual Studio Professional/Enterprise**. For more information about Azure DevOps Access Levels, see the [official Microsoft documentation](https://docs.microsoft.com/en-us/azure/devops/organizations/security/access-levels?view=azure-devops#supported-access-levels).
* You have **Reader** permission (or higher) for all SEI-relevant Azure DevOps projects. For more information about Azure DevOps permissions, see the [official Microsoft documentation](https://docs.microsoft.com/en-us/azure/devops/organizations/security/permissions-access?view=azure-devops).
  {% endtab %}

{% tab title="Personal Access Token" %}
Before you configure the **SEI Azure DevOps integration**, you must generate a **Personal Access Token**.

The SEI Azure DevOps integration only ingests projects accessible to the provided token. If access changes later, ingestion for those projects will stop until access is restored.

1. Sign in to your **Azure DevOps organization** with your **Microsoft account** using the following URL: `https://dev.azure.com/{yourorganisation}`.
2. Navigate to your **User Settings**:
   * Click on your profile picture in the top right corner.
   * Select **Security** from the dropdown menu.
   * Under **Personal Access Tokens**, click on the **+ New Token** button.
3. In the **Organization** dropdown, select **All accessible organizations**.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Due to a limitation in Azure DevOps, the PAT token must be configured with the All accessible organizations scope to ensure Harness can retrieve the user data.</p></div>
4. Configure the **Scopes** by choosing the required level of access for the token as given below.
   {% endtab %}
   {% endtabs %}

{% hint style="info" %}
If you have enabled an allowlist in your Azure DevOps account, certain Harness IP addresses must be added to it in order to allow communication between the Harness Platform and Azure DevOps. If the necessary IPs are not whitelisted, the integration may fail to authenticate or sync data properly.

To ensure your integration can work correctly, refer to the list of [Harness Platform IPs](/harness-ai/use-harness-platform/references/allowlist-harness-domains-and-ips.md) that may need to be whitelisted in your firewall.
{% endhint %}

#### Add the integration <a href="#add-the-integration" id="add-the-integration"></a>

{% tabs %}
{% tab title="OAuth" %}

1. In your **Harness Project**, select the **SEI Module**, and go to your **Account**.
2. Select **Integrations** under **Data Settings**.
3. Select **Available Integration**, locate the **Azure DevOps Services** integration, and select **Install**.
4. Select **Using OAuth** as the type of authentication to configure the integration. You'll be redirected to the Azure Devops platform, sign in with your Azure DevOps credentials to authenticate via OAuth.
5. Enter a **Name** for the integration.
6. The **Description** and **Tags** are optional.
7. Specify the **Azure DevOps Organizations** to associate with the integration. If left unspecified, all accessible organizations will be associated.
   {% endtab %}

{% tab title="Personal Access Token" %}

1. Select **Integrations** under **Data Settings**.
2. Select **Available Integration**, locate the **Azure DevOps Services integration**, and select **Install**.
3. Choose the authentication type as **Using Personal Access Token (PAT)** and click on **Next** in the instructions page.
4. Configure and **Save** the integration.
   * Enter a **Name** for the integration.
   * The **Description** and **Tags** are optional.
   * Add the **Personal Access Token** you previously generated in Azure DevOps.
   * Select the specific Azure DevOps services you want to integrate:
     * Azure Boards
     * Azure Pipelines
     * Azure Repos
   * Click on **Validate Connection** to validate the connection, and once successful, you'll have the integration set up under the **Your Integrations** tab.

     <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Different integrations will be automatically created for all the Azure DevOps services.</p><p>For example:</p><ul><li>Azure integration - Boards for Azure Boards</li><li>Azure integration - Pipelines for Azure DevOps Pipelines</li><li>Azure integration - Repos for Azure DevOps Repos</li></ul></div>

{% endtab %}
{% endtabs %}

After adding the integration, it may take up to 24 hours for data to fully sync to SEI. During this time, any widgets you set up in Insights may not display data until the sync is complete.

#### Limitations <a href="#limitations" id="limitations"></a>

1. The Azure DevOps integration currently ingests and retains data for the last 90 days.
2. The SCM Rework metric, including the Rework widget, is not stable at this time for Azure DevOps integration.
3. Data for the following widgets (duration metrics) is not available:
   * CICD Job Duration Report
   * CICD Job Duration Single Stat
   * CICD Job Duration Trend Report
   * CICD Pipeline Jobs Duration Report
   * CICD Pipeline Jobs Duration Trend Report
4. The integration does not accurately reflect the pipeline stage status across the widgets.
5. If the access token used for the integration loses access to some projects (i.e. when projects are removed or permissions change), SEI will stop ingesting data from those projects. Data ingestion continues for the remaining accessible projects.

   If project access is restored later, ingestion resumes **incrementally** for the newly accessible projects. Historical data will not be backfilled automatically, since SEI has no reference point for when to start ingestion.

   To capture historical data for newly added projects, contact [Harness Support](/software-engineering-insights/troubleshooting-and-resources/sei-support.md) to schedule a manual ingestion re-run for the selected projects.

#### See also <a href="#see-also" id="see-also"></a>

* [Reauthenticate](/software-engineering-insights/use-software-engineering-insights/setup-sei/configure-integrations/reauthenticate-integration.md)
* [Ingested data from Azure Repos](/software-engineering-insights/use-software-engineering-insights/setup-sei/configure-integrations/azure-devops/sei-azure-repos-datasheet.md)
* [Ingested data from Azure Pipelines](/software-engineering-insights/use-software-engineering-insights/setup-sei/configure-integrations/azure-devops/sei-azure-pipelines-datasheet.md)
* [Ingested data from Azure Boards](/software-engineering-insights/use-software-engineering-insights/setup-sei/configure-integrations/azure-devops/sei-azure-boards-datasheet.md)
