Prerequisites
| Requirement | Details |
|---|---|
| Azure DevOps Organization | An active ADO Services organization (dev.azure.com/{org}) |
| Microsoft Entra ID Tenant | Your ADO organization must be connected to an Entra ID tenant |
| Admin Permissions | Project Collection Administrator or Organization Owner role in ADO, plus User Administrator or Global Administrator in Entra ID |
| Target Repositories | A list of the specific repositories (and branches) you intend to expose to Blitzy |
| Basic Access License | At least one available Basic license seat for the service user |
Permissions
Blitzy requires the following Azure DevOps permissions, scoped to the minimum level needed.| Permission | Access Level | Purpose |
|---|---|---|
| Code (Read) | Read | Analyze your repositories and read source files |
| Code (Write) | Read & Write | Create branches and push generated code |
| Pull Request Threads | Read & Write | Create and manage pull requests |
| Project and Team | Read | List available projects and repositories |
| Work Items | Read | Reference work items in pull requests and branches |
| Build | Read | Monitor CI pipeline status on pull requests |
Permission mapping reference
Permission mapping reference
| Operation | Required Permission | ADO Security Namespace |
|---|---|---|
| Clone repository | Git Repositories: Read | GitRepositories |
| Create branch | Git Repositories: CreateBranch | GitRepositories |
| Push commits | Git Repositories: Contribute | GitRepositories |
| Create pull request | Git Repositories: PullRequestContribute | GitRepositories |
| Read work items | Work Items: Read | WorkItemTracking |
| View build results | Build: Read | Build |
Permission quick reference by level
Permission quick reference by level
| Level | Scope | Permission | Setting |
|---|---|---|---|
| Organization | User Access | Access Level | Basic |
| Project | Security Group | Group | Blitzy Service Access (custom) |
| All Repos (default) | Git repositories | All permissions | Deny |
| Specific Repos | Individual repo | Read, Contribute | Allow |
| Protected Branches | e.g., main | Contribute | Deny |
| Working Branches | e.g., develop | Contribute | Allow |
Create the Service Identity User
Create a dedicated user account in Microsoft Entra ID for the Blitzy integration. This is a non-interactive account - it does not represent a real person.Navigate to Entra ID User Management
https://entra.microsoft.com. Expand Identity, then select Users > All users. Click + New user > Create new user.Configure the service user properties
| Field | Value |
|---|---|
| User principal name | [email protected] (use your organization’s domain) |
| Display name | Blitzy Service Account |
| Password | Auto-generate or set a strong password. Store securely. |
| Account enabled | Yes (checked) |
Add the Service User to Azure DevOps
Open organization user settings
https://dev.azure.com/{YourOrganization}. Click Organization settings (gear icon at the bottom-left), then Users under General.Add the service user
[email protected] and select the account when it appears.Set access level
Select projects
Create a Custom Security Group
To enforce the principle of least privilege, create a custom security group that grants Blitzy only the specific permissions needed.Create the group
Blitzy Service Access and description to Custom security group for Blitzy third-party vendor. Add [email protected] as a member. Click Create.Remove the service user from Contributors
[email protected] and click Remove.Configure Repository-Level Permissions
Restrict Blitzy to specific repositories by denying access at the top level, then explicitly allowing access on individual repos.Deny Access to All Repositories (Default)
- Navigate to Project settings > Repos > Repositories.
- Click the top-level Git repositories node.
- Click the Security tab.
- Click + Add and find the “Blitzy Service Access” group.
- Set all permissions to Deny. Click Save changes.
Allow Access on Specific Repositories
For each repository Blitzy should access, explicitly override the Deny with Allow.- Click the specific repository (e.g., “frontend-app”).
- Click the Security tab, then find or add the “Blitzy Service Access” group.
- Set permissions:
| Permission | Setting |
|---|---|
| Read | Allow |
| Contribute | Allow |
| Force push | Deny |
- Click Save changes. Repeat for each additional repository.
Branch-Level Security and Policies
Configure branch-level security (optional)
Configure branch-level security (optional)
- Navigate to Repos > Branches within the target project.
- Locate the branch (e.g., main), click … (More actions) > Branch security.
- In the Branch security panel, click + Add.
- Search for and select the “Blitzy Service Access” group.
- For protected branches like main, set Contribute to Deny. For working branches like develop, set Contribute to Allow.
- Click Save.
main, it can push to other branches but not main. This is the desired outcome.| Branch | Read | Contribute (Push) | Create Pull Requests |
|---|---|---|---|
main | Allow | Deny | Allow |
develop | Allow | Allow | Allow |
feature/blitzy-* | Allow | Allow | Allow |
release/* | Allow | Deny | Deny |
Set up branch policies (optional)
Set up branch policies (optional)
- Navigate to Project settings > Repos > Repositories > select the target repository.
- Click the Policies tab, then select the branch (e.g.,
main). - Enable the following recommended policies:
- Require a minimum number of reviewers - Set to at least 1 reviewer
- Check for linked work items - Optional but recommended for traceability
- Check for comment resolution - Require all comments resolved before merge
- Build validation - Add a build pipeline that must succeed before PR completion
- Automatically included reviewers - Add your team lead as an auto-reviewer for PRs
- Click Save.
Connect the Blitzy ADO Integration App
Blitzy’s Azure AD app uses OAuth to authenticate. Ensure third-party application access is enabled in your ADO organization settings.Verify OAuth settings
Install the Blitzy Azure AD application
[email protected] to connect.Verification and Testing
After completing the configuration, verify that the setup works correctly and that permissions are properly restricted.| Test | Expected Result |
|---|---|
| Clone allowed repo | Should succeed |
| Clone denied repo | Should fail with 403/TF401019 error |
| Push to allowed branch (develop) | Should succeed |
| Push to protected branch (main) | Should fail with TF402455 error |
Pull request and integration tests
Pull request and integration tests
- Create a pull request from a permitted branch to
main. - Confirm the PR is created successfully.
- Verify that branch policies (required reviewers, build validation) are enforced.
- Log in to the Blitzy platform.
- Create a test project.
- Ensure that this project can only see the allowed repos and branches.
Ongoing Maintenance
- Quarterly reviews - Review Blitzy’s access level, repository permissions, and branch permissions every quarter
- Last access date - Check the Users page in Organization settings to see when the service user last accessed ADO
- Audit logs - Review ADO audit logs regularly (Organization settings > Auditing)
Offboarding Blitzy
Revoke ADO access
Disable the identity
[email protected]).Remove the app
Troubleshooting
Service user not found when adding to ADO
Service user not found when adding to ADO
Clone fails with 401 Unauthorized
Clone fails with 401 Unauthorized
Clone fails with 403 Forbidden
Clone fails with 403 Forbidden
Push fails on an allowed branch
Push fails on an allowed branch
PR cannot be completed
PR cannot be completed
Permission changes not taking effect
Permission changes not taking effect
Security Checklist
Pre-handoff security verification
Pre-handoff security verification
- Dedicated service identity user created in Entra ID (not a personal account)
- Service user added to ADO with Basic access level
- Custom “Blitzy Service Access” security group created
- Service user removed from default Contributors group
- All repositories set to Deny at the top-level for the custom group
- Only authorized repositories have explicit Allow permissions
- Branch-level security configured: protected branches deny push access (optional)
- Branch policies enabled - required reviewers, build validation (optional)
- Third-party OAuth access enabled in Organization policies (if required)
- Clone, push, and PR tests passed for both allowed and denied repos/branches
- Access review schedule established (quarterly)
- Offboarding procedure documented