Files
openclaw/scripts/verify-pr-hosted-gates.d.mts
Peter SteinbergerandGitHub 3d1b771035 fix(ci): catch script declaration drift before merge (#110248)
* fix(ci): verify script declaration contracts

* fix(ci): harden declaration export analysis

* fix(ci): cover opaque script module exports

* test(ci): cover cyclic script declaration barrels
2026-07-18 02:54:26 +01:00

74 lines
1.6 KiB
TypeScript

#!/usr/bin/env node
export function parseArgs(argv: unknown): {
repo: string;
sha: string;
pr: number;
recentSha: string;
output: string;
changelogOnly: boolean;
};
export function parseWorkflowRunPage(raw: unknown): {
totalCount: unknown;
workflowRuns: unknown;
};
export function workflowRunPageCount(totalCount: unknown): number;
export function collectHostedGateEvidence({
sha,
pr,
recentSha,
pullRequestCommitShas,
pullRequestHeadBranch,
pullRequestHeadRepository,
workflowRuns,
ciGateJobs,
changelogOnly,
nowMs,
}: {
sha: string;
pr?: number;
recentSha?: string;
pullRequestCommitShas?: string[];
pullRequestHeadBranch?: string;
pullRequestHeadRepository?: string;
workflowRuns: Array<Record<string, unknown>>;
ciGateJobs?: Array<Record<string, unknown>>;
changelogOnly?: boolean | undefined;
nowMs?: number | undefined;
}): {
headSha: string;
evidenceHeadSha?: string;
workflows: {
id: unknown;
name: unknown;
event: unknown;
headSha: unknown;
headBranch: unknown;
status: unknown;
conclusion: unknown;
createdAt: unknown;
updatedAt: unknown;
url: unknown;
}[];
fallbackCoveredWorkflows?: {
name: string;
coveredBy: string;
reason: string;
}[];
};
export function compareCommitPageCount(totalCommits: number): number;
export function workflowRunQueryPaths(
repo: string,
{
sha,
recentSha,
headBranch,
}: {
sha: string;
recentSha: string;
headBranch?: string;
},
page?: number,
): string[];
export const SCHEDULED_HOSTED_WORKFLOWS: string[];
export const HOSTED_GATE_MAX_AGE_HOURS: 24;