fix: prioritize follower taskrun visibility
This commit is contained in:
@@ -6,6 +6,7 @@ import { runCommand, type CommandResult } from "./command";
|
||||
import { repoRoot, rootPath } from "./config";
|
||||
import type { AdapterSummary, BranchFollowerDebugStep, BranchFollowerRegistry, FollowerSpec, FollowerState, K8sStateRead, ParsedOptions } from "./cicd-types";
|
||||
import { renderControllerDebugJob, waitForJobShell } from "./cicd-controller-render";
|
||||
import { taskRunItems } from "./cicd-taskruns";
|
||||
import { redactText, shQuote } from "./platform-infra-ops-library";
|
||||
|
||||
type KubeScriptRunner = (registry: BranchFollowerRegistry, options: ParsedOptions, script: string, input: string, timeoutMs: number) => CommandResult;
|
||||
@@ -423,26 +424,6 @@ function compactStatusGates(payload: Record<string, unknown> | null): Record<str
|
||||
};
|
||||
}
|
||||
|
||||
function taskRunItems(taskRuns: Record<string, unknown>, mode: "failed" | "active" | "slow"): Record<string, unknown>[] {
|
||||
const explicit = mode === "failed" ? taskRuns.failedItems : mode === "active" ? taskRuns.activeItems : taskRuns.slowItems;
|
||||
const explicitItems = arrayRecords(explicit);
|
||||
if (explicitItems.length > 0) return explicitItems.slice(0, 5).map(compactTaskRunItem);
|
||||
const items = arrayRecords(taskRuns.items);
|
||||
if (mode === "failed") return items.filter((item) => item.status === "False").slice(0, 5).map(compactTaskRunItem);
|
||||
if (mode === "active") return items.filter((item) => item.status !== "True" && item.status !== "False").slice(0, 5).map(compactTaskRunItem);
|
||||
return arrayRecords(asOptionalRecord(taskRuns.performance)?.slowTaskRuns).slice(0, 5).map(compactTaskRunItem);
|
||||
}
|
||||
|
||||
function compactTaskRunItem(item: Record<string, unknown>): Record<string, unknown> {
|
||||
return {
|
||||
name: stringOrNull(item.name),
|
||||
pipelineTask: stringOrNull(item.pipelineTask),
|
||||
status: stringOrNull(item.status),
|
||||
reason: stringOrNull(item.reason),
|
||||
durationSeconds: numberOrNull(item.durationSeconds),
|
||||
};
|
||||
}
|
||||
|
||||
function arrayRecords(value: unknown): Record<string, unknown>[] {
|
||||
return Array.isArray(value) ? value.filter((item): item is Record<string, unknown> => typeof item === "object" && item !== null && !Array.isArray(item)) : [];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user