Add deterministic quality gate outcomes
This commit is contained in:
parent
7851eae42f
commit
83d5044ff4
11 changed files with 449 additions and 18 deletions
|
|
@ -4,6 +4,10 @@ from collections.abc import Sequence
|
|||
from dataclasses import asdict, replace
|
||||
from typing import Any
|
||||
|
||||
from repo_registry.acceptance import (
|
||||
blocking_quality_gate_outcomes,
|
||||
evaluate_candidate_capability_quality,
|
||||
)
|
||||
from repo_registry.core.models import (
|
||||
AbilitySummary,
|
||||
AnalysisRunDiff,
|
||||
|
|
@ -609,6 +613,13 @@ class RegistryService:
|
|||
self,
|
||||
capability: CandidateCapability,
|
||||
) -> tuple[bool, str]:
|
||||
gate_outcomes = evaluate_candidate_capability_quality(capability)
|
||||
blocking_outcomes = blocking_quality_gate_outcomes(gate_outcomes)
|
||||
if blocking_outcomes:
|
||||
criteria = ", ".join(
|
||||
sorted({outcome.criterion_id for outcome in blocking_outcomes})
|
||||
)
|
||||
return False, f"quality gates require review ({criteria})"
|
||||
has_source_refs = bool(capability.source_refs) or any(
|
||||
feature.source_refs for feature in capability.features
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue