Overview
This guide covers how to add the generated public SSH key to Azure DevOps Repos for repository access.Before you start: Create your Git integration first by following the integration form instructions. You’ll need the public SSH key from that integration.
Prerequisites
- Access to Azure DevOps
- Read permissions on the repository you want to integrate
- Public SSH key from your Git integration
- A service account or user account to add the SSH key to
⏱️ Estimated time: 10 minutes
IP Whitelisting (If Required)
If your Azure DevOps organization uses IP restrictions, add the Coalesce Quality egress IP addresses for your region. See IP Whitelist for the complete list. For instructions on configuring IP restrictions in Azure DevOps, see Azure DevOps’ guide on IP address restrictions.Setting Up SSH Access
Step 1: Create or Use a Service Account
- Create a dedicated service account (recommended) or use an existing account
- Grant the account Read permissions on the repository:
- Navigate to Project Settings > Repositories
- Select your repository
- Go to Security tab
- Add the service account with Read permission only
Using a dedicated service account makes it easier to audit and revoke access if needed.
Step 2: Add SSH Public Key
- Sign in to Azure DevOps with the service account
- Click on your User settings icon (top right)
- Select SSH public keys
- Click + New Key
- Configure the SSH key:
- Name: Enter a descriptive name (e.g.,
Coalesce Quality Integration) - Public Key Data: Paste the complete public SSH key from your integration
- Name: Enter a descriptive name (e.g.,
- Click Add
Step 3: Verify Repository Access
Ensure the service account has access to the specific repository:- Navigate to Project Settings > Repositories
- Select your repository
- Go to Security tab
- Verify the service account is listed with Read permissions
Repository URL Format
When configuring the integration, use the Azure DevOps SSH URL format: Format:git@ssh.dev.azure.com:v3/organization/project/repository
Example: git@ssh.dev.azure.com:v3/mycompany/DataPlatform/analytics-repo
Commit URL Format
Coalesce Quality detects the commit URL for Azure DevOps automatically. Set Commit URL format in the integration form only if commit links open the wrong page. Write the full URL of your repository and use only the{hash} placeholder:
https://dev.azure.com/<organization>/<project>/_git/<repository>/commit/{hash}
Example: https://dev.azure.com/mycompany/DataPlatform/_git/analytics-repo/commit/{hash}
Finding Your Repository URL
To find your repository’s SSH URL:- Go to your repository in Azure DevOps
- Click Clone button (top right)
- Select SSH tab
- Copy the URL (it will be in the format above)
Troubleshooting
SSH key not working
- Verify the complete public key was copied (including the
ssh-rsaorssh-ed25519prefix) - Ensure the SSH key was added to the correct user/service account
- Confirm the account has Read permissions on the repository
Connection refused
- Check that your organization’s IP restrictions (if configured) include the Coalesce Quality egress IPs
- Verify the repository SSH URL uses the correct format:
git@ssh.dev.azure.com:v3/org/project/repo - Ensure the URL has
v3in the path (required for Azure DevOps Git)
Permission denied
- Verify the service account has explicit Read permissions on the repository
- Check that the account is not disabled or expired
- Ensure the SSH key is added to the same account that has repository access
SSH URL format issues
- Azure DevOps requires a specific SSH URL format:
git@ssh.dev.azure.com:v3/org/project/repo - Do not use HTTPS URLs - only SSH URLs are supported
- The
v3in the path is required - Organization, project, and repository names are case-sensitive
Security Best Practices
- Use a dedicated service account for the integration
- Grant Read permissions only - write access is never needed
- Regularly audit access - Review service account permissions periodically
- Enable IP restrictions - Limit access to the Coalesce Quality egress IPs
- Monitor access logs - Check for unexpected authentication attempts