feat: add auto-fetch for missing dependencies from upstream registries
Add auto_fetch parameter to dependency resolution endpoint that fetches missing dependencies from upstream registries (PyPI) when resolving. - Add RegistryClient abstraction with PyPIRegistryClient implementation - Extract fetch_and_cache_pypi_package() for reuse - Add resolve_dependencies_with_fetch() async function - Extend MissingDependency schema with fetch_attempted/fetch_error - Add fetched list to DependencyResolutionResponse - Add auto_fetch_max_depth config setting (default: 3) - Remove Usage section from Package page UI - Add 6 integration tests for auto-fetch functionality
This commit is contained in:
@@ -892,6 +892,8 @@ class MissingDependency(BaseModel):
|
||||
package: str
|
||||
constraint: Optional[str] = None
|
||||
required_by: Optional[str] = None
|
||||
fetch_attempted: bool = False # True if auto-fetch was attempted
|
||||
fetch_error: Optional[str] = None # Error message if fetch failed
|
||||
|
||||
|
||||
class DependencyResolutionResponse(BaseModel):
|
||||
@@ -899,6 +901,7 @@ class DependencyResolutionResponse(BaseModel):
|
||||
requested: Dict[str, str] # project, package, ref
|
||||
resolved: List[ResolvedArtifact]
|
||||
missing: List[MissingDependency] = []
|
||||
fetched: List[ResolvedArtifact] = [] # Artifacts fetched from upstream during resolution
|
||||
total_size: int
|
||||
artifact_count: int
|
||||
|
||||
|
||||
Reference in New Issue
Block a user