From 70dacf0cdb810372bed9efdb705e2778f5492f16 Mon Sep 17 00:00:00 2001 From: Nicholas Ngai Date: Fri, 17 Oct 2025 11:21:33 -0700 Subject: [PATCH] Fall back to downloading from go.dev/dl instead of storage.googleapis.com/golang --- README.md | 4 ++-- __tests__/setup-go.test.ts | 4 ++-- dist/setup/index.js | 2 +- src/installer.ts | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b23585d..62af839 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ The V3 edition of the action offers: The action will first check the local cache for a version match. If a version is not found locally, it will pull it from the `main` branch of the [go-versions](https://github.com/actions/go-versions/blob/main/versions-manifest.json) repository. On miss or failure, it will fall back to downloading directly -from [go dist](https://storage.googleapis.com/golang). To change the default behavior, please use +from [go dist](https://go.dev/dl). To change the default behavior, please use the [check-latest input](#check-latest-version). **Note:** The `setup-go` action uses executable binaries which are built by Golang side. The action does not build @@ -247,7 +247,7 @@ When dynamically downloading Go distributions, `setup-go` downloads distribution These calls to `actions/go-versions` are made via unauthenticated requests, which are limited to [60 requests per hour per IP](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting). If more requests are made within the time frame, then the action leverages the `raw API` to retrieve the version-manifest. This approach does not impose a rate limit and hence facilitates unrestricted consumption. This is particularly beneficial for GHES runners, which often share the same IP, to avoid the quick exhaustion of the unauthenticated rate limit. -If that fails as well the action will try to download versions directly from https://storage.googleapis.com/golang. +If that fails as well the action will try to download versions directly from https://go.dev/dl. If that fails as well you can get a higher rate limit with [generating a personal access token on github.com](https://github.com/settings/tokens/new) and passing it as the `token` input to the action: diff --git a/__tests__/setup-go.test.ts b/__tests__/setup-go.test.ts index f94f9ee..eebb283 100644 --- a/__tests__/setup-go.test.ts +++ b/__tests__/setup-go.test.ts @@ -388,7 +388,7 @@ describe('setup-go', () => { const expPath = path.win32.join(toolPath, 'bin'); expect(dlSpy).toHaveBeenCalledWith( - 'https://storage.googleapis.com/golang/go1.13.1.windows-amd64.zip', + 'https://go.dev/dl/go1.13.1.windows-amd64.zip', 'C:\\temp\\go1.13.1.windows-amd64.zip', undefined ); @@ -945,7 +945,7 @@ use . const expectedUrl = platform === 'win32' ? `https://github.com/actions/go-versions/releases/download/${version}/go-${version}-${platform}-${arch}.${fileExtension}` - : `https://storage.googleapis.com/golang/go${version}.${osSpec}-${arch}.${fileExtension}`; + : `https://go.dev/dl/go${version}.${osSpec}-${arch}.${fileExtension}`; // ... but not in the local cache findSpy.mockImplementation(() => ''); diff --git a/dist/setup/index.js b/dist/setup/index.js index ffccd09..ad8326f 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -93554,7 +93554,7 @@ function getInfoFromDist(versionSpec, arch) { if (!version) { return null; } - const downloadUrl = `https://storage.googleapis.com/golang/${version.files[0].filename}`; + const downloadUrl = `https://go.dev/dl/${version.files[0].filename}`; return { type: 'dist', downloadUrl: downloadUrl, diff --git a/src/installer.ts b/src/installer.ts index 1b5f20f..75b9aa5 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -386,7 +386,7 @@ async function getInfoFromDist( return null; } - const downloadUrl = `https://storage.googleapis.com/golang/${version.files[0].filename}`; + const downloadUrl = `https://go.dev/dl/${version.files[0].filename}`; return { type: 'dist',