27 lines
967 B
TypeScript
27 lines
967 B
TypeScript
import { mkdir } from "node:fs/promises";
|
|
import path from "node:path";
|
|
|
|
import { providerVerificationArtifactSchema } from "./lib/provider-evidence.ts";
|
|
import { verifyPromotionInputs } from "./lib/promotion-verifier.ts";
|
|
import { writeValidatedJsonArtifact } from "./lib/validated-json-artifact.ts";
|
|
|
|
const report = await verifyPromotionInputs({
|
|
artifactType: "provider-verification",
|
|
repositoryRoot: path.resolve(process.env.CANDIDATE_ROOT ?? process.cwd()),
|
|
providerEvidenceRoot: process.cwd(),
|
|
trustRoot: process.cwd(),
|
|
});
|
|
await mkdir("artifacts/security", { recursive: true });
|
|
await writeValidatedJsonArtifact({
|
|
path: "artifacts/security/provider-verification.json",
|
|
schema: providerVerificationArtifactSchema,
|
|
value: report,
|
|
});
|
|
if (report.status !== "PASS") {
|
|
process.stderr.write(
|
|
`Provider evidence is FAIL_UNVERIFIED:\n- ${report.failures.join("\n- ")}\n`,
|
|
);
|
|
process.exit(1);
|
|
}
|
|
process.stdout.write("Provider evidence: PASS\n");
|