| 468 | |
| 469 | @dataclass |
| 470 | class RepoDiffScope: |
| 471 | source_path: str |
| 472 | workspace_subdir: str | None |
| 473 | base_ref: str |
| 474 | merge_base: str |
| 475 | added_files: list[str] |
| 476 | modified_files: list[str] |
| 477 | renamed_files: list[dict[str, Any]] |
| 478 | deleted_files: list[str] |
| 479 | analyzable_files: list[str] |
| 480 | truncated_sections: dict[str, bool] = field(default_factory=dict) |
| 481 | |
| 482 | def to_metadata(self) -> dict[str, Any]: |
| 483 | return { |
| 484 | "source_path": self.source_path, |
| 485 | "workspace_subdir": self.workspace_subdir, |
| 486 | "base_ref": self.base_ref, |
| 487 | "merge_base": self.merge_base, |
| 488 | "added_files": self.added_files, |
| 489 | "modified_files": self.modified_files, |
| 490 | "renamed_files": self.renamed_files, |
| 491 | "deleted_files": self.deleted_files, |
| 492 | "analyzable_files": self.analyzable_files, |
| 493 | "added_files_count": len(self.added_files), |
| 494 | "modified_files_count": len(self.modified_files), |
| 495 | "renamed_files_count": len(self.renamed_files), |
| 496 | "deleted_files_count": len(self.deleted_files), |
| 497 | "analyzable_files_count": len(self.analyzable_files), |
| 498 | "truncated_sections": self.truncated_sections, |
| 499 | } |
| 500 | |
| 501 | |
| 502 | @dataclass |
no outgoing calls
no test coverage detected