Connect Azure DevOps

One connector reads one Azure DevOps organisation: the projects you select in it, their repositories, and their Azure Pipelines builds.

Heplon can prove who it is in three ways. Pick one before you start. The Add connector form shows only the ways your deployment enables, and the way you pick stays fixed for the life of that connector.

WayWho owns the identityPick it when
Personal access tokena user in your organisationyou cannot add an application to your directory, or you run Azure DevOps Server
Heplon's Entra applicationHeplonyou want the shortest setup and accept Heplon's application
Your own Entra applicationyouthe application, its credential, and its revocation must live in your own tenant

Both application ways need no token to create, rotate, or replace when it expires. Neither one exchanges a secret with Heplon.

Start: open the Azure DevOps form

Every way begins here.

In Heplon, open Connectors.

The sidebar with Connectors selected under Administration

Select Add connector, in the top right.

The Relays, Access profiles, and Add connector buttons

Select Azure DevOps.

The connector picker with Azure DevOps under Code and delivery

Fill in the two fields every way needs.

FieldValue
Namean arbitrary name
Organisation URLhttps://dev.azure.com/$ORG, where $ORG is your organisation
The Add Azure DevOps panel with Name and Organisation URL filled in

Keep this panel open and continue with your way below.

Way 1: personal access token

You need an Azure DevOps account that can see the projects you want Heplon to read. Heplon reads exactly what this account can reach.

1. Create the token

In Azure DevOps, open User settings (next to your avatar) and select Personal access tokens under Security.

The User settings menu with Personal access tokens selected under Security

Select New Token and fill in the panel.

SettingValue
Namean arbitrary name, for example heplon
Organizationthe organisation you want to connect
Expirationyour choice, see the notes below
ScopesCustom defined, then the two ticks below

Tick exactly two boxes:

  • Code: Read
  • Build: Read
The Create a new personal access token panel with Custom defined scopes and Code Read and Build Read ticked

Select Create and copy the token. Azure DevOps shows it once.

2. Paste it into Heplon

Back in the Heplon panel, select Personal access token and paste the token into Access token.

The Authentication section with Personal access token selected and the Access token field below it

3. Test and save

Select Test connection. Heplon calls Azure DevOps with the token and reports whether it reaches the organisation. Nothing is stored yet.

Save the connector. Azure DevOps is now connected to Heplon.

Way 2: Heplon's Entra application

This way adds Heplon's own Microsoft Entra application to your tenant and gives it access to your Azure DevOps organisation. Heplon owns the application. You own the consent, and withdrawing it revokes access.

You need two roles:

  • Entra: Privileged Role Administrator or Global Administrator.
  • Azure DevOps: Project Collection Administrator of the organisation.

In the Heplon panel, select Heplon-managed Microsoft Entra application. The panel shows the application (client) ID your deployment uses and a Grant administrator consent link.

The Heplon-managed option showing the application client ID and the Grant administrator consent link

Open that link and sign in as a tenant administrator. Select Accept.

The Entra consent dialog for the heplon application

This creates a service principal named heplon in your tenant. The consent covers sign-in only. It grants no access to your repositories. Step 2 does that.

2. Add the service principal to your organisation

In Azure DevOps, open Organization settings → Users → Add users.

In Users or Service Principals, type heplon. Select the entry whose ID matches the application (client) ID shown in the Heplon panel.

The Add new users panel with heplon selected in the service principal picker

Fill in the remaining fields.

FieldValue
Access levelBasic
Add to projectsthe projects Heplon may read and write
Azure DevOps GroupsProject Contributors for read and write
The completed Add new users panel

Select Add.

3. Test, select projects, and save

Back in the Heplon panel, fill in Directory (tenant) ID: the Entra directory your organisation is connected to.

Select Test connection. Heplon authenticates, then lists the projects the service principal can read. Nothing is stored yet.

A successful test with the project list below it and one project ticked

Select at least one project and save. Heplon verifies the identity and every selected project again before it writes the connector, so a revocation between the check and the save is caught.

