From 9e40c0338ffa5da51c24e2f39403adc797d18d02 Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Wed, 28 Jan 2026 16:42:31 -0500 Subject: [PATCH] claude: Download verapdf from S3 bucket instead of verapdf.org Change `quarto install verapdf` to download from the quarto S3 bucket using the version pinned in configuration, instead of fetching the latest version from the verapdf.org API. This counters intermittent CI failures due to verapdf.org availability issues. Co-Authored-By: Claude Opus 4.5 --- src/tools/impl/verapdf.ts | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/src/tools/impl/verapdf.ts b/src/tools/impl/verapdf.ts index cd265ad576..ebd94f551b 100644 --- a/src/tools/impl/verapdf.ts +++ b/src/tools/impl/verapdf.ts @@ -21,8 +21,9 @@ import { import { createToolSymlink, removeToolSymlink } from "../tools.ts"; import { isWindows } from "../../deno_ral/platform.ts"; -// veraPDF version API -const kVersionApiUrl = "https://software.verapdf.org/get-latest-version.php"; +// S3 bucket for veraPDF downloads +const kBucketBaseUrl = "https://s3.amazonaws.com/rstudio-buildtools/quarto"; +const kDefaultVersion = "1.28.2"; // Supported Java versions for veraPDF const kSupportedJavaVersions = [8, 11, 17, 21]; @@ -119,27 +120,15 @@ function noteInstalledVersion(version: string): void { } async function latestRelease(): Promise { - const response = await fetch(kVersionApiUrl); - if (!response.ok) { - throw new Error( - `Failed to fetch veraPDF version info: ${response.statusText}`, - ); - } - - const data = await response.json(); - if (!data.success) { - throw new Error("Failed to fetch veraPDF version info from API"); - } - - const greenfield = data.releases.greenfield; - const versionMatch = greenfield.filename.match(/(\d+\.\d+\.\d+)/); - const version = versionMatch ? versionMatch[1] : "unknown"; - const downloadUrl = `https://software.verapdf.org${greenfield.path}`; + // Use pinned version from configuration or default + const version = Deno.env.get("VERAPDF") || kDefaultVersion; + const filename = `verapdf-greenfield-${version}-installer.zip`; + const downloadUrl = `${kBucketBaseUrl}/verapdf/${version}/${filename}`; return { url: downloadUrl, version, - assets: [{ name: greenfield.filename, url: downloadUrl }], + assets: [{ name: filename, url: downloadUrl }], }; }