Files
openclaw/scripts/release-validation-github-artifact-authenticator.d.mts

42 lines
1.3 KiB
TypeScript

import type {
ReleaseValidationSourceArtifact,
ReleaseValidationVerifiedArtifactEvidence,
} from "./release-validation-receipt-contract.mjs";
export type GitHubReleaseValidationArtifactEvidence = ReleaseValidationSourceArtifact & {
entry_bytes: string;
};
export type GitHubReleaseValidationArtifactExpected = {
repository: string;
workflowPath: string;
workflowSha: string;
};
export function authenticateGitHubReleaseValidationArtifact(params: {
evidence: GitHubReleaseValidationArtifactEvidence;
expected: GitHubReleaseValidationArtifactExpected;
artifactMetadata: unknown;
workflowRun: unknown;
archiveBytes: Uint8Array;
nowMs: number;
}): ReleaseValidationVerifiedArtifactEvidence;
export function downloadAndAuthenticateGitHubReleaseValidationArtifact(params: {
evidence: GitHubReleaseValidationArtifactEvidence;
expected: GitHubReleaseValidationArtifactExpected & {
artifactSizeBytes: number;
runStatePolicy: "completed-success" | "same-run-producer-success";
workflowEvent: string;
workflowHeadBranch: string;
consumerRunAttempt?: number;
producerJobName?: string;
};
token: string;
nowMs: number;
fetchImpl?: typeof fetch;
timeoutMs?: number;
retryAttempts?: number;
retryDelayMs?: number;
}): Promise<ReleaseValidationVerifiedArtifactEvidence>;