Skip to content

Knowledge Graph: Clarification needed for cross-project dependency mapping use case

Problem to Solve

Clarify how GitLab Duo's Knowledge Graph can support systems with runtime dependencies across multiple repositories.

A prospect has raised questions about whether the Knowledge Graph can capture dependencies between separate projects that communicate at runtime but are independent at the code level. This requires clarification on:

  • Current capabilities and limitations of the Knowledge Graph
  • Planned cross-project support functionality
  • How runtime dependencies (not detectable via AST) can be represented
  • Supported file types for indexing

Providing clear guidance will help customers understand whether GitLab Duo can support their distributed system architectures.

Customer Context / Use Case

A prospect has the following architecture and concerns:

Architecture:

  • Multiple software components run on separate physical boards
  • Each component is managed as a separate GitLab project/codebase
  • Components communicate through serial communication protocols between boards
  • Communication is managed via "communication tables"

Customer's understanding:

  • At code level: Components are completely independent
  • At runtime level: Components are strongly interdependent through serial communication

Customer's concerns/questions:

  1. Abstract Syntax Tree (AST) analysis alone may not capture these runtime dependencies
  2. The Knowledge Graph (currently Phase 1, intra-project only) may not be able to establish relationships between separate projects
  3. They are unsure if/how dependencies across repositories would be understood by the Knowledge Graph

Questions to Address

1. Cross-project support

Will the planned cross-project Knowledge Graph support (future phases) address this use case?

2. Manual relationship definition

For relationships that AST cannot automatically identify, is there (or will there be) a way to manually provide dependency information to help the Knowledge Graph understand connections across repositories?

3. Communication table indexing

If a communication table exists (assuming it is a non-binary file) within a project (GitLab repository), would it be indexed by the Knowledge Graph? Would this allow KG to understand relationships between separate codebases that have strong interdependency at runtime?

4. Supported file types

What file types can the Knowledge Graph index? (Non-binary files only, or are there other limitations?)

Additional Context

  • Architecture: Distributed embedded systems with inter-board communication
  • Customer status: In the information gathering process of their Duo Agent Platform evaluation.
  • Impact: Clarity on this capability will influence adoption decision for distributed/embedded systems customers

cc: @michaelangeloio

Proposed Solution

  • A possible workaround could be to define the relationship between the two separate systems in a markdown file for example, so that it can be indexed by the Knowledge Graph. However, I'm not sure if this would work.