Skip to content

Azure DevOps (azuredevops_go): buildNumber not stored/exposed → empty display_title / scope regex misses deploy segment #8887

@javiortizmol

Description

@javiortizmol

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: sets AzuredevopsBuild.Name = Definition.Name, ignores API buildNumber.
  • AzuredevopsApiBuild struct includes BuildNumber JSON field but it is unused for persistence/domain.
  • convertApiBuilds: constructs CiCDPipelineCommit without DisplayTitle / Url; CICDPipeline has no assignment of display title/build URL either.
  • dora.generateDeploymentCommits: copies DisplayTitle from cicd_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

  1. Pipeline where definition.name does NOT contain env segment -deploy-{col,mex,prod}- but buildNumber does.
  2. Ingest via azuredevops_go.
  3. Observe _tool_*/cicd_pipelines/ cicd_deployment_commits: display_title empty vs raw JSON containing buildNumber with 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    component/pluginsThis issue or PR relates to pluginspriority/highThis issue is very importantseverity/p1This bug affects functionality or significantly affect uxtype/bugThis issue is a bug

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions