Source: https://manu-tests-all-orgs.docs-staging.pageloop.ai/integrations/development-it-operations/azure-devops

# Azure DevOps

# Azure DevOps

## Azure DevOps: Automating release pipelines with changes in Atomicwork

Use Atomicwork’s integration with Azure DevOps to bring automated governance to your release pipelines. With this integration, you can configure your DevOps release pipelines to:

- **Automatically create a change** in Atomicwork when a release is triggered
- **Pause deployment** until the change is approved
- **Resume pipeline execution** once the change reaches a specific status

This helps DevOps teams move fast while meeting audit and compliance needs, and gives change managers centralized control over what’s going out and when.

### How it works

The Atomicwork-Azure DevOps integration uses a gate in DevOps to manage deployment flow based on the status of a change created in Atomicwork.

Here’s what happens:

1. A **release is triggered** in Azure DevOps.
2. The gate creates a change in Atomicwork using a pre-configured change template in the designated workspace.
3. DevOps polls Atomicwork at regular intervals to check the status of the change.
4. Once the change reaches the desired status (like Awaiting Implementation), the pipeline gate is cleared and deployment for the release continues.

### Permissions

To integrate Atomicwork and Azure DevOps, you will need:

- **Owner persmissions** in your **DevOps organization**
- **Org admin access** in Atomicwork
- A **pre-defined workspace and** **[change template](https://support.atomicwork.com/en/articles/12284035)** already set up in Atomicwork
- A **service connection** configured in DevOps (details below)
- The **Atomicwork extension** installed in Azure DevOps

### Setup

To install the Atomicwork DevOps extension from the Azure marketplace and integrate Azure DevOps from the Atomicwork app store, [follow the steps here](https://support.atomicwork.com/en/articles/12284057).

#### Step 1: Create a service connection in Azure DevOps

1. In your Azure DevOps organization, navigate to **your Project** and go to **Project settings** at the bottom of the left navigation menu
2. Under **Pipelines**, click on **Service Connections**
   ​
   ![Picture-###{{aws\_url>](assets/12284042-azure-devops-automating-release-pipelines-with-changes-in-atomicwork-1-picture-aws-url-and-gt.png)
   <https://d3gf5wsgt7m4.cloudfront.net/FREE_LICENSE/Q0z-picture.png>}}"/>
3. Click **Create service connection** and select Atomicwork connection from the options
   ​
   ![Picture-###{{aws\_url>](assets/12284042-azure-devops-automating-release-pipelines-with-changes-in-atomicwork-2-picture-aws-url-and-gt.png)
   <https://d3gf5wsgt7m4.cloudfront.net/FREE_LICENSE/ngI-picture.png>}}"/>
4. Enter the following details:
   1. Your Atomicwork tenant URL (<https://yourcompany.atomicwork.com>)
   2. A public API token (you can generate this in Atomicwork by clicking on **Create token** under **Settings > Public API token**)
   3. Click Verify to confirm the token is valid
      ![Picture-###{{aws\_url>](assets/12284042-azure-devops-automating-release-pipelines-with-changes-in-atomicwork-3-picture-aws-url-and-gt.png)
      <https://d3gf5wsgt7m4.cloudfront.net/FREE_LICENSE/OCA-picture.png>}}"/>
5. Name the connection and grant access to all pipelines
6. Click on **Verify** and save to create the connection

#### Step 2: Configure a release pipeline with a change gate

To configure a release pipeline to automatically trigger changes in Atomicwork, go to your DevOps project and do the following:

1. Navigate to **Pipelines > Releases** in the left navigation menu
   ​
   ![Picture-###{{aws\_url>](assets/12284042-azure-devops-automating-release-pipelines-with-changes-in-atomicwork-4-picture-aws-url-and-gt.png)
   <https://d3gf5wsgt7m4.cloudfront.net/FREE_LICENSE/OJ8-picture.png>}}"/>
2. Open an existing release pipeline or create a new one
3. Create or click on the stage where you want to pause for change approval and click on **Pre-deployment conditions**
   ​
   ![Picture](assets/12284042-azure-devops-automating-release-pipelines-with-changes-in-atomicwork-5-picture.png)
4. Enable **Gates** and click on **Add** next to Deployment gates
   ​
   ![Picture](assets/12284042-azure-devops-automating-release-pipelines-with-changes-in-atomicwork-6-picture.png)
5. Select **Atomicwork Change Management**
   ![aw-change-management.png](assets/12284042-azure-devops-automating-release-pipelines-with-changes-in-atomicwork-7-aw-change-management.png)
6. Enter the following details:
   1. **Service connection:** Select the Atomicwork service connection you created
   2. **Workspace:** Choose from the list of workspaces available in your Atomicwork tenant
   3. **Change template:** Select the required change template
   4. **Subject:** Define a subject for the change (e.g., Release $(Release.ReleaseName))
   5. **Advanced:** Enter any additional change attributes that you want to pass to Atomicwork as key-value pairs in the JSON format (e.g., "description": "Deployment of version X.Y.Z")
   6. **Success criteria:** Set the desired status of the change request (e.g., Awaiting Implementation) — this is the status the change must reach before deployment can continue
      ​
      ![Picture](assets/12284042-azure-devops-automating-release-pipelines-with-changes-in-atomicwork-8-picture.png)
7. Under **Evaluation options**, enter the polling interval (minimum 5 minutes) which is the duration after which the gate (i.e. the status of the change request) is checked
   ​
   ![Picture](assets/12284042-azure-devops-automating-release-pipelines-with-changes-in-atomicwork-9-picture.png)

### What happens during execution

When a pipeline runs:

- A new change is automatically created in Atomicwork with the selected template
- Atomicwork sends notifications and triggers any approval workflows as defined in the template
- DevOps will check the change status every few minutes (based on polling interval)
- Once the change is approved and reaches the desired status, the gate unlocks and the pipeline moves forward

If the change is not approved or the status doesn’t change, the pipeline will stay blocked until the next polling attempt.

### Troubleshooting

| **Issue**                                   | **Possible cause**                                      | **Resolution**                                                       |
| ------------------------------------------- | ------------------------------------------------------- | -------------------------------------------------------------------- |
| Gate fails with ‘Invalid token’             | Incorrect API token or tenant URL                       | Regenerate the token in Atomicwork and update the service connection |
| Workspace or change template not showing up | Extension not fetching the metadata correctly           | Reconnect the Azure DevOps integration in the Atomicwork App stor    |
| Gate keeps polling without success          | Change status hasn’t been updated to the desired status | Verify if approvals or required actions in Atomicwork are complete   |

### FAQs

**Can I trigger changes for multiple pipelines?**
Yes, as long as each pipeline stage has the gate configured with a valid connection and workspace.

**Where can I see the created change in Atomicwork?**
Changes appear under the configured workspace, with all standard approvals, notifications, and actions applicable as per the change template.

---

## Azure DevOps: Permissions and setup

### Permissions

To connect your Atomicwork and Azure DevOps accounts, you need:

- **Atomicwork admin access**: You need org admin access in Atomicwork
- **Azure DevOps owner permissions:** You need access to your Azure DevOps organization with Owner permissions
- **Atomicwork Azure DevOps extension:** You need to install the Atomicwork extension from the Azure DevOps marketplace

### Setup

#### Installing the Atomicwork Azure DevOps extension

- Navigate to the Azure DevOps marketplace (<https://marketplace.visualstudio.com/azuredevops>)
- Search for Atomicwork and click on **Install**

Once installed, the extension will be available across all projects within your organization.

#### Connecting Azure DevOps from Atomicwork

- As an Atomicwork admin, navigate to **Settings > App Store under Integrations**
- Find **Azure DevOps** in the app store and click on **Connect**.
- Follow the OAuth prompts to authorize Azure DevOps access via your Microsoft account

---
