feat: cross-repo dependency graph builder (#93) #180

Closed
Rockachopa wants to merge 0 commits from feat/93-dependency-graph into main
Owner

Closes #93

Changes

Added scripts/dependency_graph.py — scans repos for import/reference patterns and builds a directed dependency graph.

Features

  • Scans Python, JS, Go, YAML, JSON, Shell, Dockerfile for cross-repo references
  • Builds directed graph: repo → depends_on[]
  • Detects circular dependencies via DFS
  • Outputs JSON, DOT (Graphviz), or Mermaid format

Usage

# Scan a directory of repos
python3 scripts/dependency_graph.py /path/to/repos/ --format json

# Specific repos
python3 scripts/dependency_graph.py --repos hermes-agent,timmy-config,fleet-ops

# Generate DOT for Graphviz
python3 scripts/dependency_graph.py /path/to/repos/ --format dot -o deps.dot
dot -Tpng deps.dot -o deps.png

# Generate Mermaid
python3 scripts/dependency_graph.py /path/to/repos/ --format mermaid

# Check for cycles only
python3 scripts/dependency_graph.py /path/to/repos/ --cycles-only
Closes #93 ## Changes Added `scripts/dependency_graph.py` — scans repos for import/reference patterns and builds a directed dependency graph. ## Features - Scans Python, JS, Go, YAML, JSON, Shell, Dockerfile for cross-repo references - Builds directed graph: repo → depends_on[] - Detects circular dependencies via DFS - Outputs JSON, DOT (Graphviz), or Mermaid format ## Usage ```bash # Scan a directory of repos python3 scripts/dependency_graph.py /path/to/repos/ --format json # Specific repos python3 scripts/dependency_graph.py --repos hermes-agent,timmy-config,fleet-ops # Generate DOT for Graphviz python3 scripts/dependency_graph.py /path/to/repos/ --format dot -o deps.dot dot -Tpng deps.dot -o deps.png # Generate Mermaid python3 scripts/dependency_graph.py /path/to/repos/ --format mermaid # Check for cycles only python3 scripts/dependency_graph.py /path/to/repos/ --cycles-only ```
Rockachopa added 1 commit 2026-04-15 03:44:14 +00:00
Timmy approved these changes 2026-04-15 04:13:19 +00:00
Timmy left a comment
Owner

Feature implementation reviewed - looks solid.

Scope: 1 file(s) changed (249+ / 0-)

Suggestions

  • Consider using specific exception types instead of bare except: clauses.
  • Feature PR without tests. Consider adding test coverage.
  • Found 6 print/console.log statements - verify these are not leftover debugging.
Feature implementation reviewed - looks solid. **Scope**: 1 file(s) changed (249+ / 0-) ### Suggestions - Consider using specific exception types instead of bare `except:` clauses. - Feature PR without tests. Consider adding test coverage. - Found 6 print/console.log statements - verify these are not leftover debugging.
Author
Owner

Closing as this PR cannot be merged (branch protection or conflicts). Please reopen if needed.

Closing as this PR cannot be merged (branch protection or conflicts). Please reopen if needed.
Rockachopa closed this pull request 2026-04-16 01:45:04 +00:00
Author
Owner

Closing: unmergeable due to conflicts or branch protection. Reopen if needed.

Closing: unmergeable due to conflicts or branch protection. Reopen if needed.
Author
Owner

Closing: unmergeable due to conflicts or branch protection. Reopen if needed.

Closing: unmergeable due to conflicts or branch protection. Reopen if needed.
Author
Owner

Closing: unmergeable due to conflicts or branch protection. Reopen if needed.

Closing: unmergeable due to conflicts or branch protection. Reopen if needed.
Rockachopa reopened this pull request 2026-04-16 02:03:58 +00:00
Rockachopa closed this pull request 2026-04-16 02:14:22 +00:00
Author
Owner

Closed — BLOCKED: syntax error (unescaped double-quotes inside double-quoted string literals, lines 152-153). Fix and resubmit.

Closed — BLOCKED: syntax error (unescaped double-quotes inside double-quoted string literals, lines 152-153). Fix and resubmit.

Pull request closed

Sign in to join this conversation.