Skip to main content

Azure Devops

The Azure Devops scanner 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
spec:
azureDevops:
- organization: <Org Name>
personalAccessToken:
valueFrom:
secretKeyRef:
name: ado-credentials
key: TOKEN
projects:
- <Project Name> # leave empty to select all projects
pipelines:
- <Pipeline Name> # leave empty to select all pipelines
type: Release # the change type the pipeline produces

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
propertiesCustom templatable properties for the scraped config items.[]ConfigProperty
transformField to transform resultTransform
tagsSet custom tags on the scraped config itemsmap[string]string
note

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

Transform

FieldDescriptionSchemeRequired
gotemplateGo template to transform the scraped config itemstring
javascriptJavascript to transform the scraped config itemstring
jsonpathSpecify JSONPathjsonpath
exprSpecify Cel expressioncel-expression
changesApply transformation on the scraped changes[]Changes
excludeFields to remove from the config, useful for removing sensitive data and fields that change often without a material impact i.e. Last Scraped Time[]Exclude
maskSpecify configurations to replace sensitive fields with hash functions or static string.[]Mask
relationshipForm relationships between config items using selectors[]RelationshipConfig
info

Both the go template and javascript receive ScrapeResult as the template variable.