feat(release): guide selective gate remediation
This commit is contained in:
@@ -186,6 +186,18 @@ class ModuleContractSnapshot:
|
||||
requires_interfaces: tuple[InterfaceRequirementSnapshot, ...] = ()
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class ReleaseGateFinding:
|
||||
code: str
|
||||
severity: str
|
||||
message: str
|
||||
remediation: str
|
||||
repo: str | None = None
|
||||
source: str | None = None
|
||||
expected: str | None = None
|
||||
actual: str | None = None
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class ReleasePlanUnit:
|
||||
repo: str
|
||||
@@ -200,6 +212,8 @@ class ReleasePlanUnit:
|
||||
warnings: tuple[str, ...] = ()
|
||||
provides_interfaces: tuple[InterfaceProviderSnapshot, ...] = ()
|
||||
requires_interfaces: tuple[InterfaceRequirementSnapshot, ...] = ()
|
||||
gate_findings: tuple[ReleaseGateFinding, ...] = ()
|
||||
source_preflight_ready: bool = False
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
@@ -224,6 +238,15 @@ class ReleasePlanStep:
|
||||
status: str = "planned"
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class ReleaseRecommendedAction:
|
||||
id: str
|
||||
title: str
|
||||
detail: str
|
||||
remediation: str
|
||||
repo: str | None = None
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class SelectiveReleasePlan:
|
||||
generated_at: str
|
||||
@@ -233,6 +256,9 @@ class SelectiveReleasePlan:
|
||||
compatibility: tuple[CompatibilityIssue, ...]
|
||||
dry_run_steps: tuple[ReleasePlanStep, ...]
|
||||
notes: tuple[str, ...] = ()
|
||||
gate_findings: tuple[ReleaseGateFinding, ...] = ()
|
||||
recommended_action: ReleaseRecommendedAction | None = None
|
||||
source_preflight_ready: bool = False
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
|
||||
Reference in New Issue
Block a user