generated from coulomb/repo-seed
Add quality gate override flow
This commit is contained in:
@@ -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"],
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user