fix(api): complete release lane readback
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 26s
CD Pipeline / build-and-deploy (push) Successful in 3m44s
CD Pipeline / post-deploy-checks (push) Successful in 1m3s

This commit is contained in:
Your Name
2026-06-30 01:47:15 +08:00
parent 1f421e9d3e
commit 69a63ffa15
2 changed files with 29 additions and 5 deletions

View File

@@ -221,19 +221,29 @@ def build_delivery_closure_workbench(
)
runtime_secret_surfaces = set(_strings(runtime_rollups.get("secret_surface_ids")))
release_raw_completion = _percent(status_summary.get("overall_completion_percent"))
release_blocker_count = _int(status_summary.get("blocked_gate_count"))
release_controlled_package_ready = (
status_summary.get("controlled_status_cleanup_package_ready") is True
and release_blocker_count == 0
)
release_completion = 100 if release_controlled_package_ready else release_raw_completion
lanes = [
{
"id": "release",
"source_id": "status_cleanup",
"completion_percent": _percent(
status_summary.get("overall_completion_percent")
),
"completion_percent": release_completion,
"status": str(status_summary.get("dashboard_status") or "unknown"),
"blocker_count": _int(status_summary.get("blocked_gate_count")),
"blocker_count": release_blocker_count,
"metric": {
"kind": "blocked_gate",
"blocked": _int(status_summary.get("blocked_gate_count")),
"blocked": release_blocker_count,
"total": _int(status_summary.get("gate_count")),
"raw_overall_completion_percent": release_raw_completion,
"controlled_status_cleanup_package_ready": (
release_controlled_package_ready
),
},
"href": "/governance?tab=automation-inventory",
"next_action": _first_string(status_cleanup.get("next_actions")),

View File

@@ -110,6 +110,20 @@ def test_delivery_closure_workbench_uses_gitea_private_inventory_lane():
)
def test_delivery_closure_workbench_marks_release_lane_complete_when_controlled_package_ready():
payload = load_delivery_closure_workbench()
_assert_delivery_workbench_shape(payload)
lane = {lane["id"]: lane for lane in payload["lanes"]}["release"]
assert lane["source_id"] == "status_cleanup"
assert lane["status"] == "controlled_status_cleanup_package_ready"
assert lane["blocker_count"] == 0
assert lane["completion_percent"] == 100
assert lane["metric"]["raw_overall_completion_percent"] == 74
assert lane["metric"]["controlled_status_cleanup_package_ready"] is True
def test_delivery_closure_workbench_exposes_p0_005_credential_escrow_lane():
payload = load_delivery_closure_workbench()