-
Notifications
You must be signed in to change notification settings - Fork 764
Azure DevOps (azuredevops_go): buildNumber not stored/exposed → empty display_title / scope regex misses deploy segment #8887
Description
Search before asking
- I had searched in the issues and found no similar issues.
What happened
Summary
Azure DevOps build runs often encode the meaningful deploy/run title in JSON field buildNumber (and similar), while YAML definition.name only reflects the pipeline name (e.g. frontend-deploy-pipeline).
The azuredevops_go extractor currently maps AzuredevopsBuild.Name only from definition.name and drops buildNumber. Domain conversion (convertApiBuilds) does not set cicd_pipelines.display_title / URL, and cicd_pipeline_commits.display_title / URL are left unset. Consequently DORA task generateDeploymentCommits propagates empty display_title into cicd_deployment_commits.
Transformation rules documented for Azure DevOps (regex against production/colo/mex/etc.) therefore cannot match the same text that appears in raw JSON buildNumber, and environment/deployment typing based on regex over build.Name;tags may also miss identifiers that exist only on buildNumber.
Evidence (code refs)
extractApiBuilds: setsAzuredevopsBuild.Name = Definition.Name, ignores APIbuildNumber.AzuredevopsApiBuildstruct includesBuildNumberJSON field but it is unused for persistence/domain.convertApiBuilds: constructsCiCDPipelineCommitwithoutDisplayTitle/Url;CICDPipelinehas no assignment of display title/build URL either.dora.generateDeploymentCommits: copiesDisplayTitlefromcicd_pipeline_commits.
Version
[fill: DevLake / plugin version]
What do you expect to happen
Expected behaviour
Expose the human-visible run identifier for Azure builds in domain layers (at minimum display_title, and ideally derive scope regex / prod detection from combined string including buildNumber when transformation rules intend to parse run titles).
Example: fallback chain COALESCE(buildNumber, definition.name) for display + regex enrichment, plus persist buildNumber if needed.
How to reproduce
Steps to reproduce
- Pipeline where
definition.namedoes NOT contain env segment-deploy-{col,mex,prod}-butbuildNumberdoes. - Ingest via
azuredevops_go. - Observe
_tool_*/cicd_pipelines/cicd_deployment_commits:display_titleempty vs raw JSON containingbuildNumberwith segment.
Anything else
Additional context
- Scope doc: Azure DevOps transformation rules (regex) — expected to match identifiable deploy strings often present on run naming, not only definition name.
Version
v1.0.2@41c047d
Are you willing to submit PR?
- Yes I am willing to submit a PR!
Code of Conduct
- I agree to follow this project's Code of Conduct