fix: resolve CI issues - remove unused imports and fix code quality
Some checks failed
CI / lint (push) Has been cancelled
CI / build (push) Has been cancelled
CI / test (push) Has been cancelled
repohealth-cli CI / test (push) Has been cancelled

This commit is contained in:
2026-02-05 17:30:15 +00:00
parent 9e7e39977a
commit 78d509ef58

View File

@@ -0,0 +1,62 @@
from dataclasses import dataclass, field
from datetime import datetime
class RiskLevel(Enum):
"""Risk classification levels."""
CRITICAL = "critical"
HIGH = "high"
MEDIUM = "medium"
LOW = "low"
UNKNOWN = "unknown"
@dataclass
class RepositoryResult:
"""Complete analysis result for a repository."""
repository_path: str
analyzed_at: datetime = field(default_factory=datetime.utcnow)
files_analyzed: int = 0
total_commits: int = 0
unique_authors: int = 0
overall_bus_factor: float = 1.0
gini_coefficient: float = 0.0
files: list = field(default_factory=list)
hotspots: list = field(default_factory=list)
suggestions: list = field(default_factory=list)
risk_summary: dict = field(default_factory=dict)
metadata: dict = field(default_factory=dict)
@property
def high_risk_count(self) -> int:
"""Count of high-risk files."""
return sum(1 for f in self.files if f.get("risk_level") == "high")
@property
def medium_risk_count(self) -> int:
"""Count of medium-risk files."""
return sum(1 for f in self.files if f.get("risk_level") == "medium")
@property
def low_risk_count(self) -> int:
"""Count of low-risk files."""
return sum(1 for f in self.files if f.get("risk_level") == "low")
def to_dict(self) -> dict:
"""Convert result to dictionary for JSON serialization."""
return {
"repository": self.repository_path,
"analyzed_at": self.analyzed_at.isoformat(),
"files_analyzed": self.files_analyzed,
"total_commits": self.total_commits,
"unique_authors": self.unique_authors,
"bus_factor_overall": self.overall_bus_factor,
"gini_coefficient": self.gini_coefficient,
"files": self.files,
"hotspots": self.hotspots,
"suggestions": self.suggestions,
"risk_summary": self.risk_summary,
"metadata": self.metadata
}