Prerequisites
- An Azure DevOps organization
- Admin access to its organization settings, to add the service principal
- Your Microsoft Entra Tenant ID (Azure Portal → Microsoft Entra ID → Overview)
Connect Azure Repos
1
Add Otto's service principal
- In Azure DevOps, go to Organization Settings → Users → Add users.
- Search for Otto’s service principal by app name or client ID.
- Set its access level to Basic.
- Add it to the projects Otto should review as a Contributor.
2
Connect in Otto
- In Otto, go to Settings → Integrations and click Connect on the Azure Repos card.
- Enter your Azure DevOps organization name (from
https://dev.azure.com/<organization>). - Enter your Tenant ID and click Connect.
3
Choose repositories
Choose which repositories Otto should review. You can prune them later in Settings → Integrations.
Permissions
The service principal needs:
Otto subscribes to these events automatically:
How reviews appear
Otto records its verdict as its reviewer vote (approve, or wait for author) and posts a summary thread and inline threads on every review. It also posts anotto/review status that tells you whether Otto is still reviewing. See Merge gates to require it.
Troubleshooting
"Failed to validate access"
"Failed to validate access"
The service principal isn’t in your Azure DevOps organization or lacks
access. Go to Organization Settings → Users → Add users, add Otto’s
service principal, and grant it Basic access.
"Tenant ID not found" or a token error
"Tenant ID not found" or a token error
The Tenant ID is probably wrong. Copy it again from Microsoft Entra ID →
Overview in the Azure Portal.
Otto doesn't react to pull requests
Otto doesn't react to pull requests
Otto creates webhook subscriptions when you connect. If that failed, Otto
still connects but receives no PR events. Disconnect and reconnect the
integration, or contact support.
