Add quality gate override flow

This commit is contained in:
2026-05-15 16:30:58 +02:00
parent d4f363af72
commit effea4d0d6
8 changed files with 278 additions and 1 deletions

View File

@@ -65,6 +65,7 @@ from repo_registry.web_api.schemas import (
IdResponse,
ObservedFactResponse,
QualityCriteriaRegistryResponse,
QualityGateOverrideCreate,
RepositoryAbilityMapResponse,
RepositoryComparisonResponse,
RepositoryCreate,
@@ -471,6 +472,29 @@ def list_analysis_run_review_decisions(
raise HTTPException(status_code=404, detail=str(exc)) from exc
@app.post(
"/repos/{repository_id}/analysis-runs/{analysis_run_id}/quality-gate-overrides",
tags=["review"],
response_model=ReviewDecisionResponse,
)
def create_quality_gate_override(
repository_id: int,
analysis_run_id: int,
payload: QualityGateOverrideCreate,
service: RegistryService = Depends(get_service),
) -> dict[str, object]:
try:
return asdict(
service.record_quality_gate_override(
repository_id,
analysis_run_id,
**payload.model_dump(),
)
)
except (NotFoundError, ValueError) as exc:
raise HTTPException(status_code=400, detail=str(exc)) from exc
@app.get(
"/repos/{repository_id}/observed-facts",
tags=["analysis"],

View File

@@ -566,6 +566,14 @@ class QualityCriteriaRegistryResponse(BaseModel):
criteria: list[QualityCriterionResponse]
class QualityGateOverrideCreate(BaseModel):
criterion_id: str
element_type: str
element_id: int
reason: str
notes: str = ""
class ObservedFactResponse(BaseModel):
id: int
repository_id: int