diff --git a/src/repo_registry/core/service.py b/src/repo_registry/core/service.py index 5c0ab8c..2b4c955 100644 --- a/src/repo_registry/core/service.py +++ b/src/repo_registry/core/service.py @@ -120,6 +120,8 @@ class RegistryService: repository_id: int, *, source_path: str | None = None, + access_username: str | None = None, + access_password: str | None = None, ) -> ScanSummary: repository = self.store.get_repository(repository_id) run = self.store.create_analysis_run(repository_id) @@ -132,7 +134,12 @@ class RegistryService: ) try: if source_path is None: - checkout = self.ingestion.resolve(repository.url, branch=repository.branch) + checkout = self.ingestion.resolve( + repository.url, + branch=repository.branch, + access_username=access_username, + access_password=access_password, + ) scan_source = checkout.source_path else: scan_source = source_path diff --git a/src/repo_registry/web_api/app.py b/src/repo_registry/web_api/app.py index 9a752d2..0908c79 100644 --- a/src/repo_registry/web_api/app.py +++ b/src/repo_registry/web_api/app.py @@ -245,6 +245,8 @@ def create_analysis_run( summary = service.analyze_repository( repository_id, source_path=payload.source_path, + access_username=payload.access_username, + access_password=payload.access_password, ) except NotFoundError as exc: raise HTTPException(status_code=404, detail=str(exc)) from exc diff --git a/src/repo_registry/web_api/schemas.py b/src/repo_registry/web_api/schemas.py index 6d8e143..03d65c1 100644 --- a/src/repo_registry/web_api/schemas.py +++ b/src/repo_registry/web_api/schemas.py @@ -202,12 +202,18 @@ class EvidenceUpdate(BaseModel): class AnalysisRunCreate(BaseModel): source_path: str | None = None + access_username: str | None = None + access_password: str | None = Field(default=None, repr=False) model_config = { "json_schema_extra": { "examples": [ {}, {"source_path": "/path/to/local/repository"}, + { + "access_username": "git-user", + "access_password": "access-token", + }, ] } } diff --git a/src/repo_registry/web_ui/views.py b/src/repo_registry/web_ui/views.py index 6449aad..0776007 100644 --- a/src/repo_registry/web_ui/views.py +++ b/src/repo_registry/web_ui/views.py @@ -480,7 +480,12 @@ def repository_detail(