Skip to content

[Bug][Azure DevOps] project_mapping missing repos scope when entities empty or CROSS-only #8749

Closed

Description

@spiffaz

Search before asking

  • I had searched in the issues and found no similar issues.

What happened

In backend/plugins/azuredevops_go/api/blueprint_v200.go, the makeScopeV200 function has two issues:

  1. It does not default scopeConfig.Entities to plugin.DOMAIN_TYPES when entities are empty. When a blueprint is created without specifying entities (common in the UI), no scopes are generated and project_mapping ends up with no rows.

  2. The repo scope condition checks for DOMAIN_TYPE_CODE_REVIEW and DOMAIN_TYPE_CODE but not DOMAIN_TYPE_CROSS. This means that when only CROSS is selected, the repo scope is missing from project_mapping, which breaks DORA metrics that depend on the cross-domain join.

These are the same bugs that were fixed for GitLab in #8743 (which fixed #8742).

What do you expect to happen

  1. When scopeConfig.Entities is empty, it should default to plugin.DOMAIN_TYPES so that all domain scopes are created in project_mapping.
  2. The repo scope condition should also check for DOMAIN_TYPE_CROSS, consistent with GitLab and Bitbucket.

How to reproduce

  1. Create an Azure DevOps connection and configure a blueprint without specifying entities (leave entities empty)
  2. Run the blueprint
  3. Check the project_mapping table - no rows are created for this scope

Or:

  1. Configure an Azure DevOps blueprint with only CROSS entity
  2. Run the blueprint
  3. Check project_mapping - the repo scope is missing

Anything else

Follow-up from #8742 / #8743. The fix applies the same pattern used in GitLab.

Version

Latest main branch

Are you willing to submit a PR?

  • Yes I am willing to submit a PR!

Activity

  1. dosubot commented on Mar 3, 2026

    @dosubot

    Thanks for filing this! Your analysis is correct — the Azure DevOps makeScopeV200 function in blueprint_v200.go is missing the same two fixes that were applied to GitLab in PR #8743.

    The fix should follow the same pattern:

    1. Default empty scopeConfig.Entities to plugin.DOMAIN_TYPES at the start of the function
    2. Add plugin.DOMAIN_TYPE_CROSS to the repo scope conditions (for both ADO and non-ADO repository checks)

    Note: Issue #8742 also identified Bitbucket as having the same problem, so you may want to check if that needs a similar fix as well.

    To reply, just mention @dosu.


    Docs are dead. Just use Dosu.

    Leave Feedback Ask Dosu about incubator-devlake Share Dosu with your team

  2. added
    component/pluginsThis issue or PR relates to plugins
    priority/highThis issue is very important
    severity/p1This bug affects functionality or significantly affect ux
    type/bugThis issue is a bug
    on Mar 3, 2026
  3. added a commit that references this issue on Mar 3, 2026
    9588c2d
  4. added a commit that references this issue on Mar 5, 2026
    9fc9b5b
  5. added a commit that references this issue on Mar 9, 2026
    da8a4f5
  6. added a commit that references this issue on Mar 12, 2026
    611556c
  7. added 2 commits that reference this issue on Mar 26, 2026
    f94bbbd
    5f8c575
  8. added 2 commits that reference this issue on Apr 9, 2026
    4f7b4b3
    cefb226
  9. added a commit that references this issue on Apr 30, 2026
    e3b9104
  10. added a commit that references this issue on Jun 5, 2026
    8a3af1f
  11. added a commit that references this issue on Jul 21, 2026
    c05201d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions