Azure DevOps Inventory .NET Tool – Inventories and documents an Azure DevOps organization by generating a set of Markdown files for the specified organization and saving them to a specified folder.
An example of the generated documentation can be viewed here: AZDOI Example Documentation
dotnet tool install --global AZDOI
dotnet new tool-manifest
dotnet tool install --local AZDOI
Authentication via Azure DevOps can be done either with the use of a Person Access Token (PAT) or Azure Entra Id credentials.
By default it'll try authenticate using the DefaultAzureCredential which tries to authorize in the following order based on your environment.
- EnvironmentCredential
- WorkloadIdentityCredential
- ManagedIdentityCredential
- SharedTokenCacheCredential
- VisualStudioCredential
- VisualStudioCodeCredential
- AzureCliCredential
- AzurePowerShellCredential
- AzureDeveloperCliCredential
- InteractiveBrowserCredential
azdoi inventory repositories <devopsorg> <outputpath> [OPTIONS]
azdoi inventory repositories MyOrg /path/to/output
AZDOI uses the following environment variables for configuration:
Parameter | Description | Default Value |
---|---|---|
--help |
Used to get help with parameters | |
--pat |
Personal Access Token for authentication | Environment variable: AZDOI_PAT |
--entra-id-auth |
Use Entra Id for Azure Devops Autentication | False |
--azure-tenant-id |
Entra Azure Tenant ID for authentication | Environment variable: AZURE_TENANT_ID |
--include-project |
Include specific projects | |
--exclude-project |
Exclude specific projects | |
--include-repository |
Include specific repositories | |
--exclude-repository |
Exclude specific repositories | |
--include-repository-readme |
Include specific repository README | |
--exclude-repository-readme |
Exclude specific repository README | |
--run-in-parallel |
Enable parallel processing of projects | False |
To set environment variables, use:
Windows (PowerShell)
$env:AZDOI_PAT = "your_token_here"
$env:AZURE_TENANT_ID = "your_tenant_id_here"
Linux/macOS (Bash)
export AZDOI_PAT="your_token_here"
export AZURE_TENANT_ID="your_tenant_id_here"