Skip to content

What is Dependency Graph?

Last updated

A dependency graph is a directed graph representing the import and call relationships between modules in a codebase. Nodes are files, modules, or packages; edges represent that one node depends on another. It's the map that shows how changes propagate through a system.

Why does dependency graph matter for engineering teams?

Without a dependency graph, understanding the impact of a change requires manual tracing through imports and function calls, which is slow and easy to get wrong. A dependency graph makes that lookup fast and repeatable, which is what architecture-aware review and blast radius analysis depend on.

How does Argus handle dependency graph?

Argus stores a file and symbol graph per repository, built from the default branch. Go is parsed with go/ast and other supported languages with tree-sitter; TypeScript/JavaScript, Python, Java, Rust, and C# fall back to regex when tree-sitter returns nothing. Calls and imports are resolved by name. The graph refreshes after a push or merge to the default branch and at least every 14 days, not on each review, so code a PR adds has no dependents until it merges. Reviews use it for the dependents list in the prompt, choke-point flags, and PR description diagrams; the dashboard's Memory → Files view shows it as a file list and a file-level map.

Run Argus on your own repositories

Open source under AGPL-3.0, with no paid tier and no feature gating.

Self-hosted only: Docker Compose or Fly.io, Postgres with pgvector, a GitHub App and a Clerk app you create, your model keys and an embeddings endpoint.