Skip to main content

Installation

This page details how to install Port's Azure DevOps integration (powered by the Ocean framework). It outlines the following steps:

  • How to create a personal access token to give the integration permissions to query your Azure DevOps account.
  • How to configure and customize the integration before deploying it.
  • How to deploy the integration in the configuration that fits your use case.
Prerequisites
  • An Azure DevOps account with admin privileges.
  • If you choose the real time & always on installation method, you will need a kubernetes cluster on which to install the integration.
  • Your Port user role is set to Admin.

Create a personal access token

The integration requires a personal access token to authenticate with your Azure DevOps account.
You can create one by following these steps.

The token should either have admin permissions, or read permissions for each of the supported resources you want to ingest into Port.

Configure the integration

appHost & listening to hooks

tip

The appHost parameter is used specifically to enable the real-time functionality of the integration.

If it is not provided, the integration will continue to function correctly. In such a configuration, to retrieve the latest information from the target system, the scheduledResyncInterval parameter has to be set, or a manual resync will need to be triggered through Port's UI.

In order for the Azure Devops integration to update the data in Port on every change in the Azure Devops repository, you need to specify the appHost parameter. The appHost parameter should be set to the url of your Azure Devops integration instance. In addition, your Azure Devops instance (whether it is Azure Devops SaaS or a self-hosted version of Azure Devops) needs to have the option to send webhook requests to the Azure Devops integration instance, so please configure your network accordingly.

Deploy the integration

Choose one of the following installation methods:

Using this installation option means that the integration will be able to update Port in real time using webhooks.

This table summarizes the available parameters for the installation. Set them as you wish in the script below, then copy it and run it in your terminal:

ParameterDescriptionExampleRequired
port.clientIdYour port client id
port.clientSecretYour port client secret
integration.secrets.personalAccessTokenThe personal access token used to query authenticate with your Azure Devops account
integration.secrets.organizationUrlThe URL of your Azure DevOps organizationhttps://dev.azure.com/organizationName
integration.config.appHostThe host of the Port Ocean app. Used to set up the integration endpoint as the target for webhooks created in Azure DevOpshttps://my-ocean-integration.com

Advanced configuration

ParameterDescription
integration.eventListener.typeThe event listener type. Read more about event listeners
integration.typeThe integration to be installed
scheduledResyncIntervalThe number of minutes between each resync. When not set the integration will resync for each event listener resync event. Read more about scheduledResyncInterval
initializePortResourcesDefault true, When set to true the integration will create default blueprints and the port App config Mapping. Read more about initializePortResources

To install the integration using Helm, run the following command:

helm repo add --force-update port-labs https://port-labs.github.io/helm-charts
helm upgrade --install my-azure-devops-integration port-labs/port-ocean \
--set port.clientId="PORT_CLIENT_ID" \
--set port.clientSecret="PORT_CLIENT_SECRET" \
--set port.baseUrl="https://api.getport.io" \
--set initializePortResources=true \
--set scheduledResyncInterval=120 \
--set integration.identifier="my-azure-devops-integration" \
--set integration.type="azure-devops" \
--set integration.eventListener.type="POLLING" \
--set integration.secrets.organizationUrl="https://dev.azure.com/organizationName" \
--set integration.secrets.personalAccessToken="Enter value here"
Advanced integration configuration

For advanced configuration such as proxies or self-signed certificates, click here.