Dashboard › cli › Distillation
6b6249d4-8c73-449a-89a6-1e2a9688d228["lore_tm_v1_GRJPpvefAIc-bmWbNDok8_f__I3jCz1WpKnNrybZA2o","lore_tm_v1_gSPxwYZkJd85rvCnse8fKu5q402jmR0nFm2yLLfQfuw"]
packages/cli/src/lib/ghcr.ts expanded from 520 to 546 lines and added source-specific GHCR repository support by importing PRIMARY_UPGRADE_SOURCE and UpgradeSource from ./binary.js.GHCR_REPO in packages/cli/src/lib/ghcr.ts is now the default repository alias PRIMARY_UPGRADE_SOURCE.ghcrRepo instead of the hard-coded "getsentry/cli".GhcrManifestHttpError extends UpgradeError in packages/cli/src/lib/ghcr.ts; it stores the GHCR HTTP status, uses error code "network_error", sets name = "GhcrManifestHttpError", and formats the message as Failed to fetch manifest for tag "${tag}": HTTP ${status}.getAnonymousToken() in packages/cli/src/lib/ghcr.ts now accepts sourceOrSignal: UpgradeSource | AbortSignal = PRIMARY_UPGRADE_SOURCE plus optional signal; it preserves backward compatibility with an AbortSignal first argument, selects source.ghcrRepo for the token scope repository:${source.ghcrRepo}:pull, and forwards the resolved external signal to fetchWithRetry().downloadNightlyBlob() in packages/cli/src/lib/ghcr.ts gained source: UpgradeSource = PRIMARY_UPGRADE_SOURCE as its final parameter and now builds blob URLs with ${GHCR_REGISTRY}/v2/${source.ghcrRepo}/blobs/${digest} instead of GHCR_REPO.listTags() in packages/cli/src/lib/ghcr.ts gained source: UpgradeSource = PRIMARY_UPGRADE_SOURCE as its final parameter, enabling tag listing against a source-specific GHCR repository while retaining optional prefix and signal arguments.packages/cli/src/lib/release-notes.ts expanded from 139 to 141 lines and replaced fixed GITHUB_RELEASES_URL usage with getGitHubReleasesUrl, PRIMARY_UPGRADE_SOURCE, and UpgradeSource from ./binary.js.packages/cli/src/lib/release-notes.ts was updated to filter source-specific release tags.fetchReleasesForChangelog() in packages/cli/src/lib/release-notes.ts now requires source: UpgradeSource and requests ${getGitHubReleasesUrl(source)}?per_page=${CHANGELOG_MAX_RELEASES}; it still returns [] on fetch failure, non-successful HTTP response, JSON parsing failure, or a non-array response.fetchNightlyChangelog() in packages/cli/src/lib/release-notes.ts now requires source: UpgradeSource between toVersion and optional maxItems, so nightly changelog fetching uses the release source selected during version discovery.sinceDate uses (fromTs + 1) * 1000 because since is inclusive, and untilDate uses (toTs + 1) * 1000 because until is exclusive.