# Azure DevOps

Firefly integrates with Azure DevOps to connect your infrastructure code repositories with your cloud resources. This integration enables powerful features like tracing cloud resources back to their defining code ("Jump to Code") and automatically creating Pull Requests for newly codified resources and drift remediation.

## Prerequisites

To successfully integrate Firefly with your Azure DevOps account, you must be the workspace admin or have these necessary permissions:

* Edit subscriptions
* View subscriptions
* Manage repositories
* Edit policies
* Contribute to pull requests
* Read repositories
* Write to repositories

## Setup Procedure

1. Enter a descriptive name in the **Nickname** field below.
2. Click **Authorize with Microsoft** to authenticate with your Azure DevOps account.
3. Sign in with your Microsoft account and grant the required permissions.
4. After authorization, you will be redirected back to this page.
5. Click **Next** to install webhooks and complete the integration.

## Features Enabled

* **Jump to Code**: Trace resources in your cloud inventory back to the Azure DevOps file and specific line that defines them.
* **Automated Pull Requests**: When Firefly codifies an unmanaged resource, it can commit the new infrastructure code as a Pull Request.
* **IaC Tracking**: Firefly maintains awareness of which resources are defined in code and which are not.
* **Drift Remediation**: Firefly can detect drift between the code and the actual resources and create a Pull Request to fix it.

## Scan Custom Branches for Modules

By default, Firefly scans modules from your repositories' default branches. You can configure custom branches to scan on a per-repo basis, allowing Firefly to discover modules from feature branches, release branches, or any other branch in your Azure DevOps repositories.

> **Note:** The main branch is not automatically scanned when custom branches are configured—select it explicitly if needed.

### Configuring Custom Branch Scanning

1. Navigate to **Settings > Integrations** and locate your Azure DevOps integration.
2. Click **Edit Integration**.
3. Scroll to the **Scan custom branches for modules** section at the bottom of the modal.
4. In the first row, select a **Repository** from the dropdown (lists all available repos from the integration).
5. Once a repository is selected, the **Branch** dropdown becomes available—select the branch to scan.
6. To add additional repo-branch pairs, click **+ Add New** below the existing rows.
7. Click **Save** to apply your configuration.

Firefly scans the HEAD of each selected branch for modules. Discovered modules appear in the **IaC Explorer > Modules** tab.

### Rules and Limitations

* Each row represents an independent repository-branch pair.
* The **Branch** dropdown is disabled until a repository is selected.
* A maximum of **10** repo-branch pairs can be configured per integration.
* Each row can be removed individually using the delete icon.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.firefly.ai/integrations/version-control/azuredevops.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