Azure DevOps is now connected to Heplon.

Way 3: your own Entra application

This way creates a single-tenant Microsoft Entra application in your directory and lets Heplon authenticate as it. The application, its federated credential, and its Azure DevOps membership stay yours, so you can inspect and revoke them without involving Heplon.

Heplon never asks for a client secret or a certificate, and cannot use one. It proves who it is with a short-lived token signed by your Heplon deployment.

Prerequisites: you need to log into Entra & Azure DevOps and have these roles:

  • Entra: Application Administrator or Global Administrator.
  • Azure DevOps: Project Collection Administrator of the organisation.

1. Copy the three values from Heplon

In the Heplon panel, select Customer-managed Microsoft Entra application.

The Authentication section with the customer-managed option selected

The panel now shows an Issuer, a Subject identifier, and an Audience, each with a copy button. They belong to your Heplon deployment. Copy them from this screen.

The panel showing Issuer, Subject identifier, and Audience with copy buttons

Keep the panel open.

2. Register the application

In the Azure portal, open Microsoft Entra ID → App registrations → New registration.

FieldValue
Namean arbitrary name, for example heplon
Supported account typesSingle tenant only, with your own organisation
Redirect URIleave empty
The Register an application form with a name filled in and the single tenant account type selected

Select Register. The overview page then shows the two IDs the Heplon panel asks for. Copy the Application (client) ID and the Directory (tenant) ID.

The application overview with the Application client ID and Directory tenant ID rows

3. Add the federated credential

On the new application, open Manage → Certificates & secrets.

The application menu with Certificates and secrets under Manage

Open the Federated credentials tab and select Add credential.

The Federated credentials tab with the Add credential button

Set Federated credential scenario to Other issuer.

The scenario dropdown open, with Other issuer as the last entry

Fill in the rest:

FieldValue
Issuerthe Issuer from the Heplon panel
TypeExplicit subject identifier
Valuethe Subject identifier from the Heplon panel
Namean arbitrary name, for example heplon-workload
Audiencealready api://AzureADTokenExchange, change it only if Heplon shows something else (select Edit (optional))
The federated credential form with the issuer, subject, name, and audience filled in

The three values must match exactly, including scheme, trailing characters, and case. Entra rejects the token otherwise, and the check in step 5 says so.

Create no client secret and upload no certificate. Heplon has no way to use either.

4. Add the service principal to your organisation

In Azure DevOps, open Organization settings → Users → Add users.

In Users or Service Principals, type the application name. Select the entry whose ID matches the application (client) ID from step 2.

The Add new users panel with the application selected in the service principal picker
FieldValue
Access levelBasic
Add to projectsthe projects Heplon may read/write
Azure DevOps GroupsProject Contributors

The panel is the one shown in way 2.

Select Add.

5. Test, select projects, and save

Back in the Heplon panel, fill in the two IDs from step 2.

FieldValue
Directory (tenant) IDfrom step 2
Application (client) IDfrom step 2

Select Test connection. Heplon exchanges its own token for an Entra token for your application and lists the projects that application can read. Nothing is stored yet.

A successful test with the project list below it and one project ticked

Select at least one project and save. Heplon verifies the identity and every selected project again before it writes the connector, so a revocation between the check and the save is caught.

Azure DevOps is now connected to Heplon.

If the check fails

MessageWhat to do
Azure DevOps refused the personal access tokenThe token expired, or it lacks Code: Read and Build: Read. Create a new one.
Microsoft Entra refused Heplon's federated credentialCheck the directory (tenant) ID. In way 3, also compare the issuer, subject, and audience on the federated credential with the values in the panel, character by character, and check the application (client) ID.
The application authenticated but cannot read that organisationRepeat the "add the service principal" step. The identity is missing from the organisation or from every project.
Heplon could not reach its own workload identity providerA Heplon-side outage. Retry, and report it if it persists.
That organisation is not the one this installation was verified againstThe organisation URL does not match the one already verified for this application. Use the verified organisation, or create a separate connector.