first usable curator UI

This commit is contained in:
2026-04-25 23:04:15 +02:00
parent 8f94c38309
commit aa18dfc8f2
10 changed files with 677 additions and 10 deletions

View File

@@ -13,6 +13,7 @@ from repo_registry.core.models import (
)
from repo_registry.candidate_graph.generator import CandidateGraphGenerator
from repo_registry.repo_ingestion.git import GitIngestionService
from repo_registry.repo_ingestion.metadata import RepositoryMetadataExtractor
from repo_registry.repo_scanning.scanner import DeterministicScanner
from repo_registry.storage.sqlite import RegistryStore
@@ -28,20 +29,27 @@ class RegistryService:
self.store = store
self.scanner = DeterministicScanner()
self.ingestion = ingestion or GitIngestionService()
self.metadata_extractor = RepositoryMetadataExtractor()
self.candidate_generator = CandidateGraphGenerator()
def register_repository(
self,
*,
name: str,
url: str,
name: str | None = None,
description: str | None = None,
branch: str = "main",
) -> Repository:
if name is None or description is None:
checkout = self.ingestion.resolve(url, branch=branch)
metadata = self.metadata_extractor.extract(checkout.source_path, url)
else:
metadata = None
return self.store.create_repository(
name=name,
name=name or (metadata.name if metadata is not None else "repository"),
url=url,
description=description,
description=description
or (metadata.description if metadata is not None else None),
branch=branch,
)