Dashboard › cli › Distillation
b1c8508e-2dec-444b-80db-07fdff97a56f["lore_tm_v1_2VLizU_xB3IvgjwDd58EGKQ265fT6CGHosNB_Iibvk4","lore_tm_v1_tbIKdfH7SPMAYCKO8YPnx6irHFdoNio4xB_aNVRqhSc","lore_tm_v1_s1T1XjMQ5zxMXKxyUpfhF8AXWcIlFm5AFU2JFzKuIz4","lore_tm_v1_Lwhw0f_qgwViNByvQNGXAU0F3bumBnDxvYkl2KStbQE"]
b6484e0fb1eb0f8bce68272d538f5c3b26cd5bd5 was authored and committed by Burak Yigit Kaya <byk@sentry.io> at Thu Sep 10 02:19:10 2026 +0000. It changed 8 files with 131 insertions and 37 deletions: packages/cli/src/commands/cli/upgrade.ts, packages/cli/src/lib/ghcr.ts, packages/cli/src/lib/release-notes.ts, packages/cli/src/lib/upgrade.ts, packages/cli/test/commands/cli/upgrade.test.ts, packages/cli/test/lib/ghcr.test.ts, packages/cli/test/lib/release-notes.test.ts, and packages/cli/test/lib/upgrade.test.ts.packages/cli/test/lib/upgrade.test.ts added a test named "selects the highest CLI SemVer across Toolkit release pages": page 1 returns cli@1.2.1 with a GitHub Link header pointing to page 2, page 2 returns cli@1.3.0, fetchLatestFromGitHub() must resolve to "1.3.0", and exactly 2 requests must occur.downloadNightlyBlob() references in packages/cli/test/lib/ghcr.test.ts at lines 302, 329, 351, 358, 361, 377, 387, 399, and 417; downloadLayerBlob() references there at lines 608 and 617; a downloadNightlyBlob() call in packages/cli/src/lib/upgrade.ts line 971; the downloadNightlyBlob() declaration in packages/cli/src/lib/ghcr.ts line 364; and the downloadLayerBlob() declaration/call-through in that file at lines 548 and 554.packages/cli/test/lib/ghcr.test.ts lines 297–425 define downloadNightlyBlob tests in this order: 1. HTTP 200 returns binary bytes [1, 2, 3, 4] directly; 2. HTTP 307 redirects to https://blob.storage.azure.com/signed?token=xyz, performs exactly 2 requests, and does not forward the authorization header; 3. HTTP 302 redirects to https://example.com/blob and performs exactly 2 requests; 4. a 307 without Location throws UpgradeError with "GHCR blob redirect (307) had no Location header"; 5. redirected blob storage HTTP 403 throws an error containing "Blob storage download failed: HTTP 403"; 6. an unexpected direct HTTP 500 throws an error containing "Unexpected GHCR blob response: HTTP 500"; 7. an initial TypeError("fetch failed") becomes an error containing "Failed to connect to GHCR: fetch failed"; 8. a network failure while following a 307 becomes an error containing "Failed to download from blob storage: fetch failed".packages/cli/test/lib/ghcr.test.ts lines 280–294 test that findLayerByFilename(manifest, "sentry-linux-x64.gz") throws UpgradeError when a layer with digest "sha256:noannotations", media type "application/octet-stream", and size 100 has no annotations.packages/cli/test/lib/ghcr.test.ts lines 429–458 test generic fetchManifest(): fetchManifest("token", "patch-0.13.0") requests /v2/${GHCR_REPO}/manifests/patch-0.13.0 and returns an OCI manifest, while HTTP 404 produces GhcrManifestHttpError with status: 404 and message 'Failed to fetch manifest for tag "patch-0.13.0": HTTP 404'.c6030fbf4d0c190f037c86d832edb6680d3e54ab: packages/cli/test/commands/cli/upgrade.test.ts, packages/cli/test/lib/ghcr.test.ts, and packages/cli/test/lib/release-notes.test.ts.