# Promotion Gate Registry with Built-in Gates (Freeze Window, Manual, Policy, Approval, Schedule, Dependency) ## Module ReleaseOrchestrator ## Status VERIFIED ## Description Gate registry managing 8 built-in promotion gate types. This sprint implements 6: freeze-window-gate, manual-gate, policy-gate (OPA/Rego), approval-gate (N of M), schedule-gate (deployment windows), and dependency-gate (upstream health checks). Supports plugin gates via IGateProviderCapability. ## Implementation Details - **Modules**: `src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/` - **Key Classes**: - `GateRegistry` (`src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/GateRegistry.cs`) - manages gate provider registration and lookup - `FreezeWindowGate` (`src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/FreezeWindowGate.cs`) - blocks promotions during freeze windows - `ManualGate` (`src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/ManualGate.cs`) - requires manual human approval - `PolicyGate` (`src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/PolicyGate.cs`) - OPA/Rego policy evaluation - `ApprovalGate` (`src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/ApprovalGate.cs`) - N-of-M approval requirements - `ScheduleGate` (`src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/ScheduleGate.cs`) - deployment window scheduling - `DependencyGate` (`src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/DependencyGate.cs`) - upstream health check dependencies - `SecurityGate` (`src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/Security/SecurityGate.cs`) - security scan gate - **Interfaces**: `IGateProvider`, `IGateRegistry`, `IGateProviderCapability` (plugin extension) - **Source**: SPRINT_20260110_106_003_PROMOT_gate_registry.md ## E2E Test Plan - [ ] Register all built-in gates with `GateRegistry` and verify they are discoverable - [ ] Evaluate `FreezeWindowGate` during a freeze window and verify it blocks the promotion - [ ] Evaluate `ManualGate` and verify it requires human interaction to proceed - [ ] Evaluate `PolicyGate` with a passing and failing OPA/Rego policy - [ ] Evaluate `ApprovalGate` with N-of-M approvers and verify threshold enforcement - [ ] Evaluate `ScheduleGate` inside and outside a deployment window - [ ] Evaluate `DependencyGate` with healthy and unhealthy upstream dependencies - [ ] Register a plugin gate via `IGateProviderCapability` and verify it integrates with the registry ## Verification - **Verified**: 2026-02-13T21:00:00Z - **Method**: Tier 2d integration tests - **Result**: PASS