


























@@ -45,6 +45,7 @@ type WorkflowRunSummary = {
45454646const DEFAULT_REPO = "openclaw/openclaw";
4747const DEFAULT_CLAWHUB_REGISTRY = "https://clawhub.ai";
48+const CLAWHUB_REQUEST_TIMEOUT_MS = 20_000;
48494950function isRecord(value: unknown): value is JsonRecord {
5051return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -209,7 +210,10 @@ async function fetchWithRetry(
209210let lastError: unknown;
210211for (let attempt = 1; attempt <= attempts; attempt += 1) {
211212try {
212-const response = await fetch(url, options);
213+const response = await fetch(url, {
214+ ...options,
215+signal: AbortSignal.timeout(CLAWHUB_REQUEST_TIMEOUT_MS),
216+});
213217if (response.status !== 429 && response.status < 500) {
214218return response;
215219}
@@ -342,6 +346,7 @@ function verifyWorkflowRun(params: {
342346repo: string;
343347expectedWorkflowName: string;
344348expectedHeadBranch?: string;
349+allowedHeadBranches?: string[];
345350rerunFailed: boolean;
346351}): WorkflowRunSummary {
347352const raw = runCommand("gh", [
@@ -370,9 +375,12 @@ function verifyWorkflowRun(params: {
370375);
371376}
372377const headBranch = readString(run.headBranch);
373-if (params.expectedHeadBranch !== undefined && headBranch !== params.expectedHeadBranch) {
378+const allowedHeadBranches =
379+params.allowedHeadBranches ??
380+(params.expectedHeadBranch !== undefined ? [params.expectedHeadBranch] : []);
381+if (allowedHeadBranches.length > 0 && !allowedHeadBranches.includes(headBranch ?? "")) {
374382throw new Error(
375-`${params.label}: run ${params.id} branch is ${headBranch ?? "<missing>"}, expected ${params.expectedHeadBranch}.`,
383+`${params.label}: run ${params.id} branch is ${headBranch ?? "<missing>"}, expected ${allowedHeadBranches.join(" or ")}.`,
376384);
377385}
378386const status = readString(run.status);
@@ -519,7 +527,7 @@ export async function verifyBetaRelease(
519527label: "Full Release Validation",
520528repo: args.repo,
521529expectedWorkflowName: "Full Release Validation",
522-expectedHeadBranch: args.workflowRef,
530+allowedHeadBranches: ["main", args.workflowRef],
523531rerunFailed: false,
524532}),
525533);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。