Skip to content

Evolve transitive dep#2

Merged
pranavkp71 merged 9 commits into
mainfrom
evolve-transitive-dep
May 25, 2026
Merged

Evolve transitive dep#2
pranavkp71 merged 9 commits into
mainfrom
evolve-transitive-dep

Conversation

@pranavkp71

Copy link
Copy Markdown
Owner

Description

This PR implements the First MVP of Transitive Dependency Analysis for DepWatch. It enables recursive scanning of nested dependencies via PyPI metadata, allowing users to see the full risk profile of their project's dependency tree.

Key Changes:

  • Integrated a new PyPI JSON API client for resolving requires_dist.
  • Implemented a BFS-based recursive resolver with cycle detection and depth limiting.
  • Added --transitive / -t and --depth / -d flags to the CLI.
  • Enhanced the CLI output to display dependency paths (e.g., fastapi → pydantic → pkg) and [direct] vs [transitive] labels.
  • Updated the FastAPI backend to support transitive analysis in the /scan endpoint.
  • Comprehensive unit tests added for the resolver logic.

Type of Change

  • New feature
  • Documentation update

Checklist

  • Tests pass (pytest)
  • Linting passes (ruff check .)
  • Commit messages follow conventional format
  • Documentation updated (if applicable)

@pranavkp71 pranavkp71 merged commit 51dc65c into main May 25, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant