From 9d4eb5954fbe76cf06299559de0d7a43ee4e415d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=B8=80=E4=B9=8B?= Date: Mon, 23 Oct 2023 02:27:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=95=9C=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __tests__/setup-go.test.ts | 2 +- src/installer.ts | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/__tests__/setup-go.test.ts b/__tests__/setup-go.test.ts index 70f2166..81ca945 100644 --- a/__tests__/setup-go.test.ts +++ b/__tests__/setup-go.test.ts @@ -142,7 +142,7 @@ describe('setup-go', () => { os.platform = 'darwin'; os.arch = 'x64'; - const match = await im.getInfoFromManifest('1.9.7', true, 'mocktoken'); + const match = await im.getInfoFromManifest('1.21', true, 'mocktoken'); expect(match).toBeDefined(); expect(match!.resolvedVersion).toBe('1.9.7'); expect(match!.type).toBe('manifest'); diff --git a/src/installer.ts b/src/installer.ts index 57ddc58..2a73dae 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -321,13 +321,17 @@ export async function getManifestFromRepo( } headers['accept'] = 'application/vnd.github.VERSION.raw'; - let versionsRaw = await (await http.get(manifestUrl, headers)).readBody(); + const versionsRaw = await (await http.get(manifestUrl, headers)).readBody(); - if (versionsRaw) { + const base64 = JSON.parse(versionsRaw); + + let tmp = Buffer.from(base64['content'], 'base64').toString('ascii'); + + if (tmp) { // shouldn't be needed but protects against invalid json saved with BOM - versionsRaw = versionsRaw.replace(/^\uFEFF/, ''); + tmp = tmp.replace(/^\uFEFF/, ''); try { - releases = JSON.parse(versionsRaw); + releases = JSON.parse(tmp); } catch { core.debug('Invalid json'); }