Skip to main content

Azure Devops

The Azure Devops scraper will create a new configuration item for each unique pipeline (combination of name and variables).

Each time the pipeline is run it will create a change for that configuration item.

azure-devops-scraper.yaml
apiVersion: configs.flanksource.com/v1
kind: ScrapeConfig
metadata:
name: azure-devops-scraper
spec:
azureDevops:
- connection: connection://Azure Devops/Flanksource
projects:
- Demo1
pipelines:
- "adhoc-release"
- "git automation"

Scraper

FieldDescriptionSchemeRequired
logLevelSpecify the level of logging.string
scheduleSpecify the interval to scrape in cron format. Defaults to every 60 minutes.string
retentionSettings for retaining changes, analysis and scraped itemsRetention
azureDevopsSpecifies the list of Azure DevOps configurations to scrape.[]AzureDevops

AzureDevops

FieldDescriptionSchemeRequired
connectionConnection to use for Azure DevOps credentialstring
organizationSpecifies the name of the Azure DevOps organization to scrapestring
personalAccessTokenSpecifies the personal access token to authenticate with Azure DevOps[]EnvVar
projectsSpecifies the Azure DevOps projects to scrape[]stringtrue
pipelinesSpecifies the Azure DevOps pipelines to scrape[]stringtrue
permissionsEnable fetching pipeline permissionsPermissions
maxAgeLimit pipeline run scraping to runs within this age (e.g. 7d)string
releasesFilter classic release pipelines by name or glob[]string
repositoriesFilter Git repositories to scrape by name or glob[]string
auditLogFetch organization-level audit log entries as config changesAuditLog
propertiesCustom templatable properties for the scraped config items.[]ConfigProperty
transformField to transform resultTransform
tagsSet custom tags on the scraped config itemsmap[string]string

maxAge defaults to the azuredevops.pipeline.max_age system property, which itself defaults to 7d.

Permissions

FieldDescriptionScheme
enabledEnable fetching pipeline and repository permissionsbool
rateLimitHow often to refresh permissions (e.g. 6h, 24h). Defaults to 24hstring
groupsFetch organization-level group membershipbool
rolesMap role names to permission strings. See Rolesmap[string][]string

Roles

Roles map a role name to a list of permissions, each prefixed with the resource type it applies to — Git, Pipeline or Release. An identity is assigned a role if it has any of the listed permissions for that type.

When left unconfigured, the Viewer, Developer, Admin and Releaser roles are used.

TypePermissions
GitRead, Contribute, ForcePush, CreateBranch, CreateTag, ManageNotes, CreateRepository, DeleteRepository, RenameRepository, ManagePermissions, PolicyExempt
PipelineViewBuilds, EditBuildPipeline, DeleteBuilds, QueueBuilds, StopBuilds, AdministerBuildPermissions
ReleaseViewReleaseDefinition, EditReleaseDefinition, DeleteReleaseDefinition, ManageDeployments, ManageReleaseApprovers, ManageReleases, ViewReleases, CreateReleases, EditReleaseEnvironment, DeleteReleaseEnvironment, AdministerReleasePermissions, DeleteReleases, ManageDefinitionReleaseApprovers
azure-devops-roles.yaml
azureDevops:
- permissions:
enabled: true
groups: true
roles:
Deployer:
- Release:ManageDeployments
- Release:CreateReleases
Maintainer:
- Git:Contribute
- Pipeline:EditBuildPipeline

Audit Log

FieldDescriptionScheme
enabledEnable fetching audit log entriesbool
exclusionsAction id prefixes to exclude e.g. AuditLog.AccessLog[]string
note

Either the connection name or the credentials (organization & personalAccessToken) are required