specification: FinOps Framework specificationVersion: '1.0' schema: https://www.finops.org/framework/ alignedWith: framework: FinOps Foundation Framework frameworkUrl: https://www.finops.org/framework/ dataSpec: FOCUS dataSpecVersion: '1.3' dataSpecUrl: https://focus.finops.org/focus-specification/v1-3/ provider: Azure Repos providerId: microsoft-azure-repo publisherName: Microsoft Corporation serviceCategory: Developer Tools / Source Control created: '2026-05-04' # Provenance stamped 2026-08-11: this artifact was written by the API Evangelist # bulk sweep dated 2026-05-04, not harvested from the provider. See roadmap#35. method: generated modified: '2026-05-05' reconciled: true tags: - DevOps - Git - Repositories - Source Control - Version Control - FinOps - FOCUS description: FOCUS-aligned FinOps for Azure Repos — billed per Basic-access user per month ($6) above the free 5-user grant, plus optional GitHub Advanced Security for Azure DevOps per-active-committer add-on. Largest waste pattern is paying for inactive Basic users. sources: - https://azure.microsoft.com/pricing/details/devops/azure-devops-services/ - https://learn.microsoft.com/en-us/azure/devops/organizations/billing/buy-basic-access-add-users - https://learn.microsoft.com/en-us/azure/cost-management-billing/ billingModel: pricingCategory: Subscription (per Seat) billingFrequency: Monthly billingCurrency: USD (settlement varies) chargeCategories: - Usage - Purchase - Tax - Adjustment - Credit chargeFrequency: Recurring focusColumns: ServiceName: Azure Repos ServiceCategory: Developer Tools ProviderName: Microsoft Azure DevOps PublisherName: Microsoft Corporation InvoiceIssuerName: Microsoft Corporation PricingCategory: Subscription PricingUnit: user-month BillingCurrency: USD ChargeCategory: Usage meters: - name: basic_users description: Users with Basic access level (paid above the first 5). unit: user-month aggregation: max dimensions: - organization - team - cost_center - name: stakeholder_users description: Free Stakeholder users (informational; not billed). unit: user-month aggregation: max dimensions: - organization - name: ghas_committers description: Active committers triggering GitHub Advanced Security charges. unit: committer-month aggregation: max dimensions: - repository - organization - name: storage_gb description: Repository storage consumed (informational; not directly billed under Basic). unit: GB aggregation: max dimensions: - repository principles: - name: Visibility description: Use Organization Settings > Users + Last Access to find inactive Basic users. Pull data via the Member Entitlement Management REST API to drive a periodic audit. Cost Management line items appear as 'Azure DevOps - Basic Users' on the Azure invoice. - name: Allocation description: Tag users by team via Azure DevOps groups; multi-org billing centralizes spend across orgs to one Azure subscription. Use group rules to assign access by Entra ID group membership. - name: Optimization description: Audit Last Access date — users not signed in for 30+ days should be downgraded to Stakeholder (free). Avoid double-paying VS subscribers (auto-detected). Use multi-org billing so contractors with multi-org access pay once. Disable GHAS on archived/abandoned repos. - name: Accountability description: Project Collection Administrators set the default access level. Establish a monthly inactive-user review and a budget alert at the Azure subscription level. maintainers: - FN: Kin Lane email: kin@apievangelist.com url: https://azure.microsoft.com/services/devops/repos/